Commit graph

178 commits

Author SHA1 Message Date
Gilles Castel
2ff71abb8e Fix play.rs example (#379)
Fix `play.rs` example by renaming `core` to `librespot_core`
2019-10-09 10:44:20 +02:00
George Hahn
6e280b3c88 Upgrade dependencies 2019-07-17 22:08:15 -05:00
Tristan Stenner
37eca2fab3 Update env_logger to 0.6 2019-05-03 07:40:13 +02:00
ashthespy
cc6c9b2dc4 More alsa stragglers 2019-03-22 00:00:58 +01:00
ashthespy
0e1147077c Add run time option flags for AlsaMixer
Add `Cargo.lock` for Travis
2019-03-22 00:00:57 +01:00
ashthespy
a67048c3d7 Add initial support for alsamixer 2019-03-22 00:00:14 +01:00
Will Stott
b81bdca707 QDH: Instantiate audio backend immediately when using "--device ?". 2019-03-20 13:16:29 +00:00
Artyom Pavlov
391b9c69c4
Merge branch 'master' into master 2019-03-15 16:32:54 +00:00
Nick Steel
6a600596e8 main: exit librespot after the first ctrl+c if no currently active spirc session. 2019-03-13 18:47:56 +00:00
Artyom Pavlov
772591576a
Merge branch 'master' into master 2018-12-06 09:38:33 +00:00
William R. Fraser
9fa138a116 implement using tokio-process instead 2018-10-16 02:34:56 -07:00
William R. Fraser
eaac599ce3 reap the exit statuses from 'onevent' child processes 2018-10-16 00:24:33 -07:00
newpavlov
e4677027d2 replace rust-crypto's hashes, HMAC and PBKDF2 2018-07-23 16:41:39 +03:00
Harold
4fb3d5f271 Add ap-port option to specify preferred port 2018-07-03 13:09:22 +02:00
Brice
d40c0f50db Cache volume across restarts (#220)
* create Volume struct for use with Cache

* add "volume" file to Cache

* load cached volume on start, intial overrides cached overrides default

* amend volume_to_mixer function to cache the volume on every change

* pass cache to Spirc and SpircTask so volume_to_mixer has access

* rustfmt changes

* revert volume_to_mixer function and Spirc/SpircTask cache variable

* Volume implements Copy, pass by value instead of reference

* clamp volume to 100 if cached value exceeds limit

* convert Volume to u16 internally, use float and round to convert hex->dec

* convert initial_volume and ConnectConfig.volume to u16 as well

* add cache_volume function to SpircTask

* remove conversion to/from percentage on cached volume

* consolidate device.set_volume, mixer.set_volume, and caching

* streamline intial volume logic
2018-05-17 03:15:17 +02:00
Reinier Balt
deb240c02f reverse #212 since it does not address the real problem (#213) 2018-05-01 21:39:49 +02:00
Reinier Balt
6a4e9e8bec return from Main loop on Ctrl-C/shutdown 2018-04-30 14:22:45 +02:00
Johan Anderholm
3a14e9a6be Validate proxy urls better.
Use the url crate to handle proxies to make sure they conform to a
proper format.
2018-03-24 08:45:43 +00:00
Johan Anderholm
3bdc5e0073 Add support for http proxy
Currently only http proxy (no https) is supported.
2018-03-24 08:45:43 +00:00
Johan Anderholm
612978908f Reformat according to new rustfmt rules 2018-03-24 08:45:43 +00:00
thekr1s
d6b82cd732 revert file mode to original mode 2018-03-14 23:19:49 +01:00
thekr1s
b1f2a412ad fir rustfmt issues 2018-03-11 13:34:30 +01:00
thekr1s
b3966b0e08 Add optional linear volume contol 2018-03-11 11:27:28 +01:00
Sasha Hilton
237ef1e4f9 Format according to rustfmt 2018-02-26 02:50:41 +01:00
Sasha Hilton
084646e21b Use prompt for password in main.rs 2018-02-25 05:40:00 +01:00
Sasha Hilton
bde157fad7
Merge branch 'master' into events-on-prev-next 2018-02-24 20:16:28 +01:00
Sasha Hilton
eed2bb6938
Merge pull request #162 from librespot-org/normalisation
Add volume normalisation support
2018-02-24 18:54:03 +01:00
Anton Voyl
58ea1baa98 Issue 130 (#164)
* Core API: device_id

* Core API: u128
2018-02-24 16:34:04 +01:00
Sasha Hilton
f8db550e5e Add volume normalisation support 2018-02-23 20:08:20 +01:00
Simon Persson
93af49aadf Send player event messages over futures aware channel. 2018-02-20 23:12:29 +01:00
Simon Persson
2eb4aa61d3 Use single program on events, and pass events in envars. 2018-02-20 22:45:14 +01:00
Simon Persson
b0ee03112f First attempt at a better playback event system. 2018-02-16 00:16:38 +01:00
Sasha Hilton
17d39dffa9 Make backtrace var conditional 2018-02-13 16:46:10 +01:00
Sasha Hilton
67dabcdd8e Enable backtrace on all builds 2018-02-13 14:02:37 +01:00
Sasha Hilton
60996d108e Update device usage instructions 2018-02-13 02:35:59 +01:00
Sasha Hilton
90ae9d713d Fix conflicts from PR #143 2018-02-12 01:12:02 +01:00
awiouy
d900134114 connect: discovery and spirc 2018-02-11 23:55:41 +01:00
awiouy
191caca518 core API: move Bitrate and PlayerConfig from core to playback 2018-02-11 23:55:41 +01:00
Michael Herger
5ed4639cca Remove the -z as an alias for the --zeroconf-port parameter 2018-02-11 06:32:07 +01:00
Michael Herger
12487966b2 Somewhat uniform coding style might help myself to better understand Rust :-) 2018-02-11 06:32:07 +01:00
Sasha Hilton
1fb65354b0 Move audio backends into seperate crate 2018-02-09 02:05:50 +01:00
awiouy
e3516ebd9b Move discovery to its own module. 2018-02-08 04:03:53 +01:00
Colm
8be642de31
Merge pull request #110 from librespot-org/inital-volume-ifelse-cleanup
Initial volume ifelse cleanup
2018-01-30 23:38:36 +00:00
Sasha Hilton
fddcbbcd82 Tidied up Syntax 2018-01-31 00:05:54 +01:00
ComlOnline
618eceb740 lost iv - due to previous 2018-01-30 21:46:57 +00:00
ComlOnline
46de5a704b Thats what I get for copypasta 2018-01-30 21:30:37 +00:00
ComlOnline
863ea9c976 removed and optimised 2018-01-30 20:52:25 +00:00
Sasha Hilton
8e8bab03d5 Add zeroconf-port option 2018-01-30 21:38:54 +01:00
Thomas Bächler
d36017d6f0 Remove usage of deprecated tokio_core::io 2018-01-25 23:23:45 +01:00
Thomas Bächler
5237203899 Remove usage of deprecated BoxFuture, BoxStream and BoxSink 2018-01-25 23:23:45 +01:00
fossedihelm
de2b4cc8e3 added comments and edited README 2017-12-07 11:36:26 +01:00
fossedihelm
ac39da6c97 check if argument of initial-value is in the [0,100 range 2017-12-06 15:22:28 +01:00
fossedihelm
1dc99e3a15 check if argument of initial-value is a number 2017-12-06 14:47:46 +01:00
fossedihelm
8313da522b --initial-volume as parameter 2017-12-06 14:37:34 +01:00
Paul Lietar
bf60f6e7ab Create new librespot-core crate 2017-08-03 19:58:44 +01:00
Paul Lietar
72070b6ce0 Allow device type to be chosen.
Fix #187
2017-08-03 19:31:15 +01:00
Fabian Zaremba
910974e5e2 Change system_information_string according to request from Spotify (#218)
Spotify requested us to use a system_information_string that looks like
librespot_[short sha]_[random 8 characters build id]
2017-07-17 14:31:06 +02:00
michaelherger
67deb07250 Add --disable-audio-cache startup parameter (#204)
Disable caching of downloaded audio files at runtime. Comes in handy when running librespot on a small device with SD card or other small storage.
2017-06-30 07:43:11 +01:00
Paul Lietar
ded43122a2 Allow deprecated items.
Tokio has moved lots of stuff from tokio-core::io to tokio-io.
2017-04-29 12:56:15 +01:00
Paul Lietar
294a7821d6 Add simple playback example. 2017-04-28 23:24:55 +01:00
Paul Lietar
b8e4febb8e main: Fix cache setup 2017-02-22 14:28:09 +00:00
Paul Lietar
d940ed161a Allow switching user accounts at runtime
Fixes #130
2017-02-22 04:18:27 +00:00
Paul Lietar
2853e2230b Force shutdown on second ^C 2017-02-21 23:25:04 +00:00
Paul Lietar
2708aa4fef Merge remote-tracking branch 'origin/master' 2017-02-21 22:46:19 +00: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
6df2af0ac9 Select mixer dynamically 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
Paul Lietar
9873eaf2a0 Better handling of shutdown 2017-01-31 08:21:30 +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
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
aa499e0189 Get rid of main_helper 2017-01-10 16:31:12 +00:00
Simon Persson
560d4e1c4c Move get_credentials to authentication module. 2017-01-06 17:18:41 +01:00
Simon Persson
1f32efce83 Revert "Make main_helper useful with values not from getopts."
This reverts commit b4c7e8e057.
2017-01-06 17:06:14 +01:00
Simon Persson
b4c7e8e057 Make main_helper useful with values not from getopts.
Applications that gets these values from config file
shouldn't have to reinvent the wheel.
2017-01-06 12:50:44 +01:00
Paul Lietar
7ba3d766c0 Reduce log verbosity by default.
Fixes #141
2017-01-05 14:25:14 +01:00
Paul Lietar
baf2b65d7b Use rustls rather than openssl 2016-12-31 14:49:04 +01:00
Paul Lietar
8544faf75d Only use syntex on modules that need it.
Also updated dependencies.

Fixes #133 and #138
2016-12-31 12:51:44 +01:00
Paul Lietar
880a266625 Merge pull request #117 from joerg-krause/feature/onstart
Add --on{start,stop} command line option
2016-11-19 22:14:05 +00:00
Jörg Krause
c1e570f48d Say goodbye when terminating
When librespot is terminated while a session is active it will now send
a goodbye message, so that the Spotify client unregisters the device
from its list.

Closes: #114
2016-09-20 21:00:01 +02: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
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
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
968a39a131 Make audio backend configurable at run time. 2016-03-20 16:16:20 +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
4b4bc2f4e1 Add Facebook based login. 2016-03-16 00:05:05 +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
Paul Lietar
0973469120 Forgot to add some files in previous commit. 2016-03-14 00:50:42 +00:00