The StrixDevice is an IDevice which turns the information in a playback handler into a useable SDK device. This is largely used for controlling local audio playback.
There are 2 types of queues in the SDK:
The PlaybackHandler queue, which is comprised of 3 separate properties (PreviousItems, CurrentItem, NextItems)
The playback queue on IDevice, which is a standard ITrackCollection.
The problem
While StrixDevice is mostly implemented, the PlaybackQueue isn't. That means the user can neither see the actual queue nor modify it when playback is local.
We need to:
[ ] Create an implementation of ITrackCollection, call it something like StrixPlaybackQueueCollection.
[ ] When an item is added to this collection, queue it with the underlying PlaybackHandlerService.
[ ] When an item is removed from this collection, remove it from the underling queue.
[ ] Ensure the Sources property contains references to cores for all items in the collection.
[ ] Emit the SourceChanged event when this list is changed (as needed)
[ ] Write unit tests to ensure this new PlaybackQueue stays working as intended.
Background
The
StrixDevice
is anIDevice
which turns the information in a playback handler into a useable SDK device. This is largely used for controlling local audio playback.There are 2 types of queues in the SDK:
IDevice
, which is a standardITrackCollection
.The problem
While
StrixDevice
is mostly implemented, the PlaybackQueue isn't. That means the user can neither see the actual queue nor modify it when playback is local.We need to:
ITrackCollection
, call it something likeStrixPlaybackQueueCollection
.PlaybackHandlerService
.Sources
property contains references to cores for all items in the collection.SourceChanged
event when this list is changed (as needed)