Paul Lietar
968a39a131
Make audio backend configurable at run time.
2016-03-20 16:16:20 +00:00
Paul Lietar
9274a6bfb3
Refactor audio output to make it more modular.
...
This makes the player less hard coded to portaudio, and easier to
experiment with different backends.
2016-03-14 00:49:21 +00:00
Paul Lietar
60db12ee9e
Add missing semicolon.
...
Somehow syntex allows this, so it was missed in the previous commit.
2016-03-13 15:23:56 +00:00
Paul Lietar
ac5b34927f
Support using tremor instead of libvorbis for audio decoding.
...
Tremor is a fixed point / integer only Vorbis decoder.
This should improve playback performances on embedded platforms lacking
hardware floating point support.
2016-03-13 15:15:15 +00:00
Paul Lietar
de357e63c9
player: Update the position on pause/play events.
2016-02-24 00:36:19 +00:00
Paul Lietar
c700315b30
Fix a deadlock between SpircManager and Player.
...
The player was invoking its observers with the state locked, and the
SpircManager’s registered observer would try to lock it again.
Instead, the observers are invoked with a cloned state, and the SpircManager
avoids locking the state again.
2016-02-22 05:41:37 +00:00
Paul Lietar
526c54702b
Set the default volume to 100%, and add a fast path to volume control.
2016-02-05 20:54:47 +00:00
Paul Lietar
7a1db5f5a9
Encapsulate the session data and configuration.
2016-01-26 22:34:57 +00:00
Paul Lietar
8fed885595
Reorganize the spirc/player interaction.
...
Updates are now sent through a callback mechanism rather than a channel.
2016-01-20 15:52:50 +00:00
Paul Lietar
463ce97661
Remove the SpircDelegate abstraction
2016-01-20 14:11:49 +00:00
Paul Lietar
303121032d
Store the volume as a u16
2016-01-20 13:55:36 +00:00
Erik
4310162b88
Fixed the multiple volume vars and the calculation is a bit simplified.
2016-01-15 01:12:08 +01:00
Erik
17a5bb122a
Added Volume in a fishy manner by modulating stream, could maybe be optimized.
2016-01-14 13:12:01 +01:00
Paul Lietar
fd6b805bfd
Fix some clippy warnings.
2016-01-02 16:48:44 +01:00
Paul Lietar
90eeed3f80
rustfmt
2016-01-02 16:20:35 +01:00
Paul Lietar
f8956166ea
Add option to specify bitrate.
2016-01-02 03:30:24 +01:00
Paul Lietar
bead9daf78
Add zeroconf based authentication.
2016-01-02 00:27:08 +01:00
Paul Lietar
22d586e473
Block player thread when nothing is playing.
2015-12-28 18:45:13 +01:00
Paul Lietar
17d4534260
Play an alternative track if selected one is not available.
2015-12-28 17:47:59 +01:00
Paul Lietar
5db141066a
Use eventual’s futures in metadata instead of rolling our own.
...
For now the object cache has been removed. It may be added back later.
2015-12-28 16:53:54 +01:00
Lawrence Jones
85c1925f8d
Fixes compilation errors
2015-12-18 19:59:10 +00:00
Paul Lietar
267ccbe65e
Fix build on latest rust.
2015-09-01 13:20:37 +02:00
Paul Lietar
1d76658fdf
Support playing multiple tracks in a row
2015-07-09 23:09:40 +01:00
Paul Lietar
506f3e624e
Don’t crash on end of track.
2015-07-09 22:35:24 +01:00
Paul Lietar
94503e351b
Remove busy waiting in SpircManager.
2015-07-09 22:04:19 +01:00
Paul Lietar
1264394838
Add a SpircDelegate abstraction.
2015-07-09 21:08:14 +01:00
Paul Lietar
9ae452e22d
Keep audio files cached in ram.
2015-07-03 02:23:49 +02:00
Paul Lietar
4fd0b37e2b
Initial Spotify Connect receiver.
...
Supports basic play/pause. Only a single track for now.
2015-07-02 21:42:49 +02:00
Paul Lietar
2a2f227bef
Refactor the whole architecture.
...
Use less threads, makes it much simpler to reason about.
2015-07-02 19:24:25 +02:00
Paul Lietar
caf78992fb
Merge AudioFile and AudioFileReader
2015-06-24 01:41:39 +01:00
Paul Lietar
4835d25370
add audio seeking support
2015-06-23 18:34:48 +01:00
Paul Lietar
7ffe996652
Lots of stuff
2015-06-23 15:38:29 +01:00