Commit graph

141 commits

Author SHA1 Message Date
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