Daniel Romero
2c187eb3ae
Avoid copying the data array in the player
2017-02-03 13:22:49 +01:00
Daniel Romero
da537b57f4
AudioFilter: Modify fn modify_stream(&self, data: &mut [i16]);
2017-02-03 13:22:49 +01:00
Daniel Romero
e547a0c3da
Changes code review
2017-02-03 13:22:49 +01:00
Daniel Romero
636de3fe71
Use stream_editor in player
2017-02-03 13:22:49 +01:00
Daniel Romero
59398b3cee
Remove mixer from Player and add it to SpircManager
2017-02-03 13:22:49 +01:00
Daniel Romero
347bf05dbe
Refactored to have apply_volume in a specifix mixer
2017-02-03 13:22:49 +01:00
Simon Persson
b828e4d528
Improve log strings and never log to stdout.
2017-01-06 15:21:44 +01:00
Paul Lietar
7ba3d766c0
Reduce log verbosity by default.
...
Fixes #141
2017-01-05 14:25:14 +01:00
Jörg Krause
64b8b5f91a
Don't panic on error InitialFileHeadersCorrupt
2016-12-31 12:56:09 +01:00
Jörg Krause
1d3c387fed
Add --on{start,stop} command line option
...
The --onstart and --onstop command line options can be used to run a
program when the audio playback is about to begin or has ended.
Note, that librespot needs executions rights to run the program.
Furthermore, the full path needs to be specified, e.g.
`/usr/bin/logger`. Executable scripts must begin with a shebang, e.g.
`#!/bin/sh`.
2016-09-08 20:52:21 +02:00
herrernst
ceb375f37e
close stream on stop
2016-08-03 21:48:25 +02:00
Paul Lietar
decce02373
Be a bit less verbose
2016-07-06 02:29:50 +01:00
Paul Lietar
ed14c3469b
track: Use a linear map to store files by format.
2016-05-04 10:03:46 +01:00
Paul Lietar
dde613e0a0
player: skip unavailable tracks rather than crash
...
Fixes #74
2016-05-04 09:11:27 +01:00
Paul Lietar
f50fca02ae
player: Add seek_at command for precise seeking
2016-04-24 14:48:15 +01:00
Tor Arne Vestbø
e08ed545ee
Use log crate instead of println
...
Allows more granular control over what gets logged to the console.
2016-04-23 13:35:00 +02:00
Paul Lietar
b8b0f9c36e
Fix seconds to milliseconds conversion in vorbis_time_tell_ms.
2016-04-23 00:09:19 +01:00
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