Class PlaylistCollectionPluginBase
An implementation of IPlaylistCollection 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 PlaylistCollectionPluginBase : IModelPlugin, IPlaylistCollection, IPlaylistCollectionBase, IPlaylistCollectionItem, IPlaylistCollectionItemBase, IPlayableCollectionItem, ICollectionItemBase, IMerged<ICorePlaylistCollectionItem>, IEquatable<ICorePlaylistCollectionItem>, IPlayable, IPlayableBase, IDownloadable, IImageCollection, IImageCollectionBase, IMerged<ICoreImageCollection>, IEquatable<ICoreImageCollection>, IUrlCollection, IUrlCollectionBase, ICollectionBase, IMerged<ICoreUrlCollection>, IEquatable<ICoreUrlCollection>, IAppModel, IMerged<ICorePlaylistCollection>, IEquatable<ICorePlaylistCollection>, IMerged, IDelegatable<IPlaylistCollection>
Constructors
| Improve this Doc View SourcePlaylistCollectionPluginBase(ModelPluginMetadata, IPlaylistCollection)
Creates a new instance of PlaylistCollectionPluginBase.
Declaration
protected PlaylistCollectionPluginBase(ModelPluginMetadata registration, IPlaylistCollection inner)
Parameters
Type | Name | Description |
---|---|---|
ModelPluginMetadata | registration | Metadata about the plugin which was provided during registration. |
IPlaylistCollection | 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 IPlaylistCollection Inner { get; set; }
Property Value
Type | Description |
---|---|
IPlaylistCollection |
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 |
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 |
IsPausePlaylistCollectionAsyncAvailable
If true, PausePlaylistCollectionAsync(CancellationToken) can be used.
Declaration
public virtual bool IsPausePlaylistCollectionAsyncAvailable { get; }
Property Value
Type | Description |
---|---|
bool |
IsPlayPlaylistCollectionAsyncAvailable
If true, PlayPlaylistCollectionAsync(CancellationToken) can be used.
Declaration
public virtual bool IsPlayPlaylistCollectionAsyncAvailable { 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 |
PlaybackState
Current playback state.
Declaration
public virtual PlaybackState PlaybackState { get; }
Property Value
Type | Description |
---|---|
PlaybackState |
TotalImageCount
The total number of images in the collection.
Declaration
public virtual int TotalImageCount { get; }
Property Value
Type | Description |
---|---|
int |
TotalPlaylistItemsCount
The total number of available Playlists.
Declaration
public virtual int TotalPlaylistItemsCount { 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. |
AddPlaylistItemAsync(IPlaylistCollectionItem, int, CancellationToken)
Adds an IPlaylist or IPlaylistCollection to this playlist collection.
Declaration
public virtual Task AddPlaylistItemAsync(IPlaylistCollectionItem playlistItem, int index, CancellationToken cancellationToken = default)
Parameters
Type | Name | Description |
---|---|---|
IPlaylistCollectionItem | playlistItem | The playlistItem to add. |
int | index | the position to insert the playlistItem 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(ICorePlaylistCollection?)
Declaration
public virtual bool Equals(ICorePlaylistCollection? other)
Parameters
Type | Name | Description |
---|---|---|
ICorePlaylistCollection | 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(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. |
GetPlaylistItemsAsync(int, int, CancellationToken)
Gets a requested number of IPlaylistCollectionItemBases starting at the given offset.
Declaration
public virtual IAsyncEnumerable<IPlaylistCollectionItem> GetPlaylistItemsAsync(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<IPlaylistCollectionItem> | 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. |
IsAddPlaylistItemAvailableAsync(int, CancellationToken)
Checks if the backend supports adding an IPlaylistCollectionItemBase at a specific index.
Declaration
public virtual Task<bool> IsAddPlaylistItemAvailableAsync(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 IPlaylistCollectionItemBase 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. |
IsRemovePlaylistItemAvailableAsync(int, CancellationToken)
Checks if the backend supports removing an IPlaylistCollectionItemBase at a specific index.
Declaration
public virtual Task<bool> IsRemovePlaylistItemAvailableAsync(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 IPlaylistCollectionItemBase 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.. |
PausePlaylistCollectionAsync(CancellationToken)
Attempts to pause the Playlist collection.
Declaration
public virtual Task PausePlaylistCollectionAsync(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. |
PlayPlaylistCollectionAsync(IPlaylistCollectionItem, CancellationToken)
Attempts to play a specific item in the playlistItem collection. Restarts playback if already playing.
Declaration
public virtual Task PlayPlaylistCollectionAsync(IPlaylistCollectionItem playlistItem, CancellationToken cancellationToken = default)
Parameters
Type | Name | Description |
---|---|---|
IPlaylistCollectionItem | playlistItem | |
CancellationToken | cancellationToken |
Returns
Type | Description |
---|---|
Task | A Task representing the asynchronous operation. |
PlayPlaylistCollectionAsync(CancellationToken)
Attempts to play the Playlist collection, or resumes playback if already playing.
Declaration
public virtual Task PlayPlaylistCollectionAsync(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. |
RemovePlaylistItemAsync(int, CancellationToken)
Removes the playlist from the collection on the backend.
Declaration
public virtual Task RemovePlaylistItemAsync(int index, CancellationToken cancellationToken = default)
Parameters
Type | Name | Description |
---|---|---|
int | index | The index of the playlist 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> |
IsPausePlaylistCollectionAsyncAvailableChanged
Raised when IsPausePlaylistCollectionAsyncAvailable changes.
Declaration
public virtual event EventHandler<bool>? IsPausePlaylistCollectionAsyncAvailableChanged
Event Type
Type | Description |
---|---|
EventHandler<bool> |
IsPlayPlaylistCollectionAsyncAvailableChanged
Raised when IsPlayPlaylistCollectionAsyncAvailable changes.
Declaration
public virtual event EventHandler<bool>? IsPlayPlaylistCollectionAsyncAvailableChanged
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> |
PlaylistItemsChanged
Fires when the items in the backend are changed by something external.
Declaration
public virtual event CollectionChangedEventHandler<IPlaylistCollectionItem>? PlaylistItemsChanged
Event Type
Type | Description |
---|---|
CollectionChangedEventHandler<IPlaylistCollectionItem> |
PlaylistItemsCountChanged
Fires when the merged TotalPlaylistItemsCount changes.
Declaration
public virtual event EventHandler<int>? PlaylistItemsCountChanged
Event Type
Type | Description |
---|---|
EventHandler<int> |
SourcesChanged
Raised when any of the sources have changed.
Declaration
public event EventHandler? SourcesChanged
Event Type
Type | Description |
---|---|
EventHandler |
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> |