@neurodevs/node-lsl 11.2.0 → 11.3.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__/AbstractLslTest.js +5 -5
- package/build/__tests__/AbstractLslTest.js.map +1 -1
- package/build/__tests__/{EventMarkerOutlet.test.d.ts → modules/EventMarkerOutlet.test.d.ts} +1 -1
- package/build/__tests__/{EventMarkerOutlet.test.js → modules/EventMarkerOutlet.test.js} +4 -4
- package/build/__tests__/modules/EventMarkerOutlet.test.js.map +1 -0
- package/build/__tests__/{LiblslAdapter.test.d.ts → modules/LiblslAdapter.test.d.ts} +1 -1
- package/build/__tests__/{LiblslAdapter.test.js → modules/LiblslAdapter.test.js} +36 -35
- package/build/__tests__/modules/LiblslAdapter.test.js.map +1 -0
- package/build/__tests__/{LslStreamInfo.test.d.ts → modules/LslStreamInfo.test.d.ts} +1 -1
- package/build/__tests__/{LslStreamInfo.test.js → modules/LslStreamInfo.test.js} +3 -3
- package/build/__tests__/modules/LslStreamInfo.test.js.map +1 -0
- package/build/__tests__/{LslStreamInlet.test.d.ts → modules/LslStreamInlet.test.d.ts} +1 -1
- package/build/__tests__/{LslStreamInlet.test.js → modules/LslStreamInlet.test.js} +3 -3
- package/build/__tests__/modules/LslStreamInlet.test.js.map +1 -0
- package/build/__tests__/{LslStreamOutlet.test.d.ts → modules/LslStreamOutlet.test.d.ts} +2 -2
- package/build/__tests__/{LslStreamOutlet.test.js → modules/LslStreamOutlet.test.js} +5 -5
- package/build/__tests__/modules/LslStreamOutlet.test.js.map +1 -0
- package/build/index.d.ts +12 -8
- package/build/index.js +16 -9
- package/build/index.js.map +1 -1
- package/build/modules/EventMarkerOutlet.js.map +1 -0
- package/build/{components → modules}/LiblslAdapter.js +32 -32
- package/build/modules/LiblslAdapter.js.map +1 -0
- package/build/{components → modules}/LslStreamInfo.d.ts +1 -1
- package/build/{components → modules}/LslStreamInfo.js +1 -1
- package/build/modules/LslStreamInfo.js.map +1 -0
- package/build/{components → modules}/LslStreamInlet.js +1 -1
- package/build/modules/LslStreamInlet.js.map +1 -0
- package/build/{components → modules}/LslStreamOutlet.d.ts +5 -1
- package/build/{components → modules}/LslStreamOutlet.js +19 -12
- package/build/modules/LslStreamOutlet.js.map +1 -0
- package/build/testDoubles/LslInlet/FakeLslInlet.d.ts +11 -0
- package/build/testDoubles/LslInlet/FakeLslInlet.js +16 -0
- package/build/testDoubles/LslInlet/FakeLslInlet.js.map +1 -0
- package/build/testDoubles/LslInlet/SpyLslInlet.d.ts +2 -2
- package/build/testDoubles/LslInlet/SpyLslInlet.js +1 -1
- package/build/testDoubles/LslInlet/SpyLslInlet.js.map +1 -1
- package/build/testDoubles/LslOutlet/FakeLslOutlet.d.ts +4 -4
- package/build/testDoubles/LslOutlet/FakeLslOutlet.js.map +1 -1
- package/build/testDoubles/MarkerOutlet/FakeMarkerOutlet.d.ts +1 -1
- package/build/testDoubles/MarkerOutlet/MockMarkerOutlet.d.ts +1 -1
- package/build/testDoubles/MarkerOutlet/SpyMarkerOutlet.d.ts +2 -2
- package/build/testDoubles/MarkerOutlet/SpyMarkerOutlet.js +1 -1
- package/build/testDoubles/MarkerOutlet/SpyMarkerOutlet.js.map +1 -1
- package/build/testDoubles/MarkerOutlet/ThrowingMarkerOutlet.d.ts +1 -1
- package/build/testDoubles/StreamInfo/FakeStreamInfo.d.ts +1 -1
- package/build/testDoubles/StreamInfo/SpyStreamInfo.d.ts +1 -1
- package/build/testDoubles/StreamInfo/SpyStreamInfo.js +1 -1
- package/build/testDoubles/StreamInfo/SpyStreamInfo.js.map +1 -1
- package/build/testDoubles/generateRandomOutletOptions.d.ts +1 -1
- package/build/types.d.ts +2 -2
- package/package.json +1 -1
- package/src/__tests__/AbstractLslTest.ts +5 -5
- package/src/__tests__/{EventMarkerOutlet.test.ts → modules/EventMarkerOutlet.test.ts} +6 -6
- package/src/__tests__/{LiblslAdapter.test.ts → modules/LiblslAdapter.test.ts} +5 -5
- package/src/__tests__/{LslStreamInfo.test.ts → modules/LslStreamInfo.test.ts} +4 -4
- package/src/__tests__/{LslStreamInlet.test.ts → modules/LslStreamInlet.test.ts} +4 -4
- package/src/__tests__/{LslStreamOutlet.test.ts → modules/LslStreamOutlet.test.ts} +7 -7
- package/src/index.ts +16 -8
- package/src/{components → modules}/LslStreamInfo.ts +1 -1
- package/src/{components → modules}/LslStreamInlet.ts +1 -1
- package/src/{components → modules}/LslStreamOutlet.ts +22 -14
- package/src/testDoubles/LslInlet/FakeLslInlet.ts +22 -0
- package/src/testDoubles/LslInlet/SpyLslInlet.ts +2 -4
- package/src/testDoubles/LslOutlet/FakeLslOutlet.ts +4 -4
- package/src/testDoubles/MarkerOutlet/FakeMarkerOutlet.ts +1 -1
- package/src/testDoubles/MarkerOutlet/MockMarkerOutlet.ts +1 -1
- package/src/testDoubles/MarkerOutlet/SpyMarkerOutlet.ts +2 -2
- package/src/testDoubles/MarkerOutlet/ThrowingMarkerOutlet.ts +1 -1
- package/src/testDoubles/StreamInfo/FakeStreamInfo.ts +1 -1
- package/src/testDoubles/StreamInfo/SpyStreamInfo.ts +1 -3
- package/src/testDoubles/generateRandomOutletOptions.ts +1 -1
- package/src/types.ts +2 -2
- package/build/__tests__/EventMarkerOutlet.test.js.map +0 -1
- package/build/__tests__/LiblslAdapter.test.js.map +0 -1
- package/build/__tests__/LslStreamInfo.test.js.map +0 -1
- package/build/__tests__/LslStreamInlet.test.js.map +0 -1
- package/build/__tests__/LslStreamOutlet.test.js.map +0 -1
- package/build/adapters/LiblslAdapter.js +0 -198
- package/build/adapters/LiblslAdapter.js.map +0 -1
- package/build/components/EventMarkerOutlet.js.map +0 -1
- package/build/components/LiblslAdapter.d.ts +0 -24
- package/build/components/LiblslAdapter.js.map +0 -1
- package/build/components/LslStreamInfo.js.map +0 -1
- package/build/components/LslStreamInlet.js.map +0 -1
- package/build/components/LslStreamOutlet.js.map +0 -1
- package/build/nodeLsl.types.d.ts +0 -90
- package/build/nodeLsl.types.js +0 -3
- package/build/nodeLsl.types.js.map +0 -1
- /package/build/{components → modules}/EventMarkerOutlet.d.ts +0 -0
- /package/build/{components → modules}/EventMarkerOutlet.js +0 -0
- /package/build/{adapters → modules}/LiblslAdapter.d.ts +0 -0
- /package/build/{components → modules}/LslStreamInlet.d.ts +0 -0
- /package/src/{components → modules}/EventMarkerOutlet.ts +0 -0
- /package/src/{adapters → modules}/LiblslAdapter.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LslStreamInfo.js","sourceRoot":"","sources":["../../src/modules/LslStreamInfo.ts"],"names":[],"mappings":";;;;;AAAA,+CAAkD;AAClD,uDAAmD;AACnD,sCAA+C;AAE/C,oEAA2C;AAE3C,MAAqB,aAAa;IAY9B,YAAsB,OAA0B;QAkE/B,gBAAW,GAAG,mBAAmB,IAAA,uBAAU,GAAE,EAAE,CAAA;QAC/C,gBAAW,GAAG,IAAA,uBAAU,GAAE,CAAA;QAC1B,oBAAe,GAAG,IAAA,uBAAU,GAAE,CAAA;QAC9B,iBAAY,GAAG,KAAK,CAAA;QApEjC,MAAM,EACF,YAAY,EACZ,aAAa,EACb,UAAU,EACV,IAAI,GAAG,IAAI,CAAC,WAAW,EACvB,IAAI,GAAG,IAAI,CAAC,WAAW,EACvB,QAAQ,GAAG,IAAI,CAAC,eAAe,EAC/B,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,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAE5B,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,IAAI,CAAC,0BAA0B,EAAE,CAAA;IACrC,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,OAA0B;QAC3C,IAAA,sBAAa,EAAC,OAAO,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC,CAAA;QACvE,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,CAAA;IAC5C,CAAC;IAEO,gBAAgB;QACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC;YACxC,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,UAAU,EAAE,IAAI,CAAC,UAAU;SAC9B,CAAC,CAAA;IACN,CAAC;IAEO,0BAA0B;QAC9B,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC;YAChC,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC;gBAChD,KAAK;gBACL,IAAI,EAAE,IAAI,CAAC,KAAK;gBAChB,IAAI,EAAE,IAAI,CAAC,IAAI;aAClB,CAAC,CAAC;SACN,CAAC,CAAA;IACN,CAAC;IAED,IAAW,eAAe;QACtB,OAAO,IAAI,CAAC,UAAU,CAAA;IAC1B,CAAC;IAED,IAAY,YAAY;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAA;IACnC,CAAC;IAED,IAAY,gBAAgB;QACxB,OAAO,4BAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAClD,CAAC;IAED,IAAY,GAAG;QACX,OAAO,uBAAa,CAAC,WAAW,EAAE,CAAA;IACtC,CAAC;CAMJ;AAlFD,gCAkFC"}
|
|
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const schema_1 = require("@sprucelabs/schema");
|
|
7
7
|
const test_utils_1 = require("@sprucelabs/test-utils");
|
|
8
|
-
const LiblslAdapter_1 = __importDefault(require("
|
|
8
|
+
const LiblslAdapter_1 = __importDefault(require("./LiblslAdapter"));
|
|
9
9
|
const LslStreamInfo_1 = __importDefault(require("./LslStreamInfo"));
|
|
10
10
|
class LslStreamInlet {
|
|
11
11
|
constructor(info, options) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LslStreamInlet.js","sourceRoot":"","sources":["../../src/modules/LslStreamInlet.ts"],"names":[],"mappings":";;;;;AAAA,+CAAkD;AAClD,uDAAmD;AAEnD,oEAA2C;AAC3C,oEAA8E;AAE9E,MAAqB,cAAc;IAQ/B,YAAsB,IAAgB,EAAE,OAAwB;QA6C/C,gBAAW,GAAG,aAAa,IAAA,uBAAU,GAAE,EAAE,CAAA;QA5CtD,MAAM,EACF,IAAI,GAAG,IAAI,CAAC,WAAW,EACvB,SAAS,EACT,WAAW,GACd,GAAG,OAAO,IAAI,EAAE,CAAA;QAEjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAEhB,IAAI,CAAC,cAAc,EAAE,CAAA;IACzB,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,OAAwB;QACzC,IAAA,sBAAa,EAAC,OAAO,EAAE;YACnB,cAAc;YACd,eAAe;YACf,YAAY;YACZ,WAAW;YACX,aAAa;SAChB,CAAC,CAAA;QACF,6DAA6D;QAC7D,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,iBAAiB,EAAE,GAAG,OAAO,CAAA;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAA;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;IAEO,cAAc;QAClB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;YACjB,IAAI,EAAE,IAAI,CAAC,eAAe;YAC1B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;SAChC,CAAC,CAAA;IACN,CAAC;IAED,IAAY,eAAe;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAA;IACpC,CAAC;IAED,IAAY,GAAG;QACX,OAAO,uBAAa,CAAC,WAAW,EAAE,CAAA;IACtC,CAAC;IAIO,MAAM,CAAC,aAAa,CAAC,OAA0B;QACnD,OAAO,uBAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACxC,CAAC;CACJ;AA1DD,iCA0DC"}
|
|
@@ -13,7 +13,11 @@ export default class LslStreamOutlet implements LslOutlet {
|
|
|
13
13
|
private setPushSampleType;
|
|
14
14
|
destroy(): void;
|
|
15
15
|
pushSample(sample: LslSample): void;
|
|
16
|
-
private
|
|
16
|
+
private get pushMethod();
|
|
17
|
+
private validateChannelFormat;
|
|
18
|
+
private throwUnsupportedChannelFormat;
|
|
19
|
+
private get unsupportedChannelMessage();
|
|
20
|
+
private readonly methodMap;
|
|
17
21
|
private get channelNames();
|
|
18
22
|
private get channelCount();
|
|
19
23
|
private get channelFormat();
|
|
@@ -4,11 +4,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const schema_1 = require("@sprucelabs/schema");
|
|
7
|
-
const LiblslAdapter_1 = __importDefault(require("../adapters/LiblslAdapter"));
|
|
8
7
|
const assertions_1 = require("../assertions");
|
|
8
|
+
const LiblslAdapter_1 = __importDefault(require("./LiblslAdapter"));
|
|
9
9
|
const LslStreamInfo_1 = __importDefault(require("./LslStreamInfo"));
|
|
10
10
|
class LslStreamOutlet {
|
|
11
11
|
constructor(info, options) {
|
|
12
|
+
this.methodMap = {
|
|
13
|
+
float32: 'pushSampleFloatTimestamp',
|
|
14
|
+
string: 'pushSampleStringTimestamp',
|
|
15
|
+
};
|
|
12
16
|
this.info = info;
|
|
13
17
|
this.options = options;
|
|
14
18
|
this.validateOptions();
|
|
@@ -58,8 +62,8 @@ class LslStreamOutlet {
|
|
|
58
62
|
});
|
|
59
63
|
}
|
|
60
64
|
setPushSampleType() {
|
|
61
|
-
|
|
62
|
-
this.pushSampleByType = this.lsl[pushMethod].bind(this.lsl);
|
|
65
|
+
this.validateChannelFormat();
|
|
66
|
+
this.pushSampleByType = this.lsl[this.pushMethod].bind(this.lsl);
|
|
63
67
|
}
|
|
64
68
|
destroy() {
|
|
65
69
|
this.lsl.destroyOutlet({ outlet: this.outlet });
|
|
@@ -72,16 +76,19 @@ class LslStreamOutlet {
|
|
|
72
76
|
timestamp,
|
|
73
77
|
});
|
|
74
78
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
if (!(channelFormat in methodMap)) {
|
|
82
|
-
throw new Error(`This method currently does not support the ${channelFormat} type! Please implement it.`);
|
|
79
|
+
get pushMethod() {
|
|
80
|
+
return this.methodMap[this.channelFormat];
|
|
81
|
+
}
|
|
82
|
+
validateChannelFormat() {
|
|
83
|
+
if (!(this.channelFormat in this.methodMap)) {
|
|
84
|
+
this.throwUnsupportedChannelFormat();
|
|
83
85
|
}
|
|
84
|
-
|
|
86
|
+
}
|
|
87
|
+
throwUnsupportedChannelFormat() {
|
|
88
|
+
throw new Error(this.unsupportedChannelMessage);
|
|
89
|
+
}
|
|
90
|
+
get unsupportedChannelMessage() {
|
|
91
|
+
return `This method currently does not support the ${this.channelFormat} type! Please implement it.`;
|
|
85
92
|
}
|
|
86
93
|
get channelNames() {
|
|
87
94
|
return this.options.channelNames;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LslStreamOutlet.js","sourceRoot":"","sources":["../../src/modules/LslStreamOutlet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { StreamInfo } from '../../modules/LslStreamInfo';
|
|
2
|
+
import { LslInlet, LslInletOptions } from '../../modules/LslStreamInlet';
|
|
3
|
+
export default class FakeLslInlet implements LslInlet {
|
|
4
|
+
static callsToConstructor: CallToInletConstructor[];
|
|
5
|
+
constructor(info?: StreamInfo, options?: LslInletOptions);
|
|
6
|
+
static resetTestDouble(): void;
|
|
7
|
+
}
|
|
8
|
+
export interface CallToInletConstructor {
|
|
9
|
+
info?: StreamInfo;
|
|
10
|
+
options?: LslInletOptions;
|
|
11
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class FakeLslInlet {
|
|
4
|
+
constructor(info, options) {
|
|
5
|
+
FakeLslInlet.callsToConstructor.push({
|
|
6
|
+
info,
|
|
7
|
+
options,
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
static resetTestDouble() {
|
|
11
|
+
FakeLslInlet.callsToConstructor = [];
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
FakeLslInlet.callsToConstructor = [];
|
|
15
|
+
exports.default = FakeLslInlet;
|
|
16
|
+
//# sourceMappingURL=FakeLslInlet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeLslInlet.js","sourceRoot":"","sources":["../../../src/testDoubles/LslInlet/FakeLslInlet.ts"],"names":[],"mappings":";;AAGA,MAAqB,YAAY;IAG7B,YAAmB,IAAiB,EAAE,OAAyB;QAC3D,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC;YACjC,IAAI;YACJ,OAAO;SACV,CAAC,CAAA;IACN,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,YAAY,CAAC,kBAAkB,GAAG,EAAE,CAAA;IACxC,CAAC;;AAXa,+BAAkB,GAA6B,EAAE,CAAA;kBAD9C,YAAY"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { StreamInfo } from '../../
|
|
2
|
-
import LslStreamInlet, { LslInletOptions } from '../../
|
|
1
|
+
import { StreamInfo } from '../../modules/LslStreamInfo';
|
|
2
|
+
import LslStreamInlet, { LslInletOptions } from '../../modules/LslStreamInlet';
|
|
3
3
|
export declare class SpyLslInlet extends LslStreamInlet {
|
|
4
4
|
constructor(info: StreamInfo, options: LslInletOptions);
|
|
5
5
|
getName(): string;
|
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.SpyLslInlet = void 0;
|
|
7
|
-
const LslStreamInlet_1 = __importDefault(require("../../
|
|
7
|
+
const LslStreamInlet_1 = __importDefault(require("../../modules/LslStreamInlet"));
|
|
8
8
|
class SpyLslInlet extends LslStreamInlet_1.default {
|
|
9
9
|
constructor(info, options) {
|
|
10
10
|
super(info, options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpyLslInlet.js","sourceRoot":"","sources":["../../../src/testDoubles/LslInlet/SpyLslInlet.ts"],"names":[],"mappings":";;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"SpyLslInlet.js","sourceRoot":"","sources":["../../../src/testDoubles/LslInlet/SpyLslInlet.ts"],"names":[],"mappings":";;;;;;AACA,kFAA8E;AAE9E,MAAa,WAAY,SAAQ,wBAAc;IAC3C,YAAmB,IAAgB,EAAE,OAAwB;QACzD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACxB,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,IAAI,CAAA;IACpB,CAAC;IAEM,aAAa;QAChB,OAAO,IAAI,CAAC,IAAI,CAAA;IACpB,CAAC;CACJ;AAZD,kCAYC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { StreamInfo } from '../../
|
|
2
|
-
import { LslOutlet, LslOutletOptions } from '../../
|
|
1
|
+
import { StreamInfo } from '../../modules/LslStreamInfo';
|
|
2
|
+
import { LslOutlet, LslOutletOptions } from '../../modules/LslStreamOutlet';
|
|
3
3
|
import { LslSample } from '../../types';
|
|
4
4
|
export default class FakeLslOutlet implements LslOutlet {
|
|
5
|
-
static callsToConstructor:
|
|
5
|
+
static callsToConstructor: CallToOutletConstructor[];
|
|
6
6
|
static callsToPushSample: LslSample[];
|
|
7
7
|
static numCallsToDestroy: number;
|
|
8
8
|
constructor(info: StreamInfo, options: LslOutletOptions);
|
|
@@ -10,7 +10,7 @@ export default class FakeLslOutlet implements LslOutlet {
|
|
|
10
10
|
pushSample(sample: LslSample): void;
|
|
11
11
|
static resetTestDouble(): void;
|
|
12
12
|
}
|
|
13
|
-
export interface
|
|
13
|
+
export interface CallToOutletConstructor {
|
|
14
14
|
info: StreamInfo;
|
|
15
15
|
options: LslOutletOptions;
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FakeLslOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/LslOutlet/FakeLslOutlet.ts"],"names":[],"mappings":";;AAIA,MAAqB,aAAa;IAK9B,YAAmB,IAAgB,EAAE,OAAyB;QAC1D,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IAC5D,CAAC;IAEM,OAAO;QACV,aAAa,CAAC,iBAAiB,EAAE,CAAA;IACrC,CAAC;IAEM,UAAU,CAAC,MAAiB;QAC/B,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAChD,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,aAAa,CAAC,kBAAkB,GAAG,EAAE,CAAA;QACrC,aAAa,CAAC,iBAAiB,GAAG,EAAE,CAAA;QACpC,aAAa,CAAC,iBAAiB,GAAG,CAAC,CAAA;IACvC,CAAC;;AApBa,gCAAkB,
|
|
1
|
+
{"version":3,"file":"FakeLslOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/LslOutlet/FakeLslOutlet.ts"],"names":[],"mappings":";;AAIA,MAAqB,aAAa;IAK9B,YAAmB,IAAgB,EAAE,OAAyB;QAC1D,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IAC5D,CAAC;IAEM,OAAO;QACV,aAAa,CAAC,iBAAiB,EAAE,CAAA;IACrC,CAAC;IAEM,UAAU,CAAC,MAAiB;QAC/B,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAChD,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,aAAa,CAAC,kBAAkB,GAAG,EAAE,CAAA;QACrC,aAAa,CAAC,iBAAiB,GAAG,EAAE,CAAA;QACpC,aAAa,CAAC,iBAAiB,GAAG,CAAC,CAAA;IACvC,CAAC;;AApBa,gCAAkB,GAA8B,EAAE,CAAA;AAClD,+BAAiB,GAAgB,EAAE,CAAA;AACnC,+BAAiB,GAAG,CAAC,CAAA;kBAHlB,aAAa"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MarkerOutlet } from '../../
|
|
1
|
+
import { MarkerOutlet } from '../../modules/EventMarkerOutlet';
|
|
2
2
|
import { DurationMarker } from '../../types';
|
|
3
3
|
export default class FakeMarkerOutlet implements MarkerOutlet {
|
|
4
4
|
static callsToPushMarker: string[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MarkerOutlet } from '../../
|
|
1
|
+
import { MarkerOutlet } from '../../modules/EventMarkerOutlet';
|
|
2
2
|
import { DurationMarker, LslSample } from '../../types';
|
|
3
3
|
export default class MockMarkerOutlet implements MarkerOutlet {
|
|
4
4
|
private didPushMarkers;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import EventMarkerOutlet from '../../
|
|
2
|
-
import { LslOutlet } from '../../
|
|
1
|
+
import EventMarkerOutlet from '../../modules/EventMarkerOutlet';
|
|
2
|
+
import { LslOutlet } from '../../modules/LslStreamOutlet';
|
|
3
3
|
export default class SpyMarkerOutlet extends EventMarkerOutlet {
|
|
4
4
|
totalWaitTimeMs: number;
|
|
5
5
|
constructor(lslOutlet: LslOutlet);
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const EventMarkerOutlet_1 = __importDefault(require("../../
|
|
6
|
+
const EventMarkerOutlet_1 = __importDefault(require("../../modules/EventMarkerOutlet"));
|
|
7
7
|
class SpyMarkerOutlet extends EventMarkerOutlet_1.default {
|
|
8
8
|
constructor(lslOutlet) {
|
|
9
9
|
super(lslOutlet);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpyMarkerOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/MarkerOutlet/SpyMarkerOutlet.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"SpyMarkerOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/MarkerOutlet/SpyMarkerOutlet.ts"],"names":[],"mappings":";;;;;AAAA,wFAA+D;AAG/D,MAAqB,eAAgB,SAAQ,2BAAiB;IAG1D,YAAmB,SAAoB;QACnC,KAAK,CAAC,SAAS,CAAC,CAAA;QAChB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAA;IAC5B,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,UAAkB;QAChC,IAAI,CAAC,eAAe,IAAI,UAAU,CAAA;QAClC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC5B,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,SAAS,CAAA;IACzB,CAAC;IAEM,eAAe;QAClB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAA;IAC5B,CAAC;CACJ;AApBD,kCAoBC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { StreamInfo, StreamInfoOptions } from '../../
|
|
1
|
+
import { StreamInfo, StreamInfoOptions } from '../../modules/LslStreamInfo';
|
|
2
2
|
import { BoundStreamInfo } from '../../types';
|
|
3
3
|
export default class FakeStreamInfo implements StreamInfo {
|
|
4
4
|
static callsToConstructor: StreamInfoOptions[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import LslStreamInfo, { StreamInfoOptions } from '../../
|
|
1
|
+
import LslStreamInfo, { StreamInfoOptions } from '../../modules/LslStreamInfo';
|
|
2
2
|
export default class SpyStreamInfo extends LslStreamInfo {
|
|
3
3
|
constructor(options: StreamInfoOptions);
|
|
4
4
|
getStreamInfo(): import("../..").BoundStreamInfo;
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const LslStreamInfo_1 = __importDefault(require("../../
|
|
6
|
+
const LslStreamInfo_1 = __importDefault(require("../../modules/LslStreamInfo"));
|
|
7
7
|
class SpyStreamInfo extends LslStreamInfo_1.default {
|
|
8
8
|
constructor(options) {
|
|
9
9
|
super(options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpyStreamInfo.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamInfo/SpyStreamInfo.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"SpyStreamInfo.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamInfo/SpyStreamInfo.ts"],"names":[],"mappings":";;;;;AAAA,gFAA8E;AAE9E,MAAqB,aAAc,SAAQ,uBAAa;IACpD,YAAmB,OAA0B;QACzC,KAAK,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC;IAEM,aAAa;QAChB,OAAO,IAAI,CAAC,UAAU,CAAA;IAC1B,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,IAAI,CAAA;IACpB,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,IAAI,CAAA;IACpB,CAAC;IAEM,WAAW;QACd,OAAO,IAAI,CAAC,QAAQ,CAAA;IACxB,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,KAAK,CAAA;IACrB,CAAC;CACJ;AAxBD,gCAwBC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { LslOutletOptions } from '../
|
|
1
|
+
import { LslOutletOptions } from '../modules/LslStreamOutlet';
|
|
2
2
|
export default function generateRandomOutletOptions(): LslOutletOptions;
|
package/build/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FuncObj, FieldType } from 'ffi-rs';
|
|
2
|
-
import { LslInlet } from './components/LslStreamInlet';
|
|
3
|
-
import { LslOutlet } from './components/LslStreamOutlet';
|
|
4
2
|
import { CHANNEL_FORMATS } from './consts';
|
|
3
|
+
import { LslInlet } from './modules/LslStreamInlet';
|
|
4
|
+
import { LslOutlet } from './modules/LslStreamOutlet';
|
|
5
5
|
export type StreamFixuture = LslOutlet | LslInlet;
|
|
6
6
|
export type ChannelFormat = (typeof CHANNEL_FORMATS)[number];
|
|
7
7
|
export interface DurationMarker {
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import AbstractSpruceTest, { generateId } from '@sprucelabs/test-utils'
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import LslStreamInfo from '../
|
|
5
|
-
import LslStreamInlet from '../
|
|
2
|
+
import EventMarkerOutlet from '../modules/EventMarkerOutlet'
|
|
3
|
+
import LiblslAdapter from '../modules/LiblslAdapter'
|
|
4
|
+
import LslStreamInfo from '../modules/LslStreamInfo'
|
|
5
|
+
import LslStreamInlet from '../modules/LslStreamInlet'
|
|
6
6
|
|
|
7
|
-
import LslStreamOutlet from '../
|
|
7
|
+
import LslStreamOutlet from '../modules/LslStreamOutlet'
|
|
8
8
|
import FakeLiblsl from '../testDoubles/Liblsl/FakeLiblsl'
|
|
9
9
|
import { SpyLslInlet } from '../testDoubles/LslInlet/SpyLslInlet'
|
|
10
10
|
import FakeLslOutlet from '../testDoubles/LslOutlet/FakeLslOutlet'
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { randomInt } from 'crypto'
|
|
2
2
|
import { assert, generateId, test } from '@sprucelabs/test-utils'
|
|
3
|
-
import EventMarkerOutlet from '
|
|
4
|
-
import { LslOutletOptions } from '
|
|
5
|
-
import generateRandomOutletOptions from '
|
|
6
|
-
import FakeLslOutlet from '
|
|
7
|
-
import SpyMarkerOutlet from '
|
|
8
|
-
import AbstractLslTest from '
|
|
3
|
+
import EventMarkerOutlet from '../../modules/EventMarkerOutlet'
|
|
4
|
+
import { LslOutletOptions } from '../../modules/LslStreamOutlet'
|
|
5
|
+
import generateRandomOutletOptions from '../../testDoubles/generateRandomOutletOptions'
|
|
6
|
+
import FakeLslOutlet from '../../testDoubles/LslOutlet/FakeLslOutlet'
|
|
7
|
+
import SpyMarkerOutlet from '../../testDoubles/MarkerOutlet/SpyMarkerOutlet'
|
|
8
|
+
import AbstractLslTest from '../AbstractLslTest'
|
|
9
9
|
|
|
10
10
|
export default class EventMarkerOutletTest extends AbstractLslTest {
|
|
11
11
|
private static instance: SpyMarkerOutlet
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { randomInt } from 'crypto'
|
|
2
2
|
import { test, assert, errorAssert, generateId } from '@sprucelabs/test-utils'
|
|
3
3
|
import { DataType, OpenParams } from 'ffi-rs'
|
|
4
|
-
import LiblslAdapter from '
|
|
4
|
+
import LiblslAdapter from '../../modules/LiblslAdapter'
|
|
5
|
+
import FakeLiblsl from '../../testDoubles/Liblsl/FakeLiblsl'
|
|
5
6
|
import {
|
|
6
7
|
BoundChild,
|
|
7
8
|
BoundDescription,
|
|
@@ -12,9 +13,8 @@ import {
|
|
|
12
13
|
Liblsl,
|
|
13
14
|
LiblslBindings,
|
|
14
15
|
LslChannel,
|
|
15
|
-
} from '
|
|
16
|
-
import
|
|
17
|
-
import AbstractLslTest from './AbstractLslTest'
|
|
16
|
+
} from '../../types'
|
|
17
|
+
import AbstractLslTest from '../AbstractLslTest'
|
|
18
18
|
|
|
19
19
|
export default class LiblslAdapterTest extends AbstractLslTest {
|
|
20
20
|
private static lsl: Liblsl
|
|
@@ -77,7 +77,7 @@ export default class LiblslAdapterTest extends AbstractLslTest {
|
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
LiblslAdapter.ffiRsDefine = (options) => {
|
|
80
|
-
this.ffiRsDefineOptions = options
|
|
80
|
+
this.ffiRsDefineOptions = options as FfiRsDefineOptions
|
|
81
81
|
if (this.shouldThrowWhenCreatingBindings) {
|
|
82
82
|
throw new Error('Failed to create bindings!')
|
|
83
83
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { test, assert, generateId, errorAssert } from '@sprucelabs/test-utils'
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import SpyStreamInfo from '
|
|
5
|
-
import AbstractLslTest from '
|
|
2
|
+
import { CHANNEL_FORMATS } from '../../consts'
|
|
3
|
+
import LslStreamInfo, { StreamInfoOptions } from '../../modules/LslStreamInfo'
|
|
4
|
+
import SpyStreamInfo from '../../testDoubles/StreamInfo/SpyStreamInfo'
|
|
5
|
+
import AbstractLslTest from '../AbstractLslTest'
|
|
6
6
|
|
|
7
7
|
export default class LslStreamInfoTest extends AbstractLslTest {
|
|
8
8
|
private static instance: SpyStreamInfo
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { test, assert, errorAssert } from '@sprucelabs/test-utils'
|
|
2
|
-
import LslStreamInlet, { LslInletOptions } from '
|
|
3
|
-
import { SpyLslInlet } from '
|
|
4
|
-
import FakeStreamInfo from '
|
|
5
|
-
import AbstractLslTest from '
|
|
2
|
+
import LslStreamInlet, { LslInletOptions } from '../../modules/LslStreamInlet'
|
|
3
|
+
import { SpyLslInlet } from '../../testDoubles/LslInlet/SpyLslInlet'
|
|
4
|
+
import FakeStreamInfo from '../../testDoubles/StreamInfo/FakeStreamInfo'
|
|
5
|
+
import AbstractLslTest from '../AbstractLslTest'
|
|
6
6
|
|
|
7
7
|
export default class LslStreamInletTest extends AbstractLslTest {
|
|
8
8
|
private static instance: SpyLslInlet
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { test, assert, errorAssert, generateId } from '@sprucelabs/test-utils'
|
|
2
|
-
import { StreamInfo } from '
|
|
2
|
+
import { StreamInfo } from '../../modules/LslStreamInfo'
|
|
3
3
|
import LslStreamOutlet, {
|
|
4
4
|
LslOutletOptions,
|
|
5
|
-
} from '
|
|
6
|
-
import { LslSample } from '../types'
|
|
5
|
+
} from '../../modules/LslStreamOutlet'
|
|
7
6
|
import {
|
|
8
7
|
TEST_SUPPORTED_CHANNEL_FORMATS,
|
|
9
8
|
TEST_UNSUPPORTED_CHANNEL_FORMATS,
|
|
10
9
|
TestChannelFormat,
|
|
11
|
-
} from '
|
|
10
|
+
} from '../../testDoubles/consts'
|
|
12
11
|
|
|
13
|
-
import generateRandomOutletOptions from '
|
|
14
|
-
import FakeStreamInfo from '
|
|
15
|
-
import
|
|
12
|
+
import generateRandomOutletOptions from '../../testDoubles/generateRandomOutletOptions'
|
|
13
|
+
import FakeStreamInfo from '../../testDoubles/StreamInfo/FakeStreamInfo'
|
|
14
|
+
import { LslSample } from '../../types'
|
|
15
|
+
import AbstractLslTest from '../AbstractLslTest'
|
|
16
16
|
|
|
17
17
|
export default class LslStreamOutletTest extends AbstractLslTest {
|
|
18
18
|
private static randomOutletOptions: LslOutletOptions
|
package/src/index.ts
CHANGED
|
@@ -2,16 +2,16 @@ export * from './types'
|
|
|
2
2
|
|
|
3
3
|
// Liblsl
|
|
4
4
|
|
|
5
|
-
export { default as LiblslAdapter } from './
|
|
6
|
-
export * from './
|
|
5
|
+
export { default as LiblslAdapter } from './modules/LiblslAdapter'
|
|
6
|
+
export * from './modules/LiblslAdapter'
|
|
7
7
|
|
|
8
8
|
export { default as FakeLiblsl } from './testDoubles/Liblsl/FakeLiblsl'
|
|
9
9
|
export * from './testDoubles/Liblsl/FakeLiblsl'
|
|
10
10
|
|
|
11
11
|
// LslStreamInfo
|
|
12
12
|
|
|
13
|
-
export { default as LslStreamInfo } from './
|
|
14
|
-
export * from './
|
|
13
|
+
export { default as LslStreamInfo } from './modules/LslStreamInfo'
|
|
14
|
+
export * from './modules/LslStreamInfo'
|
|
15
15
|
|
|
16
16
|
export { default as SpyStreamInfo } from './testDoubles/StreamInfo/SpyStreamInfo'
|
|
17
17
|
export * from './testDoubles/StreamInfo/SpyStreamInfo'
|
|
@@ -19,18 +19,26 @@ export * from './testDoubles/StreamInfo/SpyStreamInfo'
|
|
|
19
19
|
export { default as FakeStreamInfo } from './testDoubles/StreamInfo/FakeStreamInfo'
|
|
20
20
|
export * from './testDoubles/StreamInfo/FakeStreamInfo'
|
|
21
21
|
|
|
22
|
+
// LslStreamInlet
|
|
23
|
+
|
|
24
|
+
export { default as LslStreamInlet } from './modules/LslStreamInlet'
|
|
25
|
+
export * from './modules/LslStreamInlet'
|
|
26
|
+
|
|
27
|
+
export { default as FakeLslInlet } from './testDoubles/LslInlet/FakeLslInlet'
|
|
28
|
+
export * from './testDoubles/LslInlet/FakeLslInlet'
|
|
29
|
+
|
|
22
30
|
// LslStreamOutlet
|
|
23
31
|
|
|
24
|
-
export { default as LslStreamOutlet } from './
|
|
25
|
-
export * from './
|
|
32
|
+
export { default as LslStreamOutlet } from './modules/LslStreamOutlet'
|
|
33
|
+
export * from './modules/LslStreamOutlet'
|
|
26
34
|
|
|
27
35
|
export { default as FakeLslOutlet } from './testDoubles/LslOutlet/FakeLslOutlet'
|
|
28
36
|
export * from './testDoubles/LslOutlet/FakeLslOutlet'
|
|
29
37
|
|
|
30
38
|
// EventMarkerOutlet
|
|
31
39
|
|
|
32
|
-
export { default as EventMarkerOutlet } from './
|
|
33
|
-
export * from './
|
|
40
|
+
export { default as EventMarkerOutlet } from './modules/EventMarkerOutlet'
|
|
41
|
+
export * from './modules/EventMarkerOutlet'
|
|
34
42
|
|
|
35
43
|
export { default as FakeMarkerOutlet } from './testDoubles/MarkerOutlet/FakeMarkerOutlet'
|
|
36
44
|
export * from './testDoubles/MarkerOutlet/FakeMarkerOutlet'
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { assertOptions } from '@sprucelabs/schema'
|
|
2
2
|
import { generateId } from '@sprucelabs/test-utils'
|
|
3
|
-
import LiblslAdapter from '../adapters/LiblslAdapter'
|
|
4
3
|
import { CHANNEL_FORMATS_MAP } from '../consts'
|
|
5
4
|
import { BoundStreamInfo, ChannelFormat } from '../types'
|
|
5
|
+
import LiblslAdapter from './LiblslAdapter'
|
|
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
|
-
import LiblslAdapter from '../adapters/LiblslAdapter'
|
|
4
3
|
import { ChannelFormat } from '../types'
|
|
4
|
+
import LiblslAdapter from './LiblslAdapter'
|
|
5
5
|
import LslStreamInfo, { StreamInfo, StreamInfoOptions } from './LslStreamInfo'
|
|
6
6
|
|
|
7
7
|
export default class LslStreamInlet implements LslInlet {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { assertOptions } from '@sprucelabs/schema'
|
|
2
|
-
import LiblslAdapter from '../adapters/LiblslAdapter'
|
|
3
2
|
import {
|
|
4
3
|
assertValidChannelCount,
|
|
5
4
|
assertValidChannelFormat,
|
|
@@ -8,6 +7,7 @@ import {
|
|
|
8
7
|
assertValidSampleRate,
|
|
9
8
|
} from '../assertions'
|
|
10
9
|
import { ChannelFormat, BoundOutlet, Liblsl, LslSample } from '../types'
|
|
10
|
+
import LiblslAdapter from './LiblslAdapter'
|
|
11
11
|
import LslStreamInfo, { StreamInfo, StreamInfoOptions } from './LslStreamInfo'
|
|
12
12
|
|
|
13
13
|
export default class LslStreamOutlet implements LslOutlet {
|
|
@@ -78,8 +78,9 @@ export default class LslStreamOutlet implements LslOutlet {
|
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
private setPushSampleType() {
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
this.validateChannelFormat()
|
|
82
|
+
|
|
83
|
+
this.pushSampleByType = this.lsl[this.pushMethod].bind(this.lsl)
|
|
83
84
|
}
|
|
84
85
|
|
|
85
86
|
public destroy() {
|
|
@@ -96,20 +97,27 @@ export default class LslStreamOutlet implements LslOutlet {
|
|
|
96
97
|
})
|
|
97
98
|
}
|
|
98
99
|
|
|
99
|
-
private
|
|
100
|
-
|
|
100
|
+
private get pushMethod() {
|
|
101
|
+
return this.methodMap[this.channelFormat]
|
|
102
|
+
}
|
|
101
103
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
104
|
+
private validateChannelFormat() {
|
|
105
|
+
if (!(this.channelFormat in this.methodMap)) {
|
|
106
|
+
this.throwUnsupportedChannelFormat()
|
|
105
107
|
}
|
|
108
|
+
}
|
|
106
109
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
return
|
|
110
|
+
private throwUnsupportedChannelFormat() {
|
|
111
|
+
throw new Error(this.unsupportedChannelMessage)
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
private get unsupportedChannelMessage() {
|
|
115
|
+
return `This method currently does not support the ${this.channelFormat} type! Please implement it.`
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
private readonly methodMap: Record<string, keyof Liblsl> = {
|
|
119
|
+
float32: 'pushSampleFloatTimestamp',
|
|
120
|
+
string: 'pushSampleStringTimestamp',
|
|
113
121
|
}
|
|
114
122
|
|
|
115
123
|
private get channelNames() {
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { StreamInfo } from '../../modules/LslStreamInfo'
|
|
2
|
+
import { LslInlet, LslInletOptions } from '../../modules/LslStreamInlet'
|
|
3
|
+
|
|
4
|
+
export default class FakeLslInlet implements LslInlet {
|
|
5
|
+
public static callsToConstructor: CallToInletConstructor[] = []
|
|
6
|
+
|
|
7
|
+
public constructor(info?: StreamInfo, options?: LslInletOptions) {
|
|
8
|
+
FakeLslInlet.callsToConstructor.push({
|
|
9
|
+
info,
|
|
10
|
+
options,
|
|
11
|
+
})
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
public static resetTestDouble() {
|
|
15
|
+
FakeLslInlet.callsToConstructor = []
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface CallToInletConstructor {
|
|
20
|
+
info?: StreamInfo
|
|
21
|
+
options?: LslInletOptions
|
|
22
|
+
}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { StreamInfo } from '../../
|
|
2
|
-
import LslStreamInlet, {
|
|
3
|
-
LslInletOptions,
|
|
4
|
-
} from '../../components/LslStreamInlet'
|
|
1
|
+
import { StreamInfo } from '../../modules/LslStreamInfo'
|
|
2
|
+
import LslStreamInlet, { LslInletOptions } from '../../modules/LslStreamInlet'
|
|
5
3
|
|
|
6
4
|
export class SpyLslInlet extends LslStreamInlet {
|
|
7
5
|
public constructor(info: StreamInfo, options: LslInletOptions) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { StreamInfo } from '../../
|
|
2
|
-
import { LslOutlet, LslOutletOptions } from '../../
|
|
1
|
+
import { StreamInfo } from '../../modules/LslStreamInfo'
|
|
2
|
+
import { LslOutlet, LslOutletOptions } from '../../modules/LslStreamOutlet'
|
|
3
3
|
import { LslSample } from '../../types'
|
|
4
4
|
|
|
5
5
|
export default class FakeLslOutlet implements LslOutlet {
|
|
6
|
-
public static callsToConstructor:
|
|
6
|
+
public static callsToConstructor: CallToOutletConstructor[] = []
|
|
7
7
|
public static callsToPushSample: LslSample[] = []
|
|
8
8
|
public static numCallsToDestroy = 0
|
|
9
9
|
|
|
@@ -26,7 +26,7 @@ export default class FakeLslOutlet implements LslOutlet {
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
export interface
|
|
29
|
+
export interface CallToOutletConstructor {
|
|
30
30
|
info: StreamInfo
|
|
31
31
|
options: LslOutletOptions
|
|
32
32
|
}
|