Skip to content

Latest commit

 

History

History
244 lines (188 loc) · 9.26 KB

CHANGELOG.md

File metadata and controls

244 lines (188 loc) · 9.26 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

Added

  • Player::bus_name_trimmed() which returns the player's bus name without the MPRIS2 prefix - Kanjirito

Deprecated

  • Player::bus_name_player_name_part() is now deprecated and will be removed in the next major release. See the method's documentation and #81 for details and workarounds.

Removed

  • Removed derive_is_enum_variant dependency. - poly000

v2.0.1 - 2023-06-15

Fixed

  • Add extra check for Player::get_track_list(). Without this, Player::track_progress() would fail for Spotify. - Mihai Fufezan (fufexan)

v2.0.0 - 2022-11-15

Breaking changes

  • Minimum supported Rust version is now 1.54.0.

v2.0.0-rc3 - 2022-09-12

Important: Now using Rust 2018 edition.

Fixed

Added

  • Player::can_shuffle and Player::checked_get_shuffle. - Stephan Henrichs (Kilobyte22)
  • Iterator methods to Metadata:
    • impl IntoIterator
    • iter()
    • keys()
  • Player::bus_name_player_name_part - Koen Bolhuis (InputUsername)
  • Metadata::as_hashmap(&self) which returns a simple borrowed hashmap.
  • More Player::has_*, Player::can_*, and Player::checked_* methods - Harrison Thorne (harrisonthorne)
    • Player::has_volume, Player::checked_get_volume, Player::checked_set_volume
    • Player::has_position, Player::checked_get_position, Player::checked_set_position
    • Player::has_playback_rate, Player::checked_get_playback_rate, Player::checked_set_playback_rate
    • Player::can_loop, Player::checked_get_loop_status
  • PlayerIter that iterates over all of the players Kanjirito
  • PlayerFinder.player_timeout_ms field that changes the DBUS timeout value for all new Players Kanjirito

Changed

v2.0.0-rc2 - 2020-02-15

This is a RC for 2.0.0. If no major problems are discovered, this version will be re-labeled as 2.0.0. If issues are found, they will be fixed in subsequent versions.

Changed

  • PlayerEvents is now properly exposed from the crate root.
  • Now using dbus 0.8.1.
  • This might require a bump of Rust version.

v2.0.0-rc1 - 2019-02-06

This is a RC for 2.0.0. If no major problems are discovered, this version will be re-labeled as 2.0.0. If issues are found, they will be fixed in subsequent versions.

Changed

  • This library now only supports "latest stable" version of Rust. Hopefully this can be changed the day it is possible to mark minimum version in the crate manifest.
  • Some methods have a different error type to add more context to the errors that can happen. See TrackListError and ProgressError.
  • ProgressTracker::tick now returns a ProgressTick instead of a bool.
    • ProgressTick contains information about tracklist (if player supports it), and what parts have changed.

Fixed

  • Emitted Event::TrackChanged events now contains full metadata.
  • Compilation warnings caused by newer Rust versions (up to 1.28) have been fixed.
  • Player::set_volume is fixed (always set to 0 previously)
  • Detection of volume and playback rate changes using PlayerEvents iterator now works.
  • Loading of length of a track now works in more clients. #40

Added

  • A new version of Metadata that should be much easier to use with extra metadata values, or to populate for tests.
  • A full implementation of all properties and methods on the org.mpris.MediaPlayer2 interface.
  • Support for the Seeked signal in the blocking PlayerEvents iterator.
  • Support for TrackList signals in PlayerEvents iterator.
  • A new TrackList struct, which keeps track of Metadata for tracks.
    • Progress provides an up-to-date TrackList if the player supports it.
    • You can manually maintain this for your PlayerEvents iterator if you wish.
  • Support for loading Metadata for a specific TrackID.
  • TrackListError is an error type for problems with tracklists.
  • ProgressError is an error type for problems with progress tracking.
  • Player::can_edit_tracks.
  • Player::checked_can_edit_tracks.
  • Player::supports_track_lists.
  • A new example called "Capabilities" that shows capabilities of running players.

Removed

  • All deprecated items in v1.1.1 have been removed.

v1.1.1 - 2019-01-04

Fixed

  • Loading of length of a track now works in more clients. #40

v1.1.0 - 2018-08-18

Added

  • Player::events(&self) returns a blocking iterator of player events.
    • Use this to block single-threaded apps until something happens and then react on this event.
    • This is not suitable if you want to render a progress bar as it will only return when something changes; if you want to render the information at a regular update interval then keep using Player::track_progress(&self) instead.
  • MetadataValue type, for dynamically types metadata values. This will replace the raw DBus values in Metadata in version 2.0.
  • Player::get_metadata_hash which returns a Result<HashMap<String, MetadataValue>, DBusError>.
  • Metadata::rest_hash which converts values in the rest hash into MetadataValues, where possible. This is closer to how Metadata will work in 2.0.
  • Progress::playback_rate returns the playback rate at the time of measurement.
  • Player::is_running checks if a player is still running. Use this to detect players shutting down.

Changed

  • Metadata can now be constructed with empty metadata; track_id will then be the empty string.
    • Some players (like VLC) without any tracks on its play queue emits empty metadata, which would cause this library to return an error instead of an empty metadata.
  • Metadata now implements Default.

Deprecated

  • Metadata::rest is deprecated; version 2.0 will have a method that returns MetadataValues instead.
  • Player::get_metadata_hash is added as deprecated. It will likely be merged into Metadata in version 2.0, but presents a way to get all supported metadata values where Metadata::rest might not.

v1.0.0 - 2018-01-19

Added

  • TrackID struct added.
  • Player can now query and change Shuffle status.
  • Player can now query and change LoopStatus.
  • Player can now change playback rate.
  • Player can now query for valid playback rates and if it supports setting rates at all.
  • Player can now control volume.
  • Player can now query for current position as a std::time::Duration and not just a microsecond count.
  • Player can set position, if a valid TrackID is given.
    • Note: This library has no way of querying for valid TrackIDs right now.

Changed

  • failure replaces error_chain for error handling.
    • All errors now implements the failure::Fail trait, and methods return more fine-grained Results.
  • All fields on Progress and Metadata are now methods instead.
  • Playback rate is now f64 instead of f32.

Removed

  • The supports_progress method is removed from Progress.
    • This is better left to clients to do themselves as this library cannot guarantee anything anyway.

0.1.0 - 2017-12-29