Commit graph

49 commits

Author SHA1 Message Date
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
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
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
Will Stott
8ff1dc24bd Quick minimal hack to get latest rodio working. 2020-12-02 19:45:46 +00:00
Sasha Hilton
732bb1ce82 Merge branch 'dev' into gst1.0-2020 2020-07-25 02:52:21 +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
5d57ac773b Fix PR feedback 2020-05-10 16:26:01 -04: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
ac0df7e11f Merge https://github.com/librespot-org/librespot into gst1.0-2020 2020-02-14 19:01:42 -05:00
misuzu
b8617f54a9 Added subprocess audio backend 2020-01-24 02:35:48 +02: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
Sasha Hilton
6c4311fe72
Merge pull request #283 from matikij/sdl-backend
add SDL backend based on sdl2 crate
2019-04-12 05:43:52 +02:00
Mateusz Kijowski
18a6746ac0 Remove unnecessary comments, fix typo 2019-03-22 02:05:30 +01:00
Mateusz Kijowski
52c5b18825 add SDL backend based on sdl2 crate 2019-03-22 02:05:30 +01:00
ashthespy
8fd0caf583 Explicitly set start_threshold and pretty print devices 2019-03-22 00:00:58 +01:00
ashthespy
cc6c9b2dc4 More alsa stragglers 2019-03-22 00:00:58 +01:00
ashthespy
a80bf86a2b Clean up alsa stragglers and typos 2019-03-22 00:00:58 +01:00
ashthespy
99106c5ae3 Rework alsa hw and mixer parameters 2019-03-22 00:00:14 +01:00
ashthespy
08cfb1516d Switch to latest alsa-rs crate 2019-03-22 00:00:14 +01:00
ashthespy
a67048c3d7 Add initial support for alsamixer 2019-03-22 00:00:14 +01:00
Will Stott
99703a268f Warn when there's a Rodio failure accessing a default device formats. 2019-03-20 13:24:08 +00:00
Will Stott
5ceb4db9b8 Improve formatting and macro usage in devices list. 2019-03-20 13:24:08 +00:00
Will Stott
587aa9c711 Simple block of playback thread based on buffer size. 2019-03-20 13:24:07 +00:00
Will Stott
49fd48b42a Sink.play is not the opposite of Sink.stop in Rodio 2019-03-20 13:24:07 +00:00
Will Stott
2c2bfc52ac Cpal -> Rodio
Doesn't work that well.
2019-03-20 13:24:03 +00:00
Will Stott
1eb5b7d127 Turns out I don't have an appropriate output device. 2019-03-20 13:16:29 +00:00
Will Stott
ac9423d9d9 cpal backend builds. Panics building output stream on my system. 2019-03-20 13:16:29 +00:00
Will Stott
891298171c Initial untested VecDeque concept. 2019-03-20 13:16:29 +00: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
StopMotionCuber
21f1ccfb5a Fixed Jackaudio compiling (#222) 2018-05-15 20:33:58 +02:00
Johan Anderholm
612978908f Reformat according to new rustfmt rules 2018-03-24 08:45:43 +00:00
Thomas Bächler
0c18aa51ad playback: pulseaudio: Panic in write if data is empty 2018-03-20 14:14:44 +01:00
Sasha Hilton
237ef1e4f9 Format according to rustfmt 2018-02-26 02:50:41 +01:00
Sasha Hilton
1fb65354b0 Move audio backends into seperate crate 2018-02-09 02:05:50 +01:00