Commit graph

122 commits

Author SHA1 Message Date
Paul Lietar
b25585a41b Use a pure rust mDNS responder instead of relying on Avahi / dns-sd.
Fixes #33, #70
2016-07-06 02:36:01 +01:00
Paul Lietar
decce02373 Be a bit less verbose 2016-07-06 02:29:50 +01:00
Paul Lietar
24471eef9b Use serde for json serialization. 2016-07-06 02:29:38 +01:00
Paul Lietar
e688914082 Fix some unused import warnings. 2016-07-06 01:36:46 +01:00
Paul Lietar
4d277e5b75 stream: refactor into a reactor pattern. 2016-05-09 12:22:51 +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
c76b7b472f Workaround weird parsing bug 2016-05-04 09:56:23 +01:00
Paul Lietar
dde613e0a0 player: skip unavailable tracks rather than crash
Fixes #74
2016-05-04 09:11:27 +01:00
Paul Lietar
a42752af2f Update dependencies. 2016-04-24 15:40:05 +01:00
Paul Lietar
f50fca02ae player: Add seek_at command for precise seeking 2016-04-24 14:48:15 +01:00
Paul Lietar
8c0a37357d Fix static app key with syntex 2016-04-24 14:47:52 +01:00
Paul Lietar
a36325a46a Add a main helper to make it easier to use librespot. 2016-04-24 13:29:26 +01:00
Paul Lietar
edb8a6a766 Cleanup authentication logic 2016-04-24 12:15:53 +01:00
Paul Lietar
c47a1b7ec9 Remove support for password in environment variable.
This is less useful now that saved credentials work.
2016-04-24 09:56:05 +01:00
Paul Lietar
f8cd09e5be Use is_err rather than pattern matching. 2016-04-24 09:54:56 +01:00
Paul Lietar
8bbed4c162 Remove unused eprintln macro and hex dump function. 2016-04-24 09:50:55 +01:00
Marcus Thiesen
b0ea636179 Replace some more println with log 2016-04-23 13:35:00 +02: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
Marcus Thiesen
11e62d56d8 Use usize for pointer size 2016-03-21 10:13:28 +01:00
Marcus Thiesen
5ca2c35dbc Pulseaudio backend 2016-03-21 09:39:58 +01:00
Paul Lietar
968a39a131 Make audio backend configurable at run time. 2016-03-20 16:16:20 +00:00
Paul Lietar
e6dd77fc02 Add missing file from previous commit. 2016-03-20 14:00:59 +00:00
Paul Lietar
01fa099cda Reenable Facebook authentication. 2016-03-20 13:55:20 +00:00
Paul Lietar
b051bfcc5b Disable Facebook authentication for now.
It got broken when moving to the authentication subdirectory.
2016-03-17 03:45:57 +00:00
Paul Lietar
230c891df0 Print librespot version on startup. 2016-03-17 03:31:57 +00:00
Paul Lietar
0770f6ce61 Move authentication to a different directory, and make discover use hyper. 2016-03-17 03:28:28 +00:00
Paul Lietar
85903a0da5 Split cache handling to separate module.
Use it for audio keys and album covers as well.
2016-03-16 04:20:42 +00:00
Paul Lietar
a7559787df facebook: Use a random, OS-assigned port instead of hardcoded 8001. 2016-03-16 00:38:05 +00:00
Paul Lietar
4b4bc2f4e1 Add Facebook based login. 2016-03-16 00:05:05 +00:00
Paul Lietar
4d712efb48 Support downloading Album Covers. 2016-03-15 00:14:30 +00:00
Paul Lietar
aa1d466e92 Support building with the application key statically included in the binary. 2016-03-14 23:41:51 +00:00
Paul Lietar
a5453de572 Make cache directory optional.
If the -c argument is omitted, librespot will run without a cache, and
download tracks overtime they are played.
2016-03-14 22:57:00 +00:00
Yugo Amaryl
5f5356333d Fix build by removing extra parenthesis 2016-03-14 06:00:06 +00:00
Paul Lietar
0973469120 Forgot to add some files in previous commit. 2016-03-14 00:50:42 +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
4b73f83c5e Save reusable credentials to disk.
After the first login, credentials may be omitted from the command line
and the stored ones will be used instead.
2016-03-13 22:35:09 +00:00
Paul Lietar
39af43728a Refactor authentication to separate protocol and token generation. 2016-03-13 20:45:31 +00:00
Paul Lietar
25bd38fd13 Resolve access point when connecting and pick a random one.
Spotify’s apresolve will return the best AP based on the user’s location.
2016-03-13 20:03:09 +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
d27c4ca752 Support building with rust stable, using syntex. 2016-03-07 18:22:41 +00:00
Paul Lietar
de357e63c9 player: Update the position on pause/play events. 2016-02-24 00:36:19 +00:00
Paul Lietar
c3c258dfaf Bump protobuf-macros version and use the simpler string literal syntax 2016-02-22 05:48:58 +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
95d1dfd774 Make recipient of SpircManager methods non-mut.
SpircManager has interior mutability using a Mutex. There’s no need to
make it’s methods take a mut reference.
2016-02-19 00:03:08 +00:00
Simon Persson
3ccb2e2a10 Clean up before merging. 2016-02-19 00:02:41 +01:00
Simon Persson
c98ff9bd54 Make SpricManager cloneable to simplify for clients. 2016-02-17 20:53:25 +01:00
Simon Persson
906241b92e Export the current queue. 2016-02-17 20:53:25 +01:00
Simon Persson
8e0325c297 Add function for sending load comand. 2016-02-17 20:53:25 +01:00