ryanlink 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +37 -0
- package/README.md +455 -0
- package/dist/index.d.mts +1335 -0
- package/dist/index.d.ts +1335 -0
- package/dist/index.js +4694 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +4604 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +82 -0
- package/src/audio/AudioFilters.ts +316 -0
- package/src/audio/AudioQueue.ts +782 -0
- package/src/audio/AudioTrack.ts +242 -0
- package/src/audio/QueueController.ts +252 -0
- package/src/audio/TrackCollection.ts +138 -0
- package/src/audio/index.ts +9 -0
- package/src/config/defaults.ts +223 -0
- package/src/config/endpoints.ts +99 -0
- package/src/config/index.ts +9 -0
- package/src/config/patterns.ts +55 -0
- package/src/config/presets.ts +400 -0
- package/src/config/symbols.ts +31 -0
- package/src/core/PluginSystem.ts +50 -0
- package/src/core/RyanlinkPlayer.ts +403 -0
- package/src/core/index.ts +6 -0
- package/src/extensions/AutoplayExtension.ts +283 -0
- package/src/extensions/FairPlayExtension.ts +154 -0
- package/src/extensions/LyricsExtension.ts +187 -0
- package/src/extensions/PersistenceExtension.ts +182 -0
- package/src/extensions/SponsorBlockExtension.ts +81 -0
- package/src/extensions/index.ts +9 -0
- package/src/index.ts +19 -0
- package/src/lavalink/ConnectionPool.ts +326 -0
- package/src/lavalink/HttpClient.ts +316 -0
- package/src/lavalink/LavalinkConnection.ts +409 -0
- package/src/lavalink/index.ts +7 -0
- package/src/metadata.ts +88 -0
- package/src/types/api/Rest.ts +949 -0
- package/src/types/api/Websocket.ts +463 -0
- package/src/types/api/index.ts +6 -0
- package/src/types/audio/FilterManager.ts +29 -0
- package/src/types/audio/Queue.ts +4 -0
- package/src/types/audio/QueueManager.ts +30 -0
- package/src/types/audio/index.ts +7 -0
- package/src/types/common.ts +63 -0
- package/src/types/core/Player.ts +322 -0
- package/src/types/core/index.ts +5 -0
- package/src/types/index.ts +6 -0
- package/src/types/lavalink/Node.ts +173 -0
- package/src/types/lavalink/NodeManager.ts +34 -0
- package/src/types/lavalink/REST.ts +144 -0
- package/src/types/lavalink/index.ts +32 -0
- package/src/types/voice/VoiceManager.ts +176 -0
- package/src/types/voice/index.ts +5 -0
- package/src/utils/helpers.ts +169 -0
- package/src/utils/index.ts +6 -0
- package/src/utils/validators.ts +184 -0
- package/src/voice/RegionSelector.ts +184 -0
- package/src/voice/VoiceConnection.ts +451 -0
- package/src/voice/VoiceSession.ts +297 -0
- package/src/voice/index.ts +7 -0
|
@@ -0,0 +1,400 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Professional Equalizer Presets for Ryanlink v2
|
|
3
|
+
* All presets use 15-band equalizer configuration
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export interface EQBand {
|
|
7
|
+
band: number;
|
|
8
|
+
gain: number;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const EQPresets = {
|
|
12
|
+
/** A Bassboost Equalizer, so high it distorts the audio */
|
|
13
|
+
BassboostEarrape: [
|
|
14
|
+
{ band: 0, gain: 0.6 * 0.375 },
|
|
15
|
+
{ band: 1, gain: 0.67 * 0.375 },
|
|
16
|
+
{ band: 2, gain: 0.67 * 0.375 },
|
|
17
|
+
{ band: 3, gain: 0.4 * 0.375 },
|
|
18
|
+
{ band: 4, gain: -0.5 * 0.375 },
|
|
19
|
+
{ band: 5, gain: 0.15 * 0.375 },
|
|
20
|
+
{ band: 6, gain: -0.45 * 0.375 },
|
|
21
|
+
{ band: 7, gain: 0.23 * 0.375 },
|
|
22
|
+
{ band: 8, gain: 0.35 * 0.375 },
|
|
23
|
+
{ band: 9, gain: 0.45 * 0.375 },
|
|
24
|
+
{ band: 10, gain: 0.55 * 0.375 },
|
|
25
|
+
{ band: 11, gain: -0.6 * 0.375 },
|
|
26
|
+
{ band: 12, gain: 0.55 * 0.375 },
|
|
27
|
+
{ band: 13, gain: -0.5 * 0.375 },
|
|
28
|
+
{ band: 14, gain: -0.75 * 0.375 },
|
|
29
|
+
] as EQBand[],
|
|
30
|
+
|
|
31
|
+
/** A High and decent Bassboost Equalizer */
|
|
32
|
+
BassboostHigh: [
|
|
33
|
+
{ band: 0, gain: 0.6 * 0.25 },
|
|
34
|
+
{ band: 1, gain: 0.67 * 0.25 },
|
|
35
|
+
{ band: 2, gain: 0.67 * 0.25 },
|
|
36
|
+
{ band: 3, gain: 0.4 * 0.25 },
|
|
37
|
+
{ band: 4, gain: -0.5 * 0.25 },
|
|
38
|
+
{ band: 5, gain: 0.15 * 0.25 },
|
|
39
|
+
{ band: 6, gain: -0.45 * 0.25 },
|
|
40
|
+
{ band: 7, gain: 0.23 * 0.25 },
|
|
41
|
+
{ band: 8, gain: 0.35 * 0.25 },
|
|
42
|
+
{ band: 9, gain: 0.45 * 0.25 },
|
|
43
|
+
{ band: 10, gain: 0.55 * 0.25 },
|
|
44
|
+
{ band: 11, gain: -0.6 * 0.25 },
|
|
45
|
+
{ band: 12, gain: 0.55 * 0.25 },
|
|
46
|
+
{ band: 13, gain: -0.5 * 0.25 },
|
|
47
|
+
{ band: 14, gain: -0.75 * 0.25 },
|
|
48
|
+
] as EQBand[],
|
|
49
|
+
|
|
50
|
+
/** A decent Bassboost Equalizer */
|
|
51
|
+
BassboostMedium: [
|
|
52
|
+
{ band: 0, gain: 0.6 * 0.1875 },
|
|
53
|
+
{ band: 1, gain: 0.67 * 0.1875 },
|
|
54
|
+
{ band: 2, gain: 0.67 * 0.1875 },
|
|
55
|
+
{ band: 3, gain: 0.4 * 0.1875 },
|
|
56
|
+
{ band: 4, gain: -0.5 * 0.1875 },
|
|
57
|
+
{ band: 5, gain: 0.15 * 0.1875 },
|
|
58
|
+
{ band: 6, gain: -0.45 * 0.1875 },
|
|
59
|
+
{ band: 7, gain: 0.23 * 0.1875 },
|
|
60
|
+
{ band: 8, gain: 0.35 * 0.1875 },
|
|
61
|
+
{ band: 9, gain: 0.45 * 0.1875 },
|
|
62
|
+
{ band: 10, gain: 0.55 * 0.1875 },
|
|
63
|
+
{ band: 11, gain: -0.6 * 0.1875 },
|
|
64
|
+
{ band: 12, gain: 0.55 * 0.1875 },
|
|
65
|
+
{ band: 13, gain: -0.5 * 0.1875 },
|
|
66
|
+
{ band: 14, gain: -0.75 * 0.1875 },
|
|
67
|
+
] as EQBand[],
|
|
68
|
+
|
|
69
|
+
/** A slight Bassboost Equalizer */
|
|
70
|
+
BassboostLow: [
|
|
71
|
+
{ band: 0, gain: 0.6 * 0.125 },
|
|
72
|
+
{ band: 1, gain: 0.67 * 0.125 },
|
|
73
|
+
{ band: 2, gain: 0.67 * 0.125 },
|
|
74
|
+
{ band: 3, gain: 0.4 * 0.125 },
|
|
75
|
+
{ band: 4, gain: -0.5 * 0.125 },
|
|
76
|
+
{ band: 5, gain: 0.15 * 0.125 },
|
|
77
|
+
{ band: 6, gain: -0.45 * 0.125 },
|
|
78
|
+
{ band: 7, gain: 0.23 * 0.125 },
|
|
79
|
+
{ band: 8, gain: 0.35 * 0.125 },
|
|
80
|
+
{ band: 9, gain: 0.45 * 0.125 },
|
|
81
|
+
{ band: 10, gain: 0.55 * 0.125 },
|
|
82
|
+
{ band: 11, gain: -0.6 * 0.125 },
|
|
83
|
+
{ band: 12, gain: 0.55 * 0.125 },
|
|
84
|
+
{ band: 13, gain: -0.5 * 0.125 },
|
|
85
|
+
{ band: 14, gain: -0.75 * 0.125 },
|
|
86
|
+
] as EQBand[],
|
|
87
|
+
|
|
88
|
+
/** Professional high-fidelity audio preset for clear vocals and deep bass */
|
|
89
|
+
HighQuality: [
|
|
90
|
+
{ band: 0, gain: 0.15 },
|
|
91
|
+
{ band: 1, gain: 0.1 },
|
|
92
|
+
{ band: 2, gain: 0.05 },
|
|
93
|
+
{ band: 3, gain: 0 },
|
|
94
|
+
{ band: 4, gain: 0 },
|
|
95
|
+
{ band: 5, gain: 0 },
|
|
96
|
+
{ band: 6, gain: 0 },
|
|
97
|
+
{ band: 7, gain: 0 },
|
|
98
|
+
{ band: 8, gain: 0 },
|
|
99
|
+
{ band: 9, gain: 0 },
|
|
100
|
+
{ band: 10, gain: 0.05 },
|
|
101
|
+
{ band: 11, gain: 0.1 },
|
|
102
|
+
{ band: 12, gain: 0.15 },
|
|
103
|
+
{ band: 13, gain: 0.15 },
|
|
104
|
+
{ band: 14, gain: 0.15 },
|
|
105
|
+
] as EQBand[],
|
|
106
|
+
|
|
107
|
+
/** Makes the Music slightly "better" */
|
|
108
|
+
BetterMusic: [
|
|
109
|
+
{ band: 0, gain: 0.25 },
|
|
110
|
+
{ band: 1, gain: 0.025 },
|
|
111
|
+
{ band: 2, gain: 0.0125 },
|
|
112
|
+
{ band: 3, gain: 0 },
|
|
113
|
+
{ band: 4, gain: 0 },
|
|
114
|
+
{ band: 5, gain: -0.0125 },
|
|
115
|
+
{ band: 6, gain: -0.025 },
|
|
116
|
+
{ band: 7, gain: -0.0175 },
|
|
117
|
+
{ band: 8, gain: 0 },
|
|
118
|
+
{ band: 9, gain: 0 },
|
|
119
|
+
{ band: 10, gain: 0.0125 },
|
|
120
|
+
{ band: 11, gain: 0.025 },
|
|
121
|
+
{ band: 12, gain: 0.25 },
|
|
122
|
+
{ band: 13, gain: 0.125 },
|
|
123
|
+
{ band: 14, gain: 0.125 },
|
|
124
|
+
] as EQBand[],
|
|
125
|
+
|
|
126
|
+
/** Makes the Music sound like rock music / sound rock music better */
|
|
127
|
+
Rock: [
|
|
128
|
+
{ band: 0, gain: 0.3 },
|
|
129
|
+
{ band: 1, gain: 0.25 },
|
|
130
|
+
{ band: 2, gain: 0.2 },
|
|
131
|
+
{ band: 3, gain: 0.1 },
|
|
132
|
+
{ band: 4, gain: 0.05 },
|
|
133
|
+
{ band: 5, gain: -0.05 },
|
|
134
|
+
{ band: 6, gain: -0.15 },
|
|
135
|
+
{ band: 7, gain: -0.2 },
|
|
136
|
+
{ band: 8, gain: -0.1 },
|
|
137
|
+
{ band: 9, gain: -0.05 },
|
|
138
|
+
{ band: 10, gain: 0.05 },
|
|
139
|
+
{ band: 11, gain: 0.1 },
|
|
140
|
+
{ band: 12, gain: 0.2 },
|
|
141
|
+
{ band: 13, gain: 0.25 },
|
|
142
|
+
{ band: 14, gain: 0.3 },
|
|
143
|
+
] as EQBand[],
|
|
144
|
+
|
|
145
|
+
/** Makes the Music sound like Classic music / sound Classic music better */
|
|
146
|
+
Classic: [
|
|
147
|
+
{ band: 0, gain: 0.375 },
|
|
148
|
+
{ band: 1, gain: 0.35 },
|
|
149
|
+
{ band: 2, gain: 0.125 },
|
|
150
|
+
{ band: 3, gain: 0 },
|
|
151
|
+
{ band: 4, gain: 0 },
|
|
152
|
+
{ band: 5, gain: 0.125 },
|
|
153
|
+
{ band: 6, gain: 0.55 },
|
|
154
|
+
{ band: 7, gain: 0.05 },
|
|
155
|
+
{ band: 8, gain: 0.125 },
|
|
156
|
+
{ band: 9, gain: 0.25 },
|
|
157
|
+
{ band: 10, gain: 0.2 },
|
|
158
|
+
{ band: 11, gain: 0.25 },
|
|
159
|
+
{ band: 12, gain: 0.3 },
|
|
160
|
+
{ band: 13, gain: 0.25 },
|
|
161
|
+
{ band: 14, gain: 0.3 },
|
|
162
|
+
] as EQBand[],
|
|
163
|
+
|
|
164
|
+
/** Makes the Music sound like Pop music / sound Pop music better */
|
|
165
|
+
Pop: [
|
|
166
|
+
{ band: 0, gain: 0.26 },
|
|
167
|
+
{ band: 1, gain: 0.22 },
|
|
168
|
+
{ band: 2, gain: 0.18 },
|
|
169
|
+
{ band: 3, gain: 0.12 },
|
|
170
|
+
{ band: 4, gain: 0.1 },
|
|
171
|
+
{ band: 5, gain: 0.03 },
|
|
172
|
+
{ band: 6, gain: -0.005 },
|
|
173
|
+
{ band: 7, gain: -0.01 },
|
|
174
|
+
{ band: 8, gain: -0.015 },
|
|
175
|
+
{ band: 9, gain: -0.015 },
|
|
176
|
+
{ band: 10, gain: -0.01 },
|
|
177
|
+
{ band: 11, gain: -0.005 },
|
|
178
|
+
{ band: 12, gain: 0.08 },
|
|
179
|
+
{ band: 13, gain: 0.15 },
|
|
180
|
+
{ band: 14, gain: 0.2 },
|
|
181
|
+
] as EQBand[],
|
|
182
|
+
|
|
183
|
+
/** Makes the Music sound like Electronic music / sound Electronic music better */
|
|
184
|
+
Electronic: [
|
|
185
|
+
{ band: 0, gain: 0.375 },
|
|
186
|
+
{ band: 1, gain: 0.35 },
|
|
187
|
+
{ band: 2, gain: 0.125 },
|
|
188
|
+
{ band: 3, gain: 0 },
|
|
189
|
+
{ band: 4, gain: 0 },
|
|
190
|
+
{ band: 5, gain: -0.125 },
|
|
191
|
+
{ band: 6, gain: -0.125 },
|
|
192
|
+
{ band: 7, gain: 0 },
|
|
193
|
+
{ band: 8, gain: 0.25 },
|
|
194
|
+
{ band: 9, gain: 0.125 },
|
|
195
|
+
{ band: 10, gain: 0.15 },
|
|
196
|
+
{ band: 11, gain: 0.2 },
|
|
197
|
+
{ band: 12, gain: 0.25 },
|
|
198
|
+
{ band: 13, gain: 0.35 },
|
|
199
|
+
{ band: 14, gain: 0.4 },
|
|
200
|
+
] as EQBand[],
|
|
201
|
+
|
|
202
|
+
/** Boosts all Bands slightly for louder and fuller sound */
|
|
203
|
+
FullSound: [
|
|
204
|
+
{ band: 0, gain: 0.25 },
|
|
205
|
+
{ band: 1, gain: 0.25 },
|
|
206
|
+
{ band: 2, gain: 0.25 },
|
|
207
|
+
{ band: 3, gain: 0.25 },
|
|
208
|
+
{ band: 4, gain: 0.25 },
|
|
209
|
+
{ band: 5, gain: 0.25 },
|
|
210
|
+
{ band: 6, gain: 0.25 },
|
|
211
|
+
{ band: 7, gain: 0.25 },
|
|
212
|
+
{ band: 8, gain: 0.25 },
|
|
213
|
+
{ band: 9, gain: 0.25 },
|
|
214
|
+
{ band: 10, gain: 0.25 },
|
|
215
|
+
{ band: 11, gain: 0.25 },
|
|
216
|
+
{ band: 12, gain: 0.25 },
|
|
217
|
+
{ band: 13, gain: 0.25 },
|
|
218
|
+
{ band: 14, gain: 0.25 },
|
|
219
|
+
] as EQBand[],
|
|
220
|
+
|
|
221
|
+
/** Makes the Music sound like being in a Gaming environment / sound Gaming music better */
|
|
222
|
+
Gaming: [
|
|
223
|
+
{ band: 0, gain: 0.35 },
|
|
224
|
+
{ band: 1, gain: 0.3 },
|
|
225
|
+
{ band: 2, gain: 0.25 },
|
|
226
|
+
{ band: 3, gain: 0.2 },
|
|
227
|
+
{ band: 4, gain: 0.15 },
|
|
228
|
+
{ band: 5, gain: 0.1 },
|
|
229
|
+
{ band: 6, gain: 0.075 },
|
|
230
|
+
{ band: 7, gain: 0 },
|
|
231
|
+
{ band: 8, gain: -0.05 },
|
|
232
|
+
{ band: 9, gain: 0.05 },
|
|
233
|
+
{ band: 10, gain: 0.1 },
|
|
234
|
+
{ band: 11, gain: 0.15 },
|
|
235
|
+
{ band: 12, gain: 0.25 },
|
|
236
|
+
{ band: 13, gain: 0.3 },
|
|
237
|
+
{ band: 14, gain: 0.35 },
|
|
238
|
+
] as EQBand[],
|
|
239
|
+
|
|
240
|
+
/** Nightcore preset with speed and pitch adjustments */
|
|
241
|
+
Nightcore: [
|
|
242
|
+
{ band: 0, gain: 0.2 },
|
|
243
|
+
{ band: 1, gain: 0.15 },
|
|
244
|
+
{ band: 2, gain: 0.1 },
|
|
245
|
+
{ band: 3, gain: 0.05 },
|
|
246
|
+
{ band: 4, gain: 0 },
|
|
247
|
+
{ band: 5, gain: -0.05 },
|
|
248
|
+
{ band: 6, gain: -0.1 },
|
|
249
|
+
{ band: 7, gain: -0.05 },
|
|
250
|
+
{ band: 8, gain: 0 },
|
|
251
|
+
{ band: 9, gain: 0.05 },
|
|
252
|
+
{ band: 10, gain: 0.1 },
|
|
253
|
+
{ band: 11, gain: 0.15 },
|
|
254
|
+
{ band: 12, gain: 0.2 },
|
|
255
|
+
{ band: 13, gain: 0.25 },
|
|
256
|
+
{ band: 14, gain: 0.3 },
|
|
257
|
+
] as EQBand[],
|
|
258
|
+
|
|
259
|
+
/** Vaporwave preset */
|
|
260
|
+
Vaporwave: [
|
|
261
|
+
{ band: 0, gain: 0.35 },
|
|
262
|
+
{ band: 1, gain: 0.3 },
|
|
263
|
+
{ band: 2, gain: 0.2 },
|
|
264
|
+
{ band: 3, gain: 0.1 },
|
|
265
|
+
{ band: 4, gain: 0 },
|
|
266
|
+
{ band: 5, gain: -0.05 },
|
|
267
|
+
{ band: 6, gain: -0.1 },
|
|
268
|
+
{ band: 7, gain: -0.15 },
|
|
269
|
+
{ band: 8, gain: -0.1 },
|
|
270
|
+
{ band: 9, gain: 0 },
|
|
271
|
+
{ band: 10, gain: 0.1 },
|
|
272
|
+
{ band: 11, gain: 0.15 },
|
|
273
|
+
{ band: 12, gain: 0.2 },
|
|
274
|
+
{ band: 13, gain: 0.25 },
|
|
275
|
+
{ band: 14, gain: 0.3 },
|
|
276
|
+
] as EQBand[],
|
|
277
|
+
|
|
278
|
+
/** Treble and Bass boost */
|
|
279
|
+
TrebleBass: [
|
|
280
|
+
{ band: 0, gain: 0.3 },
|
|
281
|
+
{ band: 1, gain: 0.25 },
|
|
282
|
+
{ band: 2, gain: 0.2 },
|
|
283
|
+
{ band: 3, gain: 0.1 },
|
|
284
|
+
{ band: 4, gain: 0 },
|
|
285
|
+
{ band: 5, gain: -0.05 },
|
|
286
|
+
{ band: 6, gain: -0.1 },
|
|
287
|
+
{ band: 7, gain: -0.05 },
|
|
288
|
+
{ band: 8, gain: 0 },
|
|
289
|
+
{ band: 9, gain: 0.05 },
|
|
290
|
+
{ band: 10, gain: 0.1 },
|
|
291
|
+
{ band: 11, gain: 0.15 },
|
|
292
|
+
{ band: 12, gain: 0.2 },
|
|
293
|
+
{ band: 13, gain: 0.25 },
|
|
294
|
+
{ band: 14, gain: 0.3 },
|
|
295
|
+
] as EQBand[],
|
|
296
|
+
|
|
297
|
+
/** Soft preset */
|
|
298
|
+
Soft: [
|
|
299
|
+
{ band: 0, gain: 0.1 },
|
|
300
|
+
{ band: 1, gain: 0.08 },
|
|
301
|
+
{ band: 2, gain: 0.06 },
|
|
302
|
+
{ band: 3, gain: 0.04 },
|
|
303
|
+
{ band: 4, gain: 0.02 },
|
|
304
|
+
{ band: 5, gain: 0 },
|
|
305
|
+
{ band: 6, gain: 0 },
|
|
306
|
+
{ band: 7, gain: 0 },
|
|
307
|
+
{ band: 8, gain: 0 },
|
|
308
|
+
{ band: 9, gain: 0 },
|
|
309
|
+
{ band: 10, gain: 0.02 },
|
|
310
|
+
{ band: 11, gain: 0.04 },
|
|
311
|
+
{ band: 12, gain: 0.06 },
|
|
312
|
+
{ band: 13, gain: 0.08 },
|
|
313
|
+
{ band: 14, gain: 0.1 },
|
|
314
|
+
] as EQBand[],
|
|
315
|
+
|
|
316
|
+
/** TV preset */
|
|
317
|
+
TV: [
|
|
318
|
+
{ band: 0, gain: 0.2 },
|
|
319
|
+
{ band: 1, gain: 0.25 },
|
|
320
|
+
{ band: 2, gain: 0.3 },
|
|
321
|
+
{ band: 3, gain: 0.25 },
|
|
322
|
+
{ band: 4, gain: 0.2 },
|
|
323
|
+
{ band: 5, gain: 0.1 },
|
|
324
|
+
{ band: 6, gain: 0 },
|
|
325
|
+
{ band: 7, gain: 0 },
|
|
326
|
+
{ band: 8, gain: 0.1 },
|
|
327
|
+
{ band: 9, gain: 0.15 },
|
|
328
|
+
{ band: 10, gain: 0.2 },
|
|
329
|
+
{ band: 11, gain: 0.15 },
|
|
330
|
+
{ band: 12, gain: 0.1 },
|
|
331
|
+
{ band: 13, gain: 0.05 },
|
|
332
|
+
{ band: 14, gain: 0 },
|
|
333
|
+
] as EQBand[],
|
|
334
|
+
|
|
335
|
+
/** Radio preset */
|
|
336
|
+
Radio: [
|
|
337
|
+
{ band: 0, gain: 0.15 },
|
|
338
|
+
{ band: 1, gain: 0.2 },
|
|
339
|
+
{ band: 2, gain: 0.25 },
|
|
340
|
+
{ band: 3, gain: 0.2 },
|
|
341
|
+
{ band: 4, gain: 0.15 },
|
|
342
|
+
{ band: 5, gain: 0.1 },
|
|
343
|
+
{ band: 6, gain: 0 },
|
|
344
|
+
{ band: 7, gain: 0 },
|
|
345
|
+
{ band: 8, gain: 0 },
|
|
346
|
+
{ band: 9, gain: 0.1 },
|
|
347
|
+
{ band: 10, gain: 0.15 },
|
|
348
|
+
{ band: 11, gain: 0.2 },
|
|
349
|
+
{ band: 12, gain: 0.15 },
|
|
350
|
+
{ band: 13, gain: 0.1 },
|
|
351
|
+
{ band: 14, gain: 0.05 },
|
|
352
|
+
] as EQBand[],
|
|
353
|
+
|
|
354
|
+
/** Normalization preset (all bands at 0) */
|
|
355
|
+
Normalization: [
|
|
356
|
+
{ band: 0, gain: 0 },
|
|
357
|
+
{ band: 1, gain: 0 },
|
|
358
|
+
{ band: 2, gain: 0 },
|
|
359
|
+
{ band: 3, gain: 0 },
|
|
360
|
+
{ band: 4, gain: 0 },
|
|
361
|
+
{ band: 5, gain: 0 },
|
|
362
|
+
{ band: 6, gain: 0 },
|
|
363
|
+
{ band: 7, gain: 0 },
|
|
364
|
+
{ band: 8, gain: 0 },
|
|
365
|
+
{ band: 9, gain: 0 },
|
|
366
|
+
{ band: 10, gain: 0 },
|
|
367
|
+
{ band: 11, gain: 0 },
|
|
368
|
+
{ band: 12, gain: 0 },
|
|
369
|
+
{ band: 13, gain: 0 },
|
|
370
|
+
{ band: 14, gain: 0 },
|
|
371
|
+
] as EQBand[],
|
|
372
|
+
} as const;
|
|
373
|
+
|
|
374
|
+
export type EQPresetName = keyof typeof EQPresets;
|
|
375
|
+
|
|
376
|
+
/**
|
|
377
|
+
* Get an EQ preset by name
|
|
378
|
+
* @param name The preset name
|
|
379
|
+
* @returns The EQ bands for the preset
|
|
380
|
+
*/
|
|
381
|
+
export function getEQPreset(name: EQPresetName): readonly EQBand[] {
|
|
382
|
+
return EQPresets[name];
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
/**
|
|
386
|
+
* Get all available EQ preset names
|
|
387
|
+
* @returns Array of preset names
|
|
388
|
+
*/
|
|
389
|
+
export function getEQPresetNames(): EQPresetName[] {
|
|
390
|
+
return Object.keys(EQPresets) as EQPresetName[];
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
/**
|
|
394
|
+
* Check if a preset name is valid
|
|
395
|
+
* @param name The preset name to check
|
|
396
|
+
* @returns True if the preset exists
|
|
397
|
+
*/
|
|
398
|
+
export function isValidEQPreset(name: string): name is EQPresetName {
|
|
399
|
+
return name in EQPresets;
|
|
400
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Symbol for internal lookup operations
|
|
3
|
+
* Used to access internal state without exposing public methods
|
|
4
|
+
*/
|
|
5
|
+
export const LookupSymbol = Symbol.for("lookup");
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Symbol for internal update operations
|
|
9
|
+
* Used to update internal state without exposing public methods
|
|
10
|
+
*/
|
|
11
|
+
export const UpdateSymbol = Symbol.for("update");
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Symbol for ping update handling in VoiceRegion
|
|
15
|
+
*/
|
|
16
|
+
export const OnPingUpdateSymbol = Symbol("onPingUpdate");
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Symbol for voice close handling
|
|
20
|
+
*/
|
|
21
|
+
export const OnVoiceCloseSymbol = Symbol("onVoiceClose");
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Symbol for player state update handling
|
|
25
|
+
*/
|
|
26
|
+
export const OnStateUpdateSymbol = Symbol("onStateUpdate");
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Symbol for event update handling
|
|
30
|
+
*/
|
|
31
|
+
export const OnEventUpdateSymbol = Symbol("onEventUpdate");
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { Player } from "./RyanlinkPlayer";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Abstract base class for Player plugins
|
|
5
|
+
* Plugins can extend the player functionality and add custom events
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* class MyPlugin extends PlayerPlugin<{
|
|
10
|
+
* customEvent: [data: string];
|
|
11
|
+
* }> {
|
|
12
|
+
* readonly name = "my-plugin";
|
|
13
|
+
*
|
|
14
|
+
* init(player: Player) {
|
|
15
|
+
* player.on("trackStart", () => {
|
|
16
|
+
* this.emit("customEvent", "track started");
|
|
17
|
+
* });
|
|
18
|
+
* }
|
|
19
|
+
*
|
|
20
|
+
* // Example of a toJSON method, assuming it's meant to be part of the plugin class
|
|
21
|
+
* // and not inside the player.on callback.
|
|
22
|
+
* // The instruction "Improving toJSON return type" suggests this method might exist elsewhere
|
|
23
|
+
* // or is being added.
|
|
24
|
+
* toJSON(): Record<string, unknown> {
|
|
25
|
+
* return {
|
|
26
|
+
* name: this.name,
|
|
27
|
+
* // ... other plugin properties
|
|
28
|
+
* };
|
|
29
|
+
* }
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export abstract class PlayerPlugin<EventMap extends Record<string, unknown[]> = Record<string, unknown[]>> {
|
|
34
|
+
/** Type helper for event map - not used at runtime */
|
|
35
|
+
declare protected _: EventMap;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Unique name for the plugin - must be readonly
|
|
39
|
+
* Used to identify and access the plugin from player.plugins
|
|
40
|
+
*/
|
|
41
|
+
abstract readonly name: string;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Initialize the plugin with the player instance
|
|
45
|
+
* Called once when the player is initialized
|
|
46
|
+
*
|
|
47
|
+
* @param player - The player instance to attach to
|
|
48
|
+
*/
|
|
49
|
+
abstract init(player: Player): void;
|
|
50
|
+
}
|