@neurodevs/node-lsl 11.0.1 → 11.2.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__/EventMarkerOutlet.test.d.ts +1 -0
- package/build/__tests__/EventMarkerOutlet.test.js +8 -0
- package/build/__tests__/EventMarkerOutlet.test.js.map +1 -1
- package/build/__tests__/LslStreamOutlet.test.d.ts +1 -1
- package/build/adapters/LiblslAdapter.d.ts +4 -4
- package/build/assertions.d.ts +1 -1
- package/build/components/EventMarkerOutlet.d.ts +4 -1
- package/build/components/EventMarkerOutlet.js +9 -2
- package/build/components/EventMarkerOutlet.js.map +1 -1
- package/build/components/LslStreamInfo.d.ts +2 -2
- package/build/components/LslStreamInlet.d.ts +1 -1
- package/build/components/LslStreamOutlet.d.ts +1 -1
- package/build/index.d.ts +3 -1
- package/build/index.js +6 -2
- package/build/index.js.map +1 -1
- package/build/testDoubles/Liblsl/FakeLiblsl.d.ts +1 -1
- package/build/testDoubles/LslOutlet/FakeLslOutlet.d.ts +1 -1
- package/build/testDoubles/MarkerOutlet/FakeMarkerOutlet.d.ts +6 -4
- package/build/testDoubles/MarkerOutlet/FakeMarkerOutlet.js +14 -10
- package/build/testDoubles/MarkerOutlet/FakeMarkerOutlet.js.map +1 -1
- package/build/testDoubles/MarkerOutlet/MockMarkerOutlet.d.ts +2 -1
- package/build/testDoubles/MarkerOutlet/MockMarkerOutlet.js +9 -2
- package/build/testDoubles/MarkerOutlet/MockMarkerOutlet.js.map +1 -1
- package/build/testDoubles/MarkerOutlet/ThrowingMarkerOutlet.d.ts +10 -0
- package/build/testDoubles/MarkerOutlet/ThrowingMarkerOutlet.js +22 -0
- package/build/testDoubles/MarkerOutlet/ThrowingMarkerOutlet.js.map +1 -0
- package/build/testDoubles/StreamInfo/FakeStreamInfo.d.ts +1 -1
- package/build/types.d.ts +90 -0
- package/build/types.js +3 -0
- package/build/types.js.map +1 -0
- package/package.json +1 -1
- package/src/__tests__/EventMarkerOutlet.test.ts +8 -0
- package/src/__tests__/LiblslAdapter.test.ts +1 -1
- package/src/__tests__/LslStreamOutlet.test.ts +1 -1
- package/src/adapters/LiblslAdapter.ts +1 -1
- package/src/assertions.ts +1 -1
- package/src/components/EventMarkerOutlet.ts +13 -3
- package/src/components/LslStreamInfo.ts +1 -1
- package/src/components/LslStreamInlet.ts +1 -1
- package/src/components/LslStreamOutlet.ts +1 -1
- package/src/index.ts +6 -1
- package/src/testDoubles/Liblsl/FakeLiblsl.ts +1 -1
- package/src/testDoubles/LslOutlet/FakeLslOutlet.ts +1 -1
- package/src/testDoubles/MarkerOutlet/FakeMarkerOutlet.ts +16 -14
- package/src/testDoubles/MarkerOutlet/MockMarkerOutlet.ts +12 -3
- package/src/testDoubles/MarkerOutlet/ThrowingMarkerOutlet.ts +26 -0
- package/src/testDoubles/StreamInfo/FakeStreamInfo.ts +1 -1
- /package/src/{nodeLsl.types.ts → types.ts} +0 -0
|
@@ -10,6 +10,7 @@ export default class EventMarkerOutletTest extends AbstractLslTest {
|
|
|
10
10
|
protected static canStartAgainAfterStopping(): Promise<void>;
|
|
11
11
|
protected static doesNotWaitIfStopped(): Promise<void>;
|
|
12
12
|
protected static clearsTheTimeoutOnStop(): Promise<void>;
|
|
13
|
+
protected static pushMarkerCallsPushSampleOnMarkerOutlet(): Promise<void>;
|
|
13
14
|
private static get lslOutlet();
|
|
14
15
|
private static setupOutlet;
|
|
15
16
|
private static pushTotalMarkers;
|
|
@@ -90,6 +90,11 @@ class EventMarkerOutletTest extends AbstractLslTest_1.default {
|
|
|
90
90
|
this.instance.stop();
|
|
91
91
|
this.lslOutlet.pushSample = () => test_utils_1.assert.fail('Should not have been called');
|
|
92
92
|
}
|
|
93
|
+
static async pushMarkerCallsPushSampleOnMarkerOutlet() {
|
|
94
|
+
const markerName = (0, test_utils_1.generateId)();
|
|
95
|
+
this.instance.pushMarker(markerName);
|
|
96
|
+
test_utils_1.assert.isEqual(FakeLslOutlet_1.default.callsToPushSample[0][0], markerName);
|
|
97
|
+
}
|
|
93
98
|
static get lslOutlet() {
|
|
94
99
|
return this.instance.getLslOutlet();
|
|
95
100
|
}
|
|
@@ -141,4 +146,7 @@ __decorate([
|
|
|
141
146
|
__decorate([
|
|
142
147
|
(0, test_utils_1.test)()
|
|
143
148
|
], EventMarkerOutletTest, "clearsTheTimeoutOnStop", null);
|
|
149
|
+
__decorate([
|
|
150
|
+
(0, test_utils_1.test)()
|
|
151
|
+
], EventMarkerOutletTest, "pushMarkerCallsPushSampleOnMarkerOutlet", null);
|
|
144
152
|
//# sourceMappingURL=EventMarkerOutlet.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventMarkerOutlet.test.js","sourceRoot":"","sources":["../../src/__tests__/EventMarkerOutlet.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"EventMarkerOutlet.test.js","sourceRoot":"","sources":["../../src/__tests__/EventMarkerOutlet.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,mCAAkC;AAClC,uDAAiE;AACjE,wFAA+D;AAE/D,6GAAoF;AACpF,2FAAkE;AAElE,wEAA+C;AAE/C,MAAqB,qBAAsB,SAAQ,yBAAe;IAGpD,MAAM,CAAC,KAAK,CAAC,UAAU;QAC7B,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QAExB,IAAI,CAAC,aAAa,EAAE,CAAA;QACpB,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAA;QAEzB,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;IAClD,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,mCAAmC;QACtD,mBAAM,CAAC,WAAW,CAAC,uBAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;YAC5D,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,SAAS;YACf,YAAY,EAAE,CAAC,SAAS,CAAC;YACzB,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,QAAQ;YACvB,QAAQ,EAAE,eAAe;YACzB,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;SACjB,CAAC,CAAA;IACN,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,yBAAyB;QAC5C,MAAM,OAAO,GAAG,IAAA,qCAA2B,GAAE,CAAA;QAC7C,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;QAErC,mBAAM,CAAC,WAAW,CAAC,uBAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC5E,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,gDAAgD;QACnE,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAA;QAC/C,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAExC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QAEzB,mBAAM,CAAC,OAAO,CACV,uBAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrC,MAAM,CAAC,IAAI,EACX,0BAA0B,CAC7B,CAAA;QAED,mBAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;IACpE,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,mDAAmD;QACtE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;QAE9C,mBAAM,CAAC,OAAO,CAAC,uBAAa,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QAEzD,mBAAM,CAAC,OAAO,CACV,IAAI,CAAC,QAAQ,CAAC,eAAe,EAC7B,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAChD,CAAA;IACL,CAAC;IAKsB,AAAb,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,OAAe;QAC7D,IAAI,QAAQ,GAAG,CAAC,CAAA;QAEhB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAA;QAE3C,MAAM,CAAC,UAAU,GAAG,GAAG,EAAE;YACrB,QAAQ,IAAI,CAAC,CAAA;YACb,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;YACxB,CAAC;QACL,CAAC,CAAA;QAED,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;QAE/B,mBAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACrC,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,0BAA0B;QAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;QAEpB,IAAI,QAAQ,GAAG,CAAC,CAAA;QAEhB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAA;QAE3C,MAAM,CAAC,UAAU,GAAG,GAAG,EAAE;YACrB,QAAQ,EAAE,CAAA;QACd,CAAC,CAAA;QAED,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;QAE/B,mBAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAChC,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,oBAAoB;QACvC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QAExB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAC9C,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;QACpB,MAAM,OAAO,CAAA;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAExB,mBAAM,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,EAAE,EAAE,CAAC,CAAA;IACvC,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,sBAAsB;QACzC,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;QAEpB,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,GAAG,EAAE,CAC7B,mBAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAA;IAClD,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,uCAAuC;QAC1D,MAAM,UAAU,GAAG,IAAA,uBAAU,GAAE,CAAA;QAC/B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;QAEpC,mBAAM,CAAC,OAAO,CAAC,uBAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;IACrE,CAAC;IAEO,MAAM,KAAK,SAAS;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAA;IACvC,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,WAAW;QAC5B,2BAAiB,CAAC,KAAK,GAAG,2BAAwB,CAAA;QAClD,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;IAClD,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAa,EAAE,UAAmB;QACpE,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;aAC3B,IAAI,CAAC,IAAI,CAAC;aACV,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAA;QAEvD,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAExC,OAAO,OAAO,CAAA;IAClB,CAAC;IAEO,MAAM,CAAC,sBAAsB,CAAC,UAAmB;QACrD,OAAO;YACH,IAAI,EAAE,IAAA,uBAAU,GAAE;YAClB,UAAU,EAAE,UAAU,IAAI,IAAA,kBAAS,EAAC,GAAG,EAAE,IAAI,CAAC;SACjD,CAAA;IACL,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAClC,OAAmC;QAEnC,OAAO,CAAC,MAAM,2BAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAoB,CAAA;IACvE,CAAC;CACJ;AAnKD,wCAmKC;AArJ0B;IADtB,IAAA,iBAAI,GAAE;sEAcN;AAGsB;IADtB,IAAA,iBAAI,GAAE;4DAMN;AAGsB;IADtB,IAAA,iBAAI,GAAE;mFAcN;AAGsB;IADtB,IAAA,iBAAI,GAAE;sFAUN;AAKsB;IAHtB,IAAA,iBAAI,EAAC,8BAA8B,EAAE,CAAC,CAAC;IACvC,IAAA,iBAAI,EAAC,+BAA+B,EAAE,CAAC,CAAC;IACxC,IAAA,iBAAI,EAAC,8BAA8B,EAAE,CAAC,CAAC;6DAgBvC;AAGsB;IADtB,IAAA,iBAAI,GAAE;6DAeN;AAGsB;IADtB,IAAA,iBAAI,GAAE;uDAWN;AAGsB;IADtB,IAAA,iBAAI,GAAE;yDAON;AAGsB;IADtB,IAAA,iBAAI,GAAE;0EAMN"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { define, open } from 'ffi-rs';
|
|
2
|
-
import { Liblsl, CreateStreamInfoOptions, AppendChannelsToStreamInfoOptions, CreateOutletOptions, DestroyOutletOptions, PushSampleFloatTimestampOptions, PushSampleStringTimestampOptions, CreateInletOptions, DestroyInletOptions } from '../
|
|
2
|
+
import { Liblsl, CreateStreamInfoOptions, AppendChannelsToStreamInfoOptions, CreateOutletOptions, DestroyOutletOptions, PushSampleFloatTimestampOptions, PushSampleStringTimestampOptions, CreateInletOptions, DestroyInletOptions } from '../types';
|
|
3
3
|
export default class LiblslAdapter implements Liblsl {
|
|
4
4
|
private static instance?;
|
|
5
5
|
static ffiRsOpen: typeof open;
|
|
@@ -11,13 +11,13 @@ export default class LiblslAdapter implements Liblsl {
|
|
|
11
11
|
static setInstance(instance: Liblsl): void;
|
|
12
12
|
static resetInstance(): void;
|
|
13
13
|
private loadBindings;
|
|
14
|
-
createStreamInfo(options: CreateStreamInfoOptions): import("../
|
|
14
|
+
createStreamInfo(options: CreateStreamInfoOptions): import("../types").BoundStreamInfo;
|
|
15
15
|
appendChannelsToStreamInfo(options: AppendChannelsToStreamInfoOptions): void;
|
|
16
|
-
createOutlet(options: CreateOutletOptions): import("../
|
|
16
|
+
createOutlet(options: CreateOutletOptions): import("../types").BoundOutlet;
|
|
17
17
|
pushSampleFloatTimestamp(options: PushSampleFloatTimestampOptions): void;
|
|
18
18
|
pushSampleStringTimestamp(options: PushSampleStringTimestampOptions): void;
|
|
19
19
|
destroyOutlet(options: DestroyOutletOptions): void;
|
|
20
|
-
createInlet(options: CreateInletOptions): import("../
|
|
20
|
+
createInlet(options: CreateInletOptions): import("../types").BoundInlet;
|
|
21
21
|
destroyInlet(_options: DestroyInletOptions): void;
|
|
22
22
|
localClock(): number;
|
|
23
23
|
private readonly defaultMacOsPath;
|
package/build/assertions.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChannelFormat } from './
|
|
1
|
+
import { ChannelFormat } from './types';
|
|
2
2
|
export declare function assertValidMaxBuffered(maxBuffered: number): void;
|
|
3
3
|
export declare function assertValidChunkSize(chunkSize: number): void;
|
|
4
4
|
export declare function assertValidChannelFormat(channelFormat: ChannelFormat): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DurationMarker } from '../
|
|
1
|
+
import { DurationMarker } from '../types';
|
|
2
2
|
import { LslOutletOptions, LslOutlet } from './LslStreamOutlet';
|
|
3
3
|
export default class EventMarkerOutlet implements MarkerOutlet {
|
|
4
4
|
static Class?: MarkerOutletConstructor;
|
|
@@ -8,12 +8,15 @@ export default class EventMarkerOutlet implements MarkerOutlet {
|
|
|
8
8
|
private timeout?;
|
|
9
9
|
protected constructor(lslOutlet: LslOutlet);
|
|
10
10
|
static Create(options?: Partial<LslOutletOptions>): Promise<MarkerOutlet>;
|
|
11
|
+
pushMarker(markerName: string): void;
|
|
11
12
|
pushMarkers(markers: DurationMarker[]): Promise<void>;
|
|
13
|
+
private pushMarkerToOutlet;
|
|
12
14
|
protected wait(durationMs: number): Promise<unknown>;
|
|
13
15
|
private setTimeout;
|
|
14
16
|
stop(): void;
|
|
15
17
|
}
|
|
16
18
|
export interface MarkerOutlet {
|
|
19
|
+
pushMarker(markerName: string): void;
|
|
17
20
|
pushMarkers(markers: DurationMarker[]): Promise<void>;
|
|
18
21
|
stop(): void;
|
|
19
22
|
}
|
|
@@ -28,16 +28,23 @@ class EventMarkerOutlet {
|
|
|
28
28
|
});
|
|
29
29
|
return new (this.Class ?? this)(outlet);
|
|
30
30
|
}
|
|
31
|
+
pushMarker(markerName) {
|
|
32
|
+
this.pushMarkerToOutlet(markerName);
|
|
33
|
+
}
|
|
31
34
|
async pushMarkers(markers) {
|
|
32
35
|
this.isPlaying = true;
|
|
33
36
|
for (let marker of markers) {
|
|
34
|
-
|
|
35
|
-
|
|
37
|
+
const { name, durationMs } = marker;
|
|
38
|
+
this.pushMarkerToOutlet(name);
|
|
39
|
+
await this.wait(durationMs);
|
|
36
40
|
if (!this.isPlaying) {
|
|
37
41
|
return;
|
|
38
42
|
}
|
|
39
43
|
}
|
|
40
44
|
}
|
|
45
|
+
pushMarkerToOutlet(markerName) {
|
|
46
|
+
this.lslOutlet.pushSample([markerName]);
|
|
47
|
+
}
|
|
41
48
|
async wait(durationMs) {
|
|
42
49
|
return new Promise((resolve) => this.setTimeout(resolve, durationMs));
|
|
43
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventMarkerOutlet.js","sourceRoot":"","sources":["../../src/components/EventMarkerOutlet.ts"],"names":[],"mappings":";;;;;AACA,wEAAgF;AAEhF,MAAqB,iBAAiB;IAQlC,YAAsB,SAAoB;QAJlC,cAAS,GAAG,KAAK,CAAA;QAKrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC9B,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAmC;QAC1D,MAAM,cAAc,GAAG;YACnB,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,SAAS;YACf,YAAY,EAAE,CAAC,SAAS,CAAC;YACzB,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,QAAQ;YACvB,QAAQ,EAAE,eAAe;YACzB,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;SACG,CAAA;QAErB,MAAM,MAAM,GAAG,MAAM,yBAAe,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,KAAK,CAAC,WAAW,CAAC,OAAyB;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QAErB,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YACzB,
|
|
1
|
+
{"version":3,"file":"EventMarkerOutlet.js","sourceRoot":"","sources":["../../src/components/EventMarkerOutlet.ts"],"names":[],"mappings":";;;;;AACA,wEAAgF;AAEhF,MAAqB,iBAAiB;IAQlC,YAAsB,SAAoB;QAJlC,cAAS,GAAG,KAAK,CAAA;QAKrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC9B,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAmC;QAC1D,MAAM,cAAc,GAAG;YACnB,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,SAAS;YACf,YAAY,EAAE,CAAC,SAAS,CAAC;YACzB,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,QAAQ;YACvB,QAAQ,EAAE,eAAe;YACzB,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;SACG,CAAA;QAErB,MAAM,MAAM,GAAG,MAAM,yBAAe,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,SAAS,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;IAC3C,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;AAvED,oCAuEC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BoundStreamInfo, ChannelFormat } from '../
|
|
1
|
+
import { BoundStreamInfo, ChannelFormat } from '../types';
|
|
2
2
|
export default class LslStreamInfo implements StreamInfo {
|
|
3
3
|
static Class?: StreamInfoConstructor;
|
|
4
4
|
protected name: string;
|
|
@@ -10,7 +10,7 @@ export default class LslStreamInfo implements StreamInfo {
|
|
|
10
10
|
private channelFormat;
|
|
11
11
|
private sampleRate;
|
|
12
12
|
protected constructor(options: StreamInfoOptions);
|
|
13
|
-
static Create(options: StreamInfoOptions):
|
|
13
|
+
static Create(options: StreamInfoOptions): StreamInfo | LslStreamInfo;
|
|
14
14
|
private createStreamInfo;
|
|
15
15
|
private appendChannelsToStreamInfo;
|
|
16
16
|
get boundStreamInfo(): BoundStreamInfo;
|
package/build/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './types';
|
|
2
2
|
export { default as LiblslAdapter } from './adapters/LiblslAdapter';
|
|
3
3
|
export * from './adapters/LiblslAdapter';
|
|
4
4
|
export { default as FakeLiblsl } from './testDoubles/Liblsl/FakeLiblsl';
|
|
@@ -21,4 +21,6 @@ export { default as MockMarkerOutlet } from './testDoubles/MarkerOutlet/MockMark
|
|
|
21
21
|
export * from './testDoubles/MarkerOutlet/MockMarkerOutlet';
|
|
22
22
|
export { default as SpyMarkerOutlet } from './testDoubles/MarkerOutlet/SpyMarkerOutlet';
|
|
23
23
|
export * from './testDoubles/MarkerOutlet/SpyMarkerOutlet';
|
|
24
|
+
export { default as ThrowingMarkerOutlet } from './testDoubles/MarkerOutlet/ThrowingMarkerOutlet';
|
|
25
|
+
export * from './testDoubles/MarkerOutlet/ThrowingMarkerOutlet';
|
|
24
26
|
export { default as generateRandomOutletOptions } from './testDoubles/generateRandomOutletOptions';
|
package/build/index.js
CHANGED
|
@@ -17,8 +17,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.generateRandomOutletOptions = exports.SpyMarkerOutlet = exports.MockMarkerOutlet = exports.FakeMarkerOutlet = exports.EventMarkerOutlet = exports.FakeLslOutlet = exports.LslStreamOutlet = exports.FakeStreamInfo = exports.SpyStreamInfo = exports.LslStreamInfo = exports.FakeLiblsl = exports.LiblslAdapter = void 0;
|
|
21
|
-
__exportStar(require("./
|
|
20
|
+
exports.generateRandomOutletOptions = exports.ThrowingMarkerOutlet = exports.SpyMarkerOutlet = exports.MockMarkerOutlet = exports.FakeMarkerOutlet = exports.EventMarkerOutlet = exports.FakeLslOutlet = exports.LslStreamOutlet = exports.FakeStreamInfo = exports.SpyStreamInfo = exports.LslStreamInfo = exports.FakeLiblsl = exports.LiblslAdapter = void 0;
|
|
21
|
+
__exportStar(require("./types"), exports);
|
|
22
22
|
// Liblsl
|
|
23
23
|
var LiblslAdapter_1 = require("./adapters/LiblslAdapter");
|
|
24
24
|
Object.defineProperty(exports, "LiblslAdapter", { enumerable: true, get: function () { return __importDefault(LiblslAdapter_1).default; } });
|
|
@@ -56,6 +56,10 @@ __exportStar(require("./testDoubles/MarkerOutlet/MockMarkerOutlet"), exports);
|
|
|
56
56
|
var SpyMarkerOutlet_1 = require("./testDoubles/MarkerOutlet/SpyMarkerOutlet");
|
|
57
57
|
Object.defineProperty(exports, "SpyMarkerOutlet", { enumerable: true, get: function () { return __importDefault(SpyMarkerOutlet_1).default; } });
|
|
58
58
|
__exportStar(require("./testDoubles/MarkerOutlet/SpyMarkerOutlet"), exports);
|
|
59
|
+
var ThrowingMarkerOutlet_1 = require("./testDoubles/MarkerOutlet/ThrowingMarkerOutlet");
|
|
60
|
+
Object.defineProperty(exports, "ThrowingMarkerOutlet", { enumerable: true, get: function () { return __importDefault(ThrowingMarkerOutlet_1).default; } });
|
|
61
|
+
__exportStar(require("./testDoubles/MarkerOutlet/ThrowingMarkerOutlet"), exports);
|
|
62
|
+
// Utils
|
|
59
63
|
var generateRandomOutletOptions_1 = require("./testDoubles/generateRandomOutletOptions");
|
|
60
64
|
Object.defineProperty(exports, "generateRandomOutletOptions", { enumerable: true, get: function () { return __importDefault(generateRandomOutletOptions_1).default; } });
|
|
61
65
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,0CAAuB;AAEvB,SAAS;AAET,0DAAmE;AAA1D,+HAAA,OAAO,OAAiB;AACjC,2DAAwC;AAExC,8DAAuE;AAA9D,yHAAA,OAAO,OAAc;AAC9B,kEAA+C;AAE/C,gBAAgB;AAEhB,4DAAqE;AAA5D,+HAAA,OAAO,OAAiB;AACjC,6DAA0C;AAE1C,wEAAiF;AAAxE,+HAAA,OAAO,OAAiB;AACjC,yEAAsD;AAEtD,0EAAmF;AAA1E,iIAAA,OAAO,OAAkB;AAClC,0EAAuD;AAEvD,kBAAkB;AAElB,gEAAyE;AAAhE,mIAAA,OAAO,OAAmB;AACnC,+DAA4C;AAE5C,uEAAgF;AAAvE,+HAAA,OAAO,OAAiB;AACjC,wEAAqD;AAErD,oBAAoB;AAEpB,oEAA6E;AAApE,uIAAA,OAAO,OAAqB;AACrC,iEAA8C;AAE9C,gFAAyF;AAAhF,qIAAA,OAAO,OAAoB;AACpC,8EAA2D;AAE3D,gFAAyF;AAAhF,qIAAA,OAAO,OAAoB;AACpC,8EAA2D;AAE3D,8EAAuF;AAA9E,mIAAA,OAAO,OAAmB;AACnC,6EAA0D;AAE1D,wFAAiG;AAAxF,6IAAA,OAAO,OAAwB;AACxC,kFAA+D;AAE/D,QAAQ;AAER,yFAAkG;AAAzF,2JAAA,OAAO,OAA+B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BoundOutlet, BoundStreamInfo, CreateStreamInfoOptions, AppendChannelsToStreamInfoOptions, CreateOutletOptions, PushSampleFloatTimestampOptions, PushSampleStringTimestampOptions, Liblsl, CreateInletOptions, DestroyInletOptions, BoundInlet } from '../../
|
|
1
|
+
import { BoundOutlet, BoundStreamInfo, CreateStreamInfoOptions, AppendChannelsToStreamInfoOptions, CreateOutletOptions, PushSampleFloatTimestampOptions, PushSampleStringTimestampOptions, Liblsl, CreateInletOptions, DestroyInletOptions, BoundInlet } from '../../types';
|
|
2
2
|
export default class FakeLiblsl implements Liblsl {
|
|
3
3
|
outlet: BoundOutlet;
|
|
4
4
|
streamInfo: BoundStreamInfo;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { StreamInfo } from '../../components/LslStreamInfo';
|
|
2
2
|
import { LslOutlet, LslOutletOptions } from '../../components/LslStreamOutlet';
|
|
3
|
-
import { LslSample } from '../../
|
|
3
|
+
import { LslSample } from '../../types';
|
|
4
4
|
export default class FakeLslOutlet implements LslOutlet {
|
|
5
5
|
static callsToConstructor: CallToConstructor[];
|
|
6
6
|
static callsToPushSample: LslSample[];
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { MarkerOutlet } from '../../components/EventMarkerOutlet';
|
|
2
|
-
import { DurationMarker } from '../../
|
|
2
|
+
import { DurationMarker } from '../../types';
|
|
3
3
|
export default class FakeMarkerOutlet implements MarkerOutlet {
|
|
4
|
-
static
|
|
5
|
-
static
|
|
6
|
-
static
|
|
4
|
+
static callsToPushMarker: string[];
|
|
5
|
+
static callsToPushMarkers: DurationMarker[][];
|
|
6
|
+
static numCallsToStop: number;
|
|
7
|
+
static numCallsToDestroy: number;
|
|
7
8
|
constructor();
|
|
9
|
+
pushMarker(markerName: string): void;
|
|
8
10
|
pushMarkers(markers: DurationMarker[]): Promise<void>;
|
|
9
11
|
stop(): void;
|
|
10
12
|
destroy(): void;
|
|
@@ -1,25 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
class FakeMarkerOutlet {
|
|
4
|
-
constructor() {
|
|
5
|
-
|
|
6
|
-
FakeMarkerOutlet.
|
|
7
|
-
FakeMarkerOutlet.numDestroyCalls = 0;
|
|
4
|
+
constructor() { }
|
|
5
|
+
pushMarker(markerName) {
|
|
6
|
+
FakeMarkerOutlet.callsToPushMarker.push(markerName);
|
|
8
7
|
}
|
|
9
8
|
async pushMarkers(markers) {
|
|
10
|
-
FakeMarkerOutlet.
|
|
9
|
+
FakeMarkerOutlet.callsToPushMarkers.push(markers);
|
|
11
10
|
}
|
|
12
11
|
stop() {
|
|
13
|
-
FakeMarkerOutlet.
|
|
12
|
+
FakeMarkerOutlet.numCallsToStop++;
|
|
14
13
|
}
|
|
15
14
|
destroy() {
|
|
16
|
-
FakeMarkerOutlet.
|
|
15
|
+
FakeMarkerOutlet.numCallsToDestroy++;
|
|
17
16
|
}
|
|
18
17
|
static resetTestDouble() {
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
18
|
+
this.callsToPushMarker = [];
|
|
19
|
+
this.callsToPushMarkers = [];
|
|
20
|
+
this.numCallsToStop = 0;
|
|
21
|
+
this.numCallsToDestroy = 0;
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
+
FakeMarkerOutlet.callsToPushMarker = [];
|
|
25
|
+
FakeMarkerOutlet.callsToPushMarkers = [];
|
|
26
|
+
FakeMarkerOutlet.numCallsToStop = 0;
|
|
27
|
+
FakeMarkerOutlet.numCallsToDestroy = 0;
|
|
24
28
|
exports.default = FakeMarkerOutlet;
|
|
25
29
|
//# sourceMappingURL=FakeMarkerOutlet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FakeMarkerOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/MarkerOutlet/FakeMarkerOutlet.ts"],"names":[],"mappings":";;AAGA,MAAqB,gBAAgB;
|
|
1
|
+
{"version":3,"file":"FakeMarkerOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/MarkerOutlet/FakeMarkerOutlet.ts"],"names":[],"mappings":";;AAGA,MAAqB,gBAAgB;IAMjC,gBAAsB,CAAC;IAEhB,UAAU,CAAC,UAAkB;QAChC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACvD,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAAyB;QAC9C,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACrD,CAAC;IAEM,IAAI;QACP,gBAAgB,CAAC,cAAc,EAAE,CAAA;IACrC,CAAC;IAEM,OAAO;QACV,gBAAgB,CAAC,iBAAiB,EAAE,CAAA;IACxC,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAA;QAC3B,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAA;QAC5B,IAAI,CAAC,cAAc,GAAG,CAAC,CAAA;QACvB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAC9B,CAAC;;AA5Ba,kCAAiB,GAAa,EAAE,CAAA;AAChC,mCAAkB,GAAuB,EAAE,CAAA;AAC3C,+BAAc,GAAG,CAAC,CAAA;AAClB,kCAAiB,GAAG,CAAC,CAAA;kBAJlB,gBAAgB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MarkerOutlet } from '../../components/EventMarkerOutlet';
|
|
2
|
-
import { DurationMarker, LslSample } from '../../
|
|
2
|
+
import { DurationMarker, LslSample } from '../../types';
|
|
3
3
|
export default class MockMarkerOutlet implements MarkerOutlet {
|
|
4
4
|
private didPushMarkers;
|
|
5
5
|
private pushedMarkers?;
|
|
@@ -7,6 +7,7 @@ export default class MockMarkerOutlet implements MarkerOutlet {
|
|
|
7
7
|
private pushedSamples?;
|
|
8
8
|
stop(): void;
|
|
9
9
|
destroy(): void;
|
|
10
|
+
pushMarker(_markerName: string): void;
|
|
10
11
|
pushSample(sample: LslSample): void;
|
|
11
12
|
pushMarkers(markers: DurationMarker[]): Promise<void>;
|
|
12
13
|
assertDidPushSamples(samples?: LslSample[]): void;
|
|
@@ -6,8 +6,15 @@ class MockMarkerOutlet {
|
|
|
6
6
|
this.didPushMarkers = false;
|
|
7
7
|
this.didPushSamples = false;
|
|
8
8
|
}
|
|
9
|
-
stop() {
|
|
10
|
-
|
|
9
|
+
stop() {
|
|
10
|
+
throw new Error('Method not implemented.');
|
|
11
|
+
}
|
|
12
|
+
destroy() {
|
|
13
|
+
throw new Error('Method not implemented.');
|
|
14
|
+
}
|
|
15
|
+
pushMarker(_markerName) {
|
|
16
|
+
throw new Error('Method not implemented.');
|
|
17
|
+
}
|
|
11
18
|
pushSample(sample) {
|
|
12
19
|
if (!this.didPushSamples) {
|
|
13
20
|
this.didPushSamples = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockMarkerOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/MarkerOutlet/MockMarkerOutlet.ts"],"names":[],"mappings":";;AAAA,uDAA+C;AAI/C,MAAqB,gBAAgB;IAArC;QACY,mBAAc,GAAG,KAAK,CAAA;QAEtB,mBAAc,GAAG,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"MockMarkerOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/MarkerOutlet/MockMarkerOutlet.ts"],"names":[],"mappings":";;AAAA,uDAA+C;AAI/C,MAAqB,gBAAgB;IAArC;QACY,mBAAc,GAAG,KAAK,CAAA;QAEtB,mBAAc,GAAG,KAAK,CAAA;IA+DlC,CAAC;IA5DU,IAAI;QACP,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC9C,CAAC;IAEM,OAAO;QACV,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC9C,CAAC;IAEM,UAAU,CAAC,WAAmB;QACjC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC9C,CAAC;IAEM,UAAU,CAAC,MAAiB;QAC/B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;YAC1B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;QAC3B,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACpC,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAAyB;QAC9C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;QAC1B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAA;IAChC,CAAC;IAEM,oBAAoB,CAAC,OAAqB;QAC7C,mBAAM,CAAC,MAAM,CACT,IAAI,CAAC,cAAc,EACnB,0EAA0E,CAC7E,CAAA;QAED,IAAI,OAAO,EAAE,CAAC;YACV,mBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;QACnD,CAAC;IACL,CAAC;IAEM,uBAAuB;QAC1B,mBAAM,CAAC,OAAO,CACV,IAAI,CAAC,cAAc,EACnB,2EAA2E,CAC9E,CAAA;IACL,CAAC;IAEM,oBAAoB,CAAC,OAA0B;QAClD,mBAAM,CAAC,MAAM,CACT,IAAI,CAAC,cAAc,EACnB,2EAA2E,CAC9E,CAAA;QAED,IAAI,OAAO,EAAE,CAAC;YACV,mBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;QACnD,CAAC;IACL,CAAC;IAEM,uBAAuB;QAC1B,mBAAM,CAAC,OAAO,CACV,IAAI,CAAC,cAAc,EACnB,4EAA4E,CAC/E,CAAA;IACL,CAAC;CACJ;AAlED,mCAkEC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { MarkerOutlet } from '../../components/EventMarkerOutlet';
|
|
2
|
+
import { DurationMarker } from '../../types';
|
|
3
|
+
export default class ThrowingMarkerOutlet implements MarkerOutlet {
|
|
4
|
+
private errorMsg;
|
|
5
|
+
constructor();
|
|
6
|
+
pushMarker(_markerName: string): Promise<void>;
|
|
7
|
+
pushMarkers(_markers: DurationMarker[]): Promise<void>;
|
|
8
|
+
stop(): void;
|
|
9
|
+
destroy(): void;
|
|
10
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class ThrowingMarkerOutlet {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.errorMsg = 'Intentional throwing: ';
|
|
6
|
+
throw new Error(this.errorMsg + 'constructor');
|
|
7
|
+
}
|
|
8
|
+
async pushMarker(_markerName) {
|
|
9
|
+
throw new Error(this.errorMsg + 'pushMarker');
|
|
10
|
+
}
|
|
11
|
+
async pushMarkers(_markers) {
|
|
12
|
+
throw new Error(this.errorMsg + 'pushMarkers');
|
|
13
|
+
}
|
|
14
|
+
stop() {
|
|
15
|
+
throw new Error(this.errorMsg + 'stop');
|
|
16
|
+
}
|
|
17
|
+
destroy() {
|
|
18
|
+
throw new Error(this.errorMsg + 'destroy');
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.default = ThrowingMarkerOutlet;
|
|
22
|
+
//# sourceMappingURL=ThrowingMarkerOutlet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThrowingMarkerOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/MarkerOutlet/ThrowingMarkerOutlet.ts"],"names":[],"mappings":";;AAGA,MAAqB,oBAAoB;IAGrC;QAFQ,aAAQ,GAAG,wBAAwB,CAAA;QAGvC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,CAAA;IAClD,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,WAAmB;QACvC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,CAAA;IACjD,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,QAA0B;QAC/C,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,CAAA;IAClD,CAAC;IAEM,IAAI;QACP,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAA;IAC3C,CAAC;IAEM,OAAO;QACV,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAA;IAC9C,CAAC;CACJ;AAtBD,uCAsBC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { StreamInfo, StreamInfoOptions } from '../../components/LslStreamInfo';
|
|
2
|
-
import { BoundStreamInfo } from '../../
|
|
2
|
+
import { BoundStreamInfo } from '../../types';
|
|
3
3
|
export default class FakeStreamInfo implements StreamInfo {
|
|
4
4
|
static callsToConstructor: StreamInfoOptions[];
|
|
5
5
|
static boundStreamInfo: BoundStreamInfo;
|
package/build/types.d.ts
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { FuncObj, FieldType } from 'ffi-rs';
|
|
2
|
+
import { LslInlet } from './components/LslStreamInlet';
|
|
3
|
+
import { LslOutlet } from './components/LslStreamOutlet';
|
|
4
|
+
import { CHANNEL_FORMATS } from './consts';
|
|
5
|
+
export type StreamFixuture = LslOutlet | LslInlet;
|
|
6
|
+
export type ChannelFormat = (typeof CHANNEL_FORMATS)[number];
|
|
7
|
+
export interface DurationMarker {
|
|
8
|
+
name: string;
|
|
9
|
+
durationMs: number;
|
|
10
|
+
}
|
|
11
|
+
export interface Liblsl {
|
|
12
|
+
createStreamInfo(options: CreateStreamInfoOptions): BoundStreamInfo;
|
|
13
|
+
appendChannelsToStreamInfo(options: AppendChannelsToStreamInfoOptions): void;
|
|
14
|
+
createOutlet(options: CreateOutletOptions): BoundOutlet;
|
|
15
|
+
pushSampleFloatTimestamp(options: PushSampleFloatTimestampOptions): void;
|
|
16
|
+
pushSampleStringTimestamp(options: PushSampleStringTimestampOptions): void;
|
|
17
|
+
destroyOutlet(options: DestroyOutletOptions): void;
|
|
18
|
+
createInlet(options: CreateInletOptions): BoundInlet;
|
|
19
|
+
destroyInlet(options: DestroyInletOptions): void;
|
|
20
|
+
localClock(): number;
|
|
21
|
+
}
|
|
22
|
+
export interface CreateStreamInfoOptions {
|
|
23
|
+
name: string;
|
|
24
|
+
type: string;
|
|
25
|
+
channelCount: number;
|
|
26
|
+
sampleRate: number;
|
|
27
|
+
channelFormat: number;
|
|
28
|
+
sourceId: string;
|
|
29
|
+
manufacturer?: string;
|
|
30
|
+
unit?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface AppendChannelsToStreamInfoOptions {
|
|
33
|
+
info: BoundStreamInfo;
|
|
34
|
+
channels: LslChannel[];
|
|
35
|
+
}
|
|
36
|
+
export interface LslChannel {
|
|
37
|
+
label: string;
|
|
38
|
+
unit: string;
|
|
39
|
+
type: string;
|
|
40
|
+
}
|
|
41
|
+
export type LslSample = (number | string | undefined)[];
|
|
42
|
+
export interface CreateOutletOptions {
|
|
43
|
+
info: BoundStreamInfo;
|
|
44
|
+
chunkSize: number;
|
|
45
|
+
maxBuffered: number;
|
|
46
|
+
}
|
|
47
|
+
export interface PushSampleFloatTimestampOptions {
|
|
48
|
+
outlet: BoundOutlet;
|
|
49
|
+
sample: number[];
|
|
50
|
+
timestamp: number;
|
|
51
|
+
}
|
|
52
|
+
export interface PushSampleStringTimestampOptions {
|
|
53
|
+
outlet: BoundOutlet;
|
|
54
|
+
sample: string[];
|
|
55
|
+
timestamp: number;
|
|
56
|
+
}
|
|
57
|
+
export interface DestroyOutletOptions {
|
|
58
|
+
outlet: BoundOutlet;
|
|
59
|
+
}
|
|
60
|
+
export interface CreateInletOptions {
|
|
61
|
+
info: BoundStreamInfo;
|
|
62
|
+
chunkSize: number;
|
|
63
|
+
maxBuffered: number;
|
|
64
|
+
}
|
|
65
|
+
export interface DestroyInletOptions {
|
|
66
|
+
}
|
|
67
|
+
export interface LiblslBindings {
|
|
68
|
+
lsl_create_streaminfo(args: [string, string, number, number, number, string]): BoundStreamInfo;
|
|
69
|
+
lsl_create_outlet(args: [BoundStreamInfo, number, number]): BoundOutlet;
|
|
70
|
+
lsl_push_sample_ft(args: [BoundOutlet, LslSample, number]): void;
|
|
71
|
+
lsl_push_sample_strt(args: [BoundOutlet, LslSample, number]): void;
|
|
72
|
+
lsl_destroy_outlet(args: [BoundOutlet]): void;
|
|
73
|
+
lsl_create_inlet(args: any): BoundInlet;
|
|
74
|
+
lsl_destroy_inlet(args: any): void;
|
|
75
|
+
lsl_local_clock(args: []): number;
|
|
76
|
+
lsl_get_desc(args: [BoundStreamInfo]): BoundDescription;
|
|
77
|
+
lsl_append_child(args: [BoundDescription, string]): BoundChild;
|
|
78
|
+
lsl_append_child_value(args: [BoundChild, string, string]): void;
|
|
79
|
+
}
|
|
80
|
+
export interface BoundStreamInfo {
|
|
81
|
+
}
|
|
82
|
+
export interface BoundOutlet {
|
|
83
|
+
}
|
|
84
|
+
export interface BoundInlet {
|
|
85
|
+
}
|
|
86
|
+
export interface BoundDescription {
|
|
87
|
+
}
|
|
88
|
+
export interface BoundChild {
|
|
89
|
+
}
|
|
90
|
+
export type FfiRsDefineOptions = FuncObj<FieldType, boolean | undefined>;
|
package/build/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -131,6 +131,14 @@ export default class EventMarkerOutletTest extends AbstractLslTest {
|
|
|
131
131
|
assert.fail('Should not have been called')
|
|
132
132
|
}
|
|
133
133
|
|
|
134
|
+
@test()
|
|
135
|
+
protected static async pushMarkerCallsPushSampleOnMarkerOutlet() {
|
|
136
|
+
const markerName = generateId()
|
|
137
|
+
this.instance.pushMarker(markerName)
|
|
138
|
+
|
|
139
|
+
assert.isEqual(FakeLslOutlet.callsToPushSample[0][0], markerName)
|
|
140
|
+
}
|
|
141
|
+
|
|
134
142
|
private static get lslOutlet() {
|
|
135
143
|
return this.instance.getLslOutlet()
|
|
136
144
|
}
|
|
@@ -3,7 +3,7 @@ import { StreamInfo } from '../components/LslStreamInfo'
|
|
|
3
3
|
import LslStreamOutlet, {
|
|
4
4
|
LslOutletOptions,
|
|
5
5
|
} from '../components/LslStreamOutlet'
|
|
6
|
-
import { LslSample } from '../
|
|
6
|
+
import { LslSample } from '../types'
|
|
7
7
|
import {
|
|
8
8
|
TEST_SUPPORTED_CHANNEL_FORMATS,
|
|
9
9
|
TEST_UNSUPPORTED_CHANNEL_FORMATS,
|
package/src/assertions.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DurationMarker } from '../
|
|
1
|
+
import { DurationMarker } from '../types'
|
|
2
2
|
import LslStreamOutlet, { LslOutletOptions, LslOutlet } from './LslStreamOutlet'
|
|
3
3
|
|
|
4
4
|
export default class EventMarkerOutlet implements MarkerOutlet {
|
|
@@ -35,13 +35,18 @@ export default class EventMarkerOutlet implements MarkerOutlet {
|
|
|
35
35
|
return new (this.Class ?? this)(outlet)
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
+
public pushMarker(markerName: string) {
|
|
39
|
+
this.pushMarkerToOutlet(markerName)
|
|
40
|
+
}
|
|
41
|
+
|
|
38
42
|
public async pushMarkers(markers: DurationMarker[]) {
|
|
39
43
|
this.isPlaying = true
|
|
40
44
|
|
|
41
45
|
for (let marker of markers) {
|
|
42
|
-
|
|
46
|
+
const { name, durationMs } = marker
|
|
47
|
+
this.pushMarkerToOutlet(name)
|
|
43
48
|
|
|
44
|
-
await this.wait(
|
|
49
|
+
await this.wait(durationMs)
|
|
45
50
|
|
|
46
51
|
if (!this.isPlaying) {
|
|
47
52
|
return
|
|
@@ -49,6 +54,10 @@ export default class EventMarkerOutlet implements MarkerOutlet {
|
|
|
49
54
|
}
|
|
50
55
|
}
|
|
51
56
|
|
|
57
|
+
private pushMarkerToOutlet(markerName: string) {
|
|
58
|
+
this.lslOutlet.pushSample([markerName])
|
|
59
|
+
}
|
|
60
|
+
|
|
52
61
|
protected async wait(durationMs: number) {
|
|
53
62
|
return new Promise((resolve) => this.setTimeout(resolve, durationMs))
|
|
54
63
|
}
|
|
@@ -66,6 +75,7 @@ export default class EventMarkerOutlet implements MarkerOutlet {
|
|
|
66
75
|
}
|
|
67
76
|
|
|
68
77
|
export interface MarkerOutlet {
|
|
78
|
+
pushMarker(markerName: string): void
|
|
69
79
|
pushMarkers(markers: DurationMarker[]): Promise<void>
|
|
70
80
|
stop(): void
|
|
71
81
|
}
|
|
@@ -2,7 +2,7 @@ import { assertOptions } from '@sprucelabs/schema'
|
|
|
2
2
|
import { generateId } from '@sprucelabs/test-utils'
|
|
3
3
|
import LiblslAdapter from '../adapters/LiblslAdapter'
|
|
4
4
|
import { CHANNEL_FORMATS_MAP } from '../consts'
|
|
5
|
-
import { BoundStreamInfo, ChannelFormat } from '../
|
|
5
|
+
import { BoundStreamInfo, ChannelFormat } from '../types'
|
|
6
6
|
|
|
7
7
|
export default class LslStreamInfo implements StreamInfo {
|
|
8
8
|
public static Class?: StreamInfoConstructor
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { assertOptions } from '@sprucelabs/schema'
|
|
2
2
|
import { generateId } from '@sprucelabs/test-utils'
|
|
3
3
|
import LiblslAdapter from '../adapters/LiblslAdapter'
|
|
4
|
-
import { ChannelFormat } from '../
|
|
4
|
+
import { ChannelFormat } from '../types'
|
|
5
5
|
import LslStreamInfo, { StreamInfo, StreamInfoOptions } from './LslStreamInfo'
|
|
6
6
|
|
|
7
7
|
export default class LslStreamInlet implements LslInlet {
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
assertValidMaxBuffered,
|
|
8
8
|
assertValidSampleRate,
|
|
9
9
|
} from '../assertions'
|
|
10
|
-
import { ChannelFormat, BoundOutlet, Liblsl, LslSample } from '../
|
|
10
|
+
import { ChannelFormat, BoundOutlet, Liblsl, LslSample } from '../types'
|
|
11
11
|
import LslStreamInfo, { StreamInfo, StreamInfoOptions } from './LslStreamInfo'
|
|
12
12
|
|
|
13
13
|
export default class LslStreamOutlet implements LslOutlet {
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './types'
|
|
2
2
|
|
|
3
3
|
// Liblsl
|
|
4
4
|
|
|
@@ -41,4 +41,9 @@ export * from './testDoubles/MarkerOutlet/MockMarkerOutlet'
|
|
|
41
41
|
export { default as SpyMarkerOutlet } from './testDoubles/MarkerOutlet/SpyMarkerOutlet'
|
|
42
42
|
export * from './testDoubles/MarkerOutlet/SpyMarkerOutlet'
|
|
43
43
|
|
|
44
|
+
export { default as ThrowingMarkerOutlet } from './testDoubles/MarkerOutlet/ThrowingMarkerOutlet'
|
|
45
|
+
export * from './testDoubles/MarkerOutlet/ThrowingMarkerOutlet'
|
|
46
|
+
|
|
47
|
+
// Utils
|
|
48
|
+
|
|
44
49
|
export { default as generateRandomOutletOptions } from './testDoubles/generateRandomOutletOptions'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { StreamInfo } from '../../components/LslStreamInfo'
|
|
2
2
|
import { LslOutlet, LslOutletOptions } from '../../components/LslStreamOutlet'
|
|
3
|
-
import { LslSample } from '../../
|
|
3
|
+
import { LslSample } from '../../types'
|
|
4
4
|
|
|
5
5
|
export default class FakeLslOutlet implements LslOutlet {
|
|
6
6
|
public static callsToConstructor: CallToConstructor[] = []
|
|
@@ -1,32 +1,34 @@
|
|
|
1
1
|
import { MarkerOutlet } from '../../components/EventMarkerOutlet'
|
|
2
|
-
import { DurationMarker } from '../../
|
|
2
|
+
import { DurationMarker } from '../../types'
|
|
3
3
|
|
|
4
4
|
export default class FakeMarkerOutlet implements MarkerOutlet {
|
|
5
|
-
public static
|
|
6
|
-
public static
|
|
7
|
-
public static
|
|
5
|
+
public static callsToPushMarker: string[] = []
|
|
6
|
+
public static callsToPushMarkers: DurationMarker[][] = []
|
|
7
|
+
public static numCallsToStop = 0
|
|
8
|
+
public static numCallsToDestroy = 0
|
|
8
9
|
|
|
9
|
-
public constructor() {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
FakeMarkerOutlet.
|
|
10
|
+
public constructor() {}
|
|
11
|
+
|
|
12
|
+
public pushMarker(markerName: string) {
|
|
13
|
+
FakeMarkerOutlet.callsToPushMarker.push(markerName)
|
|
13
14
|
}
|
|
14
15
|
|
|
15
16
|
public async pushMarkers(markers: DurationMarker[]) {
|
|
16
|
-
FakeMarkerOutlet.
|
|
17
|
+
FakeMarkerOutlet.callsToPushMarkers.push(markers)
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
public stop() {
|
|
20
|
-
FakeMarkerOutlet.
|
|
21
|
+
FakeMarkerOutlet.numCallsToStop++
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
public destroy() {
|
|
24
|
-
FakeMarkerOutlet.
|
|
25
|
+
FakeMarkerOutlet.numCallsToDestroy++
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
public static resetTestDouble() {
|
|
28
|
-
this.
|
|
29
|
-
this.
|
|
30
|
-
this.
|
|
29
|
+
this.callsToPushMarker = []
|
|
30
|
+
this.callsToPushMarkers = []
|
|
31
|
+
this.numCallsToStop = 0
|
|
32
|
+
this.numCallsToDestroy = 0
|
|
31
33
|
}
|
|
32
34
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { assert } from '@sprucelabs/test-utils'
|
|
2
2
|
import { MarkerOutlet } from '../../components/EventMarkerOutlet'
|
|
3
|
-
import { DurationMarker, LslSample } from '../../
|
|
3
|
+
import { DurationMarker, LslSample } from '../../types'
|
|
4
4
|
|
|
5
5
|
export default class MockMarkerOutlet implements MarkerOutlet {
|
|
6
6
|
private didPushMarkers = false
|
|
@@ -8,8 +8,17 @@ export default class MockMarkerOutlet implements MarkerOutlet {
|
|
|
8
8
|
private didPushSamples = false
|
|
9
9
|
private pushedSamples?: LslSample[]
|
|
10
10
|
|
|
11
|
-
public stop() {
|
|
12
|
-
|
|
11
|
+
public stop() {
|
|
12
|
+
throw new Error('Method not implemented.')
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
public destroy() {
|
|
16
|
+
throw new Error('Method not implemented.')
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
public pushMarker(_markerName: string) {
|
|
20
|
+
throw new Error('Method not implemented.')
|
|
21
|
+
}
|
|
13
22
|
|
|
14
23
|
public pushSample(sample: LslSample) {
|
|
15
24
|
if (!this.didPushSamples) {
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { MarkerOutlet } from '../../components/EventMarkerOutlet'
|
|
2
|
+
import { DurationMarker } from '../../types'
|
|
3
|
+
|
|
4
|
+
export default class ThrowingMarkerOutlet implements MarkerOutlet {
|
|
5
|
+
private errorMsg = 'Intentional throwing: '
|
|
6
|
+
|
|
7
|
+
public constructor() {
|
|
8
|
+
throw new Error(this.errorMsg + 'constructor')
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
public async pushMarker(_markerName: string) {
|
|
12
|
+
throw new Error(this.errorMsg + 'pushMarker')
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
public async pushMarkers(_markers: DurationMarker[]) {
|
|
16
|
+
throw new Error(this.errorMsg + 'pushMarkers')
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
public stop() {
|
|
20
|
+
throw new Error(this.errorMsg + 'stop')
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public destroy() {
|
|
24
|
+
throw new Error(this.errorMsg + 'destroy')
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { StreamInfo, StreamInfoOptions } from '../../components/LslStreamInfo'
|
|
2
|
-
import { BoundStreamInfo } from '../../
|
|
2
|
+
import { BoundStreamInfo } from '../../types'
|
|
3
3
|
|
|
4
4
|
export default class FakeStreamInfo implements StreamInfo {
|
|
5
5
|
public static callsToConstructor: StreamInfoOptions[] = []
|
|
File without changes
|