Commit graph

53 commits

Author SHA1 Message Date
Paul Lietar
bf60f6e7ab Create new librespot-core crate 2017-08-03 19:58:44 +01:00
Paul Lietar
d59f3eff81 Remove AudioFileManager and MetadataManager since they are stateless. 2017-08-03 19:37:21 +01:00
Paul Lietar
72070b6ce0 Allow device type to be chosen.
Fix #187
2017-08-03 19:31:15 +01:00
Paul Lietar
7ae919b1f7 Skip song if it fails to load 2017-04-29 15:18:16 +01:00
Paul Lietar
294a7821d6 Add simple playback example. 2017-04-28 23:24:55 +01:00
Paul Lietar
d940ed161a Allow switching user accounts at runtime
Fixes #130
2017-02-22 04:18:27 +00:00
Paul Lietar
9873eaf2a0 Better handling of shutdown 2017-01-31 08:21:30 +00:00
Paul Lietar
d2161ff75f Use EasyBuf instead of copying buffers 2017-01-29 17:54:32 +00:00
Paul Lietar
bbc438d9b2 Clippy run 2017-01-29 17:20:12 +00:00
Paul Lietar
17482c236a Stop caching audio keys, reenable audio file cache 2017-01-29 15:36:39 +00:00
Paul Lietar
bcedfefaa9 Move spirc to tokio 2017-01-20 13:28:13 +00:00
Paul Lietar
d62a154786 Move session to tokio over fully 2017-01-20 02:40:07 +00:00
Paul Lietar
379c90c0b2 Move audio_file and channels to tokio 2017-01-20 01:59:47 +00:00
Paul Lietar
05118b40f8 Move MetadataManager to use tokio 2017-01-20 01:59:47 +00:00
Paul Lietar
bcbd7afb1a Change mercury to use tokio 2017-01-20 01:59:47 +00:00
Paul Lietar
855a7e87a7 Move AudioKeyManager to tokio 2017-01-20 01:59:47 +00:00
Paul Lietar
d27063d5da Create event loop in main 2017-01-20 01:59:46 +00:00
Paul Lietar
2a0ccc0d1d Move device id into config 2017-01-20 01:59:46 +00:00
Paul Lietar
9de55bb8cd Move ap resolve and discovery to tokio. 2017-01-20 01:59:46 +00:00
Paul Lietar
9d5e2e9fed Rewrite connection layer to use tokio 2017-01-20 01:59:46 +00:00
Paul Lietar
aa499e0189 Get rid of main_helper 2017-01-10 16:31:12 +00:00
Simon Persson
f11310581c Add standard traits to Bitrate. 2017-01-06 17:09:57 +01:00
Simon Persson
28aed0d18b Give Bitrate copy semantics.
For such a simple type, which will likely never change
to be un-copyable, it's nicer to have copy semantics.
2017-01-06 12:56:34 +01:00
Paul Lietar
7fd8503f45 Use the fallback AP when apresolve fails.
This matches the desktop client’s behaviour.

Fixes #136
2016-12-30 12:02:00 +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
Paul Lietar
4cca541339 Remove the need for a application key. 2016-07-06 08:37:41 +01:00
Paul Lietar
4d277e5b75 stream: refactor into a reactor pattern. 2016-05-09 12:22:51 +01:00
Paul Lietar
a36325a46a Add a main helper to make it easier to use librespot. 2016-04-24 13:29:26 +01:00
Marcus Thiesen
b0ea636179 Replace some more println with log 2016-04-23 13:35:00 +02: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
4d712efb48 Support downloading Album Covers. 2016-03-15 00:14:30 +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
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
327bb8477e Move Session::connect to authentication.rs 2016-01-26 23:02:17 +00:00
Paul Lietar
7a1db5f5a9 Encapsulate the session data and configuration. 2016-01-26 22:34:57 +00: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
Jaime Rodriguez
e321379501 Use canonical username when subscribing to spirc.
Uses canonical username that APWelcome message
contains once authenticated instead of username 
provided by user. SpircManager now accesses it via
its Session field. 

Fixes #15
2015-12-30 20:11:46 +01:00
Paul Lietar
654a403459 Improve handling of missing audio keys by failing the future rather than crashing. 2015-12-29 23:12:02 +01:00
Paul Lietar
8c2aa28d43 Use the correct country when checking for track availability. 2015-12-29 13:13:26 +01:00
Paul Lietar
267ccbe65e Fix build on latest rust. 2015-09-01 13:20:37 +02:00
Paul Lietar
e452abce43 Cache audio files to disk. 2015-07-07 22:40:31 +01:00
Paul Lietar
9ae452e22d Keep audio files cached in ram. 2015-07-03 02:23: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
df11960946 spirc: Don’t hardcode stuff 2015-07-02 01:27:19 +02:00
Paul Lietar
45491925de Answer to basic Spirc requests. 2015-07-02 00:40:38 +02:00