Skip to content

v0.2.0 — Magpie

Compare
Choose a tag to compare
@FelixMcFelix FelixMcFelix released this 17 Aug 13:14
· 141 commits to current since this release

Magpies are a common sight year-round; strong, intelligent, industrious, and loyal.

Taking after the humble magpie, this breaking release makes API changes favouring extensibility, patching some of the API rough spots, and adding resilience to some additional classes of failure.

Thanks to the following for their contributions:

Upgrade Pathway

  • References to songbird::{opus, Bitrate}; should now use songbird::driver::{opus, Bitrate};.
  • Custom Inputs (i.e., Reader::Extension/ExtensionSeek) now need to implement input::reader::MediaSource rather than just Read and/or Seek.
  • Sources which do not support seeking should have an unreachable!() function body or always return an error, as MediaSource::is_seekable() is used to gate support.
  • Many event handler types in songbird::EventContext have changed to unit enums, rather than struct variants.
  • New body types are included in songbird::events::context_data::*.
  • Config structs have been made non-exhaustive; they should be initialised via Config::default().
  • Channel join operations may now timeout after a default 10s—which should be handled.
  • Errors returned when joining a channel will now inform you whether you should try to leave a channel before rejoining.
  • Youtube-dl variants of songbird::input::error::Error have had their case altered from DL -> Dl.
  • TrackState sent from the driver are no longer boxed objects.
  • DriverDisconnect events have been introduced, which cover all disconnect events. As a result, DriverConnectFailed and DriverReconnectFailed are deprecated.
  • Tokio 0.2 support is deprecated. Related features will be removed as of Songbird 0.3.

Added

Changed

Fixed