@neurodevs/node-lsl 16.0.3 → 16.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.
Files changed (30) hide show
  1. package/build/__tests__/AbstractPackageTest.js +0 -2
  2. package/build/__tests__/AbstractPackageTest.js.map +1 -1
  3. package/build/__tests__/impl/LiblslAdapter.test.d.ts +13 -0
  4. package/build/__tests__/impl/LiblslAdapter.test.js +87 -1
  5. package/build/__tests__/impl/LiblslAdapter.test.js.map +1 -1
  6. package/build/__tests__/impl/LslStreamInfo.test.d.ts +2 -1
  7. package/build/__tests__/impl/LslStreamInfo.test.js +16 -6
  8. package/build/__tests__/impl/LslStreamInfo.test.js.map +1 -1
  9. package/build/__tests__/impl/LslStreamInlet.test.js +2 -1
  10. package/build/__tests__/impl/LslStreamInlet.test.js.map +1 -1
  11. package/build/__tests__/impl/LslWebSocketBridge.test.js +1 -0
  12. package/build/__tests__/impl/LslWebSocketBridge.test.js.map +1 -1
  13. package/build/impl/LiblslAdapter.d.ts +14 -4
  14. package/build/impl/LiblslAdapter.js +49 -5
  15. package/build/impl/LiblslAdapter.js.map +1 -1
  16. package/build/impl/LslStreamInfo.d.ts +1 -1
  17. package/build/impl/LslStreamInfo.js +9 -20
  18. package/build/impl/LslStreamInfo.js.map +1 -1
  19. package/build/testDoubles/Liblsl/FakeLiblsl.d.ts +8 -4
  20. package/build/testDoubles/Liblsl/FakeLiblsl.js +12 -4
  21. package/build/testDoubles/Liblsl/FakeLiblsl.js.map +1 -1
  22. package/package.json +1 -1
  23. package/src/__tests__/AbstractPackageTest.ts +0 -4
  24. package/src/__tests__/impl/LiblslAdapter.test.ts +118 -2
  25. package/src/__tests__/impl/LslStreamInfo.test.ts +20 -6
  26. package/src/__tests__/impl/LslStreamInlet.test.ts +2 -1
  27. package/src/__tests__/impl/LslWebSocketBridge.test.ts +1 -0
  28. package/src/impl/LiblslAdapter.ts +84 -11
  29. package/src/impl/LslStreamInfo.ts +9 -31
  30. package/src/testDoubles/Liblsl/FakeLiblsl.ts +18 -6
@@ -1 +1 @@
1
- {"version":3,"file":"LiblslAdapter.js","sourceRoot":"","sources":["../../src/impl/LiblslAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LiblslAdapter.js","sourceRoot":"","sources":["../../src/impl/LiblslAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import { BoundStreamInfo, ChannelFormat } from './LiblslAdapter.js';
2
2
  export default class LslStreamInfo implements StreamInfo {
3
3
  static Class?: StreamInfoConstructor;
4
- private static instanceCache;
5
4
  readonly name: string;
6
5
  readonly type: string;
7
6
  readonly sourceId: string;
@@ -45,5 +44,6 @@ export interface StreamInfoOptions {
45
44
  type?: string;
46
45
  sourceId?: string;
47
46
  units?: string;
47
+ boundStreamInfo?: BoundStreamInfo;
48
48
  }
49
49
  export {};
@@ -3,7 +3,6 @@ import { CHANNEL_FORMATS_MAP } from '../consts.js';
3
3
  import LiblslAdapter from './LiblslAdapter.js';
4
4
  export default class LslStreamInfo {
5
5
  static Class;
6
- static instanceCache = {};
7
6
  name;
8
7
  type;
9
8
  sourceId;
@@ -19,7 +18,7 @@ export default class LslStreamInfo {
19
18
  defaultUnits = 'N/A';
20
19
  lsl = LiblslAdapter.getInstance();
21
20
  constructor(options) {
22
- const { name = this.defaultName, type = this.defaultType, sourceId = this.defaultSourceId, channelNames, channelFormat, sampleRateHz, units = this.defaultUnits, } = options;
21
+ const { name = this.defaultName, type = this.defaultType, sourceId = this.defaultSourceId, channelNames, channelFormat, sampleRateHz, units = this.defaultUnits, boundStreamInfo, } = options;
23
22
  this.name = name;
24
23
  this.type = type;
25
24
  this.sourceId = sourceId;
@@ -28,26 +27,16 @@ export default class LslStreamInfo {
28
27
  this.channelFormat = channelFormat;
29
28
  this.sampleRateHz = sampleRateHz;
30
29
  this.units = units;
31
- this.createStreamInfo();
32
- this.appendChannelsToStreamInfo();
30
+ if (!boundStreamInfo) {
31
+ this.createStreamInfo();
32
+ this.appendChannelsToStreamInfo();
33
+ }
34
+ else {
35
+ this.boundInfo = boundStreamInfo;
36
+ }
33
37
  }
34
38
  static Create(options) {
35
- const { name, type, sourceId, channelNames, channelFormat, sampleRateHz, } = options;
36
- const channelCount = channelNames.length;
37
- const key = JSON.stringify({
38
- name,
39
- type,
40
- sourceId,
41
- channelCount,
42
- channelFormat,
43
- sampleRateHz,
44
- });
45
- let instance = this.instanceCache[key];
46
- if (instance === undefined) {
47
- instance = new (this.Class ?? this)(options);
48
- this.instanceCache[key] = instance;
49
- }
50
- return instance;
39
+ return new (this.Class ?? this)(options);
51
40
  }
52
41
  createStreamInfo() {
53
42
  this.boundInfo = this.lsl.createStreamInfo({
@@ -1 +1 @@
1
- {"version":3,"file":"LslStreamInfo.js","sourceRoot":"","sources":["../../src/impl/LslStreamInfo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LslStreamInfo.js","sourceRoot":"","sources":["../../src/impl/LslStreamInfo.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { BoundOutlet, BoundStreamInfo, CreateStreamInfoOptions, AppendChannelsToStreamInfoOptions, CreateOutletOptions, PushSampleFloatTimestampOptions, PushSampleStringTimestampOptions, Liblsl, CreateInletOptions, DestroyInletOptions, BoundInlet, FlushInletOptions, PullChunkOptions, PullSampleOptions, DestroyStreamInfoOptions } from 'impl/LiblslAdapter.js';
1
+ import { BoundOutlet, BoundStreamInfo, CreateStreamInfoOptions, AppendChannelsToStreamInfoOptions, CreateOutletOptions, PushSampleFloatTimestampOptions, PushSampleStringTimestampOptions, Liblsl, CreateInletOptions, DestroyInletOptions, BoundInlet, FlushInletOptions, PullChunkOptions, PullSampleOptions, DestroyStreamInfoOptions, ResolveByPropOptions, DestroyOutletOptions } from 'impl/LiblslAdapter.js';
2
2
  export default class FakeLiblsl implements Liblsl {
3
+ static fakeResolveHandles: bigint[];
3
4
  static fakeSamples: Float32Array[];
4
5
  static fakeChunks: Float32Array[];
5
6
  static fakeTimestamps: Float64Array[];
@@ -11,12 +12,14 @@ export default class FakeLiblsl implements Liblsl {
11
12
  outlet: BoundOutlet;
12
13
  streamInfo: BoundStreamInfo;
13
14
  lastCreateStreamInfoOptions?: CreateStreamInfoOptions;
14
- lastDestroyStreamInfoOptions?: DestroyStreamInfoOptions;
15
15
  lastAppendChannelsToStreamInfoOptions?: AppendChannelsToStreamInfoOptions;
16
+ lastDestroyStreamInfoOptions?: DestroyStreamInfoOptions;
17
+ lastResolveByPropOptions?: ResolveByPropOptions;
16
18
  lastCreateOutletOptions?: CreateOutletOptions;
17
19
  lastPushSampleFloatTimestampOptions?: PushSampleFloatTimestampOptions;
18
20
  lastPushSampleStringTimestampOptions?: PushSampleStringTimestampOptions;
19
21
  lastCreateInletOptions?: CreateInletOptions;
22
+ lastDestroyOutletOptions?: DestroyOutletOptions;
20
23
  lastPullSampleOptions?: PullSampleOptions;
21
24
  lastPullChunkOptions?: PullChunkOptions;
22
25
  lastFlushInletOptions?: FlushInletOptions;
@@ -30,12 +33,13 @@ export default class FakeLiblsl implements Liblsl {
30
33
  localClockHitCount: number;
31
34
  pushSampleStringTimestampHitCount: number;
32
35
  createStreamInfo(options: CreateStreamInfoOptions): BoundStreamInfo;
33
- destroyStreamInfo(options: DestroyStreamInfoOptions): void;
34
36
  appendChannelsToStreamInfo(options: AppendChannelsToStreamInfoOptions): void;
37
+ destroyStreamInfo(options: DestroyStreamInfoOptions): void;
38
+ resolveByProp(options: ResolveByPropOptions): Promise<bigint[]>;
35
39
  pushSampleFloatTimestamp(options: PushSampleFloatTimestampOptions): number;
36
40
  pushSampleStringTimestamp(options: PushSampleStringTimestampOptions): number;
37
41
  createOutlet(options: CreateOutletOptions): BoundOutlet;
38
- destroyOutlet(): void;
42
+ destroyOutlet(options: DestroyOutletOptions): void;
39
43
  createInlet(options: CreateInletOptions): BoundInlet;
40
44
  pullSample(options: PullSampleOptions): 0 | 1;
41
45
  pullChunk(options: PullChunkOptions): 0 | 1;
@@ -1,5 +1,6 @@
1
1
  import generateId from '@neurodevs/generate-id';
2
2
  export default class FakeLiblsl {
3
+ static fakeResolveHandles = [];
3
4
  static fakeSamples = [
4
5
  new Float32Array([1, 2, 3]),
5
6
  new Float32Array([4, 5, 6]),
@@ -20,12 +21,14 @@ export default class FakeLiblsl {
20
21
  outlet = {};
21
22
  streamInfo = {};
22
23
  lastCreateStreamInfoOptions;
23
- lastDestroyStreamInfoOptions;
24
24
  lastAppendChannelsToStreamInfoOptions;
25
+ lastDestroyStreamInfoOptions;
26
+ lastResolveByPropOptions;
25
27
  lastCreateOutletOptions;
26
28
  lastPushSampleFloatTimestampOptions;
27
29
  lastPushSampleStringTimestampOptions;
28
30
  lastCreateInletOptions;
31
+ lastDestroyOutletOptions;
29
32
  lastPullSampleOptions;
30
33
  lastPullChunkOptions;
31
34
  lastFlushInletOptions;
@@ -43,11 +46,15 @@ export default class FakeLiblsl {
43
46
  this.lastCreateStreamInfoOptions = options;
44
47
  return this.streamInfo;
45
48
  }
49
+ appendChannelsToStreamInfo(options) {
50
+ this.lastAppendChannelsToStreamInfoOptions = options;
51
+ }
46
52
  destroyStreamInfo(options) {
47
53
  this.lastDestroyStreamInfoOptions = options;
48
54
  }
49
- appendChannelsToStreamInfo(options) {
50
- this.lastAppendChannelsToStreamInfoOptions = options;
55
+ async resolveByProp(options) {
56
+ this.lastResolveByPropOptions = options;
57
+ return FakeLiblsl.fakeResolveHandles;
51
58
  }
52
59
  pushSampleFloatTimestamp(options) {
53
60
  this.lastPushSampleFloatTimestampOptions = options;
@@ -63,8 +70,9 @@ export default class FakeLiblsl {
63
70
  this.lastCreateOutletOptions = options;
64
71
  return this.outlet;
65
72
  }
66
- destroyOutlet() {
73
+ destroyOutlet(options) {
67
74
  this.destroyOutletHitCount++;
75
+ this.lastDestroyOutletOptions = options;
68
76
  }
69
77
  createInlet(options) {
70
78
  this.createInletHitCount++;
@@ -1 +1 @@
1
- {"version":3,"file":"FakeLiblsl.js","sourceRoot":"","sources":["../../../src/testDoubles/Liblsl/FakeLiblsl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FakeLiblsl.js","sourceRoot":"","sources":["../../../src/testDoubles/Liblsl/FakeLiblsl.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAsB/C,MAAM,CAAC,OAAO,OAAO,UAAU;IACpB,MAAM,CAAC,kBAAkB,GAAa,EAAE,CAAA;IAExC,MAAM,CAAC,WAAW,GAAmB;QACxC,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3B,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KAC9B,CAAA;IAEM,MAAM,CAAC,UAAU,GAAmB;QACvC,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KACvC,CAAA;IAEM,MAAM,CAAC,cAAc,GAAmB;QAC3C,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxB,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KAC3B,CAAA;IAEM,MAAM,CAAC,aAAa,GAAG,CAAC,CAAA;IAExB,UAAU,GAAW,UAAU,EAAE,CAAA;IAEjC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;IAC5C,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;IAC1C,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,CAAA;IAElD,MAAM,GAAgB,EAAiB,CAAA;IACvC,UAAU,GAAoB,EAAqB,CAAA;IAEnD,2BAA2B,CAA0B;IACrD,qCAAqC,CAAoC;IACzE,4BAA4B,CAA2B;IACvD,wBAAwB,CAAuB;IAC/C,uBAAuB,CAAsB;IAC7C,mCAAmC,CAAkC;IACrE,oCAAoC,CAAmC;IACvE,sBAAsB,CAAqB;IAC3C,wBAAwB,CAAuB;IAC/C,qBAAqB,CAAoB;IACzC,oBAAoB,CAAmB;IACvC,qBAAqB,CAAoB;IACzC,uBAAuB,CAAsB;IAE7C,wBAAwB,GAAG,CAAC,CAAA;IAC5B,oBAAoB,GAAG,CAAC,CAAA;IACxB,qBAAqB,GAAG,CAAC,CAAA;IACzB,mBAAmB,GAAG,CAAC,CAAA;IACvB,kBAAkB,GAAG,CAAC,CAAA;IACtB,oBAAoB,GAAG,CAAC,CAAA;IACxB,kBAAkB,GAAG,CAAC,CAAA;IACtB,iCAAiC,GAAG,CAAC,CAAA;IAErC,gBAAgB,CAAC,OAAgC;QACpD,IAAI,CAAC,wBAAwB,EAAE,CAAA;QAC/B,IAAI,CAAC,2BAA2B,GAAG,OAAO,CAAA;QAC1C,OAAO,IAAI,CAAC,UAAU,CAAA;IAC1B,CAAC;IAEM,0BAA0B,CAC7B,OAA0C;QAE1C,IAAI,CAAC,qCAAqC,GAAG,OAAO,CAAA;IACxD,CAAC;IAEM,iBAAiB,CAAC,OAAiC;QACtD,IAAI,CAAC,4BAA4B,GAAG,OAAO,CAAA;IAC/C,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,OAA6B;QACpD,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAA;QACvC,OAAO,UAAU,CAAC,kBAAkB,CAAA;IACxC,CAAC;IAEM,wBAAwB,CAAC,OAAwC;QACpE,IAAI,CAAC,mCAAmC,GAAG,OAAO,CAAA;QAClD,OAAO,UAAU,CAAC,aAAa,CAAA;IACnC,CAAC;IAEM,yBAAyB,CAC5B,OAAyC;QAEzC,IAAI,CAAC,oCAAoC,GAAG,OAAO,CAAA;QACnD,IAAI,CAAC,iCAAiC,EAAE,CAAA;QACxC,OAAO,UAAU,CAAC,aAAa,CAAA;IACnC,CAAC;IAEM,YAAY,CAAC,OAA4B;QAC5C,IAAI,CAAC,oBAAoB,EAAE,CAAA;QAC3B,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAA;QACtC,OAAO,IAAI,CAAC,MAAM,CAAA;IACtB,CAAC;IAEM,aAAa,CAAC,OAA6B;QAC9C,IAAI,CAAC,qBAAqB,EAAE,CAAA;QAC5B,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAA;IAC3C,CAAC;IAEM,WAAW,CAAC,OAA2B;QAC1C,IAAI,CAAC,mBAAmB,EAAE,CAAA;QAC1B,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAA;QACrC,OAAO,EAAgB,CAAA;IAC3B,CAAC;IAEM,UAAU,CAAC,OAA0B;QACxC,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAA;QAEpC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;QAEvC,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,CAAA;QACZ,CAAC;QAED,OAAO,CAAC,CAAA;IACZ,CAAC;IAEM,SAAS,CAAC,OAAyB;QACtC,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAA;QAEnC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAA;QAE9C,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;YACtB,OAAO,CAAC,CAAA;QACZ,CAAC;QAED,OAAO,CAAC,CAAA;IACZ,CAAC;IAEM,UAAU,CAAC,OAA0B;QACxC,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACzB,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAA;IACxC,CAAC;IAEM,YAAY,CAAC,OAA4B;QAC5C,IAAI,CAAC,oBAAoB,EAAE,CAAA;QAC3B,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAA;IAC1C,CAAC;IAEM,UAAU;QACb,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACzB,OAAO,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;IAC/B,CAAC;IAEM,eAAe;QAClB,IAAI,CAAC,2BAA2B,GAAG,SAAS,CAAA;QAC5C,IAAI,CAAC,qCAAqC,GAAG,SAAS,CAAA;QACtD,IAAI,CAAC,uBAAuB,GAAG,SAAS,CAAA;QACxC,IAAI,CAAC,mCAAmC,GAAG,SAAS,CAAA;QACpD,IAAI,CAAC,oCAAoC,GAAG,SAAS,CAAA;QAErD,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAA;QACjC,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAA;QAC9B,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAA;QAC3B,IAAI,CAAC,iCAAiC,GAAG,CAAC,CAAA;QAE1C,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;QACjD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;QAC/C,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,CAAA;IAC3D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neurodevs/node-lsl",
3
- "version": "16.0.3",
3
+ "version": "16.1.0",
4
4
  "description": "Lab Streaming Layer (LSL) bindings for Node",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -27,8 +27,6 @@ export default class AbstractPackageTest extends AbstractModuleTest {
27
27
 
28
28
  protected static async beforeEach() {
29
29
  await super.beforeEach()
30
-
31
- this.setFakeLiblsl()
32
30
  }
33
31
 
34
32
  protected static setFakeLiblsl() {
@@ -46,8 +44,6 @@ export default class AbstractPackageTest extends AbstractModuleTest {
46
44
  protected static setFakeStreamInfo() {
47
45
  LslStreamInfo.Class = FakeStreamInfo
48
46
  FakeStreamInfo.resetTestDouble()
49
-
50
- LslStreamInfo['instanceCache'] = {}
51
47
  }
52
48
 
53
49
  protected static setSpyStreamInlet() {
@@ -18,6 +18,7 @@ import {
18
18
  Liblsl,
19
19
  LiblslBindings,
20
20
  LslChannel,
21
+ ResolveByPropOptions,
21
22
  } from 'impl/LiblslAdapter.js'
22
23
  import LiblslAdapter from '../../impl/LiblslAdapter.js'
23
24
  import FakeLiblsl from '../../testDoubles/Liblsl/FakeLiblsl.js'
@@ -97,7 +98,7 @@ export default class LiblslAdapterTest extends AbstractPackageTest {
97
98
 
98
99
  LiblslAdapter.load = (options) => {
99
100
  this.ffiRsLoadOptions = options
100
- return {} as any
101
+ return this.fakeNumResolveResults as any
101
102
  }
102
103
 
103
104
  LiblslAdapter.resetInstance()
@@ -265,6 +266,89 @@ export default class LiblslAdapterTest extends AbstractPackageTest {
265
266
  )
266
267
  }
267
268
 
269
+ @test()
270
+ protected static async resolvesStreamInfoByProp() {
271
+ await this.resolveByProp()
272
+
273
+ assert.isEqualDeep(
274
+ this.ffiRsLoadOptions,
275
+ {
276
+ library: 'lsl',
277
+ funcName: 'lsl_resolve_byprop',
278
+ retType: DataType.I32,
279
+ paramsType: [
280
+ DataType.External,
281
+ DataType.I32,
282
+ DataType.String,
283
+ DataType.String,
284
+ DataType.I32,
285
+ DataType.Double,
286
+ ],
287
+ paramsValue: [
288
+ this.resultsBufferPtr,
289
+ this.maxResults,
290
+ this.prop,
291
+ this.value,
292
+ this.minResults,
293
+ this.timeoutMs / 1000,
294
+ ],
295
+ runInNewThread: true,
296
+ },
297
+ 'Did not call resolveByProp with expected params!'
298
+ )
299
+ }
300
+
301
+ @test()
302
+ protected static async resolveByPropAcceptsOptionalArgs() {
303
+ const minResults = randomInt(0, 10)
304
+ const timeoutMs = Math.random() * 1000
305
+
306
+ await this.resolveByProp({
307
+ minResults,
308
+ timeoutMs,
309
+ })
310
+
311
+ assert.isEqualDeep(
312
+ {
313
+ minResults: this.ffiRsLoadOptions?.['paramsValue']?.[4],
314
+ timeoutMs: this.ffiRsLoadOptions?.['paramsValue']?.[5],
315
+ },
316
+ { minResults, timeoutMs: timeoutMs / 1000 },
317
+ 'Did not call resolveByProp with expected params!'
318
+ )
319
+ }
320
+
321
+ @test()
322
+ protected static async returnsHandlesForResolvedStreamInfos() {
323
+ LiblslAdapter.alloc = (size: number) => {
324
+ const buffer = Buffer.alloc(size)
325
+
326
+ for (let i = 0; i < this.fakeNumResolveResults; i++) {
327
+ const offset = i * this.bytesPerPointer
328
+ buffer.writeBigUInt64LE(BigInt(i + 1), offset)
329
+ }
330
+
331
+ return buffer
332
+ }
333
+
334
+ const expectedHandles: bigint[] = []
335
+
336
+ for (let i = 0; i < this.fakeNumResolveResults; i++) {
337
+ expectedHandles.push(BigInt(i + 1))
338
+ }
339
+
340
+ const actualHandles = await this.resolveByProp()
341
+
342
+ const actual = actualHandles.map((h) => h.toString())
343
+ const expected = expectedHandles.map((h) => h.toString())
344
+
345
+ assert.isEqualDeep(
346
+ actual,
347
+ expected,
348
+ 'Did not receive expected resolved stream info handles!'
349
+ )
350
+ }
351
+
268
352
  @test()
269
353
  protected static async createsOutletWithRequiredParams() {
270
354
  const { options, outlet } = this.createRandomOutlet()
@@ -401,7 +485,7 @@ export default class LiblslAdapterTest extends AbstractPackageTest {
401
485
  delete process.env.LIBLSL_PATH
402
486
 
403
487
  LiblslAdapter.resetInstance()
404
- this.instance = LiblslAdapter.getInstance()
488
+ this.instance = LiblslAdapter.getInstance() as FakeLiblsl
405
489
 
406
490
  assert.isEqual(
407
491
  this.ffiRsOpenOptions?.path,
@@ -586,6 +670,18 @@ export default class LiblslAdapterTest extends AbstractPackageTest {
586
670
  )
587
671
  }
588
672
 
673
+ private static async resolveByProp(
674
+ options?: Partial<ResolveByPropOptions>
675
+ ) {
676
+ return this.instance.resolveByProp({
677
+ prop: this.prop,
678
+ value: this.value,
679
+ minResults: this.minResults,
680
+ timeoutMs: this.timeoutMs,
681
+ ...options,
682
+ })
683
+ }
684
+
589
685
  private static createRandomOutlet() {
590
686
  const options = this.createRandomOutletOptions()
591
687
  const outlet = this.instance.createOutlet(options)
@@ -636,6 +732,26 @@ export default class LiblslAdapterTest extends AbstractPackageTest {
636
732
  }
637
733
  }
638
734
 
735
+ // resolveByProp
736
+ private static readonly maxResults = 1024
737
+ private static readonly bytesPerPointer = 8
738
+ private static readonly minResults = 1
739
+ private static readonly timeoutMs = 1000
740
+ private static readonly prop = this.generateId()
741
+ private static readonly value = this.generateId()
742
+ private static readonly fakeNumResolveResults = 2
743
+
744
+ private static readonly resultsBuffer = Buffer.alloc(
745
+ this.maxResults * this.bytesPerPointer
746
+ )
747
+
748
+ private static readonly resultsBufferPtr = unwrapPointer(
749
+ createPointer({
750
+ paramsType: [DataType.U8Array],
751
+ paramsValue: [this.resultsBuffer],
752
+ })
753
+ )[0]
754
+
639
755
  private static generateFailedMessage() {
640
756
  return `Loading the liblsl dylib failed! I tried to load it from ${process.env.LIBLSL_PATH}.`
641
757
  }
@@ -11,10 +11,9 @@ export default class LslStreamInfoTest extends AbstractPackageTest {
11
11
  protected static async beforeEach() {
12
12
  await super.beforeEach()
13
13
 
14
+ this.setFakeLiblsl()
14
15
  this.setSpyStreamInfo()
15
16
 
16
- LslStreamInfo['instanceCache'] = {}
17
-
18
17
  this.instance = this.LslStreamInfo()
19
18
  }
20
19
 
@@ -220,13 +219,28 @@ export default class LslStreamInfoTest extends AbstractPackageTest {
220
219
  }
221
220
 
222
221
  @test()
223
- protected static async cachesInfoIfPassedSameOptions() {
224
- this.LslStreamInfo()
222
+ protected static async doesNotCreateNewStreamInfoIfPassedBoundStreamInfo() {
223
+ this.LslStreamInfo({
224
+ boundStreamInfo: this.instance.getBoundInfo(),
225
+ })
225
226
 
226
227
  assert.isEqual(
227
- SpyStreamInfo.numCallsToConstructor,
228
+ this.fakeLiblsl.createStreamInfoHitCount,
228
229
  1,
229
- 'Did not cache stream info!'
230
+ 'Should not have created new stream info!'
231
+ )
232
+ }
233
+
234
+ @test()
235
+ protected static async setsBoundStreamInfoWhenPassed() {
236
+ const instance = this.LslStreamInfo({
237
+ boundStreamInfo: this.instance.getBoundInfo(),
238
+ })
239
+
240
+ assert.isEqualDeep(
241
+ instance.getBoundInfo(),
242
+ this.instance.getBoundInfo(),
243
+ 'Should have set bound stream info!'
230
244
  )
231
245
  }
232
246
 
@@ -15,8 +15,9 @@ export default class LslStreamInletTest extends AbstractPackageTest {
15
15
  protected static async beforeEach() {
16
16
  await super.beforeEach()
17
17
 
18
- this.setSpyStreamInlet()
18
+ this.setFakeLiblsl()
19
19
  this.setFakeStreamInfo()
20
+ this.setSpyStreamInlet()
20
21
 
21
22
  this.callsToOnData = []
22
23
 
@@ -17,6 +17,7 @@ export default class LslWebSocketBridgeTest extends AbstractPackageTest {
17
17
  protected static async beforeEach() {
18
18
  await super.beforeEach()
19
19
 
20
+ this.setFakeLiblsl()
20
21
  this.setFakeStreamInlet()
21
22
  this.setFakeWebSocket()
22
23
  this.setFakeWebSocketServer()
@@ -1,4 +1,12 @@
1
- import { DataType, define, JsExternal, load, open, unwrapPointer } from 'ffi-rs'
1
+ import {
2
+ createPointer,
3
+ DataType,
4
+ define,
5
+ JsExternal,
6
+ load,
7
+ open,
8
+ unwrapPointer,
9
+ } from 'ffi-rs'
2
10
 
3
11
  import { CHANNEL_FORMATS } from '../consts.js'
4
12
  import { LslErrorCode } from '../handleError.js'
@@ -7,6 +15,7 @@ export default class LiblslAdapter implements Liblsl {
7
15
  public static open = open
8
16
  public static define = define
9
17
  public static load = load
18
+ public static alloc = Buffer.alloc
10
19
 
11
20
  private static instance?: Liblsl
12
21
 
@@ -62,7 +71,7 @@ export default class LiblslAdapter implements Liblsl {
62
71
  }
63
72
 
64
73
  private defineLiblslBindings() {
65
- return this.define(this.liblslFuncs) as unknown as LiblslBindings
74
+ return this.define(this.liblslFuncs) as LiblslBindings
66
75
  }
67
76
 
68
77
  public createStreamInfo(options: CreateStreamInfoOptions) {
@@ -85,11 +94,6 @@ export default class LiblslAdapter implements Liblsl {
85
94
  ])
86
95
  }
87
96
 
88
- public destroyStreamInfo(options: DestroyStreamInfoOptions) {
89
- const { info } = options
90
- this.bindings.lsl_destroy_streaminfo([info])
91
- }
92
-
93
97
  public appendChannelsToStreamInfo(
94
98
  options: AppendChannelsToStreamInfoOptions
95
99
  ) {
@@ -110,6 +114,62 @@ export default class LiblslAdapter implements Liblsl {
110
114
  }
111
115
  }
112
116
 
117
+ public destroyStreamInfo(options: DestroyStreamInfoOptions) {
118
+ const { info } = options
119
+ this.bindings.lsl_destroy_streaminfo([info])
120
+ }
121
+
122
+ public async resolveByProp(options: ResolveByPropOptions) {
123
+ const { prop, value, minResults = 1, timeoutMs = 1000 } = options
124
+
125
+ const maxResults = 1024
126
+ const bytesPerPointer = 8
127
+
128
+ const resultsBuffer = this.alloc(maxResults * bytesPerPointer)
129
+
130
+ const resultsBufferPtr = unwrapPointer(
131
+ createPointer({
132
+ paramsType: [DataType.U8Array],
133
+ paramsValue: [resultsBuffer],
134
+ })
135
+ )[0]
136
+
137
+ const numResults = await this.load({
138
+ library: 'lsl',
139
+ funcName: 'lsl_resolve_byprop',
140
+ retType: DataType.I32,
141
+ paramsType: [
142
+ DataType.External,
143
+ DataType.I32,
144
+ DataType.String,
145
+ DataType.String,
146
+ DataType.I32,
147
+ DataType.Double,
148
+ ],
149
+ paramsValue: [
150
+ resultsBufferPtr,
151
+ maxResults,
152
+ prop,
153
+ value,
154
+ minResults,
155
+ timeoutMs / 1000,
156
+ ],
157
+ runInNewThread: true,
158
+ })
159
+
160
+ const handles: bigint[] = []
161
+
162
+ for (let i = 0; i < numResults; i++) {
163
+ const handle = resultsBuffer.readBigUInt64LE(i * bytesPerPointer)
164
+
165
+ if (handle !== 0n) {
166
+ handles.push(handle)
167
+ }
168
+ }
169
+
170
+ return handles
171
+ }
172
+
113
173
  public createOutlet(options: CreateOutletOptions) {
114
174
  const { info, chunkSize, maxBufferedMs } = options
115
175
 
@@ -243,6 +303,10 @@ export default class LiblslAdapter implements Liblsl {
243
303
  return LiblslAdapter.load
244
304
  }
245
305
 
306
+ private get alloc() {
307
+ return LiblslAdapter.alloc
308
+ }
309
+
246
310
  private get liblslFuncs() {
247
311
  return {
248
312
  lsl_create_streaminfo: {
@@ -345,6 +409,8 @@ export interface Liblsl {
345
409
  destroyStreamInfo(options: DestroyStreamInfoOptions): void
346
410
  appendChannelsToStreamInfo(options: AppendChannelsToStreamInfoOptions): void
347
411
 
412
+ resolveByProp(options: ResolveByPropOptions): Promise<bigint[]>
413
+
348
414
  createOutlet(options: CreateOutletOptions): BoundOutlet
349
415
 
350
416
  pushSampleFloatTimestamp(
@@ -382,14 +448,21 @@ export interface AppendChannelsToStreamInfoOptions {
382
448
  channels: LslChannel[]
383
449
  }
384
450
 
385
- export interface CreateOutletOptions {
451
+ export interface DestroyStreamInfoOptions {
386
452
  info: BoundStreamInfo
387
- chunkSize: number
388
- maxBufferedMs: number
389
453
  }
390
454
 
391
- export interface DestroyStreamInfoOptions {
455
+ export interface ResolveByPropOptions {
456
+ prop: string
457
+ value: string
458
+ minResults?: number
459
+ timeoutMs?: number
460
+ }
461
+
462
+ export interface CreateOutletOptions {
392
463
  info: BoundStreamInfo
464
+ chunkSize: number
465
+ maxBufferedMs: number
393
466
  }
394
467
 
395
468
  export interface PushSampleFloatTimestampOptions {