Class PlaylistPluginBase
An implementation of IPlaylist which delegates all member access to the Inner implementation, unless the member is overridden in a derived class which changes the behavior.
Implements
Inherited Members
Namespace: StrixMusic.Sdk.Plugins.Model
Assembly: StrixMusic.Sdk.dll
Syntax
public class PlaylistPluginBase : IModelPlugin, IPlaylist, IPlaylistBase, ITrackCollection, ITrackCollectionBase, IPlayableCollectionBase, IMerged<ICoreTrackCollection>, IEquatable<ICoreTrackCollection>, IPlaylistCollectionItem, IPlaylistCollectionItemBase, IPlayableCollectionItem, ICollectionItemBase, IPlayable, IPlayableBase, IDownloadable, IImageCollection, IImageCollectionBase, IMerged<ICoreImageCollection>, IEquatable<ICoreImageCollection>, IUrlCollection, IUrlCollectionBase, ICollectionBase, IMerged<ICoreUrlCollection>, IEquatable<ICoreUrlCollection>, IAppModel, IMerged<ICorePlaylist>, IEquatable<ICorePlaylist>, IMerged<ICorePlaylistCollectionItem>, IEquatable<ICorePlaylistCollectionItem>, IMerged, IDelegatable<IPlaylist>
Constructors
| Improve this Doc View SourcePlaylistPluginBase(ModelPluginMetadata, IPlaylist)
Creates a new instance of PlaylistPluginBase.
Declaration
protected PlaylistPluginBase(ModelPluginMetadata registration, IPlaylist inner)
Parameters
Type | Name | Description |
---|---|---|
ModelPluginMetadata | registration | Metadata about the plugin which was provided during registration. |
IPlaylist | inner | The implementation which all member access is delegated to, unless the member is overridden in a derived class which changes the behavior. |
Properties
| Improve this Doc View SourceAddedAt
The date this item was added to a collection. If unknown, value is null.
Declaration
public virtual DateTime? AddedAt { get; }
Property Value
Type | Description |
---|---|
DateTime? |
Remarks
This property has no counterpart "changed" events or supporting properties. Since the item must be added to a collection for the data to change, a new instance with updated data would be used.
Description
Provides comments about the item. This may contain markdown content.
Declaration
public virtual string? Description { get; }
Property Value
Type | Description |
---|---|
string |
DownloadInfo
Information about downloading this item.
Declaration
public virtual DownloadInfo DownloadInfo { get; }
Property Value
Type | Description |
---|---|
DownloadInfo |
Duration
How long the playable item takes to complete playback.
Declaration
public virtual TimeSpan Duration { get; }
Property Value
Type | Description |
---|---|
TimeSpan |
Remarks
If not applicable, use Zero.
Id
The ID of the playable item.
Declaration
public virtual string Id { get; }
Property Value
Type | Description |
---|---|
string |
Inner
Declaration
public IPlaylist Inner { get; set; }
Property Value
Type | Description |
---|---|
IPlaylist |
InnerDownloadable
A wrapped implementation which member access can be delegated to. Defaults to Inner.
Declaration
public IDownloadable InnerDownloadable { get; set; }
Property Value
Type | Description |
---|---|
IDownloadable |
InnerImageCollection
A wrapped implementation which member access can be delegated to. Defaults to Inner.
Declaration
public IImageCollection InnerImageCollection { get; set; }
Property Value
Type | Description |
---|---|
IImageCollection |
InnerPlayable
A wrapped implementation which member access can be delegated to. Defaults to Inner.
Declaration
public IPlayable InnerPlayable { get; set; }
Property Value
Type | Description |
---|---|
IPlayable |
InnerTrackCollection
A wrapped implementation which member access can be delegated to. Defaults to Inner.
Declaration
public ITrackCollection InnerTrackCollection { get; set; }
Property Value
Type | Description |
---|---|
ITrackCollection |
InnerUrlCollection
A wrapped implementation which member access can be delegated to. Defaults to Inner.
Declaration
public IUrlCollection InnerUrlCollection { get; set; }
Property Value
Type | Description |
---|---|
IUrlCollection |
IsChangeDescriptionAsyncAvailable
If true, ChangeDescriptionAsync(string?, CancellationToken) can be used.
Declaration
public virtual bool IsChangeDescriptionAsyncAvailable { get; }
Property Value
Type | Description |
---|---|
bool |
IsChangeDurationAsyncAvailable
If true, ChangeDurationAsync(TimeSpan, CancellationToken) can be used.
Declaration
public virtual bool IsChangeDurationAsyncAvailable { get; }
Property Value
Type | Description |
---|---|
bool |
IsChangeNameAsyncAvailable
If true, ChangeNameAsync(string, CancellationToken) can be used.
Declaration
public virtual bool IsChangeNameAsyncAvailable { get; }
Property Value
Type | Description |
---|---|
bool |
IsPauseTrackCollectionAsyncAvailable
If true, PauseTrackCollectionAsync(CancellationToken) can be used.
Declaration
public virtual bool IsPauseTrackCollectionAsyncAvailable { get; }
Property Value
Type | Description |
---|---|
bool |
IsPlayTrackCollectionAsyncAvailable
If true, PlayTrackCollectionAsync(CancellationToken) can be used.
Declaration
public virtual bool IsPlayTrackCollectionAsyncAvailable { get; }
Property Value
Type | Description |
---|---|
bool |
LastPlayed
The last time the item was played. If never played or unknown, value is null.
Declaration
public virtual DateTime? LastPlayed { get; }
Property Value
Type | Description |
---|---|
DateTime? |
Metadata
Metadata about the plugin which was provided during registration.
Declaration
public ModelPluginMetadata Metadata { get; }
Property Value
Type | Description |
---|---|
ModelPluginMetadata |
Name
Name of the playable item.
Declaration
public virtual string Name { get; }
Property Value
Type | Description |
---|---|
string |
Owner
Owner of the playable item.
Declaration
public virtual IUserProfile? Owner { get; }
Property Value
Type | Description |
---|---|
IUserProfile |
PlaybackState
Current playback state.
Declaration
public virtual PlaybackState PlaybackState { get; }
Property Value
Type | Description |
---|---|
PlaybackState |
RelatedItems
A IPlayableCollectionGroup of items related to this item.
Declaration
public virtual IPlayableCollectionGroup? RelatedItems { get; }
Property Value
Type | Description |
---|---|
IPlayableCollectionGroup |
TotalImageCount
The total number of images in the collection.
Declaration
public virtual int TotalImageCount { get; }
Property Value
Type | Description |
---|---|
int |
TotalTrackCount
The total number of available Tracks.
Declaration
public virtual int TotalTrackCount { get; }
Property Value
Type | Description |
---|---|
int |
TotalUrlCount
The total number of urls in this collection.
Declaration
public virtual int TotalUrlCount { get; }
Property Value
Type | Description |
---|---|
int |
Methods
| Improve this Doc View SourceAddImageAsync(IImage, int, CancellationToken)
Adds a new image to the collection.
Declaration
public virtual Task AddImageAsync(IImage image, int index, CancellationToken cancellationToken = default)
Parameters
Type | Name | Description |
---|---|---|
IImage | image | The image to add. |
int | index | the position to insert the image at. |
CancellationToken | cancellationToken | A cancellation token that may be used to cancel the ongoing task. |
Returns
Type | Description |
---|---|
Task | A Task representing the asynchronous operation. |
AddTrackAsync(ITrack, int, CancellationToken)
Adds an ITrack to this track collection.
Declaration
public virtual Task AddTrackAsync(ITrack track, int index, CancellationToken cancellationToken = default)
Parameters
Type | Name | Description |
---|---|---|
ITrack | track | The track to add. |
int | index | the position to insert the track at. |
CancellationToken | cancellationToken | A cancellation token that may be used to cancel the ongoing task. |
Returns
Type | Description |
---|---|
Task | A Task representing the asynchronous operation. |
AddUrlAsync(IUrl, int, CancellationToken)
Adds a new url to the collection.
Declaration
public virtual Task AddUrlAsync(IUrl url, int index, CancellationToken cancellationToken = default)
Parameters
Type | Name | Description |
---|---|---|
IUrl | url | The url to insert. |
int | index | the position to insert the url at. |
CancellationToken | cancellationToken | A cancellation token that may be used to cancel the ongoing task. |
Returns
Type | Description |
---|---|
Task | A Task representing the asynchronous operation. |
ChangeDescriptionAsync(string?, CancellationToken)
Changes the Description for this item.
Declaration
public virtual Task ChangeDescriptionAsync(string? description, CancellationToken cancellationToken = default)
Parameters
Type | Name | Description |
---|---|---|
string | description | The new description for this playable item. |
CancellationToken | cancellationToken | A cancellation token that may be used to cancel the ongoing task. |
Returns
Type | Description |
---|---|
Task | A Task representing the asynchronous operation. |
ChangeDurationAsync(TimeSpan, CancellationToken)
Changes the Duration for this item.
Declaration
public virtual Task ChangeDurationAsync(TimeSpan duration, CancellationToken cancellationToken = default)
Parameters
Type | Name | Description |
---|---|---|
TimeSpan | duration | The new duration for this playable item. |
CancellationToken | cancellationToken | A cancellation token that may be used to cancel the ongoing task. |
Returns
Type | Description |
---|---|
Task | A Task representing the asynchronous operation. |
ChangeNameAsync(string, CancellationToken)
Changes the Name of this playable item.
Declaration
public virtual Task ChangeNameAsync(string name, CancellationToken cancellationToken = default)
Parameters
Type | Name | Description |
---|---|---|
string | name | The new name to use. |
CancellationToken | cancellationToken | A cancellation token that may be used to cancel the ongoing task. |
Returns
Type | Description |
---|---|
Task | A Task representing the asynchronous operation. |
Equals(ICoreImageCollection?)
Declaration
public virtual bool Equals(ICoreImageCollection? other)
Parameters
Type | Name | Description |
---|---|---|
ICoreImageCollection | other |
Returns
Type | Description |
---|---|
bool |
Equals(ICorePlaylist?)
Declaration
public virtual bool Equals(ICorePlaylist? other)
Parameters
Type | Name | Description |
---|---|---|
ICorePlaylist | other |
Returns
Type | Description |
---|---|
bool |
Equals(ICorePlaylistCollectionItem?)
Declaration
public virtual bool Equals(ICorePlaylistCollectionItem? other)
Parameters
Type | Name | Description |
---|---|---|
ICorePlaylistCollectionItem | other |
Returns
Type | Description |
---|---|
bool |
Equals(ICoreTrackCollection?)
Declaration
public virtual bool Equals(ICoreTrackCollection? other)
Parameters
Type | Name | Description |
---|---|---|
ICoreTrackCollection | other |
Returns
Type | Description |
---|---|
bool |
Equals(ICoreUrlCollection?)
Declaration
public virtual bool Equals(ICoreUrlCollection? other)
Parameters
Type | Name | Description |
---|---|---|
ICoreUrlCollection | other |
Returns
Type | Description |
---|---|
bool |
GetImagesAsync(int, int, CancellationToken)
Gets a requested number of IImageBases starting at the given offset.
Declaration
public virtual IAsyncEnumerable<IImage> GetImagesAsync(int limit, int offset, CancellationToken cancellationToken = default)
Parameters
Type | Name | Description |
---|---|---|
int | limit | The max number of items to return. |
int | offset | Get items starting at this index. |
CancellationToken | cancellationToken | A cancellation token that may be used to cancel the ongoing task. |
Returns
Type | Description |
---|---|
IAsyncEnumerable<IImage> | The requested range of items. |
GetTracksAsync(int, int, CancellationToken)
Gets a requested number of ITracks starting at the given offset.
Declaration
public virtual IAsyncEnumerable<ITrack> GetTracksAsync(int limit, int offset, CancellationToken cancellationToken = default)
Parameters
Type | Name | Description |
---|---|---|
int | limit | The max number of items to return. |
int | offset | Get items starting at this index. |
CancellationToken | cancellationToken | A cancellation token that may be used to cancel the ongoing task. |
Returns
Type | Description |
---|---|
IAsyncEnumerable<ITrack> | The requested range of items. |
GetUrlsAsync(int, int, CancellationToken)
Gets a requested number of IUrlBases starting at the given offset.
Declaration
public virtual IAsyncEnumerable<IUrl> GetUrlsAsync(int limit, int offset, CancellationToken cancellationToken = default)
Parameters
Type | Name | Description |
---|---|---|
int | limit | The max number of items to return. |
int | offset | Get items starting at this index. |
CancellationToken | cancellationToken | A cancellation token that may be used to cancel the ongoing task. |
Returns
Type | Description |
---|---|
IAsyncEnumerable<IUrl> | The requested range of items. |
IsAddImageAvailableAsync(int, CancellationToken)
Checks if adding a IImageBase to the collection at at the given index
is supported.
Declaration
public virtual Task<bool> IsAddImageAvailableAsync(int index, CancellationToken cancellationToken = default)
Parameters
Type | Name | Description |
---|---|---|
int | index | |
CancellationToken | cancellationToken |
Returns
Type | Description |
---|---|
Task<bool> | A Task representing the asynchronous operation. If value is true, a new IImageBase can be added. |
IsAddTrackAvailableAsync(int, CancellationToken)
Checks if the backend supports adding an ITrackBase at a specific index.
Declaration
public virtual Task<bool> IsAddTrackAvailableAsync(int index, CancellationToken cancellationToken = default)
Parameters
Type | Name | Description |
---|---|---|
int | index | |
CancellationToken | cancellationToken |
Returns
Type | Description |
---|---|
Task<bool> | A Task representing the asynchronous operation. If value is true, a new ITrackBase can be added. |
IsAddUrlAvailableAsync(int, CancellationToken)
Checks if adding a url to the collection at at the given index
is supported.
Declaration
public virtual Task<bool> IsAddUrlAvailableAsync(int index, CancellationToken cancellationToken = default)
Parameters
Type | Name | Description |
---|---|---|
int | index | |
CancellationToken | cancellationToken |
Returns
Type | Description |
---|---|
Task<bool> | A Task representing the asynchronous operation. If value is true, a new item can be added to the collection. |
IsRemoveImageAvailableAsync(int, CancellationToken)
Checks if removing a IImageBase to the collection at at the given index
is supported.
Declaration
public virtual Task<bool> IsRemoveImageAvailableAsync(int index, CancellationToken cancellationToken = default)
Parameters
Type | Name | Description |
---|---|---|
int | index | |
CancellationToken | cancellationToken |
Returns
Type | Description |
---|---|
Task<bool> | A Task representing the asynchronous operation. If value is true, the IImageBase can be removed. |
IsRemoveTrackAvailableAsync(int, CancellationToken)
Checks if the backend supports removing an ITrackBase at a specific index.
Declaration
public virtual Task<bool> IsRemoveTrackAvailableAsync(int index, CancellationToken cancellationToken = default)
Parameters
Type | Name | Description |
---|---|---|
int | index | |
CancellationToken | cancellationToken |
Returns
Type | Description |
---|---|
Task<bool> | A Task representing the asynchronous operation. If value is true, the ITrackBase can be removed. |
IsRemoveUrlAvailableAsync(int, CancellationToken)
Checks if removing a url to the collection at at the given index
is supported.
Declaration
public virtual Task<bool> IsRemoveUrlAvailableAsync(int index, CancellationToken cancellationToken = default)
Parameters
Type | Name | Description |
---|---|---|
int | index | |
CancellationToken | cancellationToken |
Returns
Type | Description |
---|---|
Task<bool> | A Task representing the asynchronous operation. If value is true, the item can be removed from the collection.. |
PauseTrackCollectionAsync(CancellationToken)
Attempts to pause the Track collection.
Declaration
public virtual Task PauseTrackCollectionAsync(CancellationToken cancellationToken = default)
Parameters
Type | Name | Description |
---|---|---|
CancellationToken | cancellationToken | A cancellation token that may be used to cancel the ongoing task. |
Returns
Type | Description |
---|---|
Task | A Task representing the asynchronous operation. |
PlayTrackCollectionAsync(ITrack, CancellationToken)
Attempts to play a specific item in the track collection. Restarts playback if already playing.
Declaration
public virtual Task PlayTrackCollectionAsync(ITrack track, CancellationToken cancellationToken = default)
Parameters
Type | Name | Description |
---|---|---|
ITrack | track | |
CancellationToken | cancellationToken |
Returns
Type | Description |
---|---|
Task | A Task representing the asynchronous operation. |
PlayTrackCollectionAsync(CancellationToken)
Attempts to play the Track collection, or resumes playback if already playing.
Declaration
public virtual Task PlayTrackCollectionAsync(CancellationToken cancellationToken = default)
Parameters
Type | Name | Description |
---|---|---|
CancellationToken | cancellationToken | A cancellation token that may be used to cancel the ongoing task. |
Returns
Type | Description |
---|---|
Task | A Task representing the asynchronous operation. |
RemoveImageAsync(int, CancellationToken)
Removes the image from the collection on the backend.
Declaration
public virtual Task RemoveImageAsync(int index, CancellationToken cancellationToken = default)
Parameters
Type | Name | Description |
---|---|---|
int | index | The index of the image to remove. |
CancellationToken | cancellationToken | A cancellation token that may be used to cancel the ongoing task. |
Returns
Type | Description |
---|---|
Task | A Task representing the asynchronous operation. |
RemoveTrackAsync(int, CancellationToken)
Removes the track from the collection on the backend.
Declaration
public virtual Task RemoveTrackAsync(int index, CancellationToken cancellationToken = default)
Parameters
Type | Name | Description |
---|---|---|
int | index | The index of the track to remove. |
CancellationToken | cancellationToken | A cancellation token that may be used to cancel the ongoing task. |
Returns
Type | Description |
---|---|
Task | A Task representing the asynchronous operation. |
RemoveUrlAsync(int, CancellationToken)
Removes a url from the collection.
Declaration
public virtual Task RemoveUrlAsync(int index, CancellationToken cancellationToken = default)
Parameters
Type | Name | Description |
---|---|---|
int | index | the position remove the url from. |
CancellationToken | cancellationToken | A cancellation token that may be used to cancel the ongoing task. |
Returns
Type | Description |
---|---|
Task | A Task representing the asynchronous operation. |
StartDownloadOperationAsync(DownloadOperation, CancellationToken)
Begins a download operation for this playable item.
Declaration
public virtual Task StartDownloadOperationAsync(DownloadOperation operation, CancellationToken cancellationToken = default)
Parameters
Type | Name | Description |
---|---|---|
DownloadOperation | operation | |
CancellationToken | cancellationToken |
Returns
Type | Description |
---|---|
Task | A Task that represents the asynchronous operation. |
Events
| Improve this Doc View SourceDescriptionChanged
Raised when Description changes.
Declaration
public virtual event EventHandler<string?>? DescriptionChanged
Event Type
Type | Description |
---|---|
EventHandler<string> |
DownloadInfoChanged
Raised when DownloadInfo is updated.
Declaration
public virtual event EventHandler<DownloadInfo>? DownloadInfoChanged
Event Type
Type | Description |
---|---|
EventHandler<DownloadInfo> |
DurationChanged
Raised when Duration changes;
Declaration
public virtual event EventHandler<TimeSpan>? DurationChanged
Event Type
Type | Description |
---|---|
EventHandler<TimeSpan> |
ImagesChanged
Fires when the items are changed.
Declaration
public virtual event CollectionChangedEventHandler<IImage>? ImagesChanged
Event Type
Type | Description |
---|---|
CollectionChangedEventHandler<IImage> |
ImagesCountChanged
Fires when the merged number of images in the collection changes.
Declaration
public virtual event EventHandler<int>? ImagesCountChanged
Event Type
Type | Description |
---|---|
EventHandler<int> |
IsChangeDescriptionAsyncAvailableChanged
Raised when IsChangeDescriptionAsyncAvailable changes.
Declaration
public virtual event EventHandler<bool>? IsChangeDescriptionAsyncAvailableChanged
Event Type
Type | Description |
---|---|
EventHandler<bool> |
IsChangeDurationAsyncAvailableChanged
Raised when IsChangeDurationAsyncAvailable changes.
Declaration
public virtual event EventHandler<bool>? IsChangeDurationAsyncAvailableChanged
Event Type
Type | Description |
---|---|
EventHandler<bool> |
IsChangeNameAsyncAvailableChanged
Raised when IsChangeNameAsyncAvailable changes.
Declaration
public virtual event EventHandler<bool>? IsChangeNameAsyncAvailableChanged
Event Type
Type | Description |
---|---|
EventHandler<bool> |
IsPauseTrackCollectionAsyncAvailableChanged
Raised when IsPauseTrackCollectionAsyncAvailable changes.
Declaration
public virtual event EventHandler<bool>? IsPauseTrackCollectionAsyncAvailableChanged
Event Type
Type | Description |
---|---|
EventHandler<bool> |
IsPlayTrackCollectionAsyncAvailableChanged
Raised when IsPlayTrackCollectionAsyncAvailable changes.
Declaration
public virtual event EventHandler<bool>? IsPlayTrackCollectionAsyncAvailableChanged
Event Type
Type | Description |
---|---|
EventHandler<bool> |
LastPlayedChanged
Raised when LastPlayed changes.
Declaration
public virtual event EventHandler<DateTime?>? LastPlayedChanged
Event Type
Type | Description |
---|---|
EventHandler<DateTime?> |
NameChanged
Raised when Name changes.
Declaration
public virtual event EventHandler<string>? NameChanged
Event Type
Type | Description |
---|---|
EventHandler<string> |
PlaybackStateChanged
Raised when PlaybackState changes.
Declaration
public virtual event EventHandler<PlaybackState>? PlaybackStateChanged
Event Type
Type | Description |
---|---|
EventHandler<PlaybackState> |
SourcesChanged
Raised when any of the sources have changed.
Declaration
public event EventHandler? SourcesChanged
Event Type
Type | Description |
---|---|
EventHandler |
TracksChanged
Fires when the items in the backend are changed by something external.
Declaration
public virtual event CollectionChangedEventHandler<ITrack>? TracksChanged
Event Type
Type | Description |
---|---|
CollectionChangedEventHandler<ITrack> |
TracksCountChanged
Fires when the merged TotalTrackCount changes.
Declaration
public virtual event EventHandler<int>? TracksCountChanged
Event Type
Type | Description |
---|---|
EventHandler<int> |
UrlsChanged
Fires when the urls are changed.
Declaration
public virtual event CollectionChangedEventHandler<IUrl>? UrlsChanged
Event Type
Type | Description |
---|---|
CollectionChangedEventHandler<IUrl> |
UrlsCountChanged
Fires when the merged number of urls in the collection changes.
Declaration
public virtual event EventHandler<int>? UrlsCountChanged
Event Type
Type | Description |
---|---|
EventHandler<int> |