forked from Deseteral/lebkuchen-fm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
events.ts
82 lines (69 loc) · 1.54 KB
/
events.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import { PlayerState } from '@service/domain/player-state/player-state';
import { Song } from '@service/domain/songs/song';
export interface PlayerStateUpdateEvent {
id: 'PlayerStateUpdateEvent',
state: PlayerState,
}
export interface PlayerStateRequestEvent {
id: 'PlayerStateRequestEvent',
}
export interface AddSongsToQueueEvent {
id: 'AddSongsToQueueEvent',
songs: Song[],
}
export interface ReplaceQueueEvent {
id: 'ReplaceQueueEvent',
songs: Song[],
}
export interface PlayXSoundEvent {
id: 'PlayXSoundEvent',
soundUrl: string,
}
export interface SayEvent {
id: 'SayEvent',
text: string,
}
export interface PlayerResumeEvent {
id: 'ResumeEvent',
}
export interface PlayerPauseEvent {
id: 'PauseEvent',
}
export interface SkipEvent {
id: 'SkipEvent',
skipAll: boolean,
amount: number,
}
export type SpeedControl = (-1 | 0 | 1);
export interface ChangeSpeedEvent {
id: 'ChangeSpeedEvent',
nextSpeed: SpeedControl,
}
export interface ChangeVolumeEvent {
id: 'ChangeVolumeEvent',
isRelative: boolean,
nextVolume: number,
}
export interface RewindEvent {
id: 'RewindEvent',
time: number,
modifier: number | null,
}
export interface ConnectedUsersEvent {
id: 'ConnectedUsersEvent',
connectedUsers: string[],
}
export type EventData =
| PlayerStateUpdateEvent
| PlayerStateRequestEvent
| AddSongsToQueueEvent
| PlayXSoundEvent
| SayEvent
| PlayerPauseEvent
| PlayerResumeEvent
| SkipEvent
| ChangeSpeedEvent
| ChangeVolumeEvent
| ReplaceQueueEvent
| RewindEvent
| ConnectedUsersEvent;