@neurodevs/node-lsl 1.0.3 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/Liblsl.d.ts +16 -4
- package/build/Liblsl.js +14 -0
- package/build/Liblsl.js.map +1 -1
- package/build/LslOutlet.d.ts +7 -2
- package/build/LslOutlet.js +6 -2
- package/build/LslOutlet.js.map +1 -1
- package/build/__tests__/behavioral/LslOutlet.test.d.ts +1 -0
- package/build/__tests__/behavioral/LslOutlet.test.js +15 -1
- package/build/__tests__/behavioral/LslOutlet.test.js.map +1 -1
- package/build/__tests__/implementation/Liblsl.test.d.ts +10 -0
- package/build/__tests__/implementation/Liblsl.test.js +77 -1
- package/build/__tests__/implementation/Liblsl.test.js.map +1 -1
- package/build/index.d.ts +1 -1
- package/build/index.js +2 -2
- package/build/index.js.map +1 -1
- package/package.json +1 -1
- package/src/Liblsl.ts +42 -5
- package/src/__tests__/behavioral/LslOutlet.test.ts +6 -0
- package/src/__tests__/implementation/Liblsl.test.ts +97 -6
package/build/Liblsl.d.ts
CHANGED
|
@@ -7,19 +7,19 @@ export default class LiblslImpl implements Liblsl {
|
|
|
7
7
|
static reset(): void;
|
|
8
8
|
static setInstance(instance: Liblsl): void;
|
|
9
9
|
constructor();
|
|
10
|
+
appendChannelsToStreamInfo(info: LslBindingsStreamInfo, channels: LslChannel[]): void;
|
|
10
11
|
private loadBindings;
|
|
11
12
|
pushSample(outlet: LslBindingsOutlet, sample: LslSample): void;
|
|
12
13
|
createOutlet(options: CreateOutletOptions): LslBindingsOutlet;
|
|
13
|
-
createStreamInfo(options: CreateStreamInfoOptions):
|
|
14
|
+
createStreamInfo(options: CreateStreamInfoOptions): LslBindingsStreamInfo;
|
|
14
15
|
}
|
|
15
16
|
export interface Liblsl {
|
|
17
|
+
appendChannelsToStreamInfo(info: LslBindingsStreamInfo, channels: LslChannel[]): void;
|
|
16
18
|
createStreamInfo(options: CreateStreamInfoOptions): LslBindingsStreamInfo;
|
|
17
19
|
createOutlet(options: CreateOutletOptions): LslBindingsOutlet;
|
|
18
20
|
pushSample(outlet: LslBindingsOutlet, sample: LslSample): void;
|
|
19
21
|
}
|
|
20
22
|
export type LslSample = (number | string | undefined)[];
|
|
21
|
-
export interface StreamInfo {
|
|
22
|
-
}
|
|
23
23
|
export interface CreateStreamInfoOptions {
|
|
24
24
|
name: string;
|
|
25
25
|
type: string;
|
|
@@ -30,14 +30,22 @@ export interface CreateStreamInfoOptions {
|
|
|
30
30
|
manufacturer?: string;
|
|
31
31
|
unit?: string;
|
|
32
32
|
}
|
|
33
|
+
export interface LslChannel {
|
|
34
|
+
label: string;
|
|
35
|
+
unit: string;
|
|
36
|
+
type: string;
|
|
37
|
+
}
|
|
33
38
|
export interface LiblslBindings {
|
|
34
39
|
lsl_create_streaminfo(name: string, type: string, channelCount: number, sampleRate: number, channelFormat: number, sourceId: string): LslBindingsStreamInfo;
|
|
35
40
|
lsl_create_outlet(info: LslBindingsStreamInfo, chunkSize: number, maxBuffered: number): LslBindingsOutlet;
|
|
36
41
|
lsl_push_sample_ft(outlet: LslBindingsOutlet, sample: LslSample, timestamp: number): void;
|
|
37
42
|
lsl_local_clock(): number;
|
|
43
|
+
lsl_get_desc(info: LslBindingsStreamInfo): LslBindingsDesc;
|
|
44
|
+
lsl_append_child(desc: LslBindingsDesc, name: string): LslBindingsChild;
|
|
45
|
+
lsl_append_child_value(child: LslBindingsChild, name: string, value: string): void;
|
|
38
46
|
}
|
|
39
47
|
export interface CreateOutletOptions {
|
|
40
|
-
info:
|
|
48
|
+
info: LslBindingsStreamInfo;
|
|
41
49
|
chunkSize: number;
|
|
42
50
|
maxBuffered: number;
|
|
43
51
|
}
|
|
@@ -45,3 +53,7 @@ export interface LslBindingsStreamInfo {
|
|
|
45
53
|
}
|
|
46
54
|
export interface LslBindingsOutlet {
|
|
47
55
|
}
|
|
56
|
+
export interface LslBindingsDesc {
|
|
57
|
+
}
|
|
58
|
+
export interface LslBindingsChild {
|
|
59
|
+
}
|
package/build/Liblsl.js
CHANGED
|
@@ -37,6 +37,16 @@ class LiblslImpl {
|
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
+
appendChannelsToStreamInfo(info, channels) {
|
|
41
|
+
(0, schema_1.assertOptions)({ info, channels }, ['info', 'channels']);
|
|
42
|
+
const desc = this.bindings.lsl_get_desc(info);
|
|
43
|
+
const parent = this.bindings.lsl_append_child(desc, 'channels');
|
|
44
|
+
for (const channel of channels) {
|
|
45
|
+
this.bindings.lsl_append_child_value(parent, 'label', channel.label);
|
|
46
|
+
this.bindings.lsl_append_child_value(parent, 'unit', channel.unit);
|
|
47
|
+
this.bindings.lsl_append_child_value(parent, 'type', channel.type);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
40
50
|
loadBindings(path) {
|
|
41
51
|
return LiblslImpl.ffi.Library(path, {
|
|
42
52
|
lsl_create_streaminfo: [
|
|
@@ -46,6 +56,9 @@ class LiblslImpl {
|
|
|
46
56
|
lsl_create_outlet: [outletType, [streamInfo, 'int', 'int']],
|
|
47
57
|
lsl_local_clock: ['double', []],
|
|
48
58
|
lsl_push_sample_ft: ['void', [outletType, FloatArray, 'double']],
|
|
59
|
+
lsl_get_desc: [xmlPtr, [streamInfo]],
|
|
60
|
+
lsl_append_child: [xmlPtr, [xmlPtr, 'string']],
|
|
61
|
+
lsl_append_child_value: [xmlPtr, [xmlPtr, 'string', 'string']],
|
|
49
62
|
});
|
|
50
63
|
}
|
|
51
64
|
pushSample(outlet, sample) {
|
|
@@ -78,4 +91,5 @@ exports.default = LiblslImpl;
|
|
|
78
91
|
const streamInfo = ref_napi_1.default.refType(ref_napi_1.default.types.void);
|
|
79
92
|
const outletType = ref_napi_1.default.refType(ref_napi_1.default.types.void);
|
|
80
93
|
const FloatArray = (0, ref_array_napi_1.default)(ref_napi_1.default.types.float);
|
|
94
|
+
const xmlPtr = ref_napi_1.default.refType(ref_napi_1.default.types.void);
|
|
81
95
|
//# sourceMappingURL=Liblsl.js.map
|
package/build/Liblsl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Liblsl.js","sourceRoot":"","sources":["../src/Liblsl.ts"],"names":[],"mappings":";;;;;AAAA,+CAAkD;AAClD,wDAA0B;AAC1B,oEAAsC;AACtC,wDAA0B;AAC1B,uEAA8C;AAE9C,MAAqB,UAAU;IAKvB,MAAM,CAAC,WAAW;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAA;SAC1B;QACD,OAAO,IAAI,CAAC,QAAS,CAAA;IACtB,CAAC;IAEM,MAAM,CAAC,KAAK;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAA;IACrB,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,QAAgB;QACzC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IACzB,CAAC;IAED;QACC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,WAAY,CAAA;QAErC,IAAI,CAAC,IAAI,EAAE;YACV,IAAA,sBAAa,EAAC,OAAO,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAA;SAC3C;QACD,IAAI;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;SACvC;QAAC,OAAO,GAAG,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAClB,MAAM,IAAI,qBAAW,CAAC;gBACrB,IAAI,EAAE,uBAAuB;gBAC7B,UAAU,EAAE,IAAI;aAChB,CAAC,CAAA;SACF;IACF,CAAC;IAEO,YAAY,CAAC,IAAY;QAChC,OAAO,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAK,EAAE;YACpC,qBAAqB,EAAE;gBACtB,UAAU;gBACV,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;aACtD;YACD,iBAAiB,EAAE,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC3D,eAAe,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC/B,kBAAkB,EAAE,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Liblsl.js","sourceRoot":"","sources":["../src/Liblsl.ts"],"names":[],"mappings":"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"}
|
package/build/LslOutlet.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { LslSample } from './Liblsl';
|
|
2
|
-
export default class LslOutlet {
|
|
2
|
+
export default class LslOutletImpl implements LslOutlet {
|
|
3
3
|
private outletOptions;
|
|
4
|
-
|
|
4
|
+
static Class?: new (options: LslOutletOptions) => LslOutlet;
|
|
5
|
+
protected constructor(options: LslOutletOptions);
|
|
6
|
+
static Outlet(options: LslOutletOptions): LslOutlet;
|
|
5
7
|
private assertValidMaxBufferred;
|
|
6
8
|
private assertValidChunkSize;
|
|
7
9
|
private assertValidChannelFormat;
|
|
@@ -27,4 +29,7 @@ export interface LslOutletOptions {
|
|
|
27
29
|
chunkSize: number;
|
|
28
30
|
maxBuffered: number;
|
|
29
31
|
}
|
|
32
|
+
export interface LslOutlet {
|
|
33
|
+
pushSample(sample: LslSample): void;
|
|
34
|
+
}
|
|
30
35
|
export {};
|
package/build/LslOutlet.js
CHANGED
|
@@ -16,7 +16,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
const schema_1 = require("@sprucelabs/schema");
|
|
18
18
|
const Liblsl_1 = __importDefault(require("./Liblsl"));
|
|
19
|
-
class
|
|
19
|
+
class LslOutletImpl {
|
|
20
20
|
constructor(options) {
|
|
21
21
|
const { channelCount, sampleRate, channelFormat, chunkSize, maxBuffered } = (0, schema_1.assertOptions)(options, [
|
|
22
22
|
'name',
|
|
@@ -37,6 +37,10 @@ class LslOutlet {
|
|
|
37
37
|
this.assertValidMaxBufferred(maxBuffered);
|
|
38
38
|
this.outletOptions = options;
|
|
39
39
|
}
|
|
40
|
+
static Outlet(options) {
|
|
41
|
+
var _a;
|
|
42
|
+
return new ((_a = this.Class) !== null && _a !== void 0 ? _a : this)(options);
|
|
43
|
+
}
|
|
40
44
|
assertValidMaxBufferred(maxBuffered) {
|
|
41
45
|
if (!this.isPositiveIntegerOrZero(maxBuffered)) {
|
|
42
46
|
throw new schema_1.SchemaError({
|
|
@@ -108,7 +112,7 @@ class LslOutlet {
|
|
|
108
112
|
}), sample);
|
|
109
113
|
}
|
|
110
114
|
}
|
|
111
|
-
exports.default =
|
|
115
|
+
exports.default = LslOutletImpl;
|
|
112
116
|
const CHANNEL_FORMATS = [
|
|
113
117
|
'undefined',
|
|
114
118
|
'float32',
|
package/build/LslOutlet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LslOutlet.js","sourceRoot":"","sources":["../src/LslOutlet.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA+D;AAC/D,sDAAgD;AAEhD,MAAqB,
|
|
1
|
+
{"version":3,"file":"LslOutlet.js","sourceRoot":"","sources":["../src/LslOutlet.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ export default class LslOutletTest extends AbstractSpruceTest {
|
|
|
16
16
|
protected static throwsWithInvalidMaxBuffered(): Promise<void>;
|
|
17
17
|
protected static pushingSampleSendsToLsl(sample: LslSample): Promise<void>;
|
|
18
18
|
protected static pushingSamplePassesCorrectOptionsToCreateStreamInfo(): Promise<void>;
|
|
19
|
+
protected static canOverrideClasInstantiatedInFactory(): Promise<void>;
|
|
19
20
|
private static pushSample;
|
|
20
21
|
private static assertThrowsInvalidMaxBuffered;
|
|
21
22
|
private static assertThrowsInvalidChunkSize;
|
|
@@ -151,6 +151,11 @@ class LslOutletTest extends test_utils_1.default {
|
|
|
151
151
|
delete options.maxBuffered;
|
|
152
152
|
test_utils_1.assert.isEqualDeep(this.spyLsl.lastStreamInfoOptions, Object.assign(Object.assign({}, options), { channelFormat: this.channelIdx }));
|
|
153
153
|
}
|
|
154
|
+
static async canOverrideClasInstantiatedInFactory() {
|
|
155
|
+
LslOutlet_1.default.Class = CheckingOutlet;
|
|
156
|
+
const instance = this.Outlet();
|
|
157
|
+
test_utils_1.assert.isInstanceOf(instance, CheckingOutlet);
|
|
158
|
+
}
|
|
154
159
|
static pushSample(sample) {
|
|
155
160
|
const outlet = this.Outlet();
|
|
156
161
|
outlet.pushSample(sample);
|
|
@@ -176,7 +181,7 @@ class LslOutletTest extends test_utils_1.default {
|
|
|
176
181
|
});
|
|
177
182
|
}
|
|
178
183
|
static Outlet(options) {
|
|
179
|
-
return
|
|
184
|
+
return LslOutlet_1.default.Outlet(Object.assign(Object.assign({}, this.randomOutletOptions), options));
|
|
180
185
|
}
|
|
181
186
|
}
|
|
182
187
|
exports.default = LslOutletTest;
|
|
@@ -211,6 +216,9 @@ __decorate([
|
|
|
211
216
|
__decorate([
|
|
212
217
|
(0, test_utils_1.test)()
|
|
213
218
|
], LslOutletTest, "pushingSamplePassesCorrectOptionsToCreateStreamInfo", null);
|
|
219
|
+
__decorate([
|
|
220
|
+
(0, test_utils_1.test)()
|
|
221
|
+
], LslOutletTest, "canOverrideClasInstantiatedInFactory", null);
|
|
214
222
|
class SpyLiblsl {
|
|
215
223
|
constructor() {
|
|
216
224
|
this.outlet = {};
|
|
@@ -220,6 +228,7 @@ class SpyLiblsl {
|
|
|
220
228
|
this.lastStreamInfoOptions = options;
|
|
221
229
|
return this.streamInfo;
|
|
222
230
|
}
|
|
231
|
+
appendChannelsToStreamInfo(info, channels) { }
|
|
223
232
|
createOutlet(options) {
|
|
224
233
|
this.lastOutletOptions = options;
|
|
225
234
|
return this.outlet;
|
|
@@ -229,4 +238,9 @@ class SpyLiblsl {
|
|
|
229
238
|
this.lastPushedSample = sample;
|
|
230
239
|
}
|
|
231
240
|
}
|
|
241
|
+
class CheckingOutlet extends LslOutlet_1.default {
|
|
242
|
+
constructor(options) {
|
|
243
|
+
super(options);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
232
246
|
//# sourceMappingURL=LslOutlet.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LslOutlet.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/LslOutlet.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAkC;AAClC,qEAK+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"LslOutlet.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/LslOutlet.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,11 +6,16 @@ export default class LiblslTest extends AbstractSpruceTest {
|
|
|
6
6
|
private static fakeBindings;
|
|
7
7
|
private static fakeStreamInfo;
|
|
8
8
|
private static fakeOutlet;
|
|
9
|
+
private static fakeDesc;
|
|
10
|
+
private static fakeChildNamedChannels;
|
|
9
11
|
private static createStreamInfoParams?;
|
|
12
|
+
private static appendChildParams?;
|
|
10
13
|
private static createOutletParams?;
|
|
11
14
|
private static pushSampleParams?;
|
|
15
|
+
private static appendChildValueParams;
|
|
12
16
|
private static localClock;
|
|
13
17
|
private static shouldThrowWhenCreatingBindings;
|
|
18
|
+
private static getDescriptionParams?;
|
|
14
19
|
protected static beforeEach(): Promise<void>;
|
|
15
20
|
protected static throwsIfNoEnvSet(): Promise<void>;
|
|
16
21
|
protected static throwsHelpfulErrorWhenBindingsFailToLoad(): Promise<void>;
|
|
@@ -24,5 +29,10 @@ export default class LiblslTest extends AbstractSpruceTest {
|
|
|
24
29
|
protected static canCreateOutletWithRequiredParams(): Promise<void>;
|
|
25
30
|
protected static pushSampleThrowsWhenMissingRequiredParams(): Promise<void>;
|
|
26
31
|
protected static pushSampleCallsBindings(): Promise<void>;
|
|
32
|
+
protected static appendChannelsThrowsWithMissingParams(): Promise<void>;
|
|
33
|
+
protected static addingSingleChannelGetsDescription(): Promise<void>;
|
|
34
|
+
protected static addingMultpleChannelsAddsChildrenToChannelsChild(): Promise<void>;
|
|
35
|
+
private static generateRandomChannelValues;
|
|
36
|
+
private static createRandomStreamInfo;
|
|
27
37
|
private static generateRandomCreateStreamInfoOptions;
|
|
28
38
|
}
|
|
@@ -45,9 +45,14 @@ class LiblslTest extends test_utils_1.default {
|
|
|
45
45
|
delete this.createStreamInfoParams;
|
|
46
46
|
delete this.createOutletParams;
|
|
47
47
|
delete this.pushSampleParams;
|
|
48
|
+
delete this.getDescriptionParams;
|
|
49
|
+
delete this.appendChildParams;
|
|
50
|
+
this.appendChildValueParams = [];
|
|
48
51
|
process.env.LIBLSL_PATH = (0, test_utils_1.generateId)();
|
|
49
52
|
this.fakeStreamInfo = {};
|
|
53
|
+
this.fakeDesc = {};
|
|
50
54
|
this.fakeOutlet = {};
|
|
55
|
+
this.fakeChildNamedChannels = {};
|
|
51
56
|
this.localClock = new Date().getTime();
|
|
52
57
|
this.shouldThrowWhenCreatingBindings = false;
|
|
53
58
|
this.fakeBindings = {
|
|
@@ -64,6 +69,17 @@ class LiblslTest extends test_utils_1.default {
|
|
|
64
69
|
return 0;
|
|
65
70
|
},
|
|
66
71
|
lsl_local_clock: () => this.localClock,
|
|
72
|
+
lsl_get_desc: (info) => {
|
|
73
|
+
this.getDescriptionParams = [info];
|
|
74
|
+
return this.fakeDesc;
|
|
75
|
+
},
|
|
76
|
+
lsl_append_child: (...params) => {
|
|
77
|
+
this.appendChildParams = params;
|
|
78
|
+
return this.fakeChildNamedChannels;
|
|
79
|
+
},
|
|
80
|
+
lsl_append_child_value: (...params) => {
|
|
81
|
+
this.appendChildValueParams.push(params);
|
|
82
|
+
},
|
|
67
83
|
};
|
|
68
84
|
Liblsl_1.default.ffi = {
|
|
69
85
|
//@ts-ignore
|
|
@@ -117,6 +133,9 @@ class LiblslTest extends test_utils_1.default {
|
|
|
117
133
|
lsl_create_outlet: [outletType, [streamInfo, 'int', 'int']],
|
|
118
134
|
lsl_local_clock: ['double', []],
|
|
119
135
|
lsl_push_sample_ft: ['void', [outletType, FloatArray, 'double']],
|
|
136
|
+
lsl_get_desc: [xmlPtr, [streamInfo]],
|
|
137
|
+
lsl_append_child: [xmlPtr, [xmlPtr, 'string']],
|
|
138
|
+
lsl_append_child_value: [xmlPtr, [xmlPtr, 'string', 'string']],
|
|
120
139
|
};
|
|
121
140
|
test_utils_1.assert.isEqual(JSON.stringify(this.libraryOptions), JSON.stringify(expected));
|
|
122
141
|
}
|
|
@@ -148,7 +167,7 @@ class LiblslTest extends test_utils_1.default {
|
|
|
148
167
|
});
|
|
149
168
|
}
|
|
150
169
|
static async canCreateOutletWithRequiredParams() {
|
|
151
|
-
const info = this.
|
|
170
|
+
const info = this.createRandomStreamInfo();
|
|
152
171
|
const options = {
|
|
153
172
|
info,
|
|
154
173
|
chunkSize: (0, crypto_1.randomInt)(10),
|
|
@@ -173,6 +192,52 @@ class LiblslTest extends test_utils_1.default {
|
|
|
173
192
|
test_utils_1.assert.isEqual((_b = this.pushSampleParams) === null || _b === void 0 ? void 0 : _b[1], expected);
|
|
174
193
|
test_utils_1.assert.isEqual((_c = this.pushSampleParams) === null || _c === void 0 ? void 0 : _c[2], this.localClock);
|
|
175
194
|
}
|
|
195
|
+
static async appendChannelsThrowsWithMissingParams() {
|
|
196
|
+
//@ts-ignore
|
|
197
|
+
const err = test_utils_1.assert.doesThrow(() => this.lsl.appendChannelsToStreamInfo());
|
|
198
|
+
test_utils_1.errorAssert.assertError(err, 'MISSING_PARAMETERS', {
|
|
199
|
+
parameters: ['info', 'channels'],
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
static async addingSingleChannelGetsDescription() {
|
|
203
|
+
var _a, _b, _c;
|
|
204
|
+
const info = this.createRandomStreamInfo();
|
|
205
|
+
const channel = this.generateRandomChannelValues();
|
|
206
|
+
this.lsl.appendChannelsToStreamInfo(info, [channel]);
|
|
207
|
+
test_utils_1.assert.isEqual((_a = this.getDescriptionParams) === null || _a === void 0 ? void 0 : _a[0], info);
|
|
208
|
+
test_utils_1.assert.isEqual((_b = this.appendChildParams) === null || _b === void 0 ? void 0 : _b[0], this.fakeDesc);
|
|
209
|
+
test_utils_1.assert.isEqual((_c = this.appendChildParams) === null || _c === void 0 ? void 0 : _c[1], 'channels');
|
|
210
|
+
test_utils_1.assert.isLength(this.appendChildValueParams, 3);
|
|
211
|
+
for (let i = 0; i < 3; i++) {
|
|
212
|
+
const param = this.appendChildValueParams[i];
|
|
213
|
+
test_utils_1.assert.isEqual(param[0], this.fakeChildNamedChannels);
|
|
214
|
+
}
|
|
215
|
+
test_utils_1.assert.isEqual(this.appendChildValueParams[0][1], 'label');
|
|
216
|
+
test_utils_1.assert.isEqual(this.appendChildValueParams[1][1], 'unit');
|
|
217
|
+
test_utils_1.assert.isEqual(this.appendChildValueParams[2][1], 'type');
|
|
218
|
+
test_utils_1.assert.isEqual(this.appendChildValueParams[0][2], channel.label);
|
|
219
|
+
test_utils_1.assert.isEqual(this.appendChildValueParams[1][2], channel.unit);
|
|
220
|
+
test_utils_1.assert.isEqual(this.appendChildValueParams[2][2], channel.type);
|
|
221
|
+
}
|
|
222
|
+
static async addingMultpleChannelsAddsChildrenToChannelsChild() {
|
|
223
|
+
const info = this.createRandomStreamInfo();
|
|
224
|
+
const channel1 = this.generateRandomChannelValues();
|
|
225
|
+
const channel2 = this.generateRandomChannelValues();
|
|
226
|
+
this.lsl.appendChannelsToStreamInfo(info, [channel1, channel2]);
|
|
227
|
+
test_utils_1.assert.isEqual(this.appendChildValueParams[3][2], channel2.label);
|
|
228
|
+
test_utils_1.assert.isEqual(this.appendChildValueParams[4][2], channel2.unit);
|
|
229
|
+
test_utils_1.assert.isEqual(this.appendChildValueParams[5][2], channel2.type);
|
|
230
|
+
}
|
|
231
|
+
static generateRandomChannelValues() {
|
|
232
|
+
return {
|
|
233
|
+
label: (0, test_utils_1.generateId)(),
|
|
234
|
+
type: (0, test_utils_1.generateId)(),
|
|
235
|
+
unit: (0, test_utils_1.generateId)(),
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
static createRandomStreamInfo() {
|
|
239
|
+
return this.lsl.createStreamInfo(this.generateRandomCreateStreamInfoOptions());
|
|
240
|
+
}
|
|
176
241
|
static generateRandomCreateStreamInfoOptions() {
|
|
177
242
|
return {
|
|
178
243
|
name: (0, test_utils_1.generateId)(),
|
|
@@ -221,7 +286,17 @@ __decorate([
|
|
|
221
286
|
__decorate([
|
|
222
287
|
(0, test_utils_1.test)()
|
|
223
288
|
], LiblslTest, "pushSampleCallsBindings", null);
|
|
289
|
+
__decorate([
|
|
290
|
+
(0, test_utils_1.test)()
|
|
291
|
+
], LiblslTest, "appendChannelsThrowsWithMissingParams", null);
|
|
292
|
+
__decorate([
|
|
293
|
+
(0, test_utils_1.test)()
|
|
294
|
+
], LiblslTest, "addingSingleChannelGetsDescription", null);
|
|
295
|
+
__decorate([
|
|
296
|
+
(0, test_utils_1.test)()
|
|
297
|
+
], LiblslTest, "addingMultpleChannelsAddsChildrenToChannelsChild", null);
|
|
224
298
|
class FakeLiblsl {
|
|
299
|
+
appendChannelsToStreamInfo(_info, _channels) { }
|
|
225
300
|
createOutlet(_options) {
|
|
226
301
|
return {};
|
|
227
302
|
}
|
|
@@ -233,4 +308,5 @@ class FakeLiblsl {
|
|
|
233
308
|
const streamInfo = ref_napi_1.default.refType(ref_napi_1.default.types.void);
|
|
234
309
|
const outletType = ref_napi_1.default.refType(ref_napi_1.default.types.void);
|
|
235
310
|
const FloatArray = (0, ref_array_napi_1.default)(ref_napi_1.default.types.float);
|
|
311
|
+
const xmlPtr = ref_napi_1.default.refType(ref_napi_1.default.types.void);
|
|
236
312
|
//# sourceMappingURL=Liblsl.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Liblsl.test.js","sourceRoot":"","sources":["../../../src/__tests__/implementation/Liblsl.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAkC;AAClC,qEAK+B;AAC/B,oEAAsC;AACtC,wDAA0B;AAC1B,
|
|
1
|
+
{"version":3,"file":"Liblsl.test.js","sourceRoot":"","sources":["../../../src/__tests__/implementation/Liblsl.test.ts"],"names":[],"mappings":"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"}
|
package/build/index.d.ts
CHANGED
package/build/index.js
CHANGED
|
@@ -17,11 +17,11 @@ 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.
|
|
20
|
+
exports.LslOutletImpl = exports.LiblslImpl = void 0;
|
|
21
21
|
var Liblsl_1 = require("./Liblsl");
|
|
22
22
|
Object.defineProperty(exports, "LiblslImpl", { enumerable: true, get: function () { return __importDefault(Liblsl_1).default; } });
|
|
23
23
|
__exportStar(require("./Liblsl"), exports);
|
|
24
24
|
var LslOutlet_1 = require("./LslOutlet");
|
|
25
|
-
Object.defineProperty(exports, "
|
|
25
|
+
Object.defineProperty(exports, "LslOutletImpl", { enumerable: true, get: function () { return __importDefault(LslOutlet_1).default; } });
|
|
26
26
|
__exportStar(require("./LslOutlet"), exports);
|
|
27
27
|
//# 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,mCAAgD;AAAvC,qHAAA,OAAO,OAAc;AAC9B,2CAAwB;AAExB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,mCAAgD;AAAvC,qHAAA,OAAO,OAAc;AAC9B,2CAAwB;AAExB,yCAAsD;AAA7C,2HAAA,OAAO,OAAiB;AACjC,8CAA2B"}
|
package/package.json
CHANGED
package/src/Liblsl.ts
CHANGED
|
@@ -40,6 +40,21 @@ export default class LiblslImpl implements Liblsl {
|
|
|
40
40
|
})
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
+
public appendChannelsToStreamInfo(
|
|
44
|
+
info: LslBindingsStreamInfo,
|
|
45
|
+
channels: LslChannel[]
|
|
46
|
+
): void {
|
|
47
|
+
assertOptions({ info, channels }, ['info', 'channels'])
|
|
48
|
+
const desc = this.bindings.lsl_get_desc(info)
|
|
49
|
+
|
|
50
|
+
const parent = this.bindings.lsl_append_child(desc, 'channels')
|
|
51
|
+
|
|
52
|
+
for (const channel of channels) {
|
|
53
|
+
this.bindings.lsl_append_child_value(parent, 'label', channel.label)
|
|
54
|
+
this.bindings.lsl_append_child_value(parent, 'unit', channel.unit)
|
|
55
|
+
this.bindings.lsl_append_child_value(parent, 'type', channel.type)
|
|
56
|
+
}
|
|
57
|
+
}
|
|
43
58
|
|
|
44
59
|
private loadBindings(path: string) {
|
|
45
60
|
return LiblslImpl.ffi.Library(path!, {
|
|
@@ -50,6 +65,9 @@ export default class LiblslImpl implements Liblsl {
|
|
|
50
65
|
lsl_create_outlet: [outletType, [streamInfo, 'int', 'int']],
|
|
51
66
|
lsl_local_clock: ['double', []],
|
|
52
67
|
lsl_push_sample_ft: ['void', [outletType, FloatArray, 'double']],
|
|
68
|
+
lsl_get_desc: [xmlPtr, [streamInfo]],
|
|
69
|
+
lsl_append_child: [xmlPtr, [xmlPtr, 'string']],
|
|
70
|
+
lsl_append_child_value: [xmlPtr, [xmlPtr, 'string', 'string']],
|
|
53
71
|
}) as unknown as LiblslBindings
|
|
54
72
|
}
|
|
55
73
|
|
|
@@ -69,7 +87,9 @@ export default class LiblslImpl implements Liblsl {
|
|
|
69
87
|
return this.bindings.lsl_create_outlet(info, chunkSize, maxBuffered)
|
|
70
88
|
}
|
|
71
89
|
|
|
72
|
-
public createStreamInfo(
|
|
90
|
+
public createStreamInfo(
|
|
91
|
+
options: CreateStreamInfoOptions
|
|
92
|
+
): LslBindingsStreamInfo {
|
|
73
93
|
const { name, type, channelCount, sampleRate, channelFormat, sourceId } =
|
|
74
94
|
assertOptions(options, [
|
|
75
95
|
'name',
|
|
@@ -92,6 +112,10 @@ export default class LiblslImpl implements Liblsl {
|
|
|
92
112
|
}
|
|
93
113
|
|
|
94
114
|
export interface Liblsl {
|
|
115
|
+
appendChannelsToStreamInfo(
|
|
116
|
+
info: LslBindingsStreamInfo,
|
|
117
|
+
channels: LslChannel[]
|
|
118
|
+
): void
|
|
95
119
|
createStreamInfo(options: CreateStreamInfoOptions): LslBindingsStreamInfo
|
|
96
120
|
createOutlet(options: CreateOutletOptions): LslBindingsOutlet
|
|
97
121
|
pushSample(outlet: LslBindingsOutlet, sample: LslSample): void
|
|
@@ -99,8 +123,6 @@ export interface Liblsl {
|
|
|
99
123
|
|
|
100
124
|
export type LslSample = (number | string | undefined)[]
|
|
101
125
|
|
|
102
|
-
export interface StreamInfo {}
|
|
103
|
-
|
|
104
126
|
export interface CreateStreamInfoOptions {
|
|
105
127
|
name: string
|
|
106
128
|
type: string
|
|
@@ -112,6 +134,12 @@ export interface CreateStreamInfoOptions {
|
|
|
112
134
|
unit?: string
|
|
113
135
|
}
|
|
114
136
|
|
|
137
|
+
export interface LslChannel {
|
|
138
|
+
label: string
|
|
139
|
+
unit: string
|
|
140
|
+
type: string
|
|
141
|
+
}
|
|
142
|
+
|
|
115
143
|
export interface LiblslBindings {
|
|
116
144
|
lsl_create_streaminfo(
|
|
117
145
|
name: string,
|
|
@@ -135,17 +163,26 @@ export interface LiblslBindings {
|
|
|
135
163
|
): void
|
|
136
164
|
|
|
137
165
|
lsl_local_clock(): number
|
|
166
|
+
lsl_get_desc(info: LslBindingsStreamInfo): LslBindingsDesc
|
|
167
|
+
lsl_append_child(desc: LslBindingsDesc, name: string): LslBindingsChild
|
|
168
|
+
lsl_append_child_value(
|
|
169
|
+
child: LslBindingsChild,
|
|
170
|
+
name: string,
|
|
171
|
+
value: string
|
|
172
|
+
): void
|
|
138
173
|
}
|
|
139
174
|
|
|
140
175
|
const streamInfo = ref.refType(ref.types.void)
|
|
141
176
|
const outletType = ref.refType(ref.types.void)
|
|
142
177
|
const FloatArray = ArrayType(ref.types.float)
|
|
143
|
-
|
|
178
|
+
const xmlPtr = ref.refType(ref.types.void)
|
|
144
179
|
export interface CreateOutletOptions {
|
|
145
|
-
info:
|
|
180
|
+
info: LslBindingsStreamInfo
|
|
146
181
|
chunkSize: number
|
|
147
182
|
maxBuffered: number
|
|
148
183
|
}
|
|
149
184
|
|
|
150
185
|
export interface LslBindingsStreamInfo {}
|
|
151
186
|
export interface LslBindingsOutlet {}
|
|
187
|
+
export interface LslBindingsDesc {}
|
|
188
|
+
export interface LslBindingsChild {}
|
|
@@ -11,6 +11,7 @@ import LiblslImpl, {
|
|
|
11
11
|
Liblsl,
|
|
12
12
|
LslBindingsOutlet,
|
|
13
13
|
LslBindingsStreamInfo,
|
|
14
|
+
LslChannel,
|
|
14
15
|
LslSample,
|
|
15
16
|
} from '../../Liblsl'
|
|
16
17
|
import LslOutlet, { ChannelFormat, LslOutletOptions } from '../../LslOutlet'
|
|
@@ -213,6 +214,11 @@ class SpyLiblsl implements Liblsl {
|
|
|
213
214
|
this.lastStreamInfoOptions = options
|
|
214
215
|
return this.streamInfo
|
|
215
216
|
}
|
|
217
|
+
public appendChannelsToStreamInfo(
|
|
218
|
+
info: LslBindingsStreamInfo,
|
|
219
|
+
channels: LslChannel[]
|
|
220
|
+
): void {}
|
|
221
|
+
|
|
216
222
|
public createOutlet(options: CreateOutletOptions): LslBindingsOutlet {
|
|
217
223
|
this.lastOutletOptions = options
|
|
218
224
|
return this.outlet
|
|
@@ -12,10 +12,12 @@ import LiblslImpl, {
|
|
|
12
12
|
LiblslBindings,
|
|
13
13
|
Liblsl,
|
|
14
14
|
LslSample,
|
|
15
|
-
StreamInfo,
|
|
16
15
|
CreateOutletOptions,
|
|
17
16
|
LslBindingsOutlet,
|
|
18
17
|
LslBindingsStreamInfo,
|
|
18
|
+
LslChannel,
|
|
19
|
+
LslBindingsDesc,
|
|
20
|
+
LslBindingsChild,
|
|
19
21
|
} from '../../Liblsl'
|
|
20
22
|
|
|
21
23
|
export default class LiblslTest extends AbstractSpruceTest {
|
|
@@ -23,13 +25,18 @@ export default class LiblslTest extends AbstractSpruceTest {
|
|
|
23
25
|
private static libraryPath?: string
|
|
24
26
|
private static libraryOptions?: Record<string, any>
|
|
25
27
|
private static fakeBindings: LiblslBindings
|
|
26
|
-
private static fakeStreamInfo:
|
|
28
|
+
private static fakeStreamInfo: LslBindingsStreamInfo
|
|
27
29
|
private static fakeOutlet: LslBindingsOutlet
|
|
30
|
+
private static fakeDesc: LslBindingsDesc
|
|
31
|
+
private static fakeChildNamedChannels: LslBindingsChild
|
|
28
32
|
private static createStreamInfoParams?: any[]
|
|
33
|
+
private static appendChildParams?: any[]
|
|
29
34
|
private static createOutletParams?: any[]
|
|
30
35
|
private static pushSampleParams?: any[]
|
|
36
|
+
private static appendChildValueParams: any[]
|
|
31
37
|
private static localClock: number
|
|
32
38
|
private static shouldThrowWhenCreatingBindings: boolean
|
|
39
|
+
private static getDescriptionParams?: [LslBindingsStreamInfo]
|
|
33
40
|
|
|
34
41
|
protected static async beforeEach(): Promise<void> {
|
|
35
42
|
await super.beforeEach()
|
|
@@ -39,11 +46,17 @@ export default class LiblslTest extends AbstractSpruceTest {
|
|
|
39
46
|
delete this.createStreamInfoParams
|
|
40
47
|
delete this.createOutletParams
|
|
41
48
|
delete this.pushSampleParams
|
|
49
|
+
delete this.getDescriptionParams
|
|
50
|
+
delete this.appendChildParams
|
|
51
|
+
this.appendChildValueParams = []
|
|
42
52
|
|
|
43
53
|
process.env.LIBLSL_PATH = generateId()
|
|
44
54
|
|
|
45
55
|
this.fakeStreamInfo = {}
|
|
56
|
+
this.fakeDesc = {}
|
|
46
57
|
this.fakeOutlet = {}
|
|
58
|
+
this.fakeChildNamedChannels = {}
|
|
59
|
+
|
|
47
60
|
this.localClock = new Date().getTime()
|
|
48
61
|
this.shouldThrowWhenCreatingBindings = false
|
|
49
62
|
|
|
@@ -61,6 +74,17 @@ export default class LiblslTest extends AbstractSpruceTest {
|
|
|
61
74
|
return 0
|
|
62
75
|
},
|
|
63
76
|
lsl_local_clock: () => this.localClock,
|
|
77
|
+
lsl_get_desc: (info: LslBindingsStreamInfo) => {
|
|
78
|
+
this.getDescriptionParams = [info]
|
|
79
|
+
return this.fakeDesc
|
|
80
|
+
},
|
|
81
|
+
lsl_append_child: (...params: any) => {
|
|
82
|
+
this.appendChildParams = params
|
|
83
|
+
return this.fakeChildNamedChannels
|
|
84
|
+
},
|
|
85
|
+
lsl_append_child_value: (...params: any[]) => {
|
|
86
|
+
this.appendChildValueParams.push(params)
|
|
87
|
+
},
|
|
64
88
|
}
|
|
65
89
|
|
|
66
90
|
LiblslImpl.ffi = {
|
|
@@ -128,6 +152,9 @@ export default class LiblslTest extends AbstractSpruceTest {
|
|
|
128
152
|
lsl_create_outlet: [outletType, [streamInfo, 'int', 'int']],
|
|
129
153
|
lsl_local_clock: ['double', []],
|
|
130
154
|
lsl_push_sample_ft: ['void', [outletType, FloatArray, 'double']],
|
|
155
|
+
lsl_get_desc: [xmlPtr, [streamInfo]],
|
|
156
|
+
lsl_append_child: [xmlPtr, [xmlPtr, 'string']],
|
|
157
|
+
lsl_append_child_value: [xmlPtr, [xmlPtr, 'string', 'string']],
|
|
131
158
|
}
|
|
132
159
|
assert.isEqual(
|
|
133
160
|
JSON.stringify(this.libraryOptions),
|
|
@@ -171,9 +198,7 @@ export default class LiblslTest extends AbstractSpruceTest {
|
|
|
171
198
|
|
|
172
199
|
@test()
|
|
173
200
|
protected static async canCreateOutletWithRequiredParams() {
|
|
174
|
-
const info = this.
|
|
175
|
-
this.generateRandomCreateStreamInfoOptions()
|
|
176
|
-
)
|
|
201
|
+
const info = this.createRandomStreamInfo()
|
|
177
202
|
const options = {
|
|
178
203
|
info,
|
|
179
204
|
chunkSize: randomInt(10),
|
|
@@ -202,6 +227,67 @@ export default class LiblslTest extends AbstractSpruceTest {
|
|
|
202
227
|
assert.isEqual(this.pushSampleParams?.[2], this.localClock)
|
|
203
228
|
}
|
|
204
229
|
|
|
230
|
+
@test()
|
|
231
|
+
protected static async appendChannelsThrowsWithMissingParams() {
|
|
232
|
+
//@ts-ignore
|
|
233
|
+
const err = assert.doesThrow(() => this.lsl.appendChannelsToStreamInfo())
|
|
234
|
+
errorAssert.assertError(err, 'MISSING_PARAMETERS', {
|
|
235
|
+
parameters: ['info', 'channels'],
|
|
236
|
+
})
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
@test()
|
|
240
|
+
protected static async addingSingleChannelGetsDescription() {
|
|
241
|
+
const info = this.createRandomStreamInfo()
|
|
242
|
+
const channel: LslChannel = this.generateRandomChannelValues()
|
|
243
|
+
this.lsl.appendChannelsToStreamInfo(info, [channel])
|
|
244
|
+
assert.isEqual(this.getDescriptionParams?.[0], info)
|
|
245
|
+
|
|
246
|
+
assert.isEqual(this.appendChildParams?.[0], this.fakeDesc)
|
|
247
|
+
assert.isEqual(this.appendChildParams?.[1], 'channels')
|
|
248
|
+
|
|
249
|
+
assert.isLength(this.appendChildValueParams, 3)
|
|
250
|
+
|
|
251
|
+
for (let i = 0; i < 3; i++) {
|
|
252
|
+
const param = this.appendChildValueParams[i]
|
|
253
|
+
assert.isEqual(param[0], this.fakeChildNamedChannels)
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
assert.isEqual(this.appendChildValueParams[0][1], 'label')
|
|
257
|
+
assert.isEqual(this.appendChildValueParams[1][1], 'unit')
|
|
258
|
+
assert.isEqual(this.appendChildValueParams[2][1], 'type')
|
|
259
|
+
|
|
260
|
+
assert.isEqual(this.appendChildValueParams[0][2], channel.label)
|
|
261
|
+
assert.isEqual(this.appendChildValueParams[1][2], channel.unit)
|
|
262
|
+
assert.isEqual(this.appendChildValueParams[2][2], channel.type)
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
@test()
|
|
266
|
+
protected static async addingMultpleChannelsAddsChildrenToChannelsChild() {
|
|
267
|
+
const info = this.createRandomStreamInfo()
|
|
268
|
+
const channel1 = this.generateRandomChannelValues()
|
|
269
|
+
const channel2 = this.generateRandomChannelValues()
|
|
270
|
+
this.lsl.appendChannelsToStreamInfo(info, [channel1, channel2])
|
|
271
|
+
|
|
272
|
+
assert.isEqual(this.appendChildValueParams[3][2], channel2.label)
|
|
273
|
+
assert.isEqual(this.appendChildValueParams[4][2], channel2.unit)
|
|
274
|
+
assert.isEqual(this.appendChildValueParams[5][2], channel2.type)
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
private static generateRandomChannelValues(): LslChannel {
|
|
278
|
+
return {
|
|
279
|
+
label: generateId(),
|
|
280
|
+
type: generateId(),
|
|
281
|
+
unit: generateId(),
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
private static createRandomStreamInfo() {
|
|
286
|
+
return this.lsl.createStreamInfo(
|
|
287
|
+
this.generateRandomCreateStreamInfoOptions()
|
|
288
|
+
)
|
|
289
|
+
}
|
|
290
|
+
|
|
205
291
|
private static generateRandomCreateStreamInfoOptions() {
|
|
206
292
|
return {
|
|
207
293
|
name: generateId(),
|
|
@@ -215,13 +301,17 @@ export default class LiblslTest extends AbstractSpruceTest {
|
|
|
215
301
|
}
|
|
216
302
|
|
|
217
303
|
class FakeLiblsl implements Liblsl {
|
|
304
|
+
public appendChannelsToStreamInfo(
|
|
305
|
+
_info: LslBindingsStreamInfo,
|
|
306
|
+
_channels: LslChannel[]
|
|
307
|
+
): void {}
|
|
218
308
|
public createOutlet(_options: CreateOutletOptions): LslBindingsOutlet {
|
|
219
309
|
return {} as LslBindingsOutlet
|
|
220
310
|
}
|
|
221
311
|
public createStreamInfo(
|
|
222
312
|
_options: CreateStreamInfoOptions
|
|
223
313
|
): LslBindingsStreamInfo {
|
|
224
|
-
return {} as
|
|
314
|
+
return {} as LslBindingsStreamInfo
|
|
225
315
|
}
|
|
226
316
|
public pushSample(_sample: LslSample): void {}
|
|
227
317
|
}
|
|
@@ -229,3 +319,4 @@ class FakeLiblsl implements Liblsl {
|
|
|
229
319
|
const streamInfo = ref.refType(ref.types.void)
|
|
230
320
|
const outletType = ref.refType(ref.types.void)
|
|
231
321
|
const FloatArray = ArrayType(ref.types.float)
|
|
322
|
+
const xmlPtr = ref.refType(ref.types.void)
|