From cc1fb5a406fd3d3da3a12dc37cf252ba530ef21f Mon Sep 17 00:00:00 2001 From: Roderick van Domburg Date: Wed, 28 Sep 2022 22:17:43 +0200 Subject: [PATCH] Update changelog --- CHANGELOG.md | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a1412875..6d3bd886 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,13 +32,13 @@ https://github.com/librespot-org/librespot ### Changed - [all] Assertions were changed into `Result` or removed (breaking) -- [all] Purge use of `unwrap`, `expect` and return `Result` +- [all] Purge use of `unwrap`, `expect` and return `Result` (breaking) - [all] `chrono` replaced with `time` (breaking) - [all] `time` updated (CVE-2020-26235) - [all] Improve lock contention and performance (breaking) - [audio] Files are now downloaded over the HTTPS CDN (breaking) -- [audio] Improve file opening and seeking performance -- [chore] MSRV is now 1.61 +- [audio] Improve file opening and seeking performance (breaking) +- [chore] MSRV is now 1.61 (breaking) - [connect] `DeviceType` moved out of `connect` into `core` (breaking) - [core] Message listeners are registered before authenticating. As a result there now is a separate `Session::new` and subsequent `session.connect`. @@ -63,6 +63,9 @@ https://github.com/librespot-org/librespot - [all] Check that array indexes are within bounds (panic safety) - [all] Wrap errors in librespot `Error` type (breaking) +- [connect] Add session events +- [connect] Add `repeat`, `set_position_ms` and `set_volume` to `spirc.rs` +- [contrib] Add `event_handler_example.py` - [core] Send metrics with metadata queries: client ID, country & product - [core] Verify Spotify server certificates (prevents man-in-the-middle attacks) - [core] User attributes are stored in `Session` upon login, accessible with a @@ -75,24 +78,28 @@ https://github.com/librespot-org/librespot It supports a lot of functionality, including audio previews and image downloads even if librespot doesn't use that for playback itself. - [core] Support downloading of lyrics +- [main] Add all player events to `player_event_handler.rs` +- [main] Add an event worker thread that runs async to the main thread(s) but + sync to itself to prevent potential data races for event consumers +- [metadata] All metadata fields in the protobufs are now exposed (breaking) - [playback] Explicit tracks are skipped if the controlling Connect client has disabled such content. Applications that use librespot as a library without Connect should use the 'filter-explicit-content' user attribute in the session. -- [metadata] All metadata fields in the protobufs are now exposed (breaking) -- [connect] Add session events - [playback] Add metadata support via a `TrackChanged` event -- [main] Add all player events to `player_event_handler.rs` -- [contrib] Add `event_handler_example.py` -- [connect] Add `repeat`, `set_position_ms` and `set_volume` to `spirc.rs` -- [main] Add an event worker thread that runs async to the main thread(s) but sync to itself to prevent potential data races for event consumers ### Fixed -- [connect] Set `PlayStatus` to the correct value when Player is loading to avoid blanking out the controls when `self.play_status` is `LoadingPlay` or `LoadingPause` in `spirc.rs` -- [connect] Handle attempts to play local files better by basically ignoring attempts to load them in `handle_remote_update` in `spirc.rs` -- [playback] Handle invalid track start positions by just starting the track from the beginning -- [playback, connect] Clean up and de-noise events and event firing -- [playback] Handle disappearing and invalid devices better +- [connect] Set `PlayStatus` to the correct value when Player is loading to + avoid blanking out the controls when `self.play_status` is `LoadingPlay` or + `LoadingPause` in `spirc.rs` +- [connect] Handle attempts to play local files better by basically ignoring + attempts to load them in `handle_remote_update` in `spirc.rs` +- [connect, playback] Clean up and de-noise events and event firing +- [playback] Handle invalid track start positions by just starting the track + from the beginning +- [playback] Handle disappearing and invalid devices better +- [playback] Handle seek, pause, and play commands while loading + ### Removed - [main] `autoplay` is no longer a command-line option. Instead, librespot now