@aigamo/hydrangean-diva
Version:
An open-source online media player that can be deployed to and hosted on GitHub pages.
47 lines (46 loc) • 2.07 kB
TypeScript
import { IPlayQueueItemStore } from './IPlayQueueItemStore';
import { PlayQueueDto } from './PlayQueueDto';
import { PlayQueueItemDto } from './PlayQueueItemDto';
import { IStateStore } from '@aigamo/route-sphere';
export interface IPlayQueueStore {
readonly interacted: boolean;
readonly localStorageState: IStateStore<PlayQueueDto>;
readonly items: IPlayQueueItemStore[];
createItemFromDto(dto: PlayQueueItemDto): IPlayQueueItemStore;
readonly isEmpty: boolean;
readonly canClear: boolean;
readonly currentItem: IPlayQueueItemStore | undefined;
readonly canPlay: boolean;
readonly canPause: boolean;
readonly hasMultipleItems: boolean;
readonly currentIndex: number | undefined;
readonly hasPreviousItem: boolean;
readonly hasNextItem: boolean;
readonly isLastItem: boolean;
readonly selectedItems: IPlayQueueItemStore[];
readonly allItemsSelected: boolean;
readonly selectedItemsOrAllItems: IPlayQueueItemStore[];
readonly canAddSelectedItems: boolean;
readonly canPlaySelectedItemsNext: boolean;
readonly canRemoveSelectedItems: boolean;
setItems(value: IPlayQueueItemStore[]): void;
clear(): void;
unselectAll(): void;
selectAll(): void;
setCurrentItem(item: IPlayQueueItemStore | undefined): void;
clearAndSetItems(items: IPlayQueueItemStore[]): void;
playNext(items: IPlayQueueItemStore[]): Promise<void>;
playSelectedItemsNext(): Promise<void>;
addItems(items: IPlayQueueItemStore[]): Promise<void>;
addSelectedItems(): Promise<void>;
playFirst(items: IPlayQueueItemStore[]): Promise<void>;
moveItem(item: IPlayQueueItemStore, index: number): void;
goToFirst(): Promise<void>;
removeItems(items: IPlayQueueItemStore[]): Promise<void>;
removeSelectedItems(): Promise<void>;
removeItemsAbove(item: IPlayQueueItemStore): Promise<void>;
removeOtherItems(item: IPlayQueueItemStore): Promise<void>;
previous(): Promise<void>;
next(): Promise<void>;
addItemFromDto(dto: PlayQueueItemDto): Promise<void>;
}