Commit graph

1493 commits

Author SHA1 Message Date
JasonLG1979
c006a23644 Improve --device ? functionality for the alsa backend
This makes `--device ?` only show compatible devices (ones that support 2 ch 44.1 Interleaved) and it shows what `librespot` format(s) they support.

This should be more useful to users as the info maps directly to `librespot`'s `--device` and `--format` options.
2021-11-20 13:51:24 -06:00
Roderick van Domburg
e064f27c13
Merge pull request #880 from JasonLG1979/fix_index_out_bounds_spirc
Guard against tracks_len being zero
2021-11-19 21:52:39 +01:00
JasonLG1979
3016d6fbdb Guard against tracks_len being zero
to prevent 'index out of bounds: the len is 0 but the index is 0'
https://github.com/librespot-org/librespot/issues/226#issuecomment-971642037
2021-11-17 21:15:35 -06:00
Roderick van Domburg
85d6049ee7
Merge pull request #875 from JasonLG1979/refactor-main
Refactor main.rs
2021-11-17 22:44:22 +01:00
JasonLG1979
0e9fdbe6b4 Refactor main.rs
* Don't panic when parsing options. Instead list valid values and exit.
* Get rid of needless .expect in playback/src/audio_backend/mod.rs.
* Enforce reasonable ranges for option values (breaking).
* Don't evaluate options that would otherwise have no effect.
* Add pub const MIXERS to mixer/mod.rs very similar to the audio_backend's implementation. (non-breaking though)
* Use different option descriptions and error messages based on what backends are enabled at build time.
* Add a -q, --quiet option that changed the logging level to warn.
* Add a short name for every flag and option.
* Note removed options.
* Other misc cleanups.
2021-11-17 15:31:16 -06:00
Roderick van Domburg
45b19efd03
Merge pull request #874 from JasonLG1979/kill-the-undead
Prevent librespot from becoming a zombie
2021-10-30 20:27:42 +02:00
JasonLG1979
24e4d2b636 Prevent librespot from becoming a zombie
Prevent hang when discovery is disabled and there are no credentials or when bad credentials are given.
2021-10-28 09:13:46 -05:00
Roderick van Domburg
5049cd76e0
Merge pull request #872 from JasonLG1979/add-disable-credential-cache-flag
Add disable credential cache flag
2021-10-28 15:18:34 +02:00
JasonLG1979
9e017119bb Address review change request 2021-10-27 14:47:33 -05:00
Jason Gray
fefd432773
Merge branch 'librespot-org:dev' into add-disable-credential-cache-flag 2021-10-27 14:42:24 -05:00
Roderick van Domburg
bd39a362f7
Merge pull request #873 from jannuary/patch-1
README: Mention Spot
2021-10-27 20:50:46 +02:00
JasonLG1979
e543ef72ed Clean up cache logic in main 2021-10-27 10:14:40 -05:00
Noëlle
81e7c61c17
README: Mention Spot 2021-10-27 20:03:14 +07:00
JasonLG1979
9152ca8159 Update changelog 2021-10-26 22:20:24 -05:00
JasonLG1979
52bd212e43 Add disable credential cache flag
As mentioned in https://github.com/librespot-org/librespot/discussions/870, this allows someone who would otherwise like to take advantage of audio file and volume caching to disable credential caching.
2021-10-26 22:06:52 -05:00
Roderick van Domburg
b4784ebf9c
Merge pull request #871 from roderickvd/update-crates
Update crates
2021-10-26 21:40:58 +02:00
Roderick van Domburg
72b2c01b3a
Update crates 2021-10-26 20:10:39 +02:00
Roderick van Domburg
c1ac4cbb3a
Update Cargo.lock for 0.3.1 2021-10-24 20:24:28 +02:00
Roderick van Domburg
0e6b1ba9dc
Update version numbers to 0.3.1 2021-10-24 20:12:33 +02:00
Roderick van Domburg
9d19841c0f
Prepare for 0.3.1 release 2021-10-24 20:07:11 +02:00
Roderick van Domburg
f21c25a257
Merge pull request #869 from JasonLG1979/clarify-arg-descriptions
Improve command line option description grammar
2021-10-24 19:28:08 +02:00
JasonLG1979
a5c7580d4f Grammar Police the arg descriptions 2021-10-22 17:41:59 -05:00
Roderick van Domburg
6d127b46c6
Merge pull request #868 from roderickvd/smallrng-dither
Change hand-picked RNGs back to `SmallRng`
2021-10-21 21:45:13 +02:00
Roderick van Domburg
ff3648434b
Change hand-picked RNGs back to SmallRng
While `Xoshiro256+` is faster on 64-bit, it has low linear complexity in the
lower three bits, which *are* used when generating dither.

Also, while `Xoshiro128StarStar` access one less variable from the heap,
multiplication is generally slower than addition in hardware.
2021-10-21 19:31:58 +02:00
Roderick van Domburg
4c89a721ee
Improve dithering CPU usage (#866) 2021-10-19 22:33:04 +02:00
Roderick van Domburg
b125659e12
Merge pull request #865 from kingosticks/feature/log-build-profile
Add build profile to displayed version info
2021-10-14 20:53:04 +02:00
Nick Steel
3b51a5dc23 Include build profile in the displayed version information
Example output from -V for a debug build is:
librespot 0.3.0 832889b (Built on 2021-10-14, Build ID: ANJrycbG, Profile: debug)
2021-10-14 14:38:09 +01:00
Roderick van Domburg
d99581aeb7
Tag 0.3.0 and document #859 2021-10-13 20:37:46 +02:00
Roderick van Domburg
8ab5a94451
Merge pull request #859 from roderickvd/fix-album-play
Fix behavior after last track of an album/playlist

Partly fixes: #434
2021-10-13 20:33:57 +02:00
Sasha Hilton
afbdd11f45 Update Cargo.lock for 0.3.0 2021-10-13 15:30:13 +01:00
Sasha Hilton
6a3377402a Update version numbers to 0.3.0 2021-10-13 15:10:18 +01:00
Roderick van Domburg
2c9564570c
Merge pull request #860 from JasonLG1979/simplify-buffer-resizing
Simplify Alsa buffer resizing
2021-10-08 15:49:05 +02:00
JasonLG1979
9ef53f5ffb simplify buffer resizing
This way is less verbose, much more simple and less brittle.
2021-10-07 08:44:29 -05:00
Roderick van Domburg
0f5d610b4b
Revert 10 track history window 2021-10-06 21:21:03 +02:00
Roderick van Domburg
289b4f9bcc
Fix behavior after last track of an album/playlist
* When autoplay is disabled, then loop back to the first track
   instead of 10 tracks back. Continue or stop playing depending
   on the state of the repeat button.

 * When autoplay is enabled, then extend the playlist *after* the
   last track. #844 broke this such that the last track of an album
   or playlist was never played.

Fixes: #434
2021-10-05 22:08:26 +02:00
Roderick van Domburg
095536f100
Prepare for 0.3.0 release 2021-10-04 21:44:03 +02:00
Jason Gray
4c1b2278ab
Fix clippy comparison chain warning (#857) 2021-10-04 20:59:18 +02:00
Jason Gray
8d70fd910e
Implement common SinkError and SinkResult (#820)
* Make error messages more consistent and concise.

* `impl From<AlsaError> for io::Error` so `AlsaErrors` can be thrown to player as `io::Errors`. This little bit of boilerplate goes a long way to simplifying things further down in the code. And will make any needed future changes easier.

* Bonus: handle ALSA backend buffer sizing a little better.
2021-09-27 20:46:26 +02:00
Nick Botticelli
7ed8fc01ee Add more platforms to keyexchange.proto 2021-09-21 02:13:32 -07:00
Roderick van Domburg
57937a10d9
Merge pull request #849 from roderickvd/fix-rust-beta-warnings
Fix Rust beta compiler warnings
2021-09-20 20:33:20 +02:00
Roderick van Domburg
de177f1260
Update num-bigint 2021-09-20 20:12:57 +02:00
Jason Gray
89577d1fc1
Improve player (#823)
* Improve error handling
* Harmonize `Seek`: Make the decoders and player use the same math for converting between samples and milliseconds
* Reduce duplicate calls: Make decoder seek in PCM, not ms
* Simplify decoder errors with `thiserror`
2021-09-20 19:29:12 +02:00
Roderick van Domburg
949ca4fded
Add and default to "auto" normalisation type (#844) 2021-09-20 19:22:02 +02:00
Matias
7401d6a96e
Don't panic on local files (#846)
Skip tracks whose Spotify ID can't be found
2021-09-20 19:20:44 +02:00
Roderick van Domburg
e27992a754
Merge pull request #843 from roderickvd/fix-documentation-typos
Fix documentation typos
2021-09-03 21:48:54 +02:00
Roderick van Domburg
30717c3db7
Merge pull request #842 from roderickvd/2db-normalisation-threshold
Update default normalisation threshold
2021-09-03 21:48:42 +02:00
Roderick van Domburg
9cb98e9e21
Fix typos and define what's "breaking" 2021-09-02 22:41:12 +02:00
Roderick van Domburg
2fcd24164d
Merge pull request #840 from roderickvd/attenuate-last
Attenuate after normalisation
2021-09-02 22:09:30 +02:00
Roderick van Domburg
ec54ae6f2e
Merge pull request #841 from roderickvd/fix-clippy-warnings
Fix clippy warnings
2021-09-02 22:07:47 +02:00
Roderick van Domburg
fe644bc0d7
Update default normalisation threshold 2021-09-02 22:04:30 +02:00