Commit graph

45 commits

Author SHA1 Message Date
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
Paul Lietar
7ffe996652 Lots of stuff 2015-06-23 15:38:29 +01:00
Paul Liétar
1ad62e6f18 First working version of protocol handshake.
Key exchange and authentication is functional.
Protocol definition has been moved to separate crate to speed up build time.
Various cleanups. Take login info from command line, rather than hardcoded.
2015-05-09 11:16:43 +01:00
Paul Liétar
a993b60ffa Initial commit. 2015-04-25 21:32:07 +01:00