Changed
- [core] MSRV is now 1.85 with Rust edition 2024 (breaking)
- [core] AP connect and handshake have a combined 5 second timeout.
- [core]
stream_from_cdnnow accepts the URL asTryInto<Uri>instead ofCdnUrl(breaking) - [core] Add TLS backend selection with native-tls and rustls-tls options, defaulting to native-tls
- [connect] Replaced
has_volume_ctrlwithdisable_volumeinConnectConfig(breaking) - [connect] Changed
initial_volumefromOption<u16>tou16inConnectConfig(breaking) - [connect] Replaced
SpircLoadCommandwithLoadRequest,LoadRequestOptionsandLoadContextOptions(breaking) - [connect] Moved all public items to the highest level (breaking)
- [connect] Replaced Mercury usage in
Spircwith Dealer - [metadata] Replaced
AudioFileFormatwith own enum. (breaking) - [playback] Changed trait
Mixer::opento returnResult<Self, Error>instead ofSelf(breaking) - [playback] Changed type alias
MixerFnto returnResult<Arc<dyn Mixer>, Error>instead ofArc<dyn Mixer>(breaking) - [playback] Optimize audio conversion to always dither at 16-bit level, and improve performance
- [playback] Normalizer maintains better stereo imaging, while also being faster
- [oauth] Remove loopback address requirement from
redirect_uriwhen spawning callback handling server versus using stdin.
Added
- [connect] Add command line parameter for setting volume steps.
- [connect] Add support for
seek_to,repeat_trackandautoplayforSpircloading - [connect] Add
pauseparameter toSpirc::disconnectmethod (breaking) - [connect] Add
volume_stepstoConnectConfig(breaking) - [connect] Add and enforce rustdoc
- [playback] Add
trackfield toPlayerEvent::RepeatChanged(breaking) - [playback] Add
PlayerEvent::PositionChangedevent to notify about the current playback position - [core] Add
request_with_optionsandrequest_with_protobuf_and_optionstoSpClient - [core] Add
try_get_urlstoCdnUrl - [oauth] Add
OAuthClientandOAuthClientBuilderstructs to achieve a more customizable login process
Fixed
- [test] Missing bindgen breaks crossbuild on recent runners. Now installing latest bindgen in addition.
- [core] Fix "no native root CA certificates found" on platforms unsupported
byrustls-native-certs. - [core] Fix all APs rejecting with "TryAnotherAP" when connecting session
on Android platform. - [core] Fix "Invalid Credentials" when using a Keymaster access token and
client ID on Android platform. - [connect] Fix "play" command not handled if missing "offset" property
- [discovery] Fix libmdns zerconf setup errors not propagating to the main task.
- [metadata]
Show::trailer_uriis now optional since it isn't always present (breaking) - [metadata] Fix incorrect parsing of audio format
- [connect] Handle transfer of playback with empty "uri" field
- [connect] Correctly apply playing/paused state when transferring playback
- [player] Saturate invalid seek positions to track duration
- [audio] Fall back to other URLs in case of a failure when downloading from CDN
- [core] Metadata requests failing with 500 Internal Server Error
- [player] Rodio backend did not honor audio output format request
Deprecated
- [oauth]
get_access_token()function marked for deprecation - [core]
try_get_url()function marked for deprecation
Removed
- [core] Removed
get_canvasesfrom SpClient (breaking) - [core] DeviceType
homethingremoved due to crashes on Android (breaking) - [metadata] Removed
genresfrom Album (breaking) - [metadata] Removed
genrefrom Artists (breaking)