Commit graph

220 commits

Author SHA1 Message Date
Sasha Hilton
d8c1b491c4 Merge branch 'master' into dev 2021-02-22 00:57:45 +00:00
Sasha Hilton
b7c3609c7b Update version numbers to 0.1.6 2021-02-22 00:37:28 +00:00
johannesd3
007e653f3d Restore original blocking player behaviour 2021-02-21 17:04:44 +01:00
Sasha Hilton
7f705ed148 Merge branch 'master' into dev 2021-02-20 23:31:04 +00:00
Sasha Hilton
2c110ca256 Update version numbers to 0.1.5 2021-02-20 23:05:56 +00:00
johannesd3
b77f0a18ce Fix formatting 2021-02-13 10:29:00 +01:00
johannesd3
689415a6f1 Improved error handling in rodio backend 2021-02-12 19:34:40 +01:00
johannesd3
b2f1be4374 Make RodioSink Send and improve error handling 2021-02-12 19:34:28 +01:00
johannesd3
2f05ddfbc2 Fix bugs in player 2021-02-12 18:19:04 +01:00
johannesd3
872fab62d8 Merge branch 'dev' into tokio_migration 2021-02-10 21:51:33 +01:00
Sasha Hilton
59f87dcb37 Amend conditional compilation to fail on unsupported systems 2021-02-10 01:44:05 +00:00
Sasha Hilton
aad4dba8a8 Merge branch 'dev' into rodiojack-backend 2021-02-10 01:07:02 +00:00
Lcchy
52438b1cc2 Use rodio for jackaudio backend 2021-02-09 17:45:21 +01:00
Sasha Hilton
b72485cf46
Merge pull request #593 from Johannesd3/fix-issue-591 2021-02-09 13:54:47 +00:00
johannesd3
2f660f74ec Small refactor 2021-02-09 09:15:55 +01:00
Sasha Hilton
24486c8c83
Merge pull request #573 from librespot-org/album-normalisation
Add option to choose between track or album normalisation gain
2021-02-05 04:19:09 +00:00
johannesd3
f67ceb5f6d Small refactoring 2021-02-02 02:19:15 +01:00
johannesd3
3446864838 Handle corrupt cache files (#591) 2021-02-02 02:18:58 +01:00
Sasha Hilton
5e4e574f78 Bump alsa version in playback crate, remove duplicate dependency 2021-01-31 02:50:20 +00:00
Johannesd3
ed20f357dc
Fix playback in pulseaudio backend (#577)
* Fix playback in pulseaudio backend

* Add comment regarding safety
2021-01-29 02:01:38 +00:00
johannesd3
fe37186804 Make librespot_playback work 2021-01-25 09:04:33 +01:00
johannesd3
0895f17f8a Migrated playback crate to futures 0.3 2021-01-25 09:04:33 +01:00
Sasha Hilton
37a5796a86 Add option to choose between track or album normalisation gain, default album. 2021-01-21 19:16:05 +00:00
Lyndon Brown
8ea200088c bump sdl2 dependency (v0.32 to v0.34)
doesn't seem to have any compatibility issues - compiled cleanly with sdl2
feature after version bump.
2020-12-14 11:53:54 +00:00
Lyndon Brown
3ba05845d2 upgrade jack dependency from v0.5 to v0.6
A bunch of stuff got moved around; means of constructing audio output port
changed.

I simply used the commits, mostly from [1], to their examples to figure
out how to address the errors that resulted from compiling after the
version bump. It compiles cleanly again now.

[1]: https://github.com/RustAudio/rust-jack/pull/89
2020-12-14 11:53:54 +00:00
Lyndon Brown
594de54bec bump zerocopy dependency
doesn't seem to have any compatibility issues.
2020-12-14 11:53:54 +00:00
Lyndon Brown
21b2110da2 bump glib and gstreamer dependency versions
(needed to be done together)

there was no changelog for gstreamer and far too many commits to check
compatibility, but compiling with the gstreamer backend feature works fine
with these new versions.
2020-12-14 11:53:54 +00:00
Lyndon Brown
2f809ea6e1 bump shell-words dependency to v1.0.0
nothing has changed, as noted here:
ae583f7a19
2020-12-14 11:53:54 +00:00
Lyndon Brown
120bd88326 fix alignment causing format check failure 2020-12-13 17:51:43 +00:00
Lyndon Brown
0411e69548 convert PulseAudio backend to use the available binding crates
rather than the raw 'sys' layer.
2020-12-13 17:51:41 +00:00
Lyndon Brown
28061dffe2 upgrade to newer PulseAudio crate dependency
requires adding dependency on libpulse-simple-sys since the PulseAudio
simple components were moved to their own crate (the original version
did not stick to the one crate per one system library rule).

this fixes the licensing compatibility issue discussed in #539 ([1])
(the original v0.0.0 was LGPL-3.0 licensed, while v1.11 onwards are
'MIT OR Apache-2.0').

[1]: https://github.com/librespot-org/librespot/issues/539
2020-12-13 17:50:23 +00:00
Lyndon Brown
cea63e57a4 use actual feature names rather than crate names for conditional compilation 2020-12-13 17:46:40 +00:00
Sasha Hilton
aba1a6ee59
Merge pull request #546 from maxthiel/send-preload-event
Add a preload event to warn about new track coming soon
2020-12-13 17:31:20 +00:00
maxthiel
2f7bf54076 Add a preload event to warn about new track coming soon 2020-12-10 21:17:41 +00:00
Will Stott
8ff1dc24bd Quick minimal hack to get latest rodio working. 2020-12-02 19:45:46 +00:00
Lyndon Brown
4708e0a2bf cargo toml formatting fix
for consistency
2020-11-26 19:31:51 +00:00
Lyndon Brown
f87cbd6fde add missing repo links to sub-crate cargo toml files
such that links are available from their crates.io pages to the project repo.
2020-11-26 19:30:37 +00:00
Sasha Hilton
45f4276d68 Update version numbers to 0.1.3 2020-07-29 16:23:41 +01:00
ashthespy
9e7180feb4 Use mixer's mute switch if possible 2020-07-29 15:59:45 +01:00
ashthespy
46328810cb Make alsamixer less verbose 2020-07-29 15:59:45 +01:00
ashthespy
527a4ccbe2 Better alsamixer volume mapping for hardware mixers 2020-07-29 15:59:45 +01:00
ashthespy
3dfad7f788 Implement mapped volume for alsa mixer 2020-07-29 15:59:45 +01:00
Sasha Hilton
732bb1ce82 Merge branch 'dev' into gst1.0-2020 2020-07-25 02:52:21 +01:00
Sasha Hilton
6eabf4a75c
Merge pull request #449 from kaymes/blocking_sink_events
Add blocking SinkActive|SinkInactive events
2020-07-24 03:07:38 +01:00
Sasha Hilton
43ab7fcedb
Merge pull request #474 from ashthespy/skip_unplayable
Skip unplayable tracks instead of stopping
2020-07-24 03:05:57 +01:00
Sasha Hilton
db634cd248
Merge pull request #493 from sniperrifle2004/alsa-backend-better-buffering
Alsa backend better buffering
2020-07-24 03:04:54 +01:00
Sasha Hilton
68949da7c2 Update version numbers to 0.1.2 2020-07-22 16:53:52 +01:00
sniperrifle2004
1e5d98b8fd Actually store the period_size 2020-06-17 03:53:20 +02:00
sniperrifle2004
82e54dfaba Rewrite buffer around the actual period size
This prevents over or underestimating of the period.
While it is unlikely, with comparitively small period
sizes overestimating can cause buffer underruns and
underestimating causes more writes than necessary.
It also properly accounts for the number of channels,
which I had overlooked.
2020-06-17 03:34:46 +02:00
sniperrifle2004
a68dfa0287 On stop write any chunk(s) left in the period buffer
That should prevent a possible sudden stop
2020-06-14 07:22:23 +02:00
sniperrifle2004
cbe3c98fa1 Clear buffer when the sink is stopped 2020-06-14 06:15:53 +02:00
sniperrifle2004
64081a12bb Introduce a buffer for a full period
Writing to the pcm more often than necessary is
just a waste of resources and depending
on the pcm it can have quite an impact
on performance. The pcm expects full periods
anyway.
2020-06-14 06:15:45 +02:00
sniperrifle2004
aaef07e819 Introduce an appropriate period for the desired buffer 2020-06-14 06:15:25 +02:00
Sean McNamara
29fd5da971 Merge branch 'dev' of https://github.com/librespot-org/librespot into gst1.0-2020 2020-05-27 21:31:11 -04: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
Anton Voyl
0aa9bc60e3
Merge pull request #452 from kaymes/improved_events
Add more data to player events and fire more of them
2020-05-11 08:57:18 +02:00
Sean McNamara
5d57ac773b Fix PR feedback 2020-05-10 16:26:01 -04:00
ashthespy
902440925d Handle unplayable tracks during prefetch 2020-05-10 14:31:43 +02:00
ashthespy
b63199743a Skip unplayable tracks instead of stopping 2020-05-09 13:59:28 +02:00
Sean McNamara
0e6beaf8c7 Merge https://github.com/librespot-org/librespot into gst1.0-2020 2020-05-07 13:12:39 -04:00
kaymes
9fe82ef781
Enable pulseaudio device names (#450)
Fixes #207
2020-04-25 13:27:21 +02:00
Sean McNamara
e7093cb0bc gstreamer-backend: rustfmt. 2020-04-06 23:54:05 -04:00
Sean McNamara
1e9a52bd6e Fix auto disposal of pipeline that needs to stay in struct 2020-04-06 23:34:20 -04:00
Sean McNamara
f192bd1079 gstreamer-1.0 backend: Version updates and squelch warnings 2020-04-06 23:29:29 -04:00
Sean McNamara
a55b226716 Merge https://github.com/librespot-org/librespot into gst1.0-2020 2020-04-06 21:06:26 -04:00
Konstantin Seiler
223b8d611e Roll back the meta data processing. 2020-03-20 17:31:18 +11:00
Konstantin Seiler
c9117542eb Refactor TrackMetaData in the player and add the metadata to the player events.
Fire more events in the --onevent script and set more variables.
2020-03-12 23:01:45 +11:00
Konstantin Seiler
d4d55254b0 address merge conflict 2020-03-10 23:53:58 +11:00
Konstantin Seiler
667e559340 Merge remote-tracking branch 'origin/dev' into blocking_sink_events 2020-03-10 23:52:20 +11:00
Konstantin Seiler
6f28b0486f Emit blocking sink events 2020-03-10 23:26:01 +11:00
Ash
ef27b4bce3
Disable gapless playback via runtime flag (#444)
* Enable gapless playback via runtime flag

* Set gapless playback as default, use `--disable-gapless` to turn it off

* Ensure sink restarts b/w tracks when gapless is disabled
2020-03-10 13:00:57 +01:00
Sean McNamara
ac0df7e11f Merge https://github.com/librespot-org/librespot into gst1.0-2020 2020-02-14 19:01:42 -05:00
Konstantin Seiler
873f86bb96 Cancel preload requests to free bandwidth when repeating the same track. 2020-02-07 23:54:09 +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
ead794f4fd Correct notifications when loading the same track again. 2020-02-03 14:31:15 +11:00
Konstantin Seiler
499824a6ba rust fmt 2020-02-03 11:57:09 +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
349e182d41 Smarter handling of preloading and loading of tracks that are already loaded. 2020-02-03 09:15:48 +11:00
Konstantin Seiler
8756341201 Remove debug message 2020-02-02 11:12:17 +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
6daa2acd0a Update version numbers to 0.1.1 2020-01-30 02:39:41 +01: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
e9c3357e41 Run cargo fmt 2020-01-24 02:26:16 +01:00
misuzu
b8617f54a9 Added subprocess audio backend 2020-01-24 02:35:48 +02:00
Sasha Hilton
cdcb919c08
Merge branch 'dev' into connection-lost-crash 2020-01-24 01:02:40 +01:00
Konstantin Seiler
04b52d7878 Have player handle Mercury errors while loading tracks. 2020-01-23 01:15:30 +11:00
marcelbuesing
c9147d31ab
Turn child crates into rust 2018 edition 2020-01-17 20:54:05 +01: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
Sean McNamara
d30ffcd1c0 Mostly fix play/pause/stop behavior. Pause is latent. 2019-12-25 17:51:22 -05:00
Sean McNamara
664c76b201 Fix playback on track change. Pause/resume is still weird. 2019-12-25 16:36:30 -05:00
Sean McNamara
ed04c049cc Working proof of concept with up to date gstreamer bindings and Rust 2018. 2019-12-25 12:19:48 -05:00
Sean McNamara
6707389732 Forward port plietar's WIP gstreamer backend. 2019-12-25 06:19:12 -05:00
Konstantin Seiler
d2d6df0e24 Run cargo fmt for my code. 2019-11-11 18:22:41 +11:00
Konstantin Seiler
e75021b213 Merge remote-tracking branch 'origin/dev' into dynamic-blocks-kdev 2019-11-08 09:23:30 +11:00
Konstantin Seiler
6422dcef78 Refine file downloading heuristics to use data rates and ping times everywhere. 2019-11-08 00:02:53 +11:00
Sasha Hilton
4e1bf7a0db Add version numbers for all librespot crates 2019-11-06 16:59:40 +01:00