Konstantin Seiler
719943aec9
Don't panic if spirc terminates prematurely.
...
Instead attempt to reconnect and wait for new client connections.
2020-01-23 01:24:59 +11:00
Konstantin Seiler
b6c676ad60
Prevent librespot from panicking if server connection is lost.
2020-01-22 21:55:45 +11:00
marcelbuesing
38d82f2dc2
Rerun rustfmt on full codebase
2020-01-17 18:47:30 +01:00
ashthespy
d26590afc5
Update to Rust 2018
...
- Fix deprecated Error::cause warnings and missing dyn
- Reset max_width
- Add rustfmt to Travis
- Run rustfmt on full codebase
with `cargo fmt --all`
- Add rustfmt to Travis
- Complete migration to edition 2018
- Replace try! shorthand
- Use explicit `dyn Trait`
2020-01-17 18:11:52 +01:00
marcelbuesing
be2ad9059a
Migrate to rust 2018 edition
2020-01-17 15:54:42 +01:00
ashthespy
b3c9744b29
Add a autoplay
option flag
2019-11-05 20:34:43 +01:00
Ash
25107ee796
Revert "Fix play.rs example ( #379 )"
...
This reverts commit 2ff71abb8e
.
2019-10-09 18:05:08 +02:00
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
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
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
47c6d60b12
Merge branch 'env-password' of https://github.com/herrernst/librespot into master
2016-01-02 02:53:20 +01:00
Paul Lietar
e35da9c90a
Use discovery if username and password are not provided.
2016-01-02 02:30:03 +01:00
Paul Lietar
bead9daf78
Add zeroconf based authentication.
2016-01-02 00:27:08 +01:00
herrernst
7f8e85f90b
try reading password from env variable first, so it doesn't appear in process listing
2015-12-31 11:55:56 +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
10cc523cfd
Update to rust nightly
2015-10-20 11:22:08 +01:00
Paul Lietar
267ccbe65e
Fix build on latest rust.
2015-09-01 13:20:37 +02:00
Simon Persson
ef1c86df18
Make command line argument parsing more robust.
2015-07-20 16:31:59 +00:00
Paul Lietar
1264394838
Add a SpircDelegate abstraction.
2015-07-09 21:08:14 +01:00
Paul Lietar
cdd939e88e
Clean up main.rs
2015-07-09 20:08:56 +01:00
Tor Arne Vestbø
22e367214e
Move SPIRC into librespot so it can be re-used by other applications
2015-07-08 23:01:15 +02:00
Tor Arne Vestbø
cbd414853f
Move librespot into lib.rs and let main.rs be the test binary
2015-07-08 23:01:14 +02:00
Paul Lietar
e452abce43
Cache audio files to disk.
2015-07-07 22:40:31 +01: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
c1ce87dbbd
spirc: Keep track of player status
2015-07-02 13:54:34 +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
7897070bb7
Add initial Spirc support.
2015-07-01 22:21:22 +02:00
Paul Lietar
addc1fce22
Update protocol files.
2015-07-01 20:18:00 +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