@neurodevs/node-lsl 14.0.0 → 14.1.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/build/__tests__/impl/LiblslAdapter.test.d.ts +7 -5
- package/build/__tests__/impl/LiblslAdapter.test.js +27 -10
- package/build/__tests__/impl/LiblslAdapter.test.js.map +1 -1
- package/build/__tests__/impl/LslEventMarkerOutlet.test.d.ts +1 -0
- package/build/__tests__/impl/LslEventMarkerOutlet.test.js +7 -0
- package/build/__tests__/impl/LslEventMarkerOutlet.test.js.map +1 -1
- package/build/__tests__/impl/LslStreamInfo.test.d.ts +1 -0
- package/build/__tests__/impl/LslStreamInfo.test.js +8 -1
- package/build/__tests__/impl/LslStreamInfo.test.js.map +1 -1
- package/build/__tests__/impl/LslStreamInlet.test.d.ts +1 -0
- package/build/__tests__/impl/LslStreamInlet.test.js +8 -1
- package/build/__tests__/impl/LslStreamInlet.test.js.map +1 -1
- package/build/__tests__/impl/LslStreamOutlet.test.d.ts +1 -0
- package/build/__tests__/impl/LslStreamOutlet.test.js +8 -0
- package/build/__tests__/impl/LslStreamOutlet.test.js.map +1 -1
- package/build/impl/LiblslAdapter.d.ts +8 -2
- package/build/impl/LiblslAdapter.js +10 -1
- package/build/impl/LiblslAdapter.js.map +1 -1
- package/build/impl/LslEventMarkerOutlet.d.ts +2 -0
- package/build/impl/LslEventMarkerOutlet.js +3 -0
- package/build/impl/LslEventMarkerOutlet.js.map +1 -1
- package/build/impl/LslStreamInfo.d.ts +11 -9
- package/build/impl/LslStreamInfo.js +17 -14
- package/build/impl/LslStreamInfo.js.map +1 -1
- package/build/impl/LslStreamInlet.d.ts +3 -0
- package/build/impl/LslStreamInlet.js +11 -1
- package/build/impl/LslStreamInlet.js.map +1 -1
- package/build/impl/LslStreamOutlet.d.ts +18 -17
- package/build/impl/LslStreamOutlet.js +61 -65
- package/build/impl/LslStreamOutlet.js.map +1 -1
- package/build/impl/LslWebSocketBridge.d.ts +1 -1
- package/build/impl/LslWebSocketBridge.js +2 -2
- package/build/impl/LslWebSocketBridge.js.map +1 -1
- package/build/testDoubles/Liblsl/FakeLiblsl.d.ts +3 -1
- package/build/testDoubles/Liblsl/FakeLiblsl.js +4 -0
- package/build/testDoubles/Liblsl/FakeLiblsl.js.map +1 -1
- package/build/testDoubles/StreamInfo/FakeStreamInfo.d.ts +2 -0
- package/build/testDoubles/StreamInfo/FakeStreamInfo.js +5 -0
- package/build/testDoubles/StreamInfo/FakeStreamInfo.js.map +1 -1
- package/build/testDoubles/StreamInfo/SpyStreamInfo.d.ts +1 -1
- package/build/testDoubles/StreamInfo/SpyStreamInfo.js +2 -2
- package/build/testDoubles/StreamInfo/SpyStreamInfo.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/impl/LiblslAdapter.test.ts +27 -5
- package/src/__tests__/impl/LslEventMarkerOutlet.test.ts +11 -0
- package/src/__tests__/impl/LslStreamInfo.test.ts +12 -1
- package/src/__tests__/impl/LslStreamInlet.test.ts +12 -1
- package/src/__tests__/impl/LslStreamOutlet.test.ts +12 -0
- package/src/impl/LiblslAdapter.ts +20 -4
- package/src/impl/LslEventMarkerOutlet.ts +5 -0
- package/src/impl/LslStreamInfo.ts +22 -17
- package/src/impl/LslStreamInlet.ts +14 -1
- package/src/impl/LslStreamOutlet.ts +94 -85
- package/src/impl/LslWebSocketBridge.ts +2 -2
- package/src/testDoubles/Liblsl/FakeLiblsl.ts +6 -0
- package/src/testDoubles/StreamInfo/FakeStreamInfo.ts +7 -0
- package/src/testDoubles/StreamInfo/SpyStreamInfo.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LslEventMarkerOutlet.js","sourceRoot":"","sources":["../../src/impl/LslEventMarkerOutlet.ts"],"names":[],"mappings":"AAAA,OAAO,eAGN,MAAM,sBAAsB,CAAA;AAE7B,MAAM,CAAC,OAAO,OAAO,oBAAoB;IAC9B,MAAM,CAAC,KAAK,CAA+B;IAExC,MAAM,CAAc;IACtB,SAAS,GAAG,KAAK,CAAA;IACjB,WAAW,CAAa;IACxB,OAAO,CAAM;IAErB,YAAsB,MAAoB;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAsC;QAC7D,MAAM,cAAc,GAAG;YACnB,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,SAAS;YACf,YAAY,EAAE,CAAC,SAAS,CAAC;YACzB,YAAY,EAAE,CAAC;YACf,aAAa,EAAE,QAAQ;YACvB,QAAQ,EAAE,eAAe;YACzB,YAAY,EAAE,KAAK;YACnB,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,CAAC;YACZ,aAAa,EAAE,CAAC;SACI,CAAA;QAExB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC;YACxC,GAAG,cAAc;YACjB,GAAG,OAAO;SACb,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;IAC3C,CAAC;IAEM,UAAU,CAAC,UAAkB;QAChC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAA;IACvC,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAAyB;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QAErB,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,CAAA;YACnC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;YAE7B,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAE3B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBAClB,OAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,UAAkB;QACzC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;IACxC,CAAC;IAES,KAAK,CAAC,IAAI,CAAC,UAAkB;QACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;IACzE,CAAC;IAEO,UAAU,CAAC,OAAiC,EAAE,UAAkB;QACpE,IAAI,CAAC,WAAW,GAAG,OAAc,CAAA;QACjC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IAClD,CAAC;IAEM,IAAI;QACP,IAAI,CAAC,WAAW,EAAE,EAAE,CAAA;QACpB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;IAC1B,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"LslEventMarkerOutlet.js","sourceRoot":"","sources":["../../src/impl/LslEventMarkerOutlet.ts"],"names":[],"mappings":"AAAA,OAAO,eAGN,MAAM,sBAAsB,CAAA;AAE7B,MAAM,CAAC,OAAO,OAAO,oBAAoB;IAC9B,MAAM,CAAC,KAAK,CAA+B;IAExC,MAAM,CAAc;IACtB,SAAS,GAAG,KAAK,CAAA;IACjB,WAAW,CAAa;IACxB,OAAO,CAAM;IAErB,YAAsB,MAAoB;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAsC;QAC7D,MAAM,cAAc,GAAG;YACnB,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,SAAS;YACf,YAAY,EAAE,CAAC,SAAS,CAAC;YACzB,YAAY,EAAE,CAAC;YACf,aAAa,EAAE,QAAQ;YACvB,QAAQ,EAAE,eAAe;YACzB,YAAY,EAAE,KAAK;YACnB,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,CAAC;YACZ,aAAa,EAAE,CAAC;SACI,CAAA;QAExB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC;YACxC,GAAG,cAAc;YACjB,GAAG,OAAO;SACb,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;IAC3C,CAAC;IAEM,UAAU,CAAC,UAAkB;QAChC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAA;IACvC,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAAyB;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QAErB,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,CAAA;YACnC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;YAE7B,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAE3B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBAClB,OAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,UAAkB;QACzC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;IACxC,CAAC;IAES,KAAK,CAAC,IAAI,CAAC,UAAkB;QACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;IACzE,CAAC;IAEO,UAAU,CAAC,OAAiC,EAAE,UAAkB;QACpE,IAAI,CAAC,WAAW,GAAG,OAAc,CAAA;QACjC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IAClD,CAAC;IAEM,IAAI;QACP,IAAI,CAAC,WAAW,EAAE,EAAE,CAAA;QACpB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;IAC1B,CAAC;IAEM,OAAO;QACV,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;IACzB,CAAC;CACJ"}
|
|
@@ -5,25 +5,27 @@ export default class LslStreamInfo implements StreamInfo {
|
|
|
5
5
|
protected type: string;
|
|
6
6
|
protected sourceId: string;
|
|
7
7
|
protected units: string;
|
|
8
|
-
protected
|
|
8
|
+
protected boundInfo: BoundStreamInfo;
|
|
9
9
|
private channelNames;
|
|
10
10
|
private channelFormat;
|
|
11
11
|
private sampleRateHz;
|
|
12
|
+
private readonly defaultName;
|
|
13
|
+
private readonly defaultType;
|
|
14
|
+
private readonly defaultSourceId;
|
|
15
|
+
private readonly defaultUnits;
|
|
12
16
|
protected constructor(options: StreamInfoOptions);
|
|
13
|
-
static Create(options: StreamInfoOptions):
|
|
17
|
+
static Create(options: StreamInfoOptions): StreamInfo;
|
|
14
18
|
private createStreamInfo;
|
|
15
|
-
private appendChannelsToStreamInfo;
|
|
16
|
-
get boundStreamInfo(): BoundStreamInfo;
|
|
17
19
|
private get channelCount();
|
|
18
20
|
private get lslChannelFormat();
|
|
21
|
+
private appendChannelsToStreamInfo;
|
|
22
|
+
destroy(): void;
|
|
23
|
+
get boundStreamInfo(): BoundStreamInfo;
|
|
19
24
|
private get lsl();
|
|
20
|
-
private readonly defaultName;
|
|
21
|
-
private readonly defaultType;
|
|
22
|
-
private readonly defaultSourceId;
|
|
23
|
-
private readonly defaultUnits;
|
|
24
25
|
}
|
|
25
26
|
export interface StreamInfo {
|
|
26
|
-
|
|
27
|
+
destroy(): void;
|
|
28
|
+
readonly boundStreamInfo: BoundStreamInfo;
|
|
27
29
|
}
|
|
28
30
|
type StreamInfoConstructor = new (options: StreamInfoOptions) => StreamInfo;
|
|
29
31
|
export interface StreamInfoOptions {
|
|
@@ -7,10 +7,14 @@ export default class LslStreamInfo {
|
|
|
7
7
|
type;
|
|
8
8
|
sourceId;
|
|
9
9
|
units;
|
|
10
|
-
|
|
10
|
+
boundInfo;
|
|
11
11
|
channelNames;
|
|
12
12
|
channelFormat;
|
|
13
13
|
sampleRateHz;
|
|
14
|
+
defaultName = `lsl-stream-info-${generateId()}`;
|
|
15
|
+
defaultType = generateId();
|
|
16
|
+
defaultSourceId = generateId();
|
|
17
|
+
defaultUnits = 'N/A';
|
|
14
18
|
constructor(options) {
|
|
15
19
|
const { name = this.defaultName, type = this.defaultType, sourceId = this.defaultSourceId, channelNames, channelFormat, sampleRateHz, units = this.defaultUnits, } = options;
|
|
16
20
|
this.name = name;
|
|
@@ -27,7 +31,7 @@ export default class LslStreamInfo {
|
|
|
27
31
|
return new (this.Class ?? this)(options);
|
|
28
32
|
}
|
|
29
33
|
createStreamInfo() {
|
|
30
|
-
this.
|
|
34
|
+
this.boundInfo = this.lsl.createStreamInfo({
|
|
31
35
|
name: this.name,
|
|
32
36
|
type: this.type,
|
|
33
37
|
sourceId: this.sourceId,
|
|
@@ -36,9 +40,15 @@ export default class LslStreamInfo {
|
|
|
36
40
|
sampleRateHz: this.sampleRateHz,
|
|
37
41
|
});
|
|
38
42
|
}
|
|
43
|
+
get channelCount() {
|
|
44
|
+
return this.channelNames.length;
|
|
45
|
+
}
|
|
46
|
+
get lslChannelFormat() {
|
|
47
|
+
return CHANNEL_FORMATS_MAP[this.channelFormat];
|
|
48
|
+
}
|
|
39
49
|
appendChannelsToStreamInfo() {
|
|
40
50
|
this.lsl.appendChannelsToStreamInfo({
|
|
41
|
-
info: this.
|
|
51
|
+
info: this.boundInfo,
|
|
42
52
|
channels: this.channelNames.map((label) => ({
|
|
43
53
|
label,
|
|
44
54
|
units: this.units,
|
|
@@ -46,21 +56,14 @@ export default class LslStreamInfo {
|
|
|
46
56
|
})),
|
|
47
57
|
});
|
|
48
58
|
}
|
|
49
|
-
|
|
50
|
-
|
|
59
|
+
destroy() {
|
|
60
|
+
this.lsl.destroyStreamInfo({ info: this.boundInfo });
|
|
51
61
|
}
|
|
52
|
-
get
|
|
53
|
-
return this.
|
|
54
|
-
}
|
|
55
|
-
get lslChannelFormat() {
|
|
56
|
-
return CHANNEL_FORMATS_MAP[this.channelFormat];
|
|
62
|
+
get boundStreamInfo() {
|
|
63
|
+
return this.boundInfo;
|
|
57
64
|
}
|
|
58
65
|
get lsl() {
|
|
59
66
|
return LiblslAdapter.getInstance();
|
|
60
67
|
}
|
|
61
|
-
defaultName = `lsl-stream-info-${generateId()}`;
|
|
62
|
-
defaultType = generateId();
|
|
63
|
-
defaultSourceId = generateId();
|
|
64
|
-
defaultUnits = 'N/A';
|
|
65
68
|
}
|
|
66
69
|
//# sourceMappingURL=LslStreamInfo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LslStreamInfo.js","sourceRoot":"","sources":["../../src/impl/LslStreamInfo.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,aAAa,MAAM,oBAAoB,CAAA;AAE9C,MAAM,CAAC,OAAO,OAAO,aAAa;IACvB,MAAM,CAAC,KAAK,CAAwB;IAEjC,IAAI,CAAQ;IACZ,IAAI,CAAQ;IACZ,QAAQ,CAAQ;IAChB,KAAK,CAAQ;IACb,
|
|
1
|
+
{"version":3,"file":"LslStreamInfo.js","sourceRoot":"","sources":["../../src/impl/LslStreamInfo.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,aAAa,MAAM,oBAAoB,CAAA;AAE9C,MAAM,CAAC,OAAO,OAAO,aAAa;IACvB,MAAM,CAAC,KAAK,CAAwB;IAEjC,IAAI,CAAQ;IACZ,IAAI,CAAQ;IACZ,QAAQ,CAAQ;IAChB,KAAK,CAAQ;IACb,SAAS,CAAkB;IAC7B,YAAY,CAAU;IACtB,aAAa,CAAe;IAC5B,YAAY,CAAQ;IAEX,WAAW,GAAG,mBAAmB,UAAU,EAAE,EAAE,CAAA;IAC/C,WAAW,GAAG,UAAU,EAAE,CAAA;IAC1B,eAAe,GAAG,UAAU,EAAE,CAAA;IAC9B,YAAY,GAAG,KAAK,CAAA;IAErC,YAAsB,OAA0B;QAC5C,MAAM,EACF,IAAI,GAAG,IAAI,CAAC,WAAW,EACvB,IAAI,GAAG,IAAI,CAAC,WAAW,EACvB,QAAQ,GAAG,IAAI,CAAC,eAAe,EAC/B,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,KAAK,GAAG,IAAI,CAAC,YAAY,GAC5B,GAAG,OAAO,CAAA;QAEX,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAElB,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,IAAI,CAAC,0BAA0B,EAAE,CAAA;IACrC,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,OAA0B;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,CAAA;IAC5C,CAAC;IAEO,gBAAgB;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC;YACvC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,aAAa,EAAE,IAAI,CAAC,gBAAgB;YACpC,YAAY,EAAE,IAAI,CAAC,YAAY;SAClC,CAAC,CAAA;IACN,CAAC;IAED,IAAY,YAAY;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAA;IACnC,CAAC;IAED,IAAY,gBAAgB;QACxB,OAAO,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAClD,CAAC;IAEO,0BAA0B;QAC9B,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC;YAChC,IAAI,EAAE,IAAI,CAAC,SAAS;YACpB,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC;gBAChD,KAAK;gBACL,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;aAClB,CAAC,CAAC;SACN,CAAC,CAAA;IACN,CAAC;IAEM,OAAO;QACV,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;IACxD,CAAC;IAED,IAAW,eAAe;QACtB,OAAO,IAAI,CAAC,SAAS,CAAA;IACzB,CAAC;IAED,IAAY,GAAG;QACX,OAAO,aAAa,CAAC,WAAW,EAAE,CAAA;IACtC,CAAC;CACJ"}
|
|
@@ -25,6 +25,7 @@ export default class LslStreamInlet implements StreamInlet {
|
|
|
25
25
|
protected constructor(info: StreamInfo, options: StreamInletOptions, onData: OnDataCallback);
|
|
26
26
|
static Create(options: StreamInletOptions, onData: OnDataCallback): StreamInlet;
|
|
27
27
|
private createBoundInlet;
|
|
28
|
+
private get boundStreamInfo();
|
|
28
29
|
startPulling(): void;
|
|
29
30
|
private createWriteableBuffers;
|
|
30
31
|
private createDataBuffer;
|
|
@@ -45,6 +46,8 @@ export default class LslStreamInlet implements StreamInlet {
|
|
|
45
46
|
stopPulling(): void;
|
|
46
47
|
flushQueue(): void;
|
|
47
48
|
destroy(): void;
|
|
49
|
+
private destroyBoundStreamInfo;
|
|
50
|
+
private destroyBoundInlet;
|
|
48
51
|
private getLiblslSingleton;
|
|
49
52
|
private static LslStreamInfo;
|
|
50
53
|
}
|
|
@@ -52,11 +52,14 @@ export default class LslStreamInlet {
|
|
|
52
52
|
}
|
|
53
53
|
createBoundInlet() {
|
|
54
54
|
this.inlet = this.lsl.createInlet({
|
|
55
|
-
info: this.
|
|
55
|
+
info: this.boundStreamInfo,
|
|
56
56
|
chunkSize: this.chunkSize,
|
|
57
57
|
maxBufferedMs: this.maxBufferedMs / 1000,
|
|
58
58
|
});
|
|
59
59
|
}
|
|
60
|
+
get boundStreamInfo() {
|
|
61
|
+
return this.info.boundStreamInfo;
|
|
62
|
+
}
|
|
60
63
|
startPulling() {
|
|
61
64
|
this.isRunning = true;
|
|
62
65
|
this.createWriteableBuffers();
|
|
@@ -171,6 +174,13 @@ export default class LslStreamInlet {
|
|
|
171
174
|
this.lsl.flushInlet({ inlet: this.inlet });
|
|
172
175
|
}
|
|
173
176
|
destroy() {
|
|
177
|
+
this.destroyBoundStreamInfo();
|
|
178
|
+
this.destroyBoundInlet();
|
|
179
|
+
}
|
|
180
|
+
destroyBoundStreamInfo() {
|
|
181
|
+
this.lsl.destroyStreamInfo({ info: this.boundStreamInfo });
|
|
182
|
+
}
|
|
183
|
+
destroyBoundInlet() {
|
|
174
184
|
this.lsl.destroyInlet({ inlet: this.inlet });
|
|
175
185
|
}
|
|
176
186
|
getLiblslSingleton() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LslStreamInlet.js","sourceRoot":"","sources":["../../src/impl/LslStreamInlet.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAc,aAAa,EAAE,MAAM,QAAQ,CAAA;AAE3E,OAAO,WAAW,MAAM,mBAAmB,CAAA;AAE3C,OAAO,aAAa,MAAM,oBAAoB,CAAA;AAC9C,OAAO,aAGN,MAAM,oBAAoB,CAAA;AAE3B,MAAM,CAAC,OAAO,OAAO,cAAc;IACxB,MAAM,CAAC,KAAK,CAAyB;IAErC,SAAS,GAAG,KAAK,CAAA;IAEd,IAAI,CAAY;IAChB,IAAI,CAAQ;IACd,YAAY,CAAU;IACtB,YAAY,CAAQ;IACpB,SAAS,CAAQ;IACjB,aAAa,CAAQ;IACrB,SAAS,CAAQ;IAEjB,MAAM,CAAgB;IAEtB,cAAc,CAGrB;IAEO,GAAG,CAAQ;IAET,KAAK,CAAa;IAEpB,UAAU,CAAsB;IAChC,aAAa,CAAa;IAE1B,eAAe,CAAsB;IACrC,kBAAkB,CAAa;IAE/B,eAAe,CAAsB;IACrC,kBAAkB,CAAa;IAEtB,WAAW,GAAG,aAAa,UAAU,EAAE,EAAE,CAAA;IACzC,cAAc,GAAG,GAAG,GAAG,IAAI,CAAA;IAE5C,YACI,IAAgB,EAChB,OAA2B,EAC3B,MAAsB;QAEtB,MAAM,EACF,IAAI,GAAG,IAAI,CAAC,WAAW,EACvB,YAAY,EACZ,SAAS,EACT,aAAa,EACb,SAAS,GACZ,GAAG,OAAO,IAAI,EAAE,CAAA;QAEjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAA;QAC5C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,IAAI,CAAC,cAAc,CAAA;QACzD,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,CAAC,CAAA;QAE/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QAEpB,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAA;QACzC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAA;QACxC,CAAC;QAED,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAA;QAEpC,IAAI,CAAC,gBAAgB,EAAE,CAAA;IAC3B,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,OAA2B,EAAE,MAAsB;QACpE,6DAA6D;QAC7D,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAA;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IAC1D,CAAC;IAEO,gBAAgB;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;YAC9B,IAAI,EAAE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"LslStreamInlet.js","sourceRoot":"","sources":["../../src/impl/LslStreamInlet.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,36 +2,37 @@ import { ChannelFormat, LslSample } from './LiblslAdapter.js';
|
|
|
2
2
|
import { StreamInfo } from './LslStreamInfo.js';
|
|
3
3
|
export default class LslStreamOutlet implements StreamOutlet {
|
|
4
4
|
static Class?: StreamOutletConstructor;
|
|
5
|
+
readonly name: string;
|
|
6
|
+
readonly type: string;
|
|
7
|
+
readonly sourceId: string;
|
|
8
|
+
readonly channelNames: string[];
|
|
9
|
+
readonly channelFormat: ChannelFormat;
|
|
10
|
+
readonly channelCount: number;
|
|
11
|
+
readonly sampleRateHz: number;
|
|
12
|
+
readonly chunkSize: number;
|
|
13
|
+
readonly maxBufferedMs: number;
|
|
14
|
+
readonly manufacturer: string;
|
|
15
|
+
readonly units: string;
|
|
5
16
|
private info;
|
|
6
|
-
private options;
|
|
7
17
|
private outlet;
|
|
8
18
|
private pushSampleMethod;
|
|
9
19
|
protected constructor(info: StreamInfo, options: StreamOutletOptions);
|
|
10
20
|
static Create(options: StreamOutletOptions): Promise<StreamOutlet>;
|
|
11
21
|
private validateOptions;
|
|
12
|
-
private createStreamOutlet;
|
|
13
|
-
private setPushSampleMethod;
|
|
14
22
|
private validateChannelFormat;
|
|
23
|
+
private get isChannelFormatSupported();
|
|
15
24
|
private throwUnsupportedChannelFormat;
|
|
16
|
-
private
|
|
25
|
+
private createStreamOutlet;
|
|
26
|
+
private get boundStreamInfo();
|
|
27
|
+
private setPushSampleMethod;
|
|
17
28
|
private get pushMethod();
|
|
18
29
|
private readonly methodMap;
|
|
19
30
|
pushSample(sample: LslSample): void;
|
|
20
31
|
destroy(): void;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
get sourceId(): string;
|
|
24
|
-
get channelNames(): string[];
|
|
25
|
-
get channelCount(): number;
|
|
26
|
-
get channelFormat(): "string" | "undefined" | "float32" | "double64" | "int32" | "int16" | "int8" | "int64";
|
|
27
|
-
get sampleRateHz(): number;
|
|
28
|
-
get chunkSize(): number;
|
|
29
|
-
get maxBufferedMs(): number;
|
|
30
|
-
get manufacturer(): string;
|
|
31
|
-
get units(): string;
|
|
32
|
-
private get boundStreamInfo();
|
|
32
|
+
private destroyBoundStreamInfo;
|
|
33
|
+
private destroyBoundOutlet;
|
|
33
34
|
private get lsl();
|
|
34
|
-
private static
|
|
35
|
+
private static waitToAllowSetup;
|
|
35
36
|
private static LslStreamInfo;
|
|
36
37
|
}
|
|
37
38
|
export interface StreamOutlet {
|
|
@@ -4,31 +4,43 @@ import LiblslAdapter from './LiblslAdapter.js';
|
|
|
4
4
|
import LslStreamInfo from './LslStreamInfo.js';
|
|
5
5
|
export default class LslStreamOutlet {
|
|
6
6
|
static Class;
|
|
7
|
+
name;
|
|
8
|
+
type;
|
|
9
|
+
sourceId;
|
|
10
|
+
channelNames;
|
|
11
|
+
channelFormat;
|
|
12
|
+
channelCount;
|
|
13
|
+
sampleRateHz;
|
|
14
|
+
chunkSize;
|
|
15
|
+
maxBufferedMs = 360 * 1000;
|
|
16
|
+
manufacturer = 'N/A';
|
|
17
|
+
units = 'N/A';
|
|
7
18
|
info;
|
|
8
|
-
options;
|
|
9
19
|
outlet;
|
|
10
20
|
pushSampleMethod;
|
|
11
21
|
constructor(info, options) {
|
|
22
|
+
const { name, type, sourceId, channelNames, channelFormat, sampleRateHz, chunkSize, maxBufferedMs, manufacturer, units, } = options;
|
|
12
23
|
this.info = info;
|
|
13
|
-
this.
|
|
24
|
+
this.name = name;
|
|
25
|
+
this.type = type;
|
|
26
|
+
this.sourceId = sourceId;
|
|
27
|
+
this.channelNames = channelNames;
|
|
28
|
+
this.channelFormat = channelFormat;
|
|
29
|
+
this.channelCount = channelNames.length;
|
|
30
|
+
this.sampleRateHz = sampleRateHz;
|
|
31
|
+
this.chunkSize = chunkSize;
|
|
32
|
+
this.maxBufferedMs = maxBufferedMs ?? this.maxBufferedMs;
|
|
33
|
+
this.manufacturer = manufacturer ?? this.manufacturer;
|
|
34
|
+
this.units = units ?? this.units;
|
|
14
35
|
this.validateOptions();
|
|
15
36
|
this.createStreamOutlet();
|
|
16
37
|
this.setPushSampleMethod();
|
|
17
38
|
}
|
|
18
39
|
static async Create(options) {
|
|
19
40
|
const { waitAfterConstructionMs = 10 } = options ?? {};
|
|
20
|
-
const
|
|
21
|
-
channelNames: options.channelNames,
|
|
22
|
-
channelFormat: options.channelFormat,
|
|
23
|
-
sampleRateHz: options.sampleRateHz,
|
|
24
|
-
name: options.name,
|
|
25
|
-
type: options.type,
|
|
26
|
-
sourceId: options.sourceId,
|
|
27
|
-
units: options.units,
|
|
28
|
-
};
|
|
29
|
-
const info = this.LslStreamInfo(infoOptions);
|
|
41
|
+
const info = this.LslStreamInfo(options);
|
|
30
42
|
const instance = new (this.Class ?? this)(info, options);
|
|
31
|
-
await this.
|
|
43
|
+
await this.waitToAllowSetup(waitAfterConstructionMs);
|
|
32
44
|
return instance;
|
|
33
45
|
}
|
|
34
46
|
validateOptions() {
|
|
@@ -37,6 +49,18 @@ export default class LslStreamOutlet {
|
|
|
37
49
|
assertValidChannelFormat(this.channelFormat);
|
|
38
50
|
assertValidChunkSize(this.chunkSize);
|
|
39
51
|
assertValidMaxBufferedMs(this.maxBufferedMs);
|
|
52
|
+
this.validateChannelFormat();
|
|
53
|
+
}
|
|
54
|
+
validateChannelFormat() {
|
|
55
|
+
if (!this.isChannelFormatSupported) {
|
|
56
|
+
this.throwUnsupportedChannelFormat();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
get isChannelFormatSupported() {
|
|
60
|
+
return this.channelFormat in this.methodMap;
|
|
61
|
+
}
|
|
62
|
+
throwUnsupportedChannelFormat() {
|
|
63
|
+
throw new Error(`This method currently does not support the ${this.channelFormat} type! Please implement it.`);
|
|
40
64
|
}
|
|
41
65
|
createStreamOutlet() {
|
|
42
66
|
this.outlet = this.lsl.createOutlet({
|
|
@@ -45,21 +69,12 @@ export default class LslStreamOutlet {
|
|
|
45
69
|
maxBufferedMs: this.maxBufferedMs,
|
|
46
70
|
});
|
|
47
71
|
}
|
|
72
|
+
get boundStreamInfo() {
|
|
73
|
+
return this.info.boundStreamInfo;
|
|
74
|
+
}
|
|
48
75
|
setPushSampleMethod() {
|
|
49
|
-
this.validateChannelFormat();
|
|
50
76
|
this.pushSampleMethod = this.lsl[this.pushMethod].bind(this.lsl);
|
|
51
77
|
}
|
|
52
|
-
validateChannelFormat() {
|
|
53
|
-
if (!(this.channelFormat in this.methodMap)) {
|
|
54
|
-
this.throwUnsupportedChannelFormat();
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
throwUnsupportedChannelFormat() {
|
|
58
|
-
throw new Error(this.unsupportedChannelMessage);
|
|
59
|
-
}
|
|
60
|
-
get unsupportedChannelMessage() {
|
|
61
|
-
return `This method currently does not support the ${this.channelFormat} type! Please implement it.`;
|
|
62
|
-
}
|
|
63
78
|
get pushMethod() {
|
|
64
79
|
return this.methodMap[this.channelFormat];
|
|
65
80
|
}
|
|
@@ -69,59 +84,40 @@ export default class LslStreamOutlet {
|
|
|
69
84
|
};
|
|
70
85
|
pushSample(sample) {
|
|
71
86
|
const timestamp = this.lsl.localClock();
|
|
72
|
-
|
|
87
|
+
const err = this.pushSampleMethod({
|
|
73
88
|
outlet: this.outlet,
|
|
74
89
|
sample,
|
|
75
90
|
timestamp,
|
|
76
|
-
})
|
|
91
|
+
});
|
|
92
|
+
handleError(err);
|
|
77
93
|
}
|
|
78
94
|
destroy() {
|
|
79
|
-
this.
|
|
80
|
-
|
|
81
|
-
get name() {
|
|
82
|
-
return this.options.name;
|
|
83
|
-
}
|
|
84
|
-
get type() {
|
|
85
|
-
return this.options.type;
|
|
86
|
-
}
|
|
87
|
-
get sourceId() {
|
|
88
|
-
return this.options.sourceId;
|
|
89
|
-
}
|
|
90
|
-
get channelNames() {
|
|
91
|
-
return this.options.channelNames;
|
|
92
|
-
}
|
|
93
|
-
get channelCount() {
|
|
94
|
-
return this.channelNames.length;
|
|
95
|
-
}
|
|
96
|
-
get channelFormat() {
|
|
97
|
-
return this.options.channelFormat;
|
|
95
|
+
this.destroyBoundStreamInfo();
|
|
96
|
+
this.destroyBoundOutlet();
|
|
98
97
|
}
|
|
99
|
-
|
|
100
|
-
|
|
98
|
+
destroyBoundStreamInfo() {
|
|
99
|
+
this.lsl.destroyStreamInfo({ info: this.boundStreamInfo });
|
|
101
100
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
}
|
|
105
|
-
get maxBufferedMs() {
|
|
106
|
-
return this.options.maxBufferedMs ?? 360 * 1000;
|
|
107
|
-
}
|
|
108
|
-
get manufacturer() {
|
|
109
|
-
return this.options.manufacturer ?? 'N/A';
|
|
110
|
-
}
|
|
111
|
-
get units() {
|
|
112
|
-
return this.options.units ?? 'N/A';
|
|
113
|
-
}
|
|
114
|
-
get boundStreamInfo() {
|
|
115
|
-
return this.info.boundStreamInfo;
|
|
101
|
+
destroyBoundOutlet() {
|
|
102
|
+
this.lsl.destroyOutlet({ outlet: this.outlet });
|
|
116
103
|
}
|
|
117
104
|
get lsl() {
|
|
118
105
|
return LiblslAdapter.getInstance();
|
|
119
106
|
}
|
|
120
|
-
static async
|
|
121
|
-
|
|
107
|
+
static async waitToAllowSetup(waitAfterConstructionMs) {
|
|
108
|
+
await new Promise((resolve) => setTimeout(resolve, waitAfterConstructionMs));
|
|
122
109
|
}
|
|
123
110
|
static LslStreamInfo(options) {
|
|
124
|
-
|
|
111
|
+
const { channelNames, channelFormat, sampleRateHz, name, type, sourceId, units, } = options;
|
|
112
|
+
return LslStreamInfo.Create({
|
|
113
|
+
name,
|
|
114
|
+
type,
|
|
115
|
+
sourceId,
|
|
116
|
+
channelNames,
|
|
117
|
+
channelFormat,
|
|
118
|
+
sampleRateHz,
|
|
119
|
+
units,
|
|
120
|
+
});
|
|
125
121
|
}
|
|
126
122
|
}
|
|
127
123
|
//# sourceMappingURL=LslStreamOutlet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LslStreamOutlet.js","sourceRoot":"","sources":["../../src/impl/LslStreamOutlet.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,GAC1B,MAAM,kBAAkB,CAAA;AACzB,OAAO,WAA6B,MAAM,mBAAmB,CAAA;AAO7D,OAAO,aAAa,MAAM,oBAAoB,CAAA;AAC9C,OAAO,aAGN,MAAM,oBAAoB,CAAA;AAE3B,MAAM,CAAC,OAAO,OAAO,eAAe;IACzB,MAAM,CAAC,KAAK,CAA0B;
|
|
1
|
+
{"version":3,"file":"LslStreamOutlet.js","sourceRoot":"","sources":["../../src/impl/LslStreamOutlet.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ export default class LslWebSocketBridge implements WebSocketBridge {
|
|
|
15
15
|
deactivate(): void;
|
|
16
16
|
private stopPullingData;
|
|
17
17
|
destroy(): void;
|
|
18
|
-
private
|
|
18
|
+
private destroyBoundInlet;
|
|
19
19
|
private closeWebSocketServer;
|
|
20
20
|
private static createOnDataCallback;
|
|
21
21
|
private static broadcastToClients;
|
|
@@ -36,11 +36,11 @@ export default class LslWebSocketBridge {
|
|
|
36
36
|
this.inlet.stopPulling();
|
|
37
37
|
}
|
|
38
38
|
destroy() {
|
|
39
|
-
this.
|
|
39
|
+
this.destroyBoundInlet();
|
|
40
40
|
this.closeWebSocketServer();
|
|
41
41
|
this.isDestroyed = true;
|
|
42
42
|
}
|
|
43
|
-
|
|
43
|
+
destroyBoundInlet() {
|
|
44
44
|
this.inlet.destroy();
|
|
45
45
|
}
|
|
46
46
|
closeWebSocketServer() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LslWebSocketBridge.js","sourceRoot":"","sources":["../../src/impl/LslWebSocketBridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAA;AAEpC,OAAO,cAA+B,MAAM,qBAAqB,CAAA;AAEjE,MAAM,CAAC,OAAO,OAAO,kBAAkB;IAC5B,MAAM,CAAC,KAAK,CAA6B;IACzC,MAAM,CAAC,GAAG,GAAG,eAAe,CAAA;IAE3B,KAAK,CAAa;IAClB,GAAG,CAAiB;IACpB,WAAW,GAAG,KAAK,CAAA;IAE3B,YAAsB,OAA0C;QAC5D,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;QAE9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAClB,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,OAA+B;QAChD,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QAE/C,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;IAC/D,CAAC;IAEM,QAAQ;QACX,IAAI,CAAC,wBAAwB,EAAE,CAAA;QAC/B,IAAI,CAAC,gBAAgB,EAAE,CAAA;IAC3B,CAAC;IAEO,wBAAwB;QAC5B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACX,wGAAwG,CAC3G,CAAA;QACL,CAAC;IACL,CAAC;IAEO,gBAAgB;QACpB,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAA;IAC7B,CAAC;IAEM,UAAU;QACb,IAAI,CAAC,eAAe,EAAE,CAAA;IAC1B,CAAC;IAEO,eAAe;QACnB,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAA;IAC5B,CAAC;IAEM,OAAO;QACV,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"LslWebSocketBridge.js","sourceRoot":"","sources":["../../src/impl/LslWebSocketBridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BoundOutlet, BoundStreamInfo, CreateStreamInfoOptions, AppendChannelsToStreamInfoOptions, CreateOutletOptions, PushSampleFloatTimestampOptions, PushSampleStringTimestampOptions, Liblsl, CreateInletOptions, DestroyInletOptions, BoundInlet, FlushInletOptions, PullChunkOptions, PullSampleOptions } from 'impl/LiblslAdapter.js';
|
|
1
|
+
import { BoundOutlet, BoundStreamInfo, CreateStreamInfoOptions, AppendChannelsToStreamInfoOptions, CreateOutletOptions, PushSampleFloatTimestampOptions, PushSampleStringTimestampOptions, Liblsl, CreateInletOptions, DestroyInletOptions, BoundInlet, FlushInletOptions, PullChunkOptions, PullSampleOptions, DestroyStreamInfoOptions } from 'impl/LiblslAdapter.js';
|
|
2
2
|
export default class FakeLiblsl implements Liblsl {
|
|
3
3
|
static fakeSamples: Float32Array[];
|
|
4
4
|
static fakeChunks: Float32Array[];
|
|
@@ -11,6 +11,7 @@ export default class FakeLiblsl implements Liblsl {
|
|
|
11
11
|
outlet: BoundOutlet;
|
|
12
12
|
streamInfo: BoundStreamInfo;
|
|
13
13
|
lastCreateStreamInfoOptions?: CreateStreamInfoOptions;
|
|
14
|
+
lastDestroyStreamInfoOptions?: DestroyStreamInfoOptions;
|
|
14
15
|
lastAppendChannelsToStreamInfoOptions?: AppendChannelsToStreamInfoOptions;
|
|
15
16
|
lastCreateOutletOptions?: CreateOutletOptions;
|
|
16
17
|
lastPushSampleFloatTimestampOptions?: PushSampleFloatTimestampOptions;
|
|
@@ -29,6 +30,7 @@ export default class FakeLiblsl implements Liblsl {
|
|
|
29
30
|
localClockHitCount: number;
|
|
30
31
|
pushSampleStringTimestampHitCount: number;
|
|
31
32
|
createStreamInfo(options: CreateStreamInfoOptions): BoundStreamInfo;
|
|
33
|
+
destroyStreamInfo(options: DestroyStreamInfoOptions): void;
|
|
32
34
|
appendChannelsToStreamInfo(options: AppendChannelsToStreamInfoOptions): void;
|
|
33
35
|
pushSampleFloatTimestamp(options: PushSampleFloatTimestampOptions): number;
|
|
34
36
|
pushSampleStringTimestamp(options: PushSampleStringTimestampOptions): number;
|
|
@@ -20,6 +20,7 @@ export default class FakeLiblsl {
|
|
|
20
20
|
outlet = {};
|
|
21
21
|
streamInfo = {};
|
|
22
22
|
lastCreateStreamInfoOptions;
|
|
23
|
+
lastDestroyStreamInfoOptions;
|
|
23
24
|
lastAppendChannelsToStreamInfoOptions;
|
|
24
25
|
lastCreateOutletOptions;
|
|
25
26
|
lastPushSampleFloatTimestampOptions;
|
|
@@ -42,6 +43,9 @@ export default class FakeLiblsl {
|
|
|
42
43
|
this.lastCreateStreamInfoOptions = options;
|
|
43
44
|
return this.streamInfo;
|
|
44
45
|
}
|
|
46
|
+
destroyStreamInfo(options) {
|
|
47
|
+
this.lastDestroyStreamInfoOptions = options;
|
|
48
|
+
}
|
|
45
49
|
appendChannelsToStreamInfo(options) {
|
|
46
50
|
this.lastAppendChannelsToStreamInfoOptions = options;
|
|
47
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FakeLiblsl.js","sourceRoot":"","sources":["../../../src/testDoubles/Liblsl/FakeLiblsl.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"FakeLiblsl.js","sourceRoot":"","sources":["../../../src/testDoubles/Liblsl/FakeLiblsl.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,10 @@ import { BoundStreamInfo } from 'impl/LiblslAdapter.js';
|
|
|
2
2
|
import { StreamInfo, StreamInfoOptions } from '../../impl/LslStreamInfo.js';
|
|
3
3
|
export default class FakeStreamInfo implements StreamInfo {
|
|
4
4
|
static callsToConstructor: StreamInfoOptions[];
|
|
5
|
+
static numCallsToDestroy: number;
|
|
5
6
|
static boundStreamInfo: BoundStreamInfo;
|
|
6
7
|
constructor(options: StreamInfoOptions);
|
|
8
|
+
destroy(): void;
|
|
7
9
|
get boundStreamInfo(): BoundStreamInfo;
|
|
8
10
|
static resetTestDouble(): void;
|
|
9
11
|
}
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
export default class FakeStreamInfo {
|
|
2
2
|
static callsToConstructor = [];
|
|
3
|
+
static numCallsToDestroy = 0;
|
|
3
4
|
static boundStreamInfo = {};
|
|
4
5
|
constructor(options) {
|
|
5
6
|
FakeStreamInfo.callsToConstructor.push(options);
|
|
6
7
|
}
|
|
8
|
+
destroy() {
|
|
9
|
+
FakeStreamInfo.numCallsToDestroy++;
|
|
10
|
+
}
|
|
7
11
|
get boundStreamInfo() {
|
|
8
12
|
return FakeStreamInfo.boundStreamInfo;
|
|
9
13
|
}
|
|
10
14
|
static resetTestDouble() {
|
|
11
15
|
FakeStreamInfo.callsToConstructor = [];
|
|
16
|
+
FakeStreamInfo.numCallsToDestroy = 0;
|
|
12
17
|
}
|
|
13
18
|
}
|
|
14
19
|
//# sourceMappingURL=FakeStreamInfo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FakeStreamInfo.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamInfo/FakeStreamInfo.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,OAAO,cAAc;IACxB,MAAM,CAAC,kBAAkB,GAAwB,EAAE,CAAA;IACnD,MAAM,CAAC,eAAe,GAAG,EAAqB,CAAA;IAErD,YAAmB,OAA0B;QACzC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACnD,CAAC;IAED,IAAW,eAAe;QACtB,OAAO,cAAc,CAAC,eAAe,CAAA;IACzC,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,cAAc,CAAC,kBAAkB,GAAG,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"FakeStreamInfo.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamInfo/FakeStreamInfo.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,OAAO,cAAc;IACxB,MAAM,CAAC,kBAAkB,GAAwB,EAAE,CAAA;IACnD,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAE5B,MAAM,CAAC,eAAe,GAAG,EAAqB,CAAA;IAErD,YAAmB,OAA0B;QACzC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACnD,CAAC;IAEM,OAAO;QACV,cAAc,CAAC,iBAAiB,EAAE,CAAA;IACtC,CAAC;IAED,IAAW,eAAe;QACtB,OAAO,cAAc,CAAC,eAAe,CAAA;IACzC,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,cAAc,CAAC,kBAAkB,GAAG,EAAE,CAAA;QACtC,cAAc,CAAC,iBAAiB,GAAG,CAAC,CAAA;IACxC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import LslStreamInfo, { StreamInfoOptions } from '../../impl/LslStreamInfo.js';
|
|
2
2
|
export default class SpyStreamInfo extends LslStreamInfo {
|
|
3
3
|
constructor(options: StreamInfoOptions);
|
|
4
|
-
|
|
4
|
+
getBoundInfo(): import("../../index.js").BoundStreamInfo;
|
|
5
5
|
getName(): string;
|
|
6
6
|
getType(): string;
|
|
7
7
|
getSourceId(): string;
|