- [Alarms] Allow the room/speaker of an alarm to be get and set.
- [Logging] Allow a PSR-3 compatible logger to be passed for logging support.
- [Network] Ignore any non Sonos devices from the discovery.
- [Network] Ignore any Sonos devices that are not speakers (bridges, etc).
- [Network] Return null from getControllerByRoom() if there are no speakers found for that room.
- [Dependencies] Bumped the doctrine/cache requirement to ~1.4.0
- [Playlists] Created a moveTrack() method to re-order playlist tracks.
- [Playlists] Created a hasPlaylist() method on the Network class to check if a playlist exists.
- [Network] Clear the internal cache of how speakers are grouped when one is removed/added.
- [Network] If no devices are found on the network the result is no longer cached.
- [Alarms] Allow alarm information to be read, and managed using the Alarm class
- [Controllers] Added support for Crossfade.
- [Network] The Network class is no longer static, it should be instantiated before calling its methods.
- [Network] The cache handling is now provided by doctrine/cache
- [Controllers] The getStateDetails() method now returns an instance of the State class.
- [Playlists] Creating playlists is now done using the createPlaylist() method on the Network class.
- [Queues/Playlists] Adding individual tracks is now doing using addTrack(), and addTracks() only supports arrays.
- [Queues/Playlists] The getTracks() method now returns an array of QueueTrack instances.
- [Docs] Created a changelog!
- [Exceptions] Methods that throw exceptions related to parameters now throw InvalidArgumentException
Controller::__construct()
Controller::setState()
Network::getSpeakerByRoom()
Network::getSpeakersByRoom()
Network::getControllerByRoom()
Network::getPlaylistByName()
- [Controllers] The getStateDetails() method can now handle empty queues and return a valid array.