TeaWeb/shared/js/video-viewer/Definitions.ts

95 lines
1.8 KiB
TypeScript

export interface PlayerStatusPlaying {
status: "playing";
timestampPlay: number;
timestampBuffer: number;
}
export interface PlayerStatusBuffering {
status: "buffering";
}
export interface PlayerStatusStopped {
status: "stopped";
}
export interface PlayerStatusPaused {
status: "paused";
}
export type PlayerStatus = PlayerStatusPlaying | PlayerStatusBuffering | PlayerStatusStopped | PlayerStatusPaused;
export interface VideoViewerEvents {
"action_toggle_side_bar": { shown: boolean },
"action_follow": { watcherId: string | undefined },
/* will trigger notify_watcher_info */
"query_watcher_info": {
watcherId: string
},
/* will trigger notify_watcher_status */
"query_watcher_status": {
watcherId: string
},
"query_followers": {
watcherId: string
},
"query_watchers": {},
"query_video": {},
"notify_show": {},
"notify_destroy": {},
"notify_watcher_list": {
watcherIds: string[],
followingWatcher: string | undefined
},
"notify_watcher_status": {
watcherId: string,
status: PlayerStatus
}
"notify_watcher_info": {
watcherId: string,
clientId: number,
clientUniqueId: string,
clientName: string,
isOwnClient: boolean
}
"notify_follower_list": {
watcherId: string,
followerIds: string[]
},
"notify_follower_added": {
watcherId: string,
followerId: string
},
"notify_follower_removed": {
watcherId: string,
followerId: string
},
"notify_following": {
watcherId: string | undefined
},
"notify_following_status": {
status: PlayerStatus
}
"notify_local_status": {
status: PlayerStatus
},
"notify_video": { url: string }
}