Skip to content

Commit 402c400

Browse files
authored
Merge branch 'librespot-org:dev' into mass
2 parents 4ba79dc + f497806 commit 402c400

File tree

37 files changed

+2473
-1337
lines changed

37 files changed

+2473
-1337
lines changed

.github/workflows/test.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,13 @@ jobs:
241241

242242
- name: Install the cross compiler rust targets
243243
run: rustup target add ${{ matrix.target }}
244-
244+
245+
- name: Update and Install dependencies
246+
run: sudo apt-get update && sudo apt-get install -y build-essential cmake libclang1
247+
248+
- name: Install bindgen-cli
249+
run: cargo install --force --locked bindgen-cli
250+
245251
- name: Install cross compiler
246252
run: |
247253
if [ ${{ matrix.target }} = "armv7-unknown-linux-gnueabihf" ]; then

CHANGELOG.md

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1010
### Changed
1111

1212
- [core] MSRV is now 1.81 (breaking)
13+
- [core] AP connect and handshake have a combined 5 second timeout.
1314
- [connect] Replaced `ConnectConfig` with `ConnectStateConfig` (breaking)
1415
- [connect] Replaced `playing_track_index` field of `SpircLoadCommand` with `playing_track` (breaking)
1516
- [connect] Replaced Mercury usage in `Spirc` with Dealer
@@ -18,12 +19,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1819

1920
- [connect] Add `seek_to` field to `SpircLoadCommand` (breaking)
2021
- [connect] Add `repeat_track` field to `SpircLoadCommand` (breaking)
22+
- [connect] Add `autoplay` field to `SpircLoadCommand` (breaking)
2123
- [connect] Add `pause` parameter to `Spirc::disconnect` method (breaking)
2224
- [playback] Add `track` field to `PlayerEvent::RepeatChanged` (breaking)
2325
- [core] Add `request_with_options` and `request_with_protobuf_and_options` to `SpClient`
26+
- [oauth] Add `OAuthClient` and `OAuthClientBuilder` structs to achieve a more customizable login process
2427

2528
### Fixed
2629

30+
- [test] Missing bindgen breaks crossbuild on recent runners. Now installing latest bindgen in addition.
2731
- [core] Fix "no native root CA certificates found" on platforms unsupported
2832
by `rustls-native-certs`.
2933
- [core] Fix all APs rejecting with "TryAnotherAP" when connecting session
@@ -33,6 +37,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3337
- [connect] Fix "play" command not handled if missing "offset" property
3438
- [discovery] Fix libmdns zerconf setup errors not propagating to the main task.
3539
- [metadata] `Show::trailer_uri` is now optional since it isn't always present (breaking)
40+
- [connect] Handle transfer of playback with empty "uri" field
41+
- [connect] Correctly apply playing/paused state when transferring playback
42+
43+
### Deprecated
44+
45+
- [oauth] `get_access_token()` function marked for deprecation
3646

3747
### Removed
3848

@@ -71,7 +81,7 @@ backend for Spotify Connect discovery.
7181
## [0.5.0] - 2024-10-15
7282

7383
This version is be a major departure from the architecture up until now. It
74-
focuses on implementing the "new Spotify API". This means moving large parts
84+
focuses on implementing the "new Spotify API". This means moving large parts
7585
of the Spotify protocol from Mercury to HTTP. A lot of this was reverse
7686
engineered before by @devgianlu of librespot-java. It was long overdue that we
7787
started implementing it too, not in the least because new features like the
@@ -214,14 +224,17 @@ to offer. But, unless anything big comes up, it is also intended as the last
214224
release to be based on the old API. Happy listening.
215225

216226
### Changed
227+
217228
- [playback] `pipe`: Better error handling
218229
- [playback] `subprocess`: Better error handling
219230

220231
### Added
232+
221233
- [core] `apresolve`: Blacklist ap-gew4 and ap-gue1 access points that cause channel errors
222234
- [playback] `pipe`: Implement stop
223235

224236
### Fixed
237+
225238
- [main] fix `--opt=value` line argument logging
226239
- [playback] `alsamixer`: make `--volume-ctrl fixed` work as expected when combined with `--mixer alsa`
227240

@@ -230,9 +243,11 @@ release to be based on the old API. Happy listening.
230243
This release fixes dependency issues when installing from crates.
231244

232245
### Changed
246+
233247
- [chore] The MSRV is now 1.56
234248

235249
### Fixed
250+
236251
- [playback] Fixed dependency issues when installing from crate
237252

238253
## [0.4.0] - 2022-05-21
@@ -248,6 +263,7 @@ Targeting that major effort for a v0.5 release sometime, we intend to maintain
248263
v0.4.x as a stable branch until then.
249264

250265
### Changed
266+
251267
- [chore] The MSRV is now 1.53
252268
- [contrib] Hardened security of the `systemd` service units
253269
- [core] `Session`: `connect()` now returns the long-term credentials
@@ -260,6 +276,7 @@ v0.4.x as a stable branch until then.
260276
- [playback] `Sink`: `write()` now receives ownership of the packet (breaking)
261277

262278
### Added
279+
263280
- [main] Enforce reasonable ranges for option values (breaking)
264281
- [main] Add the ability to parse environment variables
265282
- [main] Log now emits warning when trying to use options that would otherwise have no effect
@@ -272,6 +289,7 @@ v0.4.x as a stable branch until then.
272289
- [playback] `pulseaudio`: set values to: `PULSE_PROP_application.version`, `PULSE_PROP_application.process.binary`, `PULSE_PROP_stream.description`, `PULSE_PROP_media.software` and `PULSE_PROP_media.role` environment variables (user set env var values take precedence) (breaking)
273290

274291
### Fixed
292+
275293
- [connect] Don't panic when activating shuffle without previous interaction
276294
- [core] Removed unsafe code (breaking)
277295
- [main] Fix crash when built with Avahi support but Avahi is locally unavailable
@@ -282,20 +300,24 @@ v0.4.x as a stable branch until then.
282300
- [playback] `alsa`: make `--volume-range` overrides apply to Alsa softvol controls
283301

284302
### Removed
303+
285304
- [playback] `alsamixer`: previously deprecated options `mixer-card`, `mixer-name` and `mixer-index` have been removed
286305

287306
## [0.3.1] - 2021-10-24
288307

289308
### Changed
309+
290310
- Include build profile in the displayed version information
291311
- [playback] Improve dithering CPU usage by about 33%
292312

293313
### Fixed
314+
294315
- [connect] Partly fix behavior after last track of an album/playlist
295316

296317
## [0.3.0] - 2021-10-13
297318

298319
### Added
320+
299321
- [discovery] The crate `librespot-discovery` for discovery in LAN was created. Its functionality was previously part of `librespot-connect`.
300322
- [playback] Add support for dithering with `--dither` for lower requantization error (breaking)
301323
- [playback] Add `--volume-range` option to set dB range and control `log` and `cubic` volume control curves
@@ -304,6 +326,7 @@ v0.4.x as a stable branch until then.
304326
- [playback] Add `--normalisation-gain-type auto` that switches between album and track automatically
305327

306328
### Changed
329+
307330
- [audio, playback] Moved `VorbisDecoder`, `VorbisError`, `AudioPacket`, `PassthroughDecoder`, `PassthroughError`, `DecoderError`, `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)
308331
- [audio, playback] Use `Duration` for time constants and functions (breaking)
309332
- [connect, playback] Moved volume controls from `librespot-connect` to `librespot-playback` crate
@@ -320,17 +343,20 @@ v0.4.x as a stable branch until then.
320343
- [playback] `player`: default normalisation type is now `auto`
321344

322345
### Deprecated
346+
323347
- [connect] The `discovery` module was deprecated in favor of the `librespot-discovery` crate
324348
- [playback] `alsamixer`: renamed `mixer-card` to `alsa-mixer-device`
325349
- [playback] `alsamixer`: renamed `mixer-name` to `alsa-mixer-control`
326350
- [playback] `alsamixer`: renamed `mixer-index` to `alsa-mixer-index`
327351

328352
### Removed
353+
329354
- [connect] Removed no-op mixer started/stopped logic (breaking)
330355
- [playback] Removed `with-vorbis` and `with-tremor` features
331356
- [playback] `alsamixer`: removed `--mixer-linear-volume` option, now that `--volume-ctrl {linear|log}` work as expected on Alsa
332357

333358
### Fixed
359+
334360
- [connect] Fix step size on volume up/down events
335361
- [connect] Fix looping back to the first track after the last track of an album or playlist
336362
- [playback] Incorrect `PlayerConfig::default().normalisation_threshold` caused distortion when using dynamic volume normalisation downstream

0 commit comments

Comments
 (0)