Commit graph

58 commits

Author SHA1 Message Date
ashthespy
01813cf7c9 Tweak unavailable track handling
Flag them as `NonPlayable` instead of removing them from the queue
2020-05-13 13:30:30 +02:00
ashthespy
9cacc2d09f Fix regression in track cycling 2020-05-13 13:24:30 +02:00
ashthespy
172cb945c4 Merge branch 'dev' of https://github.com/librespot-org/librespot into skip_unplayable 2020-05-13 12:19:33 +02:00
ashthespy
14709b9f8d Let spirc handle unavailable tracks 2020-05-13 11:49:26 +02:00
ashthespy
902440925d Handle unplayable tracks during prefetch 2020-05-10 14:31:43 +02:00
ashthespy
98e69ab0c4 Fetch context for Spotify Collection types as well
Liked songs for example
2020-05-09 16:40:57 +02:00
Sasha Hilton
670170bd23
Merge pull request #430 from kaymes/gapless_play
Gapless play and improved notifications
2020-02-27 02:14:13 +00:00
Konstantin Seiler
f3b13beb17 Fix typo. 2020-02-27 12:25:25 +11:00
Sasha Hilton
08c239319c
Merge pull request #386 from willstott101/cha_cha_shuffle
Ignore false shuffle/repeat when changing contexts to match Android behaviour (fixes: #266)
2020-02-13 21:43:43 +01:00
Konstantin Seiler
3f111a9778 Suppress sending loading state to Spotify unless we actually need to load a track. 2020-02-07 21:21:11 +11:00
Konstantin Seiler
18d1181bf5 Clean up some code
Ensure the player events are emitted correctly.
Only call the external script on events we want to notify about.
Stop sink when loading to pause.
cargo fmt
2020-02-03 18:58:44 +11:00
Konstantin Seiler
981b76bace Keep the sink open
Fix typo
2020-02-03 10:11:27 +11:00
Konstantin Seiler
6fed8d0413 Make preloading work. 2020-02-03 09:15:56 +11:00
Konstantin Seiler
9eef690a22 Some clean up 2020-02-02 11:08:46 +11:00
Konstantin Seiler
5784b4652c Prepare for gapless play.
- change communication between player and spirc to use player events channel.
- enhance player events channel
- have spirc send loading messages to Spotify
- enable preloading of tracks in the player
2020-02-01 08:41:11 +11:00
Sasha Hilton
83140bea88
Merge pull request #427 from kaymes/connection-lost-crash
Gracefully handle lost network connections
2020-01-30 02:04:37 +01:00
Sasha Hilton
c9f1914fc8 Run cargo fmt 2020-01-28 19:19:18 +01:00
Sasha Hilton
6f7fd9f398
Merge pull request #426 from kaymes/empty-queue-crash
Prevent spirc from crashing when the queue is empty.
2020-01-24 03:05:07 +01:00
Sasha Hilton
e9c3357e41 Run cargo fmt 2020-01-24 02:26:16 +01:00
Sasha Hilton
cdcb919c08
Merge branch 'dev' into connection-lost-crash 2020-01-24 01:02:40 +01:00
Konstantin Seiler
a52092e094 Convert another panic to error handling.
Compatibility fix for Rust 1.33.
2020-01-24 10:12:16 +11:00
Konstantin Seiler
113bb92c9d Prevent spirc from crashing when the queue is empty. 2020-01-23 19:26:47 +11:00
marcelbuesing
38d82f2dc2
Rerun rustfmt on full codebase 2020-01-17 18:47:30 +01:00
ashthespy
d26590afc5
Update to Rust 2018
- Fix deprecated Error::cause warnings and missing dyn
- Reset max_width
- Add rustfmt to Travis
- Run rustfmt on full codebase
 with `cargo fmt --all`
- Add rustfmt to Travis
- Complete migration to edition 2018
- Replace try! shorthand
- Use explicit `dyn Trait`
2020-01-17 18:11:52 +01:00
ashthespy
6c6ba88590 Don't panic when no autoplay uri is obtained
For example from Liked Songs (`spotify:user:xxx:collection`)
2020-01-07 12:13:49 +01:00
ashthespy
b3c9744b29 Add a autoplay option flag 2019-11-05 20:34:43 +01:00
ashthespy
ba2639d1df Autoplay similar songs when your music ends 2019-11-05 15:47:28 +01:00
ashthespy
ee3a756a6e Fix borrow for Rust 1.32.0 2019-10-30 13:53:11 +01:00
ashthespy
508c7e2b26 Tweak track loading 2019-10-30 11:33:17 +01:00
ashthespy
b96405af82 Make SpotifyId understand more URI formats 2019-10-30 11:33:17 +01:00
ashthespy
0cb7a3f7c8 WIP: Podcast support 2019-10-30 11:33:17 +01:00
Will Stott
8b8032634a Fix shuffle and repeat when changing contexts to match Android behaviour
Seems strange that these fields return true in the has_ methods when as
far as I can tell it's impossible to remove the shuffle/repeat state in
the client without explicitly toggling them with their dedicated buttons
2019-10-19 12:42:23 +01:00
Nick Mavis
c19375c5ca Fixed nightly conflict with 2019-09-16 15:00:09 -04:00
ashthespy
8d08425ef3 Refactor adding context tracks to state 2019-03-28 15:27:50 +01:00
Michael Edwards
9b4ede086a Server time delta is a signed integer
Fixes #322
2019-03-26 21:45:23 +01:00
devgianlu
dc9b2de314 Fixed issue with time alignment 2019-03-24 07:15:14 -07:00
ashthespy
6870c76a43 Limit new context tracks added to frame
Keep only a fixed history of previous tracks to prior pushing new tracks
2019-03-16 16:18:38 +01:00
ashthespy
b0ee8ec74d Tweak malformed gid handling 2019-03-15 08:26:58 +01:00
ashthespy
c0416972b6 Support Dailymixes and refactor dynamic playlists 2019-03-13 20:35:46 +01:00
ashthespy
96b432aa4c Implement support for dynamic playlists (Radio) 2018-10-12 19:15:26 +02:00
Sasha Hilton
8978559d3a
Merge pull request #284 from tstenner/rand06
Update rand to 0.6
2019-03-10 18:09:08 +01:00
Sasha Hilton
0686fe545f Update Spirc depreciated rand method 2019-03-10 17:48:19 +01:00
Åke Forslund
9b6b55ee7d Update subscription uri
This fixes an issue loading new tracks probably caused by an update on spotify's side. The fix was suggested by @worleydl, all glory to them for figuring it out.
2019-02-22 14:09:01 +01:00
Brice
d40c0f50db Cache volume across restarts (#220)
* create Volume struct for use with Cache

* add "volume" file to Cache

* load cached volume on start, intial overrides cached overrides default

* amend volume_to_mixer function to cache the volume on every change

* pass cache to Spirc and SpircTask so volume_to_mixer has access

* rustfmt changes

* revert volume_to_mixer function and Spirc/SpircTask cache variable

* Volume implements Copy, pass by value instead of reference

* clamp volume to 100 if cached value exceeds limit

* convert Volume to u16 internally, use float and round to convert hex->dec

* convert initial_volume and ConnectConfig.volume to u16 as well

* add cache_volume function to SpircTask

* remove conversion to/from percentage on cached volume

* consolidate device.set_volume, mixer.set_volume, and caching

* streamline intial volume logic
2018-05-17 03:15:17 +02:00
Reinier Balt
2aea0e8fe6 do not panic on connection reset 2018-04-21 17:46:29 +02:00
Johan Anderholm
612978908f Reformat according to new rustfmt rules 2018-03-24 08:45:43 +00:00
thekr1s
d6b82cd732 revert file mode to original mode 2018-03-14 23:19:49 +01:00
thekr1s
b1f2a412ad fir rustfmt issues 2018-03-11 13:34:30 +01:00
thekr1s
b3966b0e08 Add optional linear volume contol 2018-03-11 11:27:28 +01:00
Sasha Hilton
4fb8c71b0a Set SpotifyId methods to return Result 2018-02-25 03:04:07 +01:00