* Added OpenUri D-BUS MPRIS support.
Removed "user:" from URIType check because Spotify doesn't always provide it.
* Added tags to .gitignore
* Changed mpris metadata to actually return the track's url instead of the Spotify URI so that it matches the functionality of the official Spotify client.
* Changed mpris:trackid and xesam:url to not use static naming so it can support podcasts.
* Changed xesam:url to default to an empty string instead of "0"
* Added possibility to start playing Shows and Episodes via MPRIS.
Added possibility to search for Podcast Episodes.
* Added OpenUri D-BUS MPRIS support.
Removed "user:" from URIType check because Spotify doesn't always provide it.
* Added tags to .gitignore
* Changed mpris metadata to actually return the track's url instead of the Spotify URI so that it matches the functionality of the official Spotify client.
* Changed mpris:trackid and xesam:url to not use static naming so it can support podcasts.
* Changed xesam:url to default to an empty string instead of "0"
* implement search for shows/podcasts
* create Playable supertype for queue to contain tracks and episodes
* wip: implement playback of episodes
* load spotify id from uri instead of raw id to fix podcast playback
* show duration for podcast episodes
* implement generic status bar for playables (tracks and episodes)
omit saved indicator for now as the library does not yet support podcasts
* instead of only the last 50 fetch all episodes of a show
* refactor: extract Playable code to separate file
* implement playback/queuing of shows + sharing url
* implement podcast library
* migrate mpris code to Playable supertype
`is_followed_playlist()` only works within the library context. In the search
view it almost always evaluates to `true` as most playlists are owned by other
users.
fixes#213
* wip: add methods and api usage to delete track from playlist
* enh: add ability to remove track from playlist with immediate visual feedback
* minor cosmetic changes
Co-authored-by: Henrik Friedrichsen <henrik@affekt.org>
This patch adds a 'MoveAmount' enum that permits movements by integer
values or to abstract extremes which loosely translate to "top" for up
direction, "bottom" for down direction, etc. The goal behind the effort
is to add support for buttons like "Home" and "End".
The new enum has a 'Default' impl that yields a value of integer
movement by 1 field. This replaces the previous 'Option' wrap, that
in fact served the same purpose, with the value of '1' scattered
around different places in code.
Along with the enum, new commands have been defined to make use of it:
- "move top"
- "move bottom"
- "move leftmost"
- "move rightmost"