@9c5s/node-tcnet 0.5.1 → 0.6.0
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/dist/index.d.mts +434 -319
- package/dist/index.d.ts +434 -319
- package/dist/index.js +268 -43
- package/dist/index.mjs +244 -19
- package/package.json +10 -6
package/dist/index.d.mts
CHANGED
|
@@ -1,325 +1,440 @@
|
|
|
1
1
|
import EventEmitter from 'events';
|
|
2
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
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
read(): void;
|
|
109
|
-
write(): void;
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
3
|
+
type CuePoint = {
|
|
4
|
+
index: number;
|
|
5
|
+
type: number;
|
|
6
|
+
inTime: number;
|
|
7
|
+
outTime: number;
|
|
8
|
+
color: {
|
|
9
|
+
r: number;
|
|
10
|
+
g: number;
|
|
11
|
+
b: number;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
type CueData = {
|
|
15
|
+
loopInTime: number;
|
|
16
|
+
loopOutTime: number;
|
|
17
|
+
cues: CuePoint[];
|
|
18
|
+
};
|
|
19
|
+
type WaveformBar = {
|
|
20
|
+
level: number;
|
|
21
|
+
color: number;
|
|
22
|
+
};
|
|
23
|
+
type WaveformData = {
|
|
24
|
+
bars: WaveformBar[];
|
|
25
|
+
};
|
|
26
|
+
type BeatGridEntry = {
|
|
27
|
+
beatNumber: number;
|
|
28
|
+
beatType: number;
|
|
29
|
+
timestampMs: number;
|
|
30
|
+
};
|
|
31
|
+
type BeatGridData = {
|
|
32
|
+
entries: BeatGridEntry[];
|
|
33
|
+
};
|
|
34
|
+
type MixerChannel = {
|
|
35
|
+
sourceSelect: number;
|
|
36
|
+
audioLevel: number;
|
|
37
|
+
faderLevel: number;
|
|
38
|
+
trimLevel: number;
|
|
39
|
+
compLevel: number;
|
|
40
|
+
eqHi: number;
|
|
41
|
+
eqHiMid: number;
|
|
42
|
+
eqLowMid: number;
|
|
43
|
+
eqLow: number;
|
|
44
|
+
filterColor: number;
|
|
45
|
+
send: number;
|
|
46
|
+
cueA: number;
|
|
47
|
+
cueB: number;
|
|
48
|
+
crossfaderAssign: number;
|
|
49
|
+
};
|
|
50
|
+
type MixerData = {
|
|
51
|
+
mixerId: number;
|
|
52
|
+
mixerType: number;
|
|
53
|
+
mixerName: string;
|
|
54
|
+
masterAudioLevel: number;
|
|
55
|
+
masterFaderLevel: number;
|
|
56
|
+
masterFilter: number;
|
|
57
|
+
masterIsolatorOn: boolean;
|
|
58
|
+
masterIsolatorHi: number;
|
|
59
|
+
masterIsolatorMid: number;
|
|
60
|
+
masterIsolatorLow: number;
|
|
61
|
+
filterHpf: number;
|
|
62
|
+
filterLpf: number;
|
|
63
|
+
filterResonance: number;
|
|
64
|
+
crossFader: number;
|
|
65
|
+
crossFaderCurve: number;
|
|
66
|
+
channelFaderCurve: number;
|
|
67
|
+
beatFxOn: boolean;
|
|
68
|
+
beatFxSelect: number;
|
|
69
|
+
beatFxLevelDepth: number;
|
|
70
|
+
beatFxChannelSelect: number;
|
|
71
|
+
headphonesALevel: number;
|
|
72
|
+
headphonesBLevel: number;
|
|
73
|
+
boothLevel: number;
|
|
74
|
+
channels: MixerChannel[];
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
declare enum TCNetMessageType {
|
|
78
|
+
OptIn = 2,
|
|
79
|
+
OptOut = 3,
|
|
80
|
+
Status = 5,
|
|
81
|
+
TimeSync = 10,
|
|
82
|
+
Error = 13,
|
|
83
|
+
Request = 20,
|
|
84
|
+
ApplicationData = 30,
|
|
85
|
+
Control = 101,
|
|
86
|
+
Text = 128,
|
|
87
|
+
Keyboard = 132,
|
|
88
|
+
Data = 200,
|
|
89
|
+
File = 204,
|
|
90
|
+
Time = 254
|
|
91
|
+
}
|
|
92
|
+
declare enum TCNetDataPacketType {
|
|
93
|
+
MetricsData = 2,
|
|
94
|
+
MetaData = 4,
|
|
95
|
+
BeatGridData = 8,
|
|
96
|
+
CUEData = 12,
|
|
97
|
+
SmallWaveFormData = 16,
|
|
98
|
+
BigWaveFormData = 32,
|
|
99
|
+
MixerData = 150
|
|
100
|
+
}
|
|
101
|
+
declare enum NodeType {
|
|
102
|
+
Auto = 1,
|
|
103
|
+
Master = 2,
|
|
104
|
+
Slave = 4,
|
|
105
|
+
Repeater = 8
|
|
106
|
+
}
|
|
107
|
+
interface TCNetReaderWriter {
|
|
108
|
+
read(): void;
|
|
109
|
+
write(): void;
|
|
110
|
+
}
|
|
111
|
+
declare abstract class TCNetPacket implements TCNetReaderWriter {
|
|
112
|
+
buffer: Buffer;
|
|
113
|
+
header: TCNetManagementHeader;
|
|
114
|
+
abstract read(): void;
|
|
115
|
+
abstract write(): void;
|
|
116
|
+
abstract length(): number;
|
|
117
|
+
abstract type(): number;
|
|
118
|
+
}
|
|
119
|
+
declare class TCNetManagementHeader implements TCNetReaderWriter {
|
|
120
|
+
static MAJOR_VERSION: number;
|
|
121
|
+
static MAGIC_HEADER: string;
|
|
122
|
+
buffer: Buffer;
|
|
123
|
+
nodeId: number;
|
|
124
|
+
minorVersion: number;
|
|
125
|
+
messageType: TCNetMessageType;
|
|
126
|
+
nodeName: string;
|
|
127
|
+
seq: number;
|
|
128
|
+
nodeType: number;
|
|
129
|
+
nodeOptions: number;
|
|
130
|
+
timestamp: number;
|
|
131
|
+
constructor(buffer: Buffer);
|
|
132
|
+
read(): void;
|
|
133
|
+
write(): void;
|
|
134
|
+
}
|
|
135
|
+
declare class TCNetOptInPacket extends TCNetPacket {
|
|
136
|
+
nodeCount: number;
|
|
137
|
+
nodeListenerPort: number;
|
|
138
|
+
uptime: number;
|
|
139
|
+
vendorName: string;
|
|
140
|
+
appName: string;
|
|
141
|
+
majorVersion: number;
|
|
142
|
+
minorVersion: number;
|
|
143
|
+
bugVersion: number;
|
|
144
|
+
read(): void;
|
|
145
|
+
write(): void;
|
|
146
|
+
length(): number;
|
|
147
|
+
type(): number;
|
|
148
|
+
}
|
|
149
|
+
declare class TCNetOptOutPacket extends TCNetPacket {
|
|
150
|
+
nodeCount: number;
|
|
151
|
+
nodeListenerPort: number;
|
|
152
|
+
read(): void;
|
|
153
|
+
write(): void;
|
|
154
|
+
length(): number;
|
|
155
|
+
type(): number;
|
|
156
|
+
}
|
|
157
|
+
declare enum TCNetLayerStatus {
|
|
158
|
+
IDLE = 0,
|
|
159
|
+
PLAYING = 3,
|
|
160
|
+
LOOPING = 4,
|
|
161
|
+
PAUSED = 5,
|
|
162
|
+
STOPPED = 6,
|
|
163
|
+
CUEDOWN = 7,
|
|
164
|
+
PLATTERDOWN = 8,
|
|
165
|
+
FFWD = 9,
|
|
166
|
+
FFRV = 10,
|
|
167
|
+
HOLD = 11
|
|
168
|
+
}
|
|
169
|
+
declare class TCNetStatusPacket extends TCNetPacket {
|
|
170
|
+
data: null | {
|
|
171
|
+
nodeCount: number;
|
|
172
|
+
nodeListenerPort: number;
|
|
173
|
+
smpteMode: number;
|
|
174
|
+
autoMasterMode: number;
|
|
175
|
+
};
|
|
176
|
+
layers: Array<{
|
|
177
|
+
source: number;
|
|
178
|
+
status: TCNetLayerStatus;
|
|
179
|
+
trackID: number;
|
|
180
|
+
name: string;
|
|
181
|
+
}>;
|
|
182
|
+
read(): void;
|
|
183
|
+
write(): void;
|
|
184
|
+
length(): number;
|
|
185
|
+
type(): number;
|
|
186
|
+
}
|
|
187
|
+
declare class TCNetRequestPacket extends TCNetPacket {
|
|
188
|
+
dataType: number;
|
|
189
|
+
layer: number;
|
|
190
|
+
read(): void;
|
|
191
|
+
write(): void;
|
|
192
|
+
length(): number;
|
|
193
|
+
type(): number;
|
|
194
|
+
}
|
|
195
|
+
declare enum TCNetTimecodeState {
|
|
196
|
+
Stopped = 0,
|
|
197
|
+
Running = 1,
|
|
198
|
+
ForceReSync = 2
|
|
199
|
+
}
|
|
200
|
+
declare class TCNetTimecode {
|
|
201
|
+
mode: number;
|
|
202
|
+
state: TCNetTimecodeState;
|
|
203
|
+
hours: number;
|
|
204
|
+
minutes: number;
|
|
205
|
+
seconds: number;
|
|
206
|
+
frames: number;
|
|
207
|
+
read(buffer: Buffer, offset: number): void;
|
|
208
|
+
}
|
|
209
|
+
type TCNetTimePacketLayer = {
|
|
210
|
+
currentTimeMillis: number;
|
|
211
|
+
totalTimeMillis: number;
|
|
212
|
+
beatMarker: number;
|
|
213
|
+
state: TCNetLayerStatus;
|
|
214
|
+
onAir: number;
|
|
215
|
+
};
|
|
216
|
+
declare class TCNetTimePacket extends TCNetPacket {
|
|
217
|
+
private _layers;
|
|
218
|
+
private _generalSMPTEMode;
|
|
219
|
+
read(): void;
|
|
220
|
+
write(): void;
|
|
221
|
+
length(): number;
|
|
222
|
+
type(): number;
|
|
223
|
+
get layers(): TCNetTimePacketLayer[];
|
|
224
|
+
get generalSMPTEMode(): number;
|
|
225
|
+
}
|
|
226
|
+
declare class TCNetDataPacket extends TCNetPacket {
|
|
227
|
+
dataType: TCNetDataPacketType;
|
|
228
|
+
/**
|
|
229
|
+
* 0-indexed layer ID (0-7)
|
|
230
|
+
*/
|
|
231
|
+
layer: number;
|
|
232
|
+
read(): void;
|
|
233
|
+
write(): void;
|
|
234
|
+
length(): number;
|
|
235
|
+
type(): number;
|
|
236
|
+
}
|
|
237
|
+
declare enum TCNetLayerSyncMaster {
|
|
238
|
+
Slave = 0,
|
|
239
|
+
Master = 1
|
|
240
|
+
}
|
|
241
|
+
declare class TCNetDataPacketMetrics extends TCNetDataPacket {
|
|
242
|
+
data: {
|
|
243
|
+
state: TCNetLayerStatus;
|
|
244
|
+
syncMaster: TCNetLayerSyncMaster;
|
|
245
|
+
beatMarker: number;
|
|
246
|
+
trackLength: number;
|
|
247
|
+
currentPosition: number;
|
|
248
|
+
speed: number;
|
|
249
|
+
beatNumber: number;
|
|
250
|
+
bpm: number;
|
|
251
|
+
pitchBend: number;
|
|
252
|
+
trackID: number;
|
|
253
|
+
} | null;
|
|
254
|
+
read(): void;
|
|
255
|
+
write(): void;
|
|
256
|
+
length(): number;
|
|
257
|
+
}
|
|
258
|
+
declare class TCNetDataPacketMetadata extends TCNetDataPacket {
|
|
259
|
+
info: {
|
|
260
|
+
trackArtist: string;
|
|
261
|
+
trackTitle: string;
|
|
262
|
+
trackKey: number;
|
|
263
|
+
trackID: number;
|
|
264
|
+
} | null;
|
|
265
|
+
read(): void;
|
|
266
|
+
write(): void;
|
|
267
|
+
length(): number;
|
|
268
|
+
}
|
|
269
|
+
declare class TCNetDataPacketCUE extends TCNetDataPacket {
|
|
270
|
+
data: CueData | null;
|
|
271
|
+
read(): void;
|
|
272
|
+
write(): void;
|
|
273
|
+
length(): number;
|
|
274
|
+
}
|
|
275
|
+
declare class TCNetDataPacketSmallWaveForm extends TCNetDataPacket {
|
|
276
|
+
data: WaveformData | null;
|
|
277
|
+
read(): void;
|
|
278
|
+
write(): void;
|
|
279
|
+
length(): number;
|
|
280
|
+
}
|
|
281
|
+
declare class TCNetDataPacketMixer extends TCNetDataPacket {
|
|
282
|
+
data: MixerData | null;
|
|
283
|
+
read(): void;
|
|
284
|
+
write(): void;
|
|
285
|
+
length(): number;
|
|
286
|
+
}
|
|
287
|
+
declare class TCNetDataPacketBeatGrid extends TCNetDataPacket {
|
|
288
|
+
data: BeatGridData | null;
|
|
289
|
+
read(): void;
|
|
290
|
+
readAssembled(assembled: Buffer): void;
|
|
291
|
+
private readFromOffset;
|
|
292
|
+
write(): void;
|
|
293
|
+
length(): number;
|
|
294
|
+
}
|
|
295
|
+
declare class TCNetDataPacketBigWaveForm extends TCNetDataPacket {
|
|
296
|
+
data: WaveformData | null;
|
|
297
|
+
read(): void;
|
|
298
|
+
readAssembled(assembled: Buffer): void;
|
|
299
|
+
write(): void;
|
|
300
|
+
length(): number;
|
|
301
|
+
}
|
|
302
|
+
interface Constructable<T> {
|
|
303
|
+
new (...args: unknown[]): T;
|
|
304
|
+
}
|
|
305
|
+
declare const TCNetPackets: Record<TCNetMessageType, Constructable<TCNetPacket> | null>;
|
|
199
306
|
declare const TCNetDataPackets: Record<TCNetDataPacketType, typeof TCNetDataPacket | null>;
|
|
200
307
|
|
|
201
|
-
type TCNetLogger = {
|
|
202
|
-
error: (error: Error) => void;
|
|
203
|
-
debug: (message: string) => void;
|
|
204
|
-
};
|
|
205
|
-
declare class TCNetConfiguration {
|
|
206
|
-
logger: TCNetLogger | null;
|
|
207
|
-
unicastPort: number;
|
|
208
|
-
applicationCode: number;
|
|
209
|
-
nodeId: number;
|
|
210
|
-
nodeName: string;
|
|
211
|
-
vendorName: string;
|
|
212
|
-
appName: string;
|
|
213
|
-
broadcastInterface: string | null;
|
|
214
|
-
broadcastAddress: string;
|
|
215
|
-
broadcastListeningAddress: string;
|
|
216
|
-
requestTimeout: number;
|
|
217
|
-
}
|
|
218
|
-
/**
|
|
219
|
-
* Low level implementation of the TCNet protocol
|
|
220
|
-
*/
|
|
221
|
-
declare class TCNetClient extends EventEmitter {
|
|
222
|
-
private config;
|
|
223
|
-
private broadcastSocket;
|
|
224
|
-
private unicastSocket;
|
|
225
|
-
private timestampSocket;
|
|
226
|
-
private server;
|
|
227
|
-
private seq;
|
|
228
|
-
private uptime;
|
|
229
|
-
private connected;
|
|
230
|
-
private connectedHandler;
|
|
231
|
-
private requests;
|
|
232
|
-
private announcementInterval;
|
|
233
|
-
/**
|
|
234
|
-
*
|
|
235
|
-
* @param config configuration for TCNet access
|
|
236
|
-
*/
|
|
237
|
-
constructor(config?: TCNetConfiguration);
|
|
238
|
-
get log(): TCNetLogger | null;
|
|
239
|
-
/**
|
|
240
|
-
* Wrapper method to bind a socket with a Promise
|
|
241
|
-
* @param socket socket to bind
|
|
242
|
-
* @param port port to bind to
|
|
243
|
-
* @param address address to bind to
|
|
244
|
-
* @returns Promise which always resolves (no errors in callback)
|
|
245
|
-
*/
|
|
246
|
-
private bindSocket;
|
|
247
|
-
/**
|
|
248
|
-
* Connect to the TCNet networks
|
|
249
|
-
*/
|
|
250
|
-
connect(): Promise<void>;
|
|
251
|
-
/**
|
|
252
|
-
* Disconnects from TCNet network
|
|
253
|
-
*/
|
|
254
|
-
disconnect(): Promise<void>;
|
|
255
|
-
/**
|
|
256
|
-
* Waiting for unicast from a master
|
|
257
|
-
*/
|
|
258
|
-
private waitConnected;
|
|
259
|
-
/**
|
|
260
|
-
* Parse a packet from a ManagementHeader
|
|
261
|
-
* @param header the received management header
|
|
262
|
-
* @returns the parsed packet
|
|
263
|
-
*/
|
|
264
|
-
private parsePacket;
|
|
265
|
-
/**
|
|
266
|
-
* Callback method to receive datagrams on the broadcast socket
|
|
267
|
-
*
|
|
268
|
-
* @param msg datagram buffer
|
|
269
|
-
* @param rinfo remoteinfo
|
|
270
|
-
*/
|
|
271
|
-
private receiveBroadcast;
|
|
272
|
-
/**
|
|
273
|
-
* Callback method to receive datagrams on the unicast socket
|
|
274
|
-
*
|
|
275
|
-
* @param msg datagram buffer
|
|
276
|
-
* @param rinfo remoteinfo
|
|
277
|
-
*/
|
|
278
|
-
private receiveUnicast;
|
|
279
|
-
/**
|
|
280
|
-
* Callback method to receive datagrams on the timestamp socket
|
|
281
|
-
* @param msg datagram buffer
|
|
282
|
-
* @param rinfo remoteinfo
|
|
283
|
-
*/
|
|
284
|
-
private receiveTimestamp;
|
|
285
|
-
/**
|
|
286
|
-
* Fill headers of a packet
|
|
287
|
-
*
|
|
288
|
-
* @param packet Packet that needs header information
|
|
289
|
-
*/
|
|
290
|
-
private fillHeader;
|
|
291
|
-
/**
|
|
292
|
-
* Generalized method to send packets to a given destination on a given socket
|
|
293
|
-
*
|
|
294
|
-
* @param packet Packet to send
|
|
295
|
-
* @param socket Socket to send on
|
|
296
|
-
* @param port Destination Port
|
|
297
|
-
* @param address Destination Address
|
|
298
|
-
*/
|
|
299
|
-
private sendPacket;
|
|
300
|
-
/**
|
|
301
|
-
* Sends a packet to the discovered server
|
|
302
|
-
* @param packet Packet to send
|
|
303
|
-
*/
|
|
304
|
-
sendServer(packet: TCNetPacket): Promise<void>;
|
|
305
|
-
/**
|
|
306
|
-
* Called every second to announce our app on the network
|
|
307
|
-
*/
|
|
308
|
-
private announceApp;
|
|
309
|
-
/**
|
|
310
|
-
* Broadcasts a packet to the network
|
|
311
|
-
*
|
|
312
|
-
* @param packet packet to broadcast
|
|
313
|
-
*/
|
|
314
|
-
broadcastPacket(packet: TCNetPacket): Promise<void>;
|
|
315
|
-
/**
|
|
316
|
-
* Sends a request packet to the discovered server
|
|
317
|
-
*
|
|
318
|
-
* @param dataType requested data type
|
|
319
|
-
* @param layer requested layer
|
|
320
|
-
* @returns Promise to wait for answer on request
|
|
321
|
-
*/
|
|
322
|
-
requestData(dataType: number, layer: number): Promise<TCNetDataPacket>;
|
|
308
|
+
type TCNetLogger = {
|
|
309
|
+
error: (error: Error) => void;
|
|
310
|
+
debug: (message: string) => void;
|
|
311
|
+
};
|
|
312
|
+
declare class TCNetConfiguration {
|
|
313
|
+
logger: TCNetLogger | null;
|
|
314
|
+
unicastPort: number;
|
|
315
|
+
applicationCode: number;
|
|
316
|
+
nodeId: number;
|
|
317
|
+
nodeName: string;
|
|
318
|
+
vendorName: string;
|
|
319
|
+
appName: string;
|
|
320
|
+
broadcastInterface: string | null;
|
|
321
|
+
broadcastAddress: string;
|
|
322
|
+
broadcastListeningAddress: string;
|
|
323
|
+
requestTimeout: number;
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Low level implementation of the TCNet protocol
|
|
327
|
+
*/
|
|
328
|
+
declare class TCNetClient extends EventEmitter {
|
|
329
|
+
private config;
|
|
330
|
+
private broadcastSocket;
|
|
331
|
+
private unicastSocket;
|
|
332
|
+
private timestampSocket;
|
|
333
|
+
private server;
|
|
334
|
+
private seq;
|
|
335
|
+
private uptime;
|
|
336
|
+
private connected;
|
|
337
|
+
private connectedHandler;
|
|
338
|
+
private requests;
|
|
339
|
+
private announcementInterval;
|
|
340
|
+
/**
|
|
341
|
+
*
|
|
342
|
+
* @param config configuration for TCNet access
|
|
343
|
+
*/
|
|
344
|
+
constructor(config?: TCNetConfiguration);
|
|
345
|
+
get log(): TCNetLogger | null;
|
|
346
|
+
/**
|
|
347
|
+
* Wrapper method to bind a socket with a Promise
|
|
348
|
+
* @param socket socket to bind
|
|
349
|
+
* @param port port to bind to
|
|
350
|
+
* @param address address to bind to
|
|
351
|
+
* @returns Promise which always resolves (no errors in callback)
|
|
352
|
+
*/
|
|
353
|
+
private bindSocket;
|
|
354
|
+
/**
|
|
355
|
+
* Connect to the TCNet networks
|
|
356
|
+
*/
|
|
357
|
+
connect(): Promise<void>;
|
|
358
|
+
/**
|
|
359
|
+
* Disconnects from TCNet network
|
|
360
|
+
*/
|
|
361
|
+
disconnect(): Promise<void>;
|
|
362
|
+
/**
|
|
363
|
+
* Waiting for unicast from a master
|
|
364
|
+
*/
|
|
365
|
+
private waitConnected;
|
|
366
|
+
/**
|
|
367
|
+
* Parse a packet from a ManagementHeader
|
|
368
|
+
* @param header the received management header
|
|
369
|
+
* @returns the parsed packet
|
|
370
|
+
*/
|
|
371
|
+
private parsePacket;
|
|
372
|
+
/**
|
|
373
|
+
* Callback method to receive datagrams on the broadcast socket
|
|
374
|
+
*
|
|
375
|
+
* @param msg datagram buffer
|
|
376
|
+
* @param rinfo remoteinfo
|
|
377
|
+
*/
|
|
378
|
+
private receiveBroadcast;
|
|
379
|
+
/**
|
|
380
|
+
* Callback method to receive datagrams on the unicast socket
|
|
381
|
+
*
|
|
382
|
+
* @param msg datagram buffer
|
|
383
|
+
* @param rinfo remoteinfo
|
|
384
|
+
*/
|
|
385
|
+
private receiveUnicast;
|
|
386
|
+
/**
|
|
387
|
+
* Callback method to receive datagrams on the timestamp socket
|
|
388
|
+
* @param msg datagram buffer
|
|
389
|
+
* @param rinfo remoteinfo
|
|
390
|
+
*/
|
|
391
|
+
private receiveTimestamp;
|
|
392
|
+
/**
|
|
393
|
+
* Fill headers of a packet
|
|
394
|
+
*
|
|
395
|
+
* @param packet Packet that needs header information
|
|
396
|
+
*/
|
|
397
|
+
private fillHeader;
|
|
398
|
+
/**
|
|
399
|
+
* Generalized method to send packets to a given destination on a given socket
|
|
400
|
+
*
|
|
401
|
+
* @param packet Packet to send
|
|
402
|
+
* @param socket Socket to send on
|
|
403
|
+
* @param port Destination Port
|
|
404
|
+
* @param address Destination Address
|
|
405
|
+
*/
|
|
406
|
+
private sendPacket;
|
|
407
|
+
/**
|
|
408
|
+
* Sends a packet to the discovered server
|
|
409
|
+
* @param packet Packet to send
|
|
410
|
+
*/
|
|
411
|
+
sendServer(packet: TCNetPacket): Promise<void>;
|
|
412
|
+
/**
|
|
413
|
+
* Called every second to announce our app on the network
|
|
414
|
+
*/
|
|
415
|
+
private announceApp;
|
|
416
|
+
/**
|
|
417
|
+
* Broadcasts a packet to the network
|
|
418
|
+
*
|
|
419
|
+
* @param packet packet to broadcast
|
|
420
|
+
*/
|
|
421
|
+
broadcastPacket(packet: TCNetPacket): Promise<void>;
|
|
422
|
+
/**
|
|
423
|
+
* Sends a request packet to the discovered server
|
|
424
|
+
*
|
|
425
|
+
* @param dataType requested data type
|
|
426
|
+
* @param layer requested layer
|
|
427
|
+
* @returns Promise to wait for answer on request
|
|
428
|
+
*/
|
|
429
|
+
requestData(dataType: number, layer: number): Promise<TCNetDataPacket>;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
declare class MultiPacketAssembler {
|
|
433
|
+
private packets;
|
|
434
|
+
private totalPackets;
|
|
435
|
+
add(buffer: Buffer): boolean;
|
|
436
|
+
assemble(): Buffer;
|
|
437
|
+
reset(): void;
|
|
323
438
|
}
|
|
324
439
|
|
|
325
|
-
export { type Constructable, NodeType, TCNetClient, TCNetConfiguration, TCNetDataPacket, TCNetDataPacketMetadata, TCNetDataPacketMetrics, TCNetDataPacketType, TCNetDataPackets, TCNetLayerStatus, TCNetLayerSyncMaster, TCNetManagementHeader, TCNetMessageType, TCNetOptInPacket, TCNetOptOutPacket, TCNetPacket, TCNetPackets, TCNetRequestPacket, TCNetStatusPacket, TCNetTimePacket, type TCNetTimePacketLayer, TCNetTimecode, TCNetTimecodeState };
|
|
440
|
+
export { type BeatGridData, type BeatGridEntry, type Constructable, type CueData, type CuePoint, type MixerChannel, type MixerData, MultiPacketAssembler, NodeType, TCNetClient, TCNetConfiguration, TCNetDataPacket, TCNetDataPacketBeatGrid, TCNetDataPacketBigWaveForm, TCNetDataPacketCUE, TCNetDataPacketMetadata, TCNetDataPacketMetrics, TCNetDataPacketMixer, TCNetDataPacketSmallWaveForm, TCNetDataPacketType, TCNetDataPackets, TCNetLayerStatus, TCNetLayerSyncMaster, TCNetManagementHeader, TCNetMessageType, TCNetOptInPacket, TCNetOptOutPacket, TCNetPacket, TCNetPackets, TCNetRequestPacket, TCNetStatusPacket, TCNetTimePacket, type TCNetTimePacketLayer, TCNetTimecode, TCNetTimecodeState, type WaveformBar, type WaveformData };
|