Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lay groundwork for new Spotify API client #805

Merged
merged 67 commits into from
Jun 28, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
ebea539
Add librespot-discovery crate
Johannesd3 Feb 28, 2021
1ec5dd2
Add discovery example
Johannesd3 Mar 12, 2021
a7f9e0a
Add an error type to librespot_discovery
Johannesd3 Mar 17, 2021
16de6a7
Improve api of discovery crate's builder
Johannesd3 Apr 2, 2021
c49e132
Update workflow
Johannesd3 Apr 13, 2021
9b6ba49
Add "discovery" compat layer to "connect"
Johannesd3 May 9, 2021
ceab363
Update changelog
Johannesd3 May 9, 2021
4448ce0
Set correct libraryVersion
Johannesd3 May 24, 2021
eca505c
Improve volume controls
roderickvd May 24, 2021
9efd886
Describe new `mixer-card` getopts behavior
roderickvd May 25, 2021
d8ec980
Merge pull request #673 from Johannesd3/discovery-crate
roderickvd May 26, 2021
3a2455d
Merge branch 'dev' into log-volume-ctrl-optimisations
roderickvd May 26, 2021
7f113b3
Merge pull request #685 from roderickvd/log-volume-ctrl-optimisations
roderickvd May 26, 2021
db71f6d
Fix changelog
Johannesd3 May 26, 2021
bb3dd64
Implement dithering (#694)
roderickvd May 26, 2021
11dfede
Remove `with-vorbis` and `with-tremor` features (#750)
roderickvd May 26, 2021
8abc0be
Print normalisation setup once and add units (#759)
roderickvd May 26, 2021
8774339
Improve getopts and stderr message consistency in main (#757)
roderickvd May 26, 2021
d5070a1
Merge pull request #761 from librespot-org/Johannesd3-fix-changelog
roderickvd May 26, 2021
f2d31b7
Print normalisation pregain in verbose mode
roderickvd May 26, 2021
5d43b7d
Merge pull request #764 from roderickvd/print-normalisation-pregain
roderickvd May 26, 2021
049bcf6
Fix integer overflow in spotify_id
Johannesd3 May 27, 2021
3be50fd
Corrected documentation
Johannesd3 May 27, 2021
19f0555
Fix leftovers from merging diverging branches
roderickvd May 27, 2021
a7255c3
Merge pull request #772 from roderickvd/fix-merging-leftovers
roderickvd May 27, 2021
d1cdc9e
Merge pull request #766 from Johannesd3/fix-integer-overflow
Johannesd3 May 28, 2021
a2fde0a
Run `cargo update`
Johannesd3 May 28, 2021
8062bd2
Improve sample rounding and clean up noise shaping leftovers (#771)
roderickvd May 29, 2021
fe2d5ca
Store and process samples in 64 bit (#773)
roderickvd May 30, 2021
bae1834
Fix output on big-endian systems (#778)
roderickvd May 30, 2021
ad19b69
Various code improvements (#777)
roderickvd May 31, 2021
d4f466e
Revert `math::round_half_to_even`
roderickvd May 31, 2021
33c07f0
Merge pull request #785 from roderickvd/revert-round-half-to-even
roderickvd Jun 1, 2021
7c975f8
Remove feature gate around `apresolve`
roderickvd Jun 1, 2021
5764f1f
Merge pull request #783 from roderickvd/remove-fallback-accesspoint
roderickvd Jun 5, 2021
4af095e
Improve ALSA buffer size
JasonLG1979 Jun 5, 2021
c309592
Update CHANGELOG.md
roderickvd Jun 9, 2021
b0a94f9
Merge pull request #789 from JasonLG1979/alsa_backend_fix
roderickvd Jun 9, 2021
51a6972
Include a systemd.service file to run as a user (#800)
Jun 18, 2021
0bece0d
Fix pipe backend
JasonLG1979 Jun 18, 2021
4c77854
Better errors alsa backend (#797)
JasonLG1979 Jun 18, 2021
2466e0b
Merge branch 'librespot-org:dev' into fix_pipe_backend
JasonLG1979 Jun 18, 2021
5ffce06
Fix clippy warnings
JasonLG1979 Jun 18, 2021
336e714
Fix clippy warning
JasonLG1979 Jun 18, 2021
79f08c5
Merge pull request #803 from JasonLG1979/fix_clippy_warnings
roderickvd Jun 18, 2021
14de03e
Update tests
JasonLG1979 Jun 18, 2021
586e864
Update change log
JasonLG1979 Jun 18, 2021
40e5679
Merge pull request #804 from JasonLG1979/patch-1
roderickvd Jun 19, 2021
a732681
Merge pull request #802 from JasonLG1979/fix_pipe_backend
roderickvd Jun 19, 2021
850db43
Add token provider
roderickvd Jun 19, 2021
b1f1464
Round 2 of trying to get CI to ignore things that should not trigger …
JasonLG1979 Jun 20, 2021
be16d3b
Merge pull request #807 from JasonLG1979/patch-1
roderickvd Jun 20, 2021
e1e2651
Document known token scopes
roderickvd Jun 20, 2021
ce4f8dc
Remove superfluous status check
roderickvd Jun 20, 2021
1562884
Introduce HTTP client
roderickvd Jun 20, 2021
b6357a2
Store `token_type` and simplify `scopes` argument
roderickvd Jun 21, 2021
eee79f2
Introduce caching `ApResolver` component
roderickvd Jun 21, 2021
3a7843d
Fix refilling with proxies and a race condition
roderickvd Jun 22, 2021
d3074f5
Remove `keymaster` and update example
roderickvd Jun 22, 2021
4fe1183
Fix compilation on Rust 1.48
roderickvd Jun 22, 2021
0703630
Use `PacketType` instead of hex identifiers
roderickvd Jun 22, 2021
12365ae
Fix comment
roderickvd Jun 22, 2021
aa4cc0b
Ignore known but unused packets
roderickvd Jun 23, 2021
e589348
Fix clippy warnings
roderickvd Jun 23, 2021
9082ffa
Merge branch 'new-api' into new-api-client
roderickvd Jun 25, 2021
7d27b94
Document new unknown packet 0xb6
roderickvd Jun 25, 2021
7cd1b7a
Merge branch 'dev' into new-api-client
roderickvd Jun 25, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ on:
"Cargo.lock",
"rustfmt.toml",
".github/workflows/*",
"!*.md",
"!contrib/*",
"!docs/*",
"!LICENSE",
"!*.sh",
]
pull_request:
paths:
Expand All @@ -20,6 +25,11 @@ on:
"Cargo.lock",
"rustfmt.toml",
".github/workflows/*",
"!*.md",
"!contrib/*",
"!docs/*",
"!LICENSE",
"!*.sh",
]
schedule:
# Run CI every week
Expand Down Expand Up @@ -99,8 +109,8 @@ jobs:
- run: cargo hack --workspace --remove-dev-deps
- run: cargo build -p librespot-core --no-default-features
- run: cargo build -p librespot-core
- run: cargo build -p librespot-connect
- run: cargo build -p librespot-connect --no-default-features --features with-dns-sd
- run: cargo hack build --each-feature -p librespot-discovery
- run: cargo hack build --each-feature -p librespot-playback
- run: cargo hack build --each-feature

test-windows:
Expand Down
38 changes: 34 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,44 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html) since v0.2.0.

## [Unreleased]
### Added
- [discovery] The crate `librespot-discovery` for discovery in LAN was created. Its functionality was previously part of `librespot-connect`.
- [playback] Add support for dithering with `--dither` for lower requantization error (breaking)
- [playback] Add `--volume-range` option to set dB range and control `log` and `cubic` volume control curves
- [playback] `alsamixer`: support for querying dB range from Alsa softvol
- [playback] Add `--format F64` (supported by Alsa and GStreamer only)

### Removed
### Changed
- [audio, playback] Moved `VorbisDecoder`, `VorbisError`, `AudioPacket`, `PassthroughDecoder`, `PassthroughError`, `AudioError`, `AudioDecoder` and the `convert` module from `librespot-audio` to `librespot-playback`. The underlying crates `vorbis`, `librespot-tremor`, `lewton` and `ogg` should be used directly. (breaking)
- [audio, playback] Use `Duration` for time constants and functions (breaking)
- [connect, playback] Moved volume controls from `librespot-connect` to `librespot-playback` crate
- [connect] Synchronize player volume with mixer volume on playback
- [playback] Store and pass samples in 64-bit floating point
- [playback] Make cubic volume control available to all mixers with `--volume-ctrl cubic`
- [playback] Normalize volumes to `[0.0..1.0]` instead of `[0..65535]` for greater precision and performance (breaking)
- [playback] `alsamixer`: complete rewrite (breaking)
- [playback] `alsamixer`: query card dB range for the `log` volume control unless specified otherwise
- [playback] `alsamixer`: use `--device` name for `--mixer-card` unless specified otherwise
- [playback] `player`: consider errors in `sink.start`, `sink.stop` and `sink.write` fatal and `exit(1)` (breaking)

* [librespot-audio] Removed `VorbisDecoder`, `VorbisError`, `AudioPacket`, `PassthroughDecoder`, `PassthroughError`, `AudioError`, `AudioDecoder` and the `convert` module from `librespot_audio`. The underlying crates `vorbis`, `librespot-tremor`, `lewton` and `ogg` should be used directly.
### Deprecated
- [connect] The `discovery` module was deprecated in favor of the `librespot-discovery` crate

### Fixed
### Removed
- [connect] Removed no-op mixer started/stopped logic (breaking)
- [playback] Removed `with-vorbis` and `with-tremor` features
- [playback] `alsamixer`: removed `--mixer-linear-volume` option; use `--volume-ctrl linear` instead

* [librespot-playback] Incorrect `PlayerConfig::default().normalisation_threshold` caused distortion when using dynamic volume normalisation downstream
### Fixed
- [connect] Fix step size on volume up/down events
- [playback] Incorrect `PlayerConfig::default().normalisation_threshold` caused distortion when using dynamic volume normalisation downstream
- [playback] Fix `log` and `cubic` volume controls to be mute at zero volume
- [playback] Fix `S24_3` format on big-endian systems
- [playback] `alsamixer`: make `cubic` consistent between cards that report minimum volume as mute, and cards that report some dB value
- [playback] `alsamixer`: make `--volume-ctrl {linear|log}` work as expected
- [playback] `alsa`, `gstreamer`, `pulseaudio`: always output in native endianness
- [playback] `alsa`: revert buffer size to ~500 ms
- [playback] `alsa`, `pipe`: better error handling

## [0.2.0] - 2021-05-04

Expand Down
Loading