@neurodevs/node-lsl 3.3.0 → 4.0.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.
@@ -37,6 +37,7 @@ const test_utils_1 = __importStar(require("@sprucelabs/test-utils"));
37
37
  const ref_array_napi_1 = __importDefault(require("ref-array-napi"));
38
38
  const ref_napi_1 = __importDefault(require("ref-napi"));
39
39
  const Liblsl_1 = __importDefault(require("../../Liblsl"));
40
+ const SpyLiblsl_1 = require("../support/SpyLiblsl");
40
41
  class LiblslTest extends test_utils_1.default {
41
42
  static async beforeEach() {
42
43
  await super.beforeEach();
@@ -45,7 +46,7 @@ class LiblslTest extends test_utils_1.default {
45
46
  delete this.createStreamInfoParams;
46
47
  delete this.createOutletParams;
47
48
  delete this.destroyOutletParams;
48
- delete this.pushSampleParams;
49
+ delete this.pushSampleFtParams;
49
50
  delete this.getDescriptionParams;
50
51
  this.appendChildParams = [];
51
52
  this.appendChildValueParams = [];
@@ -55,50 +56,16 @@ class LiblslTest extends test_utils_1.default {
55
56
  this.fakeOutlet = {};
56
57
  this.fakeChildNamedChannels = {};
57
58
  this.fakeChildNamedChannel = {};
58
- this.localClock = new Date().getTime();
59
+ this.fakeBindings = this.FakeBindings();
59
60
  this.shouldThrowWhenCreatingBindings = false;
60
61
  this.appendChildHitCount = 0;
61
- this.fakeBindings = {
62
- lsl_create_streaminfo: (...params) => {
63
- this.createStreamInfoParams = params;
64
- return this.fakeStreamInfo;
65
- },
66
- lsl_create_outlet: (...params) => {
67
- this.createOutletParams = params;
68
- return this.fakeOutlet;
69
- },
70
- lsl_destroy_outlet: (...params) => {
71
- this.destroyOutletParams = params;
72
- return;
73
- },
74
- lsl_push_sample_ft: (...params) => {
75
- this.pushSampleParams = params;
76
- return 0;
77
- },
78
- lsl_local_clock: () => this.localClock,
79
- lsl_get_desc: (info) => {
80
- this.getDescriptionParams = [info];
81
- return this.fakeDesc;
82
- },
83
- lsl_append_child: (...params) => {
84
- this.appendChildParams.push(params);
85
- if (this.appendChildHitCount === 0) {
86
- this.appendChildHitCount++;
87
- return this.fakeChildNamedChannels;
88
- }
89
- return this.fakeChildNamedChannel;
90
- },
91
- lsl_append_child_value: (...params) => {
92
- this.appendChildValueParams.push(params);
93
- },
94
- };
95
62
  Liblsl_1.default.ffi = {
96
63
  //@ts-ignore
97
64
  Library: (path, options) => {
98
65
  this.libraryPath = path;
99
66
  this.libraryOptions = options;
100
67
  if (this.shouldThrowWhenCreatingBindings) {
101
- throw new Error('Failed to create bindings');
68
+ throw new Error('Failed to create bindings!');
102
69
  }
103
70
  return this.fakeBindings;
104
71
  },
@@ -148,11 +115,18 @@ class LiblslTest extends test_utils_1.default {
148
115
  parameters: ['info', 'chunkSize', 'maxBuffered'],
149
116
  });
150
117
  }
151
- static async throwsWhenPushSampleIsMissingRequiredParams() {
118
+ static async throwsWhenPushSampleFtIsMissingRequiredParams() {
119
+ //@ts-ignore
120
+ const err = test_utils_1.assert.doesThrow(() => this.lsl.pushSampleFt());
121
+ test_utils_1.errorAssert.assertError(err, 'MISSING_PARAMETERS', {
122
+ parameters: ['outlet', 'sample', 'timestamp'],
123
+ });
124
+ }
125
+ static async throwsWhenPushSampleStrtIsMissingRequiredParams() {
152
126
  //@ts-ignore
153
- const err = test_utils_1.assert.doesThrow(() => this.lsl.pushSample());
127
+ const err = test_utils_1.assert.doesThrow(() => this.lsl.pushSampleFt());
154
128
  test_utils_1.errorAssert.assertError(err, 'MISSING_PARAMETERS', {
155
- parameters: ['outlet', 'sample'],
129
+ parameters: ['outlet', 'sample', 'timestamp'],
156
130
  });
157
131
  }
158
132
  static async worksAsASingleton() {
@@ -163,7 +137,7 @@ class LiblslTest extends test_utils_1.default {
163
137
  test_utils_1.assert.isEqual(Liblsl_1.default.getInstance(), Liblsl_1.default.getInstance());
164
138
  }
165
139
  static canSetInstance() {
166
- const fake = new FakeLiblsl();
140
+ const fake = new SpyLiblsl_1.SpyLiblsl();
167
141
  Liblsl_1.default.setInstance(fake);
168
142
  test_utils_1.assert.isEqual(Liblsl_1.default.getInstance(), fake);
169
143
  }
@@ -180,6 +154,7 @@ class LiblslTest extends test_utils_1.default {
180
154
  lsl_destroy_outlet: ['void', [outletType]],
181
155
  lsl_local_clock: ['double', []],
182
156
  lsl_push_sample_ft: ['void', [outletType, FloatArray, 'double']],
157
+ lsl_push_sample_strt: ['void', [outletType, StringArray, 'double']],
183
158
  lsl_get_desc: [xmlPtr, [streamInfo]],
184
159
  lsl_append_child: [xmlPtr, [xmlPtr, 'string']],
185
160
  lsl_append_child_value: [xmlPtr, [xmlPtr, 'string', 'string']],
@@ -197,17 +172,33 @@ class LiblslTest extends test_utils_1.default {
197
172
  test_utils_1.assert.isEqualDeep(this.createOutletParams, Object.values(options));
198
173
  test_utils_1.assert.isEqual(outlet, this.fakeOutlet);
199
174
  }
200
- static async canPushSampleWithRequiredParams() {
175
+ static async canPushFloatSample() {
176
+ var _a, _b, _c;
177
+ const expected = [1.0, 2.0, 3.0];
178
+ const timestamp = (0, crypto_1.randomInt)(100);
179
+ const options = {
180
+ outlet: this.fakeOutlet,
181
+ sample: expected,
182
+ timestamp,
183
+ };
184
+ this.lsl.pushSampleFt(options);
185
+ test_utils_1.assert.isEqual((_a = this.pushSampleFtParams) === null || _a === void 0 ? void 0 : _a[0], this.fakeOutlet);
186
+ test_utils_1.assert.isEqual((_b = this.pushSampleFtParams) === null || _b === void 0 ? void 0 : _b[1], expected);
187
+ test_utils_1.assert.isEqual((_c = this.pushSampleFtParams) === null || _c === void 0 ? void 0 : _c[2], timestamp);
188
+ }
189
+ static async canPushStringSample() {
201
190
  var _a, _b, _c;
202
- const expected = [1, 2, 3];
191
+ const expected = [(0, test_utils_1.generateId)()];
192
+ const timestamp = (0, crypto_1.randomInt)(100);
203
193
  const options = {
204
194
  outlet: this.fakeOutlet,
205
195
  sample: expected,
196
+ timestamp,
206
197
  };
207
- this.lsl.pushSample(options);
208
- test_utils_1.assert.isEqual((_a = this.pushSampleParams) === null || _a === void 0 ? void 0 : _a[0], this.fakeOutlet);
209
- test_utils_1.assert.isEqual((_b = this.pushSampleParams) === null || _b === void 0 ? void 0 : _b[1], expected);
210
- test_utils_1.assert.isEqual((_c = this.pushSampleParams) === null || _c === void 0 ? void 0 : _c[2], this.localClock);
198
+ this.lsl.pushSampleStrt(options);
199
+ test_utils_1.assert.isEqual((_a = this.pushSampleStrtParams) === null || _a === void 0 ? void 0 : _a[0], this.fakeOutlet);
200
+ test_utils_1.assert.isEqualDeep((_b = this.pushSampleStrtParams) === null || _b === void 0 ? void 0 : _b[1], expected);
201
+ test_utils_1.assert.isEqual((_c = this.pushSampleStrtParams) === null || _c === void 0 ? void 0 : _c[2], timestamp);
211
202
  }
212
203
  static async addingSingleChannelGetsDescription() {
213
204
  var _a, _b, _c, _d, _e;
@@ -255,6 +246,12 @@ class LiblslTest extends test_utils_1.default {
255
246
  this.lsl.destroyOutlet(options);
256
247
  test_utils_1.assert.isEqualDeep(this.destroyOutletParams, Object.values(options));
257
248
  }
249
+ static async callingLocalClockTwiceReturnsDifferentTimestamps() {
250
+ const t1 = this.lsl.localClock();
251
+ await this.wait(10);
252
+ const t2 = this.lsl.localClock();
253
+ test_utils_1.assert.isNotEqual(t1, t2);
254
+ }
258
255
  static createRandomStreamInfo() {
259
256
  return this.lsl.createStreamInfo(this.generateRandomCreateStreamInfoOptions());
260
257
  }
@@ -285,6 +282,43 @@ class LiblslTest extends test_utils_1.default {
285
282
  sourceId: (0, test_utils_1.generateId)(),
286
283
  };
287
284
  }
285
+ static FakeBindings() {
286
+ return {
287
+ lsl_create_streaminfo: (...params) => {
288
+ this.createStreamInfoParams = params;
289
+ return this.fakeStreamInfo;
290
+ },
291
+ lsl_create_outlet: (...params) => {
292
+ this.createOutletParams = params;
293
+ return this.fakeOutlet;
294
+ },
295
+ lsl_destroy_outlet: (...params) => {
296
+ this.destroyOutletParams = params;
297
+ },
298
+ lsl_push_sample_ft: (...params) => {
299
+ this.pushSampleFtParams = params;
300
+ },
301
+ lsl_push_sample_strt: (...params) => {
302
+ this.pushSampleStrtParams = params;
303
+ },
304
+ lsl_local_clock: () => new Date().getTime(),
305
+ lsl_get_desc: (info) => {
306
+ this.getDescriptionParams = [info];
307
+ return this.fakeDesc;
308
+ },
309
+ lsl_append_child: (...params) => {
310
+ this.appendChildParams.push(params);
311
+ if (this.appendChildHitCount === 0) {
312
+ this.appendChildHitCount++;
313
+ return this.fakeChildNamedChannels;
314
+ }
315
+ return this.fakeChildNamedChannel;
316
+ },
317
+ lsl_append_child_value: (...params) => {
318
+ this.appendChildValueParams.push(params);
319
+ },
320
+ };
321
+ }
288
322
  }
289
323
  LiblslTest.appendChildParams = [];
290
324
  exports.default = LiblslTest;
@@ -305,7 +339,10 @@ __decorate([
305
339
  ], LiblslTest, "throwsWhenCreateOutletIsMissingRequiredParams", null);
306
340
  __decorate([
307
341
  (0, test_utils_1.test)()
308
- ], LiblslTest, "throwsWhenPushSampleIsMissingRequiredParams", null);
342
+ ], LiblslTest, "throwsWhenPushSampleFtIsMissingRequiredParams", null);
343
+ __decorate([
344
+ (0, test_utils_1.test)()
345
+ ], LiblslTest, "throwsWhenPushSampleStrtIsMissingRequiredParams", null);
309
346
  __decorate([
310
347
  (0, test_utils_1.test)()
311
348
  ], LiblslTest, "worksAsASingleton", null);
@@ -326,7 +363,10 @@ __decorate([
326
363
  ], LiblslTest, "canCreateOutletWithRequiredParams", null);
327
364
  __decorate([
328
365
  (0, test_utils_1.test)()
329
- ], LiblslTest, "canPushSampleWithRequiredParams", null);
366
+ ], LiblslTest, "canPushFloatSample", null);
367
+ __decorate([
368
+ (0, test_utils_1.test)()
369
+ ], LiblslTest, "canPushStringSample", null);
330
370
  __decorate([
331
371
  (0, test_utils_1.test)()
332
372
  ], LiblslTest, "addingSingleChannelGetsDescription", null);
@@ -336,19 +376,12 @@ __decorate([
336
376
  __decorate([
337
377
  (0, test_utils_1.test)()
338
378
  ], LiblslTest, "canDestroyOutlet", null);
339
- class FakeLiblsl {
340
- createStreamInfo(_options) {
341
- return {};
342
- }
343
- appendChannelsToStreamInfo(_options) { }
344
- createOutlet(_options) {
345
- return {};
346
- }
347
- destroyOutlet(_options) { }
348
- pushSample(_options) { }
349
- }
379
+ __decorate([
380
+ (0, test_utils_1.test)()
381
+ ], LiblslTest, "callingLocalClockTwiceReturnsDifferentTimestamps", null);
350
382
  const streamInfo = ref_napi_1.default.refType(ref_napi_1.default.types.void);
351
383
  const outletType = ref_napi_1.default.refType(ref_napi_1.default.types.void);
352
384
  const FloatArray = (0, ref_array_napi_1.default)(ref_napi_1.default.types.float);
385
+ const StringArray = (0, ref_array_napi_1.default)(ref_napi_1.default.types.CString);
353
386
  const xmlPtr = ref_napi_1.default.refType(ref_napi_1.default.types.void);
354
387
  //# sourceMappingURL=Liblsl.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Liblsl.test.js","sourceRoot":"","sources":["../../../src/__tests__/implementation/Liblsl.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Liblsl.test.js","sourceRoot":"","sources":["../../../src/__tests__/implementation/Liblsl.test.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,20 @@
1
- import { CreateOutletOptions, CreateStreamInfoOptions, Liblsl, BoundOutlet, BoundStreamInfo, AppendChannelsToStreamInfoOptions, PushSampleOptions } from '../../Liblsl';
1
+ import { Liblsl, BoundOutlet, BoundStreamInfo, CreateStreamInfoOptions, AppendChannelsToStreamInfoOptions, CreateOutletOptions, PushSampleFtOptions as PushSampleFtOptions, PushSampleStrtOptions } from '../../Liblsl';
2
2
  export declare class SpyLiblsl implements Liblsl {
3
+ outlet: BoundOutlet;
4
+ streamInfo: BoundStreamInfo;
3
5
  lastCreateStreamInfoOptions?: CreateStreamInfoOptions;
4
6
  lastAppendChannelsToStreamInfoOptions?: AppendChannelsToStreamInfoOptions;
5
7
  lastCreateOutletOptions?: CreateOutletOptions;
6
- lastPushSampleOptions?: PushSampleOptions;
7
- outlet: BoundOutlet;
8
- streamInfo: BoundStreamInfo;
8
+ lastPushSampleFtOptions?: PushSampleFtOptions;
9
+ lastPushSampleStrtOptions?: PushSampleStrtOptions;
9
10
  createStreamInfoHitCount: number;
10
11
  destroyOutletHitCount: number;
12
+ localClockHitCount: number;
11
13
  createStreamInfo(options: CreateStreamInfoOptions): BoundStreamInfo;
12
14
  appendChannelsToStreamInfo(options: AppendChannelsToStreamInfoOptions): void;
13
15
  createOutlet(options: CreateOutletOptions): BoundOutlet;
14
16
  destroyOutlet(): void;
15
- pushSample(options: PushSampleOptions): void;
17
+ pushSampleFt(options: PushSampleFtOptions): void;
18
+ pushSampleStrt(options: PushSampleStrtOptions): void;
19
+ localClock(): number;
16
20
  }
@@ -7,6 +7,7 @@ class SpyLiblsl {
7
7
  this.streamInfo = {};
8
8
  this.createStreamInfoHitCount = 0;
9
9
  this.destroyOutletHitCount = 0;
10
+ this.localClockHitCount = 0;
10
11
  }
11
12
  createStreamInfo(options) {
12
13
  this.createStreamInfoHitCount++;
@@ -23,8 +24,15 @@ class SpyLiblsl {
23
24
  destroyOutlet() {
24
25
  this.destroyOutletHitCount++;
25
26
  }
26
- pushSample(options) {
27
- this.lastPushSampleOptions = options;
27
+ pushSampleFt(options) {
28
+ this.lastPushSampleFtOptions = options;
29
+ }
30
+ pushSampleStrt(options) {
31
+ this.lastPushSampleStrtOptions = options;
32
+ }
33
+ localClock() {
34
+ this.localClockHitCount++;
35
+ return new Date().getTime();
28
36
  }
29
37
  }
30
38
  exports.SpyLiblsl = SpyLiblsl;
@@ -1 +1 @@
1
- {"version":3,"file":"SpyLiblsl.js","sourceRoot":"","sources":["../../../src/__tests__/support/SpyLiblsl.ts"],"names":[],"mappings":";;;AAUA,MAAa,SAAS;IAAtB;QAMQ,WAAM,GAAgB,EAAiB,CAAA;QACvC,eAAU,GAAoB,EAAqB,CAAA;QACnD,6BAAwB,GAAG,CAAC,CAAA;QAC5B,0BAAqB,GAAG,CAAC,CAAA;IA0BjC,CAAC;IAxBO,gBAAgB,CAAC,OAAgC;QACvD,IAAI,CAAC,wBAAwB,EAAE,CAAA;QAC/B,IAAI,CAAC,2BAA2B,GAAG,OAAO,CAAA;QAC1C,OAAO,IAAI,CAAC,UAAU,CAAA;IACvB,CAAC;IAEM,0BAA0B,CAChC,OAA0C;QAE1C,IAAI,CAAC,qCAAqC,GAAG,OAAO,CAAA;IACrD,CAAC;IAEM,YAAY,CAAC,OAA4B;QAC/C,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAA;QACtC,OAAO,IAAI,CAAC,MAAM,CAAA;IACnB,CAAC;IAEM,aAAa;QACnB,IAAI,CAAC,qBAAqB,EAAE,CAAA;IAC7B,CAAC;IAEM,UAAU,CAAC,OAA0B;QAC3C,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAA;IACrC,CAAC;CACD;AAnCD,8BAmCC"}
1
+ {"version":3,"file":"SpyLiblsl.js","sourceRoot":"","sources":["../../../src/__tests__/support/SpyLiblsl.ts"],"names":[],"mappings":";;;AAWA,MAAa,SAAS;IAAtB;QACQ,WAAM,GAAgB,EAAiB,CAAA;QACvC,eAAU,GAAoB,EAAqB,CAAA;QAQnD,6BAAwB,GAAG,CAAC,CAAA;QAC5B,0BAAqB,GAAG,CAAC,CAAA;QACzB,uBAAkB,GAAG,CAAC,CAAA;IAmC9B,CAAC;IAjCO,gBAAgB,CAAC,OAAgC;QACvD,IAAI,CAAC,wBAAwB,EAAE,CAAA;QAC/B,IAAI,CAAC,2BAA2B,GAAG,OAAO,CAAA;QAC1C,OAAO,IAAI,CAAC,UAAU,CAAA;IACvB,CAAC;IAEM,0BAA0B,CAChC,OAA0C;QAE1C,IAAI,CAAC,qCAAqC,GAAG,OAAO,CAAA;IACrD,CAAC;IAEM,YAAY,CAAC,OAA4B;QAC/C,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAA;QACtC,OAAO,IAAI,CAAC,MAAM,CAAA;IACnB,CAAC;IAEM,aAAa;QACnB,IAAI,CAAC,qBAAqB,EAAE,CAAA;IAC7B,CAAC;IAEM,YAAY,CAAC,OAA4B;QAC/C,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAA;IACvC,CAAC;IAEM,cAAc,CAAC,OAA8B;QACnD,IAAI,CAAC,yBAAyB,GAAG,OAAO,CAAA;IACzC,CAAC;IAEM,UAAU;QAChB,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACzB,OAAO,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;IAC5B,CAAC;CACD;AA/CD,8BA+CC"}
package/package.json CHANGED
@@ -1,8 +1,11 @@
1
1
  {
2
2
  "name": "@neurodevs/node-lsl",
3
- "version": "3.3.0",
3
+ "version": "4.0.0",
4
4
  "main": "build/index.js",
5
- "repository": "https://github.com/neurodevs/node-lsl.git",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/neurodevs/node-lsl.git"
8
+ },
6
9
  "scripts": {
7
10
  "build.ci": "yarn build.tsc && yarn build.resolve-paths && yarn lint",
8
11
  "build.dev": "yarn build.tsc --sourceMap ; yarn resolve-paths.lint",
package/src/Liblsl.ts CHANGED
@@ -9,18 +9,18 @@ export default class LiblslImpl implements Liblsl {
9
9
  public static ffi = ffi
10
10
  private bindings: LiblslBindings
11
11
 
12
- public static getInstance() {
12
+ public static getInstance(): Liblsl {
13
13
  if (!this.instance) {
14
14
  this.setInstance(new this())
15
15
  }
16
16
  return this.instance!
17
17
  }
18
18
 
19
- public static setInstance(instance: Liblsl) {
19
+ public static setInstance(instance: Liblsl): void {
20
20
  this.instance = instance
21
21
  }
22
22
 
23
- public static resetInstance() {
23
+ public static resetInstance(): void {
24
24
  delete this.instance
25
25
  }
26
26
 
@@ -42,6 +42,7 @@ export default class LiblslImpl implements Liblsl {
42
42
  }
43
43
 
44
44
  private loadBindings(path: string) {
45
+ //@ts-ignore
45
46
  return LiblslImpl.ffi.Library(path!, {
46
47
  lsl_create_streaminfo: [
47
48
  streamInfo,
@@ -51,6 +52,7 @@ export default class LiblslImpl implements Liblsl {
51
52
  lsl_destroy_outlet: ['void', [outletType]],
52
53
  lsl_local_clock: ['double', []],
53
54
  lsl_push_sample_ft: ['void', [outletType, FloatArray, 'double']],
55
+ lsl_push_sample_strt: ['void', [outletType, StringArray, 'double']],
54
56
  lsl_get_desc: [xmlPtr, [streamInfo]],
55
57
  lsl_append_child: [xmlPtr, [xmlPtr, 'string']],
56
58
  lsl_append_child_value: [xmlPtr, [xmlPtr, 'string', 'string']],
@@ -95,7 +97,7 @@ export default class LiblslImpl implements Liblsl {
95
97
  }
96
98
  }
97
99
 
98
- public createOutlet(options: CreateOutletOptions) {
100
+ public createOutlet(options: CreateOutletOptions): BoundOutlet {
99
101
  const { info, chunkSize, maxBuffered } = assertOptions(options, [
100
102
  'info',
101
103
  'chunkSize',
@@ -110,11 +112,26 @@ export default class LiblslImpl implements Liblsl {
110
112
  this.bindings.lsl_destroy_outlet(outlet)
111
113
  }
112
114
 
113
- public pushSample(options: PushSampleOptions): void {
114
- const { outlet, sample } = assertOptions(options, ['outlet', 'sample'])
115
+ public pushSampleFt(options: PushSampleFtOptions): void {
116
+ const { outlet, sample, timestamp } = assertOptions(options, [
117
+ 'outlet',
118
+ 'sample',
119
+ 'timestamp',
120
+ ])
121
+ this.bindings.lsl_push_sample_ft(outlet, sample, timestamp)
122
+ }
115
123
 
116
- const clock = this.bindings.lsl_local_clock()
117
- this.bindings.lsl_push_sample_ft(outlet, sample, clock)
124
+ public pushSampleStrt(options: PushSampleStrtOptions): void {
125
+ const { outlet, sample, timestamp } = assertOptions(options, [
126
+ 'outlet',
127
+ 'sample',
128
+ 'timestamp',
129
+ ])
130
+ this.bindings.lsl_push_sample_strt(outlet, sample, timestamp)
131
+ }
132
+
133
+ public localClock(): number {
134
+ return this.bindings.lsl_local_clock()
118
135
  }
119
136
  }
120
137
 
@@ -123,7 +140,9 @@ export interface Liblsl {
123
140
  appendChannelsToStreamInfo(options: AppendChannelsToStreamInfoOptions): void
124
141
  createOutlet(options: CreateOutletOptions): BoundOutlet
125
142
  destroyOutlet(options: DestroyOutletOptions): void
126
- pushSample(options: PushSampleOptions): void
143
+ pushSampleFt(options: PushSampleFtOptions): void
144
+ pushSampleStrt(options: PushSampleStrtOptions): void
145
+ localClock(): number
127
146
  }
128
147
 
129
148
  export interface CreateStreamInfoOptions {
@@ -152,9 +171,16 @@ export interface DestroyOutletOptions {
152
171
  outlet: BoundOutlet
153
172
  }
154
173
 
155
- export interface PushSampleOptions {
174
+ export interface PushSampleFtOptions {
156
175
  outlet: BoundOutlet
157
- sample: LslSample
176
+ sample: number[]
177
+ timestamp: number
178
+ }
179
+
180
+ export interface PushSampleStrtOptions {
181
+ outlet: BoundOutlet
182
+ sample: string[]
183
+ timestamp: number
158
184
  }
159
185
 
160
186
  export interface LslChannel {
@@ -188,6 +214,12 @@ export interface LiblslBindings {
188
214
  timestamp: number
189
215
  ): void
190
216
 
217
+ lsl_push_sample_strt(
218
+ outlet: BoundOutlet,
219
+ sample: LslSample,
220
+ timestamp: number
221
+ ): void
222
+
191
223
  lsl_local_clock(): number
192
224
  lsl_get_desc(info: BoundStreamInfo): BoundDesc
193
225
  lsl_append_child(desc: BoundDesc, name: string): BoundChild
@@ -202,4 +234,5 @@ export interface BoundChild {}
202
234
  const streamInfo = ref.refType(ref.types.void)
203
235
  const outletType = ref.refType(ref.types.void)
204
236
  const FloatArray = ArrayType(ref.types.float)
237
+ const StringArray = ArrayType(ref.types.CString)
205
238
  const xmlPtr = ref.refType(ref.types.void)
package/src/LslOutlet.ts CHANGED
@@ -1,9 +1,14 @@
1
1
  import { SchemaError, assertOptions } from '@sprucelabs/schema'
2
- import LiblslImpl, { BoundOutlet, BoundStreamInfo, LslSample } from './Liblsl'
2
+ import LiblslImpl, {
3
+ BoundOutlet,
4
+ BoundStreamInfo,
5
+ Liblsl,
6
+ LslSample,
7
+ } from './Liblsl'
3
8
 
4
9
  export default class LslOutletImpl implements LslOutlet {
5
- private outletOptions: LslOutletOptions
6
10
  public static Class?: new (options: LslOutletOptions) => LslOutlet
11
+ private options: LslOutletOptions
7
12
  private streamInfo: BoundStreamInfo
8
13
  private outlet: BoundOutlet
9
14
 
@@ -21,10 +26,10 @@ export default class LslOutletImpl implements LslOutlet {
21
26
  'maxBuffered',
22
27
  ])
23
28
 
24
- this.outletOptions = options
29
+ this.options = options
25
30
 
26
31
  const { chunkSize, maxBuffered, channelNames, ...streamInfoOptions } = this
27
- .outletOptions as any
32
+ .options as any
28
33
 
29
34
  const channelCount = channelNames.length
30
35
 
@@ -47,35 +52,53 @@ export default class LslOutletImpl implements LslOutlet {
47
52
  info: this.streamInfo,
48
53
  channels: channelNames.map((label: string) => ({
49
54
  label,
50
- unit: this.outletOptions.unit,
51
- type: this.outletOptions.type,
55
+ unit: this.options.unit,
56
+ type: this.options.type,
52
57
  })),
53
58
  })
54
59
 
55
60
  this.outlet = this.lsl.createOutlet({
56
61
  info: this.streamInfo,
57
- chunkSize: this.outletOptions.chunkSize,
58
- maxBuffered: this.outletOptions.maxBuffered,
62
+ chunkSize: this.options.chunkSize,
63
+ maxBuffered: this.options.maxBuffered,
59
64
  })
60
65
  }
61
66
 
62
- public static Outlet(options: LslOutletOptions) {
67
+ public static Outlet(options: LslOutletOptions): LslOutlet {
63
68
  return new (this.Class ?? this)(options)
64
69
  }
65
70
 
66
- public destroy() {
71
+ public destroy(): void {
67
72
  this.lsl.destroyOutlet({ outlet: this.outlet })
68
73
  }
69
74
 
70
- public pushSample(sample: LslSample) {
71
- this.lsl.pushSample({ outlet: this.outlet, sample })
75
+ public pushSample(sample: LslSample): void {
76
+ const timestamp = this.lsl.localClock()
77
+
78
+ if (this.options.channelFormat === 'float32') {
79
+ this.lsl.pushSampleFt({
80
+ outlet: this.outlet,
81
+ sample: sample as number[],
82
+ timestamp,
83
+ })
84
+ } else if (this.options.channelFormat === 'string') {
85
+ this.lsl.pushSampleStrt({
86
+ outlet: this.outlet,
87
+ sample: sample as string[],
88
+ timestamp,
89
+ })
90
+ } else {
91
+ throw new Error(
92
+ `This method currently does not support the ${this.options.channelFormat} type! Please implement it.`
93
+ )
94
+ }
72
95
  }
73
96
 
74
97
  private lookupChannelFormat(channelFormat: ChannelFormat): number {
75
98
  return CHANNEL_FORMATS.indexOf(channelFormat)
76
99
  }
77
100
 
78
- private assertValidMaxBufferred(maxBuffered: number) {
101
+ private assertValidMaxBufferred(maxBuffered: number): void {
79
102
  if (!this.isPositiveIntegerOrZero(maxBuffered)) {
80
103
  throw new SchemaError({
81
104
  code: 'INVALID_PARAMETERS',
@@ -85,7 +108,7 @@ export default class LslOutletImpl implements LslOutlet {
85
108
  }
86
109
  }
87
110
 
88
- private assertValidChunkSize(chunkSize: number) {
111
+ private assertValidChunkSize(chunkSize: number): void {
89
112
  if (!this.isPositiveIntegerOrZero(chunkSize)) {
90
113
  throw new SchemaError({
91
114
  code: 'INVALID_PARAMETERS',
@@ -95,7 +118,7 @@ export default class LslOutletImpl implements LslOutlet {
95
118
  }
96
119
  }
97
120
 
98
- private assertValidChannelFormat(channelFormat: ChannelFormat) {
121
+ private assertValidChannelFormat(channelFormat: ChannelFormat): void {
99
122
  const validFormats = CHANNEL_FORMATS
100
123
  if (validFormats.indexOf(channelFormat) === -1) {
101
124
  throw new SchemaError({
@@ -106,7 +129,7 @@ export default class LslOutletImpl implements LslOutlet {
106
129
  }
107
130
  }
108
131
 
109
- private assertValidSampleRate(sampleRate: number) {
132
+ private assertValidSampleRate(sampleRate: number): void {
110
133
  if (!this.isGreaterThanZero(sampleRate)) {
111
134
  throw new SchemaError({
112
135
  code: 'INVALID_PARAMETERS',
@@ -116,7 +139,7 @@ export default class LslOutletImpl implements LslOutlet {
116
139
  }
117
140
  }
118
141
 
119
- private assertValidChannelCount(channelCount: number) {
142
+ private assertValidChannelCount(channelCount: number): void {
120
143
  if (!this.isPositiveInteger(channelCount)) {
121
144
  throw new SchemaError({
122
145
  code: 'INVALID_PARAMETERS',
@@ -126,19 +149,19 @@ export default class LslOutletImpl implements LslOutlet {
126
149
  }
127
150
  }
128
151
 
129
- private isGreaterThanZero(value: number) {
152
+ private isGreaterThanZero(value: number): boolean {
130
153
  return value >= 0
131
154
  }
132
155
 
133
- private isPositiveInteger(value: number) {
156
+ private isPositiveInteger(value: number): boolean {
134
157
  return Number.isInteger(value) && value > 0
135
158
  }
136
159
 
137
- private isPositiveIntegerOrZero(value: number) {
160
+ private isPositiveIntegerOrZero(value: number): boolean {
138
161
  return Number.isInteger(value) && value >= 0
139
162
  }
140
163
 
141
- private get lsl() {
164
+ private get lsl(): Liblsl {
142
165
  return LiblslImpl.getInstance()
143
166
  }
144
167
  }