@neurodevs/node-lsl 4.1.3 → 4.1.5
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/LslOutlet.d.ts +1 -0
- package/build/LslOutlet.js +7 -7
- package/build/LslOutlet.js.map +1 -1
- package/build/__tests__/behavioral/LslOutlet.test.d.ts +1 -1
- package/build/__tests__/behavioral/LslOutlet.test.js +12 -21
- package/build/__tests__/behavioral/LslOutlet.test.js.map +1 -1
- package/build/__tests__/behavioral/TimeMarkerOutlet.test.js +1 -1
- package/build/__tests__/behavioral/TimeMarkerOutlet.test.js.map +1 -1
- package/build/__tests__/support/consts.d.ts +12 -0
- package/build/__tests__/support/consts.js +20 -1
- package/build/__tests__/support/consts.js.map +1 -1
- package/build/__tests__/support/generateRandomOutletOptions.d.ts +1 -1
- package/build/__tests__/support/generateRandomOutletOptions.js +3 -2
- package/build/__tests__/support/generateRandomOutletOptions.js.map +1 -1
- package/build/consts.d.ts +10 -0
- package/build/consts.js +11 -1
- package/build/consts.js.map +1 -1
- package/package.json +1 -1
- package/src/LslOutlet.ts +12 -11
- package/src/__tests__/behavioral/LslOutlet.test.ts +21 -27
- package/src/__tests__/behavioral/TimeMarkerOutlet.test.ts +1 -1
- package/src/__tests__/support/consts.ts +22 -0
- package/src/__tests__/support/generateRandomOutletOptions.ts +5 -3
- package/src/consts.ts +11 -0
package/build/LslOutlet.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export default class LslOutletImpl implements LslOutlet {
|
|
|
5
5
|
private options;
|
|
6
6
|
private streamInfo;
|
|
7
7
|
private outlet;
|
|
8
|
+
private pushSampleByType;
|
|
8
9
|
protected constructor(options: LslOutletOptions);
|
|
9
10
|
static Outlet(options: LslOutletOptions): LslOutlet;
|
|
10
11
|
destroy(): void;
|
package/build/LslOutlet.js
CHANGED
|
@@ -57,6 +57,8 @@ class LslOutletImpl {
|
|
|
57
57
|
chunkSize: this.options.chunkSize,
|
|
58
58
|
maxBuffered: this.options.maxBuffered,
|
|
59
59
|
});
|
|
60
|
+
const pushMethod = this.getPushMethod();
|
|
61
|
+
this.pushSampleByType = this.lsl[pushMethod].bind(this.lsl);
|
|
60
62
|
}
|
|
61
63
|
static Outlet(options) {
|
|
62
64
|
var _a;
|
|
@@ -67,8 +69,7 @@ class LslOutletImpl {
|
|
|
67
69
|
}
|
|
68
70
|
pushSample(sample) {
|
|
69
71
|
const timestamp = this.lsl.localClock();
|
|
70
|
-
|
|
71
|
-
this.lsl[method]({
|
|
72
|
+
this.pushSampleByType({
|
|
72
73
|
outlet: this.outlet,
|
|
73
74
|
sample,
|
|
74
75
|
timestamp,
|
|
@@ -80,14 +81,13 @@ class LslOutletImpl {
|
|
|
80
81
|
float32: 'pushSampleFt',
|
|
81
82
|
string: 'pushSampleStrt',
|
|
82
83
|
};
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
throw new Error(`This method currently does not support the ${this.options.channelFormat} type! Please implement it.`);
|
|
84
|
+
if (!(channelFormat in methodMap)) {
|
|
85
|
+
throw new Error(`This method currently does not support the ${channelFormat} type! Please implement it.`);
|
|
86
86
|
}
|
|
87
|
-
return
|
|
87
|
+
return methodMap[channelFormat];
|
|
88
88
|
}
|
|
89
89
|
lookupChannelFormat(channelFormat) {
|
|
90
|
-
return consts_1.
|
|
90
|
+
return consts_1.CHANNEL_FORMATS_MAP[channelFormat];
|
|
91
91
|
}
|
|
92
92
|
get lsl() {
|
|
93
93
|
return Liblsl_1.default.getInstance();
|
package/build/LslOutlet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LslOutlet.js","sourceRoot":"","sources":["../src/LslOutlet.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAAkD;AAClD,6CAMqB;AACrB,
|
|
1
|
+
{"version":3,"file":"LslOutlet.js","sourceRoot":"","sources":["../src/LslOutlet.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ export default class LslOutletTest extends AbstractSpruceTest {
|
|
|
11
11
|
protected static throwsWithInvalidChannelFormat(): Promise<void>;
|
|
12
12
|
protected static throwsWithInvalidChunkSize(): Promise<void>;
|
|
13
13
|
protected static throwsWithInvalidMaxBuffered(): Promise<void>;
|
|
14
|
+
protected static throwsWithUnsupportedType(): Promise<void>;
|
|
14
15
|
protected static supportsAllKnownChannelFormats(): Promise<void>;
|
|
15
16
|
protected static canPushFloatSampleToLsl(sample: LslSample): Promise<void>;
|
|
16
17
|
protected static canPushStringSampleToLsl(): Promise<void>;
|
|
@@ -20,7 +21,6 @@ export default class LslOutletTest extends AbstractSpruceTest {
|
|
|
20
21
|
protected static appendsChannelsBasedOnCount(labels: string[]): Promise<void>;
|
|
21
22
|
protected static canDestroyOutlet(): Promise<void>;
|
|
22
23
|
protected static pushSampleShouldNotCreateMultipleOutlets(): Promise<void>;
|
|
23
|
-
protected static pushSampleThrowsWithUnsupportedType(): Promise<void>;
|
|
24
24
|
private static assertThrowsInvalidMaxBuffered;
|
|
25
25
|
private static assertThrowsInvalidChunkSize;
|
|
26
26
|
private static assertThrowsInvalidSampleRate;
|
|
@@ -43,7 +43,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
43
43
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
44
44
|
};
|
|
45
45
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
|
-
const crypto_1 = require("crypto");
|
|
47
46
|
const test_utils_1 = __importStar(require("@sprucelabs/test-utils"));
|
|
48
47
|
const Liblsl_1 = __importDefault(require("../../Liblsl"));
|
|
49
48
|
const LslOutlet_1 = __importDefault(require("../../LslOutlet"));
|
|
@@ -54,8 +53,9 @@ class LslOutletTest extends test_utils_1.default {
|
|
|
54
53
|
static async beforeEach() {
|
|
55
54
|
await super.beforeEach();
|
|
56
55
|
delete LslOutlet_1.default.Class;
|
|
57
|
-
this.
|
|
58
|
-
|
|
56
|
+
this.randomOutletOptions = (0, generateRandomOutletOptions_1.default)();
|
|
57
|
+
const channelFormat = this.randomOutletOptions.channelFormat;
|
|
58
|
+
this.channelFormatIdx = consts_1.TEST_CHANNEL_FORMATS_MAP[channelFormat];
|
|
59
59
|
this.fakeLiblsl = new FakeLiblsl_1.FakeLiblsl();
|
|
60
60
|
Liblsl_1.default.setInstance(this.fakeLiblsl);
|
|
61
61
|
}
|
|
@@ -103,8 +103,13 @@ class LslOutletTest extends test_utils_1.default {
|
|
|
103
103
|
this.assertThrowsInvalidMaxBuffered(-1.5);
|
|
104
104
|
this.assertThrowsInvalidMaxBuffered(1.5);
|
|
105
105
|
}
|
|
106
|
+
static async throwsWithUnsupportedType() {
|
|
107
|
+
for (let unsupportedType of consts_1.TEST_UNSUPPORTED_CHANNEL_FORMATS) {
|
|
108
|
+
test_utils_1.assert.doesThrow(() => this.Outlet({ channelFormat: unsupportedType }), `This method currently does not support the ${unsupportedType} type! Please implement it.`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
106
111
|
static async supportsAllKnownChannelFormats() {
|
|
107
|
-
for (const format of consts_1.
|
|
112
|
+
for (const format of consts_1.TEST_SUPPORTED_CHANNEL_FORMATS) {
|
|
108
113
|
this.Outlet({ channelFormat: format });
|
|
109
114
|
}
|
|
110
115
|
}
|
|
@@ -183,20 +188,6 @@ class LslOutletTest extends test_utils_1.default {
|
|
|
183
188
|
outlet.pushSample([3.0]);
|
|
184
189
|
test_utils_1.assert.isEqual(this.fakeLiblsl.createStreamInfoHitCount, 1);
|
|
185
190
|
}
|
|
186
|
-
static async pushSampleThrowsWithUnsupportedType() {
|
|
187
|
-
const unsupportedTypes = [
|
|
188
|
-
'undefined',
|
|
189
|
-
'double64',
|
|
190
|
-
'int32',
|
|
191
|
-
'int16',
|
|
192
|
-
'int8',
|
|
193
|
-
'int64',
|
|
194
|
-
];
|
|
195
|
-
for (let unsupportedType of unsupportedTypes) {
|
|
196
|
-
const outlet = this.Outlet({ channelFormat: unsupportedType });
|
|
197
|
-
test_utils_1.assert.doesThrow(() => outlet.pushSample([]), `This method currently does not support the ${unsupportedType} type! Please implement it.`);
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
191
|
static assertThrowsInvalidMaxBuffered(maxBuffered) {
|
|
201
192
|
this.assertDoesThrowInvalidParameters({ maxBuffered }, ['maxBuffered']);
|
|
202
193
|
}
|
|
@@ -244,6 +235,9 @@ __decorate([
|
|
|
244
235
|
__decorate([
|
|
245
236
|
(0, test_utils_1.test)()
|
|
246
237
|
], LslOutletTest, "throwsWithInvalidMaxBuffered", null);
|
|
238
|
+
__decorate([
|
|
239
|
+
(0, test_utils_1.test)()
|
|
240
|
+
], LslOutletTest, "throwsWithUnsupportedType", null);
|
|
247
241
|
__decorate([
|
|
248
242
|
(0, test_utils_1.test)()
|
|
249
243
|
], LslOutletTest, "supportsAllKnownChannelFormats", null);
|
|
@@ -273,9 +267,6 @@ __decorate([
|
|
|
273
267
|
__decorate([
|
|
274
268
|
(0, test_utils_1.test)()
|
|
275
269
|
], LslOutletTest, "pushSampleShouldNotCreateMultipleOutlets", null);
|
|
276
|
-
__decorate([
|
|
277
|
-
(0, test_utils_1.test)()
|
|
278
|
-
], LslOutletTest, "pushSampleThrowsWithUnsupportedType", null);
|
|
279
270
|
class CheckingOutlet extends LslOutlet_1.default {
|
|
280
271
|
constructor(options) {
|
|
281
272
|
super(options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LslOutlet.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/LslOutlet.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"LslOutlet.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/LslOutlet.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,7 +61,7 @@ class TimeMarkerOutletTest extends test_utils_1.default {
|
|
|
61
61
|
});
|
|
62
62
|
}
|
|
63
63
|
static async canOverrideDefaultOptions() {
|
|
64
|
-
const options = (0, generateRandomOutletOptions_1.default)(
|
|
64
|
+
const options = (0, generateRandomOutletOptions_1.default)();
|
|
65
65
|
const outlet = this.Outlet(options);
|
|
66
66
|
test_utils_1.assert.isEqualDeep(outlet.spyOptions, options);
|
|
67
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeMarkerOutlet.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/TimeMarkerOutlet.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAkC;AAClC,qEAI+B;AAC/B,0DAAqC;AAErC,8EAAqD;AACrD,sDAAkD;AAClD,yGAAgF;AAEhF,MAAqB,oBAAqB,SAAQ,oBAAkB;IAIzD,MAAM,CAAC,KAAK,CAAC,UAAU;QAChC,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QACxB,0BAAgB,CAAC,KAAK,GAAG,mBAAmB,CAAA;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,uBAAU,EAAE,CAAA;QAClC,gBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;IAC5B,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,kCAAkC;QACxD,mBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YAC1C,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,SAAS;YACf,YAAY,EAAE,CAAC,SAAS,CAAC;YACzB,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,QAAQ;YACvB,QAAQ,EAAE,cAAc;YACxB,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;SACd,CAAC,CAAA;IACH,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,yBAAyB;QAC/C,MAAM,OAAO,GAAG,IAAA,qCAA2B,
|
|
1
|
+
{"version":3,"file":"TimeMarkerOutlet.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/TimeMarkerOutlet.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,14 @@
|
|
|
1
|
+
export declare const TEST_SUPPORTED_CHANNEL_FORMATS: readonly ["float32", "string"];
|
|
2
|
+
export declare const TEST_UNSUPPORTED_CHANNEL_FORMATS: readonly ["undefined", "double64", "int32", "int16", "int8", "int64"];
|
|
1
3
|
export declare const TEST_CHANNEL_FORMATS: readonly ["undefined", "float32", "double64", "string", "int32", "int16", "int8", "int64"];
|
|
4
|
+
export declare const TEST_CHANNEL_FORMATS_MAP: {
|
|
5
|
+
undefined: number;
|
|
6
|
+
float32: number;
|
|
7
|
+
double64: number;
|
|
8
|
+
string: number;
|
|
9
|
+
int32: number;
|
|
10
|
+
int16: number;
|
|
11
|
+
int8: number;
|
|
12
|
+
int64: number;
|
|
13
|
+
};
|
|
2
14
|
export type TestChannelFormat = (typeof TEST_CHANNEL_FORMATS)[number];
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TEST_CHANNEL_FORMATS = void 0;
|
|
3
|
+
exports.TEST_CHANNEL_FORMATS_MAP = exports.TEST_CHANNEL_FORMATS = exports.TEST_UNSUPPORTED_CHANNEL_FORMATS = exports.TEST_SUPPORTED_CHANNEL_FORMATS = void 0;
|
|
4
|
+
exports.TEST_SUPPORTED_CHANNEL_FORMATS = ['float32', 'string'];
|
|
5
|
+
exports.TEST_UNSUPPORTED_CHANNEL_FORMATS = [
|
|
6
|
+
'undefined',
|
|
7
|
+
'double64',
|
|
8
|
+
'int32',
|
|
9
|
+
'int16',
|
|
10
|
+
'int8',
|
|
11
|
+
'int64',
|
|
12
|
+
];
|
|
4
13
|
exports.TEST_CHANNEL_FORMATS = [
|
|
5
14
|
'undefined',
|
|
6
15
|
'float32',
|
|
@@ -11,4 +20,14 @@ exports.TEST_CHANNEL_FORMATS = [
|
|
|
11
20
|
'int8',
|
|
12
21
|
'int64',
|
|
13
22
|
];
|
|
23
|
+
exports.TEST_CHANNEL_FORMATS_MAP = {
|
|
24
|
+
undefined: 0,
|
|
25
|
+
float32: 1,
|
|
26
|
+
double64: 2,
|
|
27
|
+
string: 3,
|
|
28
|
+
int32: 4,
|
|
29
|
+
int16: 5,
|
|
30
|
+
int8: 6,
|
|
31
|
+
int64: 7,
|
|
32
|
+
};
|
|
14
33
|
//# sourceMappingURL=consts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../../src/__tests__/support/consts.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG;IACnC,WAAW;IACX,SAAS;IACT,UAAU;IACV,QAAQ;IACR,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;CACE,CAAA"}
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../../src/__tests__/support/consts.ts"],"names":[],"mappings":";;;AAAa,QAAA,8BAA8B,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAU,CAAA;AAE/D,QAAA,gCAAgC,GAAG;IAC/C,WAAW;IACX,UAAU;IACV,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;CACE,CAAA;AAEG,QAAA,oBAAoB,GAAG;IACnC,WAAW;IACX,SAAS;IACT,UAAU;IACV,QAAQ;IACR,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;CACE,CAAA;AAEG,QAAA,wBAAwB,GAAG;IACvC,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACR,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { LslOutletOptions } from '../../LslOutlet';
|
|
2
|
-
export default function generateRandomOutletOptions(
|
|
2
|
+
export default function generateRandomOutletOptions(): LslOutletOptions;
|
|
@@ -3,13 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const crypto_1 = require("crypto");
|
|
4
4
|
const test_utils_1 = require("@sprucelabs/test-utils");
|
|
5
5
|
const consts_1 = require("./consts");
|
|
6
|
-
function generateRandomOutletOptions(
|
|
6
|
+
function generateRandomOutletOptions() {
|
|
7
|
+
const randomChannelIdx = (0, crypto_1.randomInt)(consts_1.TEST_SUPPORTED_CHANNEL_FORMATS.length);
|
|
7
8
|
return {
|
|
8
9
|
name: (0, test_utils_1.generateId)(),
|
|
9
10
|
type: (0, test_utils_1.generateId)(),
|
|
10
11
|
channelNames: new Array((0, crypto_1.randomInt)(1, 10)).fill((0, test_utils_1.generateId)()),
|
|
11
12
|
sampleRate: Math.random() * 10,
|
|
12
|
-
channelFormat: consts_1.
|
|
13
|
+
channelFormat: consts_1.TEST_SUPPORTED_CHANNEL_FORMATS[randomChannelIdx],
|
|
13
14
|
sourceId: (0, test_utils_1.generateId)(),
|
|
14
15
|
manufacturer: (0, test_utils_1.generateId)(),
|
|
15
16
|
unit: (0, test_utils_1.generateId)(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateRandomOutletOptions.js","sourceRoot":"","sources":["../../../src/__tests__/support/generateRandomOutletOptions.ts"],"names":[],"mappings":";;AAAA,mCAAkC;AAClC,uDAAmD;AAEnD,
|
|
1
|
+
{"version":3,"file":"generateRandomOutletOptions.js","sourceRoot":"","sources":["../../../src/__tests__/support/generateRandomOutletOptions.ts"],"names":[],"mappings":";;AAAA,mCAAkC;AAClC,uDAAmD;AAEnD,qCAAyD;AAEzD,SAAwB,2BAA2B;IAClD,MAAM,gBAAgB,GAAG,IAAA,kBAAS,EAAC,uCAA8B,CAAC,MAAM,CAAC,CAAA;IAEzE,OAAO;QACN,IAAI,EAAE,IAAA,uBAAU,GAAE;QAClB,IAAI,EAAE,IAAA,uBAAU,GAAE;QAClB,YAAY,EAAE,IAAI,KAAK,CAAC,IAAA,kBAAS,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAA,uBAAU,GAAE,CAAC;QAC5D,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;QAC9B,aAAa,EAAE,uCAA8B,CAAC,gBAAgB,CAAC;QAC/D,QAAQ,EAAE,IAAA,uBAAU,GAAE;QACtB,YAAY,EAAE,IAAA,uBAAU,GAAE;QAC1B,IAAI,EAAE,IAAA,uBAAU,GAAE;QAClB,SAAS,EAAE,IAAA,kBAAS,EAAC,CAAC,EAAE,EAAE,CAAC;QAC3B,WAAW,EAAE,IAAA,kBAAS,EAAC,CAAC,EAAE,EAAE,CAAC;KACT,CAAA;AACtB,CAAC;AAfD,8CAeC"}
|
package/build/consts.d.ts
CHANGED
|
@@ -1,2 +1,12 @@
|
|
|
1
1
|
export declare const CHANNEL_FORMATS: readonly ["undefined", "float32", "double64", "string", "int32", "int16", "int8", "int64"];
|
|
2
|
+
export declare const CHANNEL_FORMATS_MAP: {
|
|
3
|
+
undefined: number;
|
|
4
|
+
float32: number;
|
|
5
|
+
double64: number;
|
|
6
|
+
string: number;
|
|
7
|
+
int32: number;
|
|
8
|
+
int16: number;
|
|
9
|
+
int8: number;
|
|
10
|
+
int64: number;
|
|
11
|
+
};
|
|
2
12
|
export type ChannelFormat = (typeof CHANNEL_FORMATS)[number];
|
package/build/consts.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CHANNEL_FORMATS = void 0;
|
|
3
|
+
exports.CHANNEL_FORMATS_MAP = exports.CHANNEL_FORMATS = void 0;
|
|
4
4
|
exports.CHANNEL_FORMATS = [
|
|
5
5
|
'undefined',
|
|
6
6
|
'float32',
|
|
@@ -11,4 +11,14 @@ exports.CHANNEL_FORMATS = [
|
|
|
11
11
|
'int8',
|
|
12
12
|
'int64',
|
|
13
13
|
];
|
|
14
|
+
exports.CHANNEL_FORMATS_MAP = {
|
|
15
|
+
undefined: 0,
|
|
16
|
+
float32: 1,
|
|
17
|
+
double64: 2,
|
|
18
|
+
string: 3,
|
|
19
|
+
int32: 4,
|
|
20
|
+
int16: 5,
|
|
21
|
+
int8: 6,
|
|
22
|
+
int64: 7,
|
|
23
|
+
};
|
|
14
24
|
//# sourceMappingURL=consts.js.map
|
package/build/consts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG;IAC9B,WAAW;IACX,SAAS;IACT,UAAU;IACV,QAAQ;IACR,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;CACE,CAAA"}
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG;IAC9B,WAAW;IACX,SAAS;IACT,UAAU;IACV,QAAQ;IACR,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;CACE,CAAA;AAEG,QAAA,mBAAmB,GAAG;IAClC,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACR,CAAA"}
|
package/package.json
CHANGED
package/src/LslOutlet.ts
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
assertValidMaxBufferred,
|
|
7
7
|
assertValidSampleRate,
|
|
8
8
|
} from './assertions'
|
|
9
|
-
import {
|
|
9
|
+
import { CHANNEL_FORMATS_MAP, ChannelFormat } from './consts'
|
|
10
10
|
import LiblslImpl, {
|
|
11
11
|
BoundOutlet,
|
|
12
12
|
BoundStreamInfo,
|
|
@@ -19,6 +19,7 @@ export default class LslOutletImpl implements LslOutlet {
|
|
|
19
19
|
private options: LslOutletOptions
|
|
20
20
|
private streamInfo: BoundStreamInfo
|
|
21
21
|
private outlet: BoundOutlet
|
|
22
|
+
private pushSampleByType: (options: any) => void
|
|
22
23
|
|
|
23
24
|
protected constructor(options: LslOutletOptions) {
|
|
24
25
|
const { sampleRate, channelFormat } = assertOptions(options, [
|
|
@@ -70,6 +71,9 @@ export default class LslOutletImpl implements LslOutlet {
|
|
|
70
71
|
chunkSize: this.options.chunkSize,
|
|
71
72
|
maxBuffered: this.options.maxBuffered,
|
|
72
73
|
})
|
|
74
|
+
|
|
75
|
+
const pushMethod = this.getPushMethod()
|
|
76
|
+
this.pushSampleByType = this.lsl[pushMethod].bind(this.lsl)
|
|
73
77
|
}
|
|
74
78
|
|
|
75
79
|
public static Outlet(options: LslOutletOptions): LslOutlet {
|
|
@@ -82,16 +86,15 @@ export default class LslOutletImpl implements LslOutlet {
|
|
|
82
86
|
|
|
83
87
|
public pushSample(sample: LslSample): void {
|
|
84
88
|
const timestamp = this.lsl.localClock()
|
|
85
|
-
const method = this.getPushMethod()
|
|
86
89
|
|
|
87
|
-
this.
|
|
90
|
+
this.pushSampleByType({
|
|
88
91
|
outlet: this.outlet,
|
|
89
92
|
sample,
|
|
90
93
|
timestamp,
|
|
91
|
-
}
|
|
94
|
+
})
|
|
92
95
|
}
|
|
93
96
|
|
|
94
|
-
private getPushMethod() {
|
|
97
|
+
private getPushMethod(): keyof Liblsl {
|
|
95
98
|
const channelFormat = this.options.channelFormat
|
|
96
99
|
|
|
97
100
|
const methodMap: Record<string, keyof Liblsl> = {
|
|
@@ -99,18 +102,16 @@ export default class LslOutletImpl implements LslOutlet {
|
|
|
99
102
|
string: 'pushSampleStrt',
|
|
100
103
|
}
|
|
101
104
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
if (!this.lsl[method]) {
|
|
105
|
+
if (!(channelFormat in methodMap)) {
|
|
105
106
|
throw new Error(
|
|
106
|
-
`This method currently does not support the ${
|
|
107
|
+
`This method currently does not support the ${channelFormat} type! Please implement it.`
|
|
107
108
|
)
|
|
108
109
|
}
|
|
109
|
-
return
|
|
110
|
+
return methodMap[channelFormat]
|
|
110
111
|
}
|
|
111
112
|
|
|
112
113
|
private lookupChannelFormat(channelFormat: ChannelFormat): number {
|
|
113
|
-
return
|
|
114
|
+
return CHANNEL_FORMATS_MAP[channelFormat]
|
|
114
115
|
}
|
|
115
116
|
|
|
116
117
|
private get lsl(): Liblsl {
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { randomInt } from 'crypto'
|
|
2
1
|
import AbstractSpruceTest, {
|
|
3
2
|
test,
|
|
4
3
|
assert,
|
|
@@ -7,7 +6,12 @@ import AbstractSpruceTest, {
|
|
|
7
6
|
} from '@sprucelabs/test-utils'
|
|
8
7
|
import LiblslImpl, { LslSample } from '../../Liblsl'
|
|
9
8
|
import LslOutlet, { LslOutletOptions } from '../../LslOutlet'
|
|
10
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
TEST_CHANNEL_FORMATS_MAP,
|
|
11
|
+
TEST_SUPPORTED_CHANNEL_FORMATS,
|
|
12
|
+
TEST_UNSUPPORTED_CHANNEL_FORMATS,
|
|
13
|
+
TestChannelFormat,
|
|
14
|
+
} from '../support/consts'
|
|
11
15
|
import { FakeLiblsl } from '../support/FakeLiblsl'
|
|
12
16
|
import generateRandomOutletOptions from '../support/generateRandomOutletOptions'
|
|
13
17
|
|
|
@@ -19,10 +23,10 @@ export default class LslOutletTest extends AbstractSpruceTest {
|
|
|
19
23
|
protected static async beforeEach() {
|
|
20
24
|
await super.beforeEach()
|
|
21
25
|
delete LslOutlet.Class
|
|
22
|
-
this.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
+
this.randomOutletOptions = generateRandomOutletOptions()
|
|
27
|
+
|
|
28
|
+
const channelFormat = this.randomOutletOptions.channelFormat
|
|
29
|
+
this.channelFormatIdx = TEST_CHANNEL_FORMATS_MAP[channelFormat]
|
|
26
30
|
this.fakeLiblsl = new FakeLiblsl()
|
|
27
31
|
LiblslImpl.setInstance(this.fakeLiblsl)
|
|
28
32
|
}
|
|
@@ -83,9 +87,19 @@ export default class LslOutletTest extends AbstractSpruceTest {
|
|
|
83
87
|
this.assertThrowsInvalidMaxBuffered(1.5)
|
|
84
88
|
}
|
|
85
89
|
|
|
90
|
+
@test()
|
|
91
|
+
protected static async throwsWithUnsupportedType() {
|
|
92
|
+
for (let unsupportedType of TEST_UNSUPPORTED_CHANNEL_FORMATS) {
|
|
93
|
+
assert.doesThrow(
|
|
94
|
+
() => this.Outlet({ channelFormat: unsupportedType }),
|
|
95
|
+
`This method currently does not support the ${unsupportedType} type! Please implement it.`
|
|
96
|
+
)
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
86
100
|
@test()
|
|
87
101
|
protected static async supportsAllKnownChannelFormats() {
|
|
88
|
-
for (const format of
|
|
102
|
+
for (const format of TEST_SUPPORTED_CHANNEL_FORMATS) {
|
|
89
103
|
this.Outlet({ channelFormat: format as TestChannelFormat })
|
|
90
104
|
}
|
|
91
105
|
}
|
|
@@ -208,26 +222,6 @@ export default class LslOutletTest extends AbstractSpruceTest {
|
|
|
208
222
|
assert.isEqual(this.fakeLiblsl.createStreamInfoHitCount, 1)
|
|
209
223
|
}
|
|
210
224
|
|
|
211
|
-
@test()
|
|
212
|
-
protected static async pushSampleThrowsWithUnsupportedType() {
|
|
213
|
-
const unsupportedTypes = [
|
|
214
|
-
'undefined',
|
|
215
|
-
'double64',
|
|
216
|
-
'int32',
|
|
217
|
-
'int16',
|
|
218
|
-
'int8',
|
|
219
|
-
'int64',
|
|
220
|
-
] as const
|
|
221
|
-
|
|
222
|
-
for (let unsupportedType of unsupportedTypes) {
|
|
223
|
-
const outlet = this.Outlet({ channelFormat: unsupportedType })
|
|
224
|
-
assert.doesThrow(
|
|
225
|
-
() => outlet.pushSample([]),
|
|
226
|
-
`This method currently does not support the ${unsupportedType} type! Please implement it.`
|
|
227
|
-
)
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
|
|
231
225
|
private static assertThrowsInvalidMaxBuffered(maxBuffered: number) {
|
|
232
226
|
this.assertDoesThrowInvalidParameters({ maxBuffered }, ['maxBuffered'])
|
|
233
227
|
}
|
|
@@ -40,7 +40,7 @@ export default class TimeMarkerOutletTest extends AbstractSpruceTest {
|
|
|
40
40
|
|
|
41
41
|
@test()
|
|
42
42
|
protected static async canOverrideDefaultOptions() {
|
|
43
|
-
const options = generateRandomOutletOptions(
|
|
43
|
+
const options = generateRandomOutletOptions()
|
|
44
44
|
const outlet = this.Outlet(options)
|
|
45
45
|
assert.isEqualDeep(outlet.spyOptions, options)
|
|
46
46
|
}
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
export const TEST_SUPPORTED_CHANNEL_FORMATS = ['float32', 'string'] as const
|
|
2
|
+
|
|
3
|
+
export const TEST_UNSUPPORTED_CHANNEL_FORMATS = [
|
|
4
|
+
'undefined',
|
|
5
|
+
'double64',
|
|
6
|
+
'int32',
|
|
7
|
+
'int16',
|
|
8
|
+
'int8',
|
|
9
|
+
'int64',
|
|
10
|
+
] as const
|
|
11
|
+
|
|
1
12
|
export const TEST_CHANNEL_FORMATS = [
|
|
2
13
|
'undefined',
|
|
3
14
|
'float32',
|
|
@@ -9,4 +20,15 @@ export const TEST_CHANNEL_FORMATS = [
|
|
|
9
20
|
'int64',
|
|
10
21
|
] as const
|
|
11
22
|
|
|
23
|
+
export const TEST_CHANNEL_FORMATS_MAP = {
|
|
24
|
+
undefined: 0,
|
|
25
|
+
float32: 1,
|
|
26
|
+
double64: 2,
|
|
27
|
+
string: 3,
|
|
28
|
+
int32: 4,
|
|
29
|
+
int16: 5,
|
|
30
|
+
int8: 6,
|
|
31
|
+
int64: 7,
|
|
32
|
+
}
|
|
33
|
+
|
|
12
34
|
export type TestChannelFormat = (typeof TEST_CHANNEL_FORMATS)[number]
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { randomInt } from 'crypto'
|
|
2
2
|
import { generateId } from '@sprucelabs/test-utils'
|
|
3
3
|
import { LslOutletOptions } from '../../LslOutlet'
|
|
4
|
-
import {
|
|
4
|
+
import { TEST_SUPPORTED_CHANNEL_FORMATS } from './consts'
|
|
5
|
+
|
|
6
|
+
export default function generateRandomOutletOptions() {
|
|
7
|
+
const randomChannelIdx = randomInt(TEST_SUPPORTED_CHANNEL_FORMATS.length)
|
|
5
8
|
|
|
6
|
-
export default function generateRandomOutletOptions(randomChannelIdx: number) {
|
|
7
9
|
return {
|
|
8
10
|
name: generateId(),
|
|
9
11
|
type: generateId(),
|
|
10
12
|
channelNames: new Array(randomInt(1, 10)).fill(generateId()),
|
|
11
13
|
sampleRate: Math.random() * 10,
|
|
12
|
-
channelFormat:
|
|
14
|
+
channelFormat: TEST_SUPPORTED_CHANNEL_FORMATS[randomChannelIdx],
|
|
13
15
|
sourceId: generateId(),
|
|
14
16
|
manufacturer: generateId(),
|
|
15
17
|
unit: generateId(),
|
package/src/consts.ts
CHANGED
|
@@ -9,4 +9,15 @@ export const CHANNEL_FORMATS = [
|
|
|
9
9
|
'int64',
|
|
10
10
|
] as const
|
|
11
11
|
|
|
12
|
+
export const CHANNEL_FORMATS_MAP = {
|
|
13
|
+
undefined: 0,
|
|
14
|
+
float32: 1,
|
|
15
|
+
double64: 2,
|
|
16
|
+
string: 3,
|
|
17
|
+
int32: 4,
|
|
18
|
+
int16: 5,
|
|
19
|
+
int8: 6,
|
|
20
|
+
int64: 7,
|
|
21
|
+
}
|
|
22
|
+
|
|
12
23
|
export type ChannelFormat = (typeof CHANNEL_FORMATS)[number]
|