v0.4.0
Note: This version was yanked, because a corrupt package was uploaded and failed to install.
This is a polishing release, adding a few little extras and improving on many others. We had to break a couple of API's to do so, and therefore bumped the minor version number. v0.4.x may be the last in series before we migrate from the current channel-based Spotify backend to a more HTTP-based backend. Targeting that major effort for a v0.5 release sometime, we intend to maintain v0.4.x as a stable branch until then.
Changelog
Changed
- [chore] The MSRV is now 1.53
- [contrib] Hardened security of the
systemd
service units - [core]
Session
:connect()
now returns the long-term credentials - [core]
Session
:connect()
now accepts a flag if the credentails should be stored via the cache - [main] Different option descriptions and error messages based on what backends are enabled at build time
- [playback] More robust dynamic limiter for very wide dynamic range (breaking)
- [playback]
alsa
: improve--device ?
output for the Alsa backend - [playback]
gstreamer
: create own context, set correct states and use sync handler - [playback]
pipe
: create file if it doesn't already exist - [playback]
Sink
:write()
now receives ownership of the packet (breaking)
Added
- [main] Enforce reasonable ranges for option values (breaking)
- [main] Add the ability to parse environment variables
- [main] Log now emits warning when trying to use options that would otherwise have no effect
- [main] Verbose logging now logs all parsed environment variables and command line arguments (credentials are redacted)
- [main] Add a
-q
,--quiet
option that changes the logging level to WARN - [main] Add
disable-credential-cache
flag (breaking) - [main] Add a short name for every flag and option
- [playback]
pulseaudio
: set the PulseAudio name to match librespot's device name viaPULSE_PROP_application.name
environment variable (user set env var value takes precedence) (breaking) - [playback]
pulseaudio
: set icon toaudio-x-generic
so we get an icon instead of a placeholder viaPULSE_PROP_application.icon_name
environment variable (user set env var value takes precedence) (breaking) - [playback]
pulseaudio
: set values to:PULSE_PROP_application.version
,PULSE_PROP_application.process.binary
,PULSE_PROP_stream.description
,PULSE_PROP_media.software
andPULSE_PROP_media.role
environment variables (user set env var values take precedence) (breaking)
Fixed
- [connect] Don't panic when activating shuffle without previous interaction
- [core] Removed unsafe code (breaking)
- [main] Fix crash when built with Avahi support but Avahi is locally unavailable
- [main] Prevent hang when discovery is disabled and there are no credentials or when bad credentials are given
- [main] Don't panic when parsing options, instead list valid values and exit
- [main]
--alsa-mixer-device
and--alsa-mixer-index
now fallback to the card and index specified in--device
. - [playback] Adhere to ReplayGain spec when calculating gain normalisation factor
- [playback]
alsa
: make--volume-range
overrides apply to Alsa softvol controls
Removed
- [playback]
alsamixer
: previously deprecated optionsmixer-card
,mixer-name
andmixer-index
have been removed