Commit graph

1774 commits

Author SHA1 Message Date
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
Roderick van Domburg 7a730f30ec
Merge pull request #851 from nick-botticelli/google-signin-credentials
Add Google sign in credential to protobufs
2021-09-21 19:46:27 +02:00
Roderick van Domburg f3ab163a0c
Merge pull request #852 from nick-botticelli/keyexchange-platforms
Add more platforms to keyexchange.proto
2021-09-21 19:45:21 +02:00
Nick Botticelli 7ed8fc01ee Add more platforms to keyexchange.proto 2021-09-21 02:13:32 -07:00
Nick Botticelli 69c2ad1387 Add Google sign in credential to protobufs 2021-09-21 01:24:04 -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
Roderick van Domburg b016b69772
Fix clippy warnings 2021-09-01 21:25:32 +02:00
Roderick van Domburg d8e35bf0c4
Remove clamping of float samples 2021-09-01 20:55:28 +02:00
Roderick van Domburg 7da4d0e473
Attenuate after normalisation 2021-09-01 20:54:47 +02:00
Roderick van Domburg 1540636ccc
Merge pull request #821 from roderickvd/fix-alsa-mixer
Fix Alsa mixer and rename options
2021-08-31 20:05:09 +02:00
Roderick van Domburg c67e268dc8
Improve Alsa mixer command-line options 2021-08-26 22:35:45 +02:00
Roderick van Domburg 7f6386a736
Merge pull request #837 from sigaloid/dev
Update dependencies
2021-08-26 21:07:08 +02:00
Roderick van Domburg c2c1b5af48
Merge pull request #822 from roderickvd/update-documentation
Update documentation
2021-08-26 20:57:54 +02:00
sigaloid efd4a02896 Cargo update 2021-08-20 16:13:39 -04:00
Roderick van Domburg bd350c5aa0
Remove non-working Facebook authentication 2021-07-09 22:30:49 +02:00
Roderick van Domburg 43a8b91a3d
Revert name to softvol 2021-07-09 22:17:29 +02:00
Roderick van Domburg 2541f123bc
Update documentation 2021-07-09 21:12:07 +02:00
Roderick van Domburg 4c00b19c29
Fix Alsa mixer 2021-07-09 20:12:44 +02:00
Jason Gray 68bec41e08
Improve Alsa backend buffer (#811)
* Reuse the buffer for the life of the Alsa sink
* Don't depend on capacity being exact when sizing the buffer
* Always give the PCM a period's worth of audio even when draining the buffer
* Refactoring and code cleanup
2021-07-06 08:37:29 +02:00
Roderick van Domburg b519a4a47d
Update crates (#817) 2021-06-30 21:39:55 +02:00
Jason Gray 9ff33980d6
Better errors in PulseAudio backend (#801)
* More meaningful error messages
* Use F32 if a user requests F64 (F64 is not supported by PulseAudio)
* Move all code that can fail to `start` where errors can be returned to prevent panics
* Use drain in `stop`
2021-06-30 21:14:23 +02:00
Reinier Balt 751ccf63bb
Make convert and decoder public (#814) 2021-06-30 09:54:02 +02:00
Roderick van Domburg f99f336a6a
Merge pull request #816 from roderickvd/new-api-client
Lay groundwork for new Spotify API client
2021-06-28 22:08:50 +02:00
Roderick van Domburg 124e851178
Merge pull request #815 from librespot-org/revert-805-new-api-client
Revert "Lay groundwork for new Spotify API client" squash merge
2021-06-28 21:41:33 +02:00
Roderick van Domburg a21b3c9f86 Revert "Lay groundwork for new Spotify API client (#805)"
This reverts commit 39bf40bcc7.
2021-06-28 21:34:59 +02:00