@neurodevs/node-lsl 11.4.2 → 12.0.1

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 (167) hide show
  1. package/.vscode/tasks.json +19 -1
  2. package/README.md +8 -9
  3. package/build/__tests__/{AbstractLslTest.d.ts → AbstractPackageTest.d.ts} +7 -6
  4. package/build/__tests__/AbstractPackageTest.js +53 -0
  5. package/build/__tests__/AbstractPackageTest.js.map +1 -0
  6. package/build/__tests__/{modules → impl}/LiblslAdapter.test.d.ts +6 -3
  7. package/build/__tests__/{modules → impl}/LiblslAdapter.test.js +193 -151
  8. package/build/__tests__/impl/LiblslAdapter.test.js.map +1 -0
  9. package/build/__tests__/{modules/EventMarkerOutlet.test.d.ts → impl/LslEventMarkerOutlet.test.d.ts} +5 -4
  10. package/build/__tests__/{modules/EventMarkerOutlet.test.js → impl/LslEventMarkerOutlet.test.js} +54 -52
  11. package/build/__tests__/impl/LslEventMarkerOutlet.test.js.map +1 -0
  12. package/build/__tests__/{modules → impl}/LslStreamInfo.test.d.ts +3 -3
  13. package/build/__tests__/{modules → impl}/LslStreamInfo.test.js +53 -59
  14. package/build/__tests__/impl/LslStreamInfo.test.js.map +1 -0
  15. package/build/__tests__/impl/LslStreamInlet.test.d.ts +11 -0
  16. package/build/__tests__/{modules → impl}/LslStreamInlet.test.js +28 -26
  17. package/build/__tests__/impl/LslStreamInlet.test.js.map +1 -0
  18. package/build/__tests__/{modules → impl}/LslStreamOutlet.test.d.ts +3 -3
  19. package/build/__tests__/{modules → impl}/LslStreamOutlet.test.js +56 -60
  20. package/build/__tests__/impl/LslStreamOutlet.test.js.map +1 -0
  21. package/build/__tests__/impl/LslWebSocketBridge.test.d.ts +7 -0
  22. package/build/__tests__/impl/LslWebSocketBridge.test.js +26 -0
  23. package/build/__tests__/impl/LslWebSocketBridge.test.js.map +1 -0
  24. package/build/assertions.d.ts +1 -1
  25. package/build/assertions.js +13 -20
  26. package/build/assertions.js.map +1 -1
  27. package/build/consts.js +2 -5
  28. package/build/consts.js.map +1 -1
  29. package/build/{modules → impl}/LiblslAdapter.d.ts +5 -4
  30. package/build/{modules → impl}/LiblslAdapter.js +60 -51
  31. package/build/impl/LiblslAdapter.js.map +1 -0
  32. package/build/impl/LslEventMarkerOutlet.d.ts +23 -0
  33. package/build/{modules/EventMarkerOutlet.js → impl/LslEventMarkerOutlet.js} +12 -14
  34. package/build/impl/LslEventMarkerOutlet.js.map +1 -0
  35. package/build/{modules → impl}/LslStreamInfo.d.ts +1 -1
  36. package/build/{modules → impl}/LslStreamInfo.js +19 -16
  37. package/build/impl/LslStreamInfo.js.map +1 -0
  38. package/build/impl/LslStreamInlet.d.ts +34 -0
  39. package/build/{modules → impl}/LslStreamInlet.js +19 -16
  40. package/build/impl/LslStreamInlet.js.map +1 -0
  41. package/build/{modules → impl}/LslStreamOutlet.d.ts +10 -10
  42. package/build/{modules → impl}/LslStreamOutlet.js +22 -23
  43. package/build/impl/LslStreamOutlet.js.map +1 -0
  44. package/build/impl/LslWebSocketBridge.d.ts +8 -0
  45. package/build/impl/LslWebSocketBridge.js +8 -0
  46. package/build/impl/LslWebSocketBridge.js.map +1 -0
  47. package/build/index.d.ts +34 -30
  48. package/build/index.js +39 -69
  49. package/build/index.js.map +1 -1
  50. package/build/scripts/{demoMarkerOutlet.js → runLslEventMarkerOutlet.js} +3 -8
  51. package/build/scripts/runLslEventMarkerOutlet.js.map +1 -0
  52. package/build/scripts/{demoStreamOutlet.js → runLslStreamOutlet.js} +3 -8
  53. package/build/scripts/runLslStreamOutlet.js.map +1 -0
  54. package/build/testDoubles/{MarkerOutlet/FakeMarkerOutlet.d.ts → EventMarkerOutlet/FakeEventMarkerOutlet.d.ts} +3 -3
  55. package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js +26 -0
  56. package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js.map +1 -0
  57. package/build/testDoubles/{MarkerOutlet/MockMarkerOutlet.d.ts → EventMarkerOutlet/MockEventMarkerOutlet.d.ts} +3 -3
  58. package/build/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.js +46 -0
  59. package/build/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.js.map +1 -0
  60. package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.d.ts +9 -0
  61. package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js +19 -0
  62. package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js.map +1 -0
  63. package/build/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.d.ts +10 -0
  64. package/build/testDoubles/{MarkerOutlet/ThrowingMarkerOutlet.js → EventMarkerOutlet/ThrowingEventMarkerOutlet.js} +3 -6
  65. package/build/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.js.map +1 -0
  66. package/build/testDoubles/Liblsl/FakeLiblsl.d.ts +4 -1
  67. package/build/testDoubles/Liblsl/FakeLiblsl.js +23 -15
  68. package/build/testDoubles/Liblsl/FakeLiblsl.js.map +1 -1
  69. package/build/testDoubles/StreamInfo/FakeStreamInfo.d.ts +2 -2
  70. package/build/testDoubles/StreamInfo/FakeStreamInfo.js +3 -6
  71. package/build/testDoubles/StreamInfo/FakeStreamInfo.js.map +1 -1
  72. package/build/testDoubles/StreamInfo/SpyStreamInfo.d.ts +2 -2
  73. package/build/testDoubles/StreamInfo/SpyStreamInfo.js +2 -8
  74. package/build/testDoubles/StreamInfo/SpyStreamInfo.js.map +1 -1
  75. package/build/testDoubles/StreamInlet/FakeStreamInlet.d.ts +12 -0
  76. package/build/testDoubles/StreamInlet/FakeStreamInlet.js +18 -0
  77. package/build/testDoubles/StreamInlet/FakeStreamInlet.js.map +1 -0
  78. package/build/testDoubles/StreamInlet/SpyStreamInlet.d.ts +8 -0
  79. package/build/testDoubles/StreamInlet/SpyStreamInlet.js +16 -0
  80. package/build/testDoubles/StreamInlet/SpyStreamInlet.js.map +1 -0
  81. package/build/testDoubles/{LslOutlet/FakeLslOutlet.d.ts → StreamOutlet/FakeStreamOutlet.d.ts} +10 -11
  82. package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js +57 -0
  83. package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js.map +1 -0
  84. package/build/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.d.ts +6 -0
  85. package/build/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.js +10 -0
  86. package/build/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.js.map +1 -0
  87. package/build/testDoubles/consts.js +4 -7
  88. package/build/testDoubles/consts.js.map +1 -1
  89. package/build/testDoubles/generateRandomOutletOptions.d.ts +2 -2
  90. package/build/testDoubles/generateRandomOutletOptions.js +14 -17
  91. package/build/testDoubles/generateRandomOutletOptions.js.map +1 -1
  92. package/build/types.d.ts +9 -4
  93. package/build/types.js +1 -2
  94. package/build/validations.js +4 -10
  95. package/build/validations.js.map +1 -1
  96. package/package.json +22 -12
  97. package/src/__tests__/AbstractPackageTest.ts +65 -0
  98. package/src/__tests__/{modules → impl}/LiblslAdapter.test.ts +71 -44
  99. package/src/__tests__/{modules/EventMarkerOutlet.test.ts → impl/LslEventMarkerOutlet.test.ts} +40 -28
  100. package/src/__tests__/{modules → impl}/LslStreamInfo.test.ts +10 -8
  101. package/src/__tests__/{modules → impl}/LslStreamInlet.test.ts +27 -14
  102. package/src/__tests__/{modules → impl}/LslStreamOutlet.test.ts +24 -17
  103. package/src/__tests__/impl/LslWebSocketBridge.test.ts +25 -0
  104. package/src/assertions.ts +3 -3
  105. package/src/{modules → impl}/LiblslAdapter.ts +33 -21
  106. package/src/{modules/EventMarkerOutlet.ts → impl/LslEventMarkerOutlet.ts} +17 -12
  107. package/src/{modules → impl}/LslStreamInfo.ts +5 -4
  108. package/src/{modules → impl}/LslStreamInlet.ts +27 -16
  109. package/src/{modules → impl}/LslStreamOutlet.ts +19 -16
  110. package/src/impl/LslWebSocketBridge.ts +13 -0
  111. package/src/index.ts +43 -35
  112. package/src/scripts/{demoMarkerOutlet.ts → runLslEventMarkerOutlet.ts} +2 -2
  113. package/src/scripts/{demoStreamOutlet.ts → runLslStreamOutlet.ts} +1 -1
  114. package/src/testDoubles/{MarkerOutlet/FakeMarkerOutlet.ts → EventMarkerOutlet/FakeEventMarkerOutlet.ts} +7 -7
  115. package/src/testDoubles/{MarkerOutlet/MockMarkerOutlet.ts → EventMarkerOutlet/MockEventMarkerOutlet.ts} +5 -4
  116. package/src/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.ts +24 -0
  117. package/src/testDoubles/{MarkerOutlet/ThrowingMarkerOutlet.ts → EventMarkerOutlet/ThrowingEventMarkerOutlet.ts} +3 -3
  118. package/src/testDoubles/Liblsl/FakeLiblsl.ts +9 -1
  119. package/src/testDoubles/StreamInfo/FakeStreamInfo.ts +2 -2
  120. package/src/testDoubles/StreamInfo/SpyStreamInfo.ts +1 -1
  121. package/src/testDoubles/StreamInlet/FakeStreamInlet.ts +27 -0
  122. package/src/testDoubles/StreamInlet/SpyStreamInlet.ts +22 -0
  123. package/src/testDoubles/{LslOutlet/FakeLslOutlet.ts → StreamOutlet/FakeStreamOutlet.ts} +22 -19
  124. package/src/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.ts +15 -0
  125. package/src/testDoubles/generateRandomOutletOptions.ts +5 -4
  126. package/src/types.ts +11 -4
  127. package/tsconfig.json +17 -28
  128. package/build/__tests__/AbstractLslTest.js +0 -87
  129. package/build/__tests__/AbstractLslTest.js.map +0 -1
  130. package/build/__tests__/modules/EventMarkerOutlet.test.js.map +0 -1
  131. package/build/__tests__/modules/LiblslAdapter.test.js.map +0 -1
  132. package/build/__tests__/modules/LslStreamInfo.test.js.map +0 -1
  133. package/build/__tests__/modules/LslStreamInlet.test.d.ts +0 -10
  134. package/build/__tests__/modules/LslStreamInlet.test.js.map +0 -1
  135. package/build/__tests__/modules/LslStreamOutlet.test.js.map +0 -1
  136. package/build/modules/EventMarkerOutlet.d.ts +0 -23
  137. package/build/modules/EventMarkerOutlet.js.map +0 -1
  138. package/build/modules/LiblslAdapter.js.map +0 -1
  139. package/build/modules/LslStreamInfo.js.map +0 -1
  140. package/build/modules/LslStreamInlet.d.ts +0 -31
  141. package/build/modules/LslStreamInlet.js.map +0 -1
  142. package/build/modules/LslStreamOutlet.js.map +0 -1
  143. package/build/scripts/demoMarkerOutlet.js.map +0 -1
  144. package/build/scripts/demoStreamOutlet.js.map +0 -1
  145. package/build/testDoubles/LslInlet/FakeLslInlet.d.ts +0 -11
  146. package/build/testDoubles/LslInlet/FakeLslInlet.js +0 -16
  147. package/build/testDoubles/LslInlet/FakeLslInlet.js.map +0 -1
  148. package/build/testDoubles/LslInlet/SpyLslInlet.d.ts +0 -7
  149. package/build/testDoubles/LslInlet/SpyLslInlet.js +0 -20
  150. package/build/testDoubles/LslInlet/SpyLslInlet.js.map +0 -1
  151. package/build/testDoubles/LslOutlet/FakeLslOutlet.js +0 -59
  152. package/build/testDoubles/LslOutlet/FakeLslOutlet.js.map +0 -1
  153. package/build/testDoubles/MarkerOutlet/FakeMarkerOutlet.js +0 -29
  154. package/build/testDoubles/MarkerOutlet/FakeMarkerOutlet.js.map +0 -1
  155. package/build/testDoubles/MarkerOutlet/MockMarkerOutlet.js +0 -49
  156. package/build/testDoubles/MarkerOutlet/MockMarkerOutlet.js.map +0 -1
  157. package/build/testDoubles/MarkerOutlet/SpyMarkerOutlet.d.ts +0 -9
  158. package/build/testDoubles/MarkerOutlet/SpyMarkerOutlet.js +0 -24
  159. package/build/testDoubles/MarkerOutlet/SpyMarkerOutlet.js.map +0 -1
  160. package/build/testDoubles/MarkerOutlet/ThrowingMarkerOutlet.d.ts +0 -10
  161. package/build/testDoubles/MarkerOutlet/ThrowingMarkerOutlet.js.map +0 -1
  162. package/src/__tests__/AbstractLslTest.ts +0 -59
  163. package/src/testDoubles/LslInlet/FakeLslInlet.ts +0 -22
  164. package/src/testDoubles/LslInlet/SpyLslInlet.ts +0 -16
  165. package/src/testDoubles/MarkerOutlet/SpyMarkerOutlet.ts +0 -24
  166. /package/build/scripts/{demoMarkerOutlet.d.ts → runLslEventMarkerOutlet.d.ts} +0 -0
  167. /package/build/scripts/{demoStreamOutlet.d.ts → runLslStreamOutlet.d.ts} +0 -0
@@ -1,26 +1,23 @@
1
- "use strict";
2
1
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
2
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
3
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
6
  };
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const test_utils_1 = require("@sprucelabs/test-utils");
13
- const consts_1 = require("../../consts");
14
- const LslStreamOutlet_1 = __importDefault(require("../../modules/LslStreamOutlet"));
15
- const consts_2 = require("../../testDoubles/consts");
16
- const generateRandomOutletOptions_1 = __importDefault(require("../../testDoubles/generateRandomOutletOptions"));
17
- const FakeStreamInfo_1 = __importDefault(require("../../testDoubles/StreamInfo/FakeStreamInfo"));
18
- const AbstractLslTest_1 = __importDefault(require("../AbstractLslTest"));
19
- class LslStreamOutletTest extends AbstractLslTest_1.default {
7
+ import generateId from '@neurodevs/generate-id';
8
+ import { test, assert } from '@neurodevs/node-tdd';
9
+ import { CHANNEL_FORMATS } from '../../consts.js';
10
+ import LslStreamOutlet from '../../impl/LslStreamOutlet.js';
11
+ import { TEST_SUPPORTED_CHANNEL_FORMATS, TEST_UNSUPPORTED_CHANNEL_FORMATS, } from '../../testDoubles/consts.js';
12
+ import generateRandomOutletOptions from '../../testDoubles/generateRandomOutletOptions.js';
13
+ import FakeStreamInfo from '../../testDoubles/StreamInfo/FakeStreamInfo.js';
14
+ import AbstractPackageTest from '../AbstractPackageTest.js';
15
+ export default class LslStreamOutletTest extends AbstractPackageTest {
16
+ static randomOutletOptions;
20
17
  static async beforeEach() {
21
18
  await super.beforeEach();
22
- delete LslStreamOutlet_1.default.Class;
23
- this.randomOutletOptions = (0, generateRandomOutletOptions_1.default)();
19
+ delete LslStreamOutlet.Class;
20
+ this.randomOutletOptions = generateRandomOutletOptions();
24
21
  this.setFakeLiblsl();
25
22
  this.setFakeStreamInfo();
26
23
  }
@@ -54,14 +51,14 @@ class LslStreamOutletTest extends AbstractLslTest_1.default {
54
51
  await this.assertThrowsInvalidMaxBuffered(1.5);
55
52
  }
56
53
  static async throwsWithUnsupportedType() {
57
- for (let unsupportedType of consts_2.TEST_UNSUPPORTED_CHANNEL_FORMATS) {
58
- await test_utils_1.assert.doesThrowAsync(async () => await this.LslStreamOutlet({
54
+ for (let unsupportedType of TEST_UNSUPPORTED_CHANNEL_FORMATS) {
55
+ await assert.doesThrowAsync(async () => await this.LslStreamOutlet({
59
56
  channelFormat: unsupportedType,
60
57
  }), `This method currently does not support the ${unsupportedType} type! Please implement it.`);
61
58
  }
62
59
  }
63
60
  static async supportsAllKnownChannelFormats() {
64
- for (const format of consts_2.TEST_SUPPORTED_CHANNEL_FORMATS) {
61
+ for (const format of TEST_SUPPORTED_CHANNEL_FORMATS) {
65
62
  await this.LslStreamOutlet({
66
63
  channelFormat: format,
67
64
  });
@@ -70,37 +67,37 @@ class LslStreamOutletTest extends AbstractLslTest_1.default {
70
67
  static async canPushFloatSampleToLsl(sample) {
71
68
  const outlet = await this.FloatOutlet();
72
69
  outlet.pushSample(sample);
73
- test_utils_1.assert.isEqual(this.fakeLiblsl.lastPushSampleFloatTimestampOptions?.outlet, this.fakeLiblsl.outlet);
74
- test_utils_1.assert.isEqualDeep(this.fakeLiblsl.lastPushSampleFloatTimestampOptions?.sample, sample);
75
- test_utils_1.assert.isEqualDeep(this.fakeLiblsl.lastCreateOutletOptions, {
70
+ assert.isEqual(this.fakeLiblsl.lastPushSampleFloatTimestampOptions?.outlet, this.fakeLiblsl.outlet);
71
+ assert.isEqualDeep(this.fakeLiblsl.lastPushSampleFloatTimestampOptions?.sample, sample);
72
+ assert.isEqualDeep(this.fakeLiblsl.lastCreateOutletOptions, {
76
73
  info: this.fakeLiblsl.streamInfo,
77
74
  chunkSize: this.randomOutletOptions.chunkSize,
78
75
  maxBuffered: this.randomOutletOptions.maxBuffered,
79
76
  });
80
- test_utils_1.assert.isNumber(this.fakeLiblsl.lastPushSampleFloatTimestampOptions?.timestamp);
77
+ assert.isNumber(this.fakeLiblsl.lastPushSampleFloatTimestampOptions?.timestamp);
81
78
  }
82
79
  static async canPushStringSampleToLsl() {
83
- const sample = [(0, test_utils_1.generateId)()];
80
+ const sample = [generateId()];
84
81
  const outlet = await this.StringOutlet();
85
82
  outlet.pushSample(sample);
86
- test_utils_1.assert.isEqual(this.fakeLiblsl.lastPushSampleStringTimestampOptions?.outlet, this.fakeLiblsl.outlet);
87
- test_utils_1.assert.isEqualDeep(this.fakeLiblsl.lastPushSampleStringTimestampOptions?.sample, sample);
88
- test_utils_1.assert.isNumber(this.fakeLiblsl.lastPushSampleStringTimestampOptions?.timestamp);
83
+ assert.isEqual(this.fakeLiblsl.lastPushSampleStringTimestampOptions?.outlet, this.fakeLiblsl.outlet);
84
+ assert.isEqualDeep(this.fakeLiblsl.lastPushSampleStringTimestampOptions?.sample, sample);
85
+ assert.isNumber(this.fakeLiblsl.lastPushSampleStringTimestampOptions?.timestamp);
89
86
  }
90
87
  static async pushingStringTwiceGivesDifferentTimestamps() {
91
88
  const outlet = await this.StringOutlet();
92
- const sample = [(0, test_utils_1.generateId)()];
89
+ const sample = [generateId()];
93
90
  outlet.pushSample(sample);
94
91
  const t1 = this.fakeLiblsl.lastPushSampleStringTimestampOptions?.timestamp;
95
92
  await this.wait(10);
96
93
  outlet.pushSample(sample);
97
94
  const t2 = this.fakeLiblsl.lastPushSampleStringTimestampOptions?.timestamp;
98
- test_utils_1.assert.isNotEqual(t1, t2);
99
- test_utils_1.assert.isEqual(this.fakeLiblsl.localClockHitCount, 2);
95
+ assert.isNotEqual(t1, t2);
96
+ assert.isEqual(this.fakeLiblsl.localClockHitCount, 2);
100
97
  }
101
98
  static async constructionCreatesStreamInfo() {
102
99
  await this.LslStreamOutlet();
103
- test_utils_1.assert.isEqualDeep(FakeStreamInfo_1.default.callsToConstructor[0], {
100
+ assert.isEqualDeep(FakeStreamInfo.callsToConstructor[0], {
104
101
  channelNames: this.randomOutletOptions.channelNames,
105
102
  channelFormat: this.randomOutletOptions.channelFormat,
106
103
  sampleRate: this.randomOutletOptions.sampleRate,
@@ -111,27 +108,27 @@ class LslStreamOutletTest extends AbstractLslTest_1.default {
111
108
  });
112
109
  }
113
110
  static async canOverrideClassInstantiatedInFactory() {
114
- LslStreamOutlet_1.default.Class = CheckingOutlet;
111
+ LslStreamOutlet.Class = CheckingOutlet;
115
112
  const instance = await this.LslStreamOutlet();
116
- test_utils_1.assert.isInstanceOf(instance, CheckingOutlet);
113
+ assert.isInstanceOf(instance, CheckingOutlet);
117
114
  }
118
115
  static async canDestroyOutlet() {
119
116
  const outlet = await this.LslStreamOutlet();
120
117
  outlet.destroy();
121
- test_utils_1.assert.isEqual(this.fakeLiblsl.destroyOutletHitCount, 1);
118
+ assert.isEqual(this.fakeLiblsl.destroyOutletHitCount, 1);
122
119
  }
123
120
  static async pushSampleShouldNotCreateMultipleOutlets() {
124
121
  const outlet = await this.FloatOutlet();
125
122
  outlet.pushSample([1.0]);
126
123
  outlet.pushSample([2.0]);
127
124
  outlet.pushSample([3.0]);
128
- test_utils_1.assert.isEqual(this.fakeLiblsl.createOutletHitCount, 1);
125
+ assert.isEqual(this.fakeLiblsl.createOutletHitCount, 1);
129
126
  }
130
127
  static async waitsForTenMsAfterConstructionBeforeReturning() {
131
128
  const startMs = Date.now();
132
129
  await this.LslStreamOutlet({ waitAfterConstructionMs: 10 });
133
130
  const endMs = Date.now();
134
- test_utils_1.assert.isAbove(endMs - startMs, 10);
131
+ assert.isAbove(endMs - startMs, 10);
135
132
  }
136
133
  static async assertThrowsWithEmptyChannelNames() {
137
134
  await this.createAndAssertThrows('channelNames', [], `Invalid channel count! Must be a positive integer, not: 0.`);
@@ -140,7 +137,7 @@ class LslStreamOutletTest extends AbstractLslTest_1.default {
140
137
  await this.createAndAssertThrows('sampleRate', sampleRate, `Invalid sample rate! Must be a positive number or zero, not: ${sampleRate}`);
141
138
  }
142
139
  static async assertThrowsInvalidChannelFormat(channelFormat) {
143
- await this.createAndAssertThrows('channelFormat', channelFormat, `Invalid channel format! Must be one of: ${consts_1.CHANNEL_FORMATS.join(', ')}, not ${channelFormat}.`);
140
+ await this.createAndAssertThrows('channelFormat', channelFormat, `Invalid channel format! Must be one of: ${CHANNEL_FORMATS.join(', ')}, not ${channelFormat}.`);
144
141
  }
145
142
  static async assertThrowsInvalidMaxBuffered(maxBuffered) {
146
143
  await this.createAndAssertThrows('maxBuffered', maxBuffered, `Invalid max buffered! Must be a positive integer or zero, not: ${maxBuffered}`);
@@ -149,8 +146,8 @@ class LslStreamOutletTest extends AbstractLslTest_1.default {
149
146
  await this.createAndAssertThrows('chunkSize', chunkSize, `Invalid chunk size! Must be a positive integer or zero, not: ${chunkSize}`);
150
147
  }
151
148
  static async createAndAssertThrows(option, value, expectedMessage) {
152
- const err = await test_utils_1.assert.doesThrowAsync(async () => await this.LslStreamOutlet({ [option]: value }));
153
- test_utils_1.assert.isTrue(err.message.includes(expectedMessage));
149
+ const err = await assert.doesThrowAsync(async () => await this.LslStreamOutlet({ [option]: value }));
150
+ assert.isTrue(err.message.includes(expectedMessage), 'Did not receive the expected error!');
154
151
  }
155
152
  static async StringOutlet() {
156
153
  return await this.LslStreamOutlet({ channelFormat: 'string' });
@@ -159,69 +156,68 @@ class LslStreamOutletTest extends AbstractLslTest_1.default {
159
156
  return await this.LslStreamOutlet({ channelFormat: 'float32' });
160
157
  }
161
158
  static async LslStreamOutlet(options) {
162
- return await LslStreamOutlet_1.default.Create({
159
+ return await LslStreamOutlet.Create({
163
160
  ...this.randomOutletOptions,
164
161
  ...options,
165
162
  });
166
163
  }
167
164
  }
168
- exports.default = LslStreamOutletTest;
169
165
  __decorate([
170
- (0, test_utils_1.test)()
166
+ test()
171
167
  ], LslStreamOutletTest, "throwsWithEmptyChannelNames", null);
172
168
  __decorate([
173
- (0, test_utils_1.test)()
169
+ test()
174
170
  ], LslStreamOutletTest, "allowsZeroSampleRate", null);
175
171
  __decorate([
176
- (0, test_utils_1.test)()
172
+ test()
177
173
  ], LslStreamOutletTest, "throwsWithInvalidSampleRate", null);
178
174
  __decorate([
179
- (0, test_utils_1.test)()
175
+ test()
180
176
  ], LslStreamOutletTest, "throwsWithInvalidChannelFormat", null);
181
177
  __decorate([
182
- (0, test_utils_1.test)()
178
+ test()
183
179
  ], LslStreamOutletTest, "allowsZeroChunkSize", null);
184
180
  __decorate([
185
- (0, test_utils_1.test)()
181
+ test()
186
182
  ], LslStreamOutletTest, "throwsWithInvalidChunkSize", null);
187
183
  __decorate([
188
- (0, test_utils_1.test)()
184
+ test()
189
185
  ], LslStreamOutletTest, "allowsZeroMaxBuffered", null);
190
186
  __decorate([
191
- (0, test_utils_1.test)()
187
+ test()
192
188
  ], LslStreamOutletTest, "throwsWithInvalidMaxBuffered", null);
193
189
  __decorate([
194
- (0, test_utils_1.test)()
190
+ test()
195
191
  ], LslStreamOutletTest, "throwsWithUnsupportedType", null);
196
192
  __decorate([
197
- (0, test_utils_1.test)()
193
+ test()
198
194
  ], LslStreamOutletTest, "supportsAllKnownChannelFormats", null);
199
195
  __decorate([
200
- (0, test_utils_1.test)('pushing [1, 2] sample sends to LSL', [1.0, 2.0]),
201
- (0, test_utils_1.test)('pushing [1] sample sends to LSL', [1.0])
196
+ test('pushing [1, 2] sample sends to LSL', [1.0, 2.0]),
197
+ test('pushing [1] sample sends to LSL', [1.0])
202
198
  ], LslStreamOutletTest, "canPushFloatSampleToLsl", null);
203
199
  __decorate([
204
- (0, test_utils_1.test)()
200
+ test()
205
201
  ], LslStreamOutletTest, "canPushStringSampleToLsl", null);
206
202
  __decorate([
207
- (0, test_utils_1.test)()
203
+ test()
208
204
  ], LslStreamOutletTest, "pushingStringTwiceGivesDifferentTimestamps", null);
209
205
  __decorate([
210
- (0, test_utils_1.test)()
206
+ test()
211
207
  ], LslStreamOutletTest, "constructionCreatesStreamInfo", null);
212
208
  __decorate([
213
- (0, test_utils_1.test)()
209
+ test()
214
210
  ], LslStreamOutletTest, "canOverrideClassInstantiatedInFactory", null);
215
211
  __decorate([
216
- (0, test_utils_1.test)()
212
+ test()
217
213
  ], LslStreamOutletTest, "canDestroyOutlet", null);
218
214
  __decorate([
219
- (0, test_utils_1.test)()
215
+ test()
220
216
  ], LslStreamOutletTest, "pushSampleShouldNotCreateMultipleOutlets", null);
221
217
  __decorate([
222
- (0, test_utils_1.test)()
218
+ test()
223
219
  ], LslStreamOutletTest, "waitsForTenMsAfterConstructionBeforeReturning", null);
224
- class CheckingOutlet extends LslStreamOutlet_1.default {
220
+ class CheckingOutlet extends LslStreamOutlet {
225
221
  constructor(info, options) {
226
222
  super(info, options);
227
223
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LslStreamOutlet.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/LslStreamOutlet.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import AbstractPackageTest from '../AbstractPackageTest.js';
2
+ export default class LslWebSocketBridgeTest extends AbstractPackageTest {
3
+ private static instance;
4
+ protected static beforeEach(): Promise<void>;
5
+ protected static createsInstance(): Promise<void>;
6
+ private static LslWebSocketBridge;
7
+ }
@@ -0,0 +1,26 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { test, assert } from '@neurodevs/node-tdd';
8
+ import LslWebSocketBridge from '../../impl/LslWebSocketBridge.js';
9
+ import AbstractPackageTest from '../AbstractPackageTest.js';
10
+ export default class LslWebSocketBridgeTest extends AbstractPackageTest {
11
+ static instance;
12
+ static async beforeEach() {
13
+ await super.beforeEach();
14
+ this.instance = this.LslWebSocketBridge();
15
+ }
16
+ static async createsInstance() {
17
+ assert.isTruthy(this.instance, 'Failed to create instance!');
18
+ }
19
+ static LslWebSocketBridge() {
20
+ return LslWebSocketBridge.Create();
21
+ }
22
+ }
23
+ __decorate([
24
+ test()
25
+ ], LslWebSocketBridgeTest, "createsInstance", null);
26
+ //# sourceMappingURL=LslWebSocketBridge.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LslWebSocketBridge.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/LslWebSocketBridge.test.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,kBAEN,MAAM,kCAAkC,CAAA;AACzC,OAAO,mBAAmB,MAAM,2BAA2B,CAAA;AAE3D,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,mBAAmB;IAC3D,MAAM,CAAC,QAAQ,CAAuB;IAEpC,MAAM,CAAC,KAAK,CAAC,UAAU;QAC7B,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QAExB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAA;IAC7C,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,eAAe;QAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAA;IAChE,CAAC;IAEO,MAAM,CAAC,kBAAkB;QAC7B,OAAO,kBAAkB,CAAC,MAAM,EAAE,CAAA;IACtC,CAAC;CACJ;AAP0B;IADtB,IAAI,EAAE;mDAGN"}
@@ -1,4 +1,4 @@
1
- import { ChannelFormat } from './types';
1
+ import { ChannelFormat } from './types.js';
2
2
  export declare function assertValidChunkSize(chunkSize: number): void;
3
3
  export declare function assertValidMaxBuffered(maxBuffered: number): void;
4
4
  export declare function assertValidChannelFormat(channelFormat: ChannelFormat): void;
@@ -1,34 +1,27 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.assertValidChunkSize = assertValidChunkSize;
4
- exports.assertValidMaxBuffered = assertValidMaxBuffered;
5
- exports.assertValidChannelFormat = assertValidChannelFormat;
6
- exports.assertValidSampleRate = assertValidSampleRate;
7
- exports.assertValidChannelCount = assertValidChannelCount;
8
- const consts_1 = require("./consts");
9
- const validations_1 = require("./validations");
10
- function assertValidChunkSize(chunkSize) {
11
- if (!(0, validations_1.isPositiveIntegerOrZero)(chunkSize)) {
1
+ import { CHANNEL_FORMATS } from './consts.js';
2
+ import { isGreaterThanOrEqualToZero, isPositiveInteger, isPositiveIntegerOrZero, isStringInArray, } from './validations.js';
3
+ export function assertValidChunkSize(chunkSize) {
4
+ if (!isPositiveIntegerOrZero(chunkSize)) {
12
5
  throw new Error(`Invalid chunk size! Must be a positive integer or zero, not: ${chunkSize}.`);
13
6
  }
14
7
  }
15
- function assertValidMaxBuffered(maxBuffered) {
16
- if (!(0, validations_1.isPositiveIntegerOrZero)(maxBuffered)) {
8
+ export function assertValidMaxBuffered(maxBuffered) {
9
+ if (!isPositiveIntegerOrZero(maxBuffered)) {
17
10
  throw new Error(`Invalid max buffered! Must be a positive integer or zero, not: ${maxBuffered}.`);
18
11
  }
19
12
  }
20
- function assertValidChannelFormat(channelFormat) {
21
- if (!(0, validations_1.isStringInArray)(channelFormat, consts_1.CHANNEL_FORMATS)) {
22
- throw new Error(`Invalid channel format! Must be one of: ${consts_1.CHANNEL_FORMATS.join(', ')}, not ${channelFormat}.`);
13
+ export function assertValidChannelFormat(channelFormat) {
14
+ if (!isStringInArray(channelFormat, CHANNEL_FORMATS)) {
15
+ throw new Error(`Invalid channel format! Must be one of: ${CHANNEL_FORMATS.join(', ')}, not ${channelFormat}.`);
23
16
  }
24
17
  }
25
- function assertValidSampleRate(sampleRate) {
26
- if (!(0, validations_1.isGreaterThanOrEqualToZero)(sampleRate)) {
18
+ export function assertValidSampleRate(sampleRate) {
19
+ if (!isGreaterThanOrEqualToZero(sampleRate)) {
27
20
  throw new Error(`Invalid sample rate! Must be a positive number or zero, not: ${sampleRate}.`);
28
21
  }
29
22
  }
30
- function assertValidChannelCount(channelCount) {
31
- if (!(0, validations_1.isPositiveInteger)(channelCount)) {
23
+ export function assertValidChannelCount(channelCount) {
24
+ if (!isPositiveInteger(channelCount)) {
32
25
  throw new Error(`Invalid channel count! Must be a positive integer, not: ${channelCount}.`);
33
26
  }
34
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"assertions.js","sourceRoot":"","sources":["../src/assertions.ts"],"names":[],"mappings":";;AASA,oDAMC;AAED,wDAMC;AAED,4DAMC;AAED,sDAMC;AAED,0DAMC;AA/CD,qCAA0C;AAE1C,+CAKsB;AAEtB,SAAgB,oBAAoB,CAAC,SAAiB;IAClD,IAAI,CAAC,IAAA,qCAAuB,EAAC,SAAS,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CACX,gEAAgE,SAAS,GAAG,CAC/E,CAAA;IACL,CAAC;AACL,CAAC;AAED,SAAgB,sBAAsB,CAAC,WAAmB;IACtD,IAAI,CAAC,IAAA,qCAAuB,EAAC,WAAW,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACX,kEAAkE,WAAW,GAAG,CACnF,CAAA;IACL,CAAC;AACL,CAAC;AAED,SAAgB,wBAAwB,CAAC,aAA4B;IACjE,IAAI,CAAC,IAAA,6BAAe,EAAC,aAAa,EAAE,wBAAe,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CACX,2CAA2C,wBAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,aAAa,GAAG,CACjG,CAAA;IACL,CAAC;AACL,CAAC;AAED,SAAgB,qBAAqB,CAAC,UAAkB;IACpD,IAAI,CAAC,IAAA,wCAA0B,EAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACX,gEAAgE,UAAU,GAAG,CAChF,CAAA;IACL,CAAC;AACL,CAAC;AAED,SAAgB,uBAAuB,CAAC,YAAoB;IACxD,IAAI,CAAC,IAAA,+BAAiB,EAAC,YAAY,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACX,2DAA2D,YAAY,GAAG,CAC7E,CAAA;IACL,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"assertions.js","sourceRoot":"","sources":["../src/assertions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,OAAO,EACH,0BAA0B,EAC1B,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,GAClB,MAAM,kBAAkB,CAAA;AAEzB,MAAM,UAAU,oBAAoB,CAAC,SAAiB;IAClD,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CACX,gEAAgE,SAAS,GAAG,CAC/E,CAAA;IACL,CAAC;AACL,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,WAAmB;IACtD,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACX,kEAAkE,WAAW,GAAG,CACnF,CAAA;IACL,CAAC;AACL,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,aAA4B;IACjE,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,eAAe,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CACX,2CAA2C,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,aAAa,GAAG,CACjG,CAAA;IACL,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAAkB;IACpD,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACX,gEAAgE,UAAU,GAAG,CAChF,CAAA;IACL,CAAC;AACL,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,YAAoB;IACxD,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACX,2DAA2D,YAAY,GAAG,CAC7E,CAAA;IACL,CAAC;AACL,CAAC"}
package/build/consts.js CHANGED
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CHANNEL_FORMATS_MAP = exports.CHANNEL_FORMATS = void 0;
4
- exports.CHANNEL_FORMATS = [
1
+ export const CHANNEL_FORMATS = [
5
2
  'undefined',
6
3
  'float32',
7
4
  'double64',
@@ -11,7 +8,7 @@ exports.CHANNEL_FORMATS = [
11
8
  'int8',
12
9
  'int64',
13
10
  ];
14
- exports.CHANNEL_FORMATS_MAP = {
11
+ export const CHANNEL_FORMATS_MAP = {
15
12
  undefined: 0,
16
13
  float32: 1,
17
14
  double64: 2,
@@ -1 +1 @@
1
- {"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG;IAC3B,WAAW;IACX,SAAS;IACT,UAAU;IACV,QAAQ;IACR,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;CACD,CAAA;AAEG,QAAA,mBAAmB,GAAG;IAC/B,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;CACX,CAAA"}
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,WAAW;IACX,SAAS;IACT,UAAU;IACV,QAAQ;IACR,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;CACD,CAAA;AAEV,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,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;CACX,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { define, open } from 'ffi-rs';
2
- import { Liblsl, CreateStreamInfoOptions, AppendChannelsToStreamInfoOptions, CreateOutletOptions, DestroyOutletOptions, PushSampleFloatTimestampOptions, PushSampleStringTimestampOptions, CreateInletOptions, DestroyInletOptions } from '../types';
2
+ import { Liblsl, CreateStreamInfoOptions, AppendChannelsToStreamInfoOptions, CreateOutletOptions, DestroyOutletOptions, PushSampleFloatTimestampOptions, PushSampleStringTimestampOptions, CreateInletOptions, DestroyInletOptions, FlushInletOptions } from '../types.js';
3
3
  export default class LiblslAdapter implements Liblsl {
4
4
  static ffiRsOpen: typeof open;
5
5
  static ffiRsDefine: typeof define;
@@ -13,13 +13,14 @@ export default class LiblslAdapter implements Liblsl {
13
13
  static setInstance(instance: Liblsl): void;
14
14
  static resetInstance(): void;
15
15
  private loadBindings;
16
- createStreamInfo(options: CreateStreamInfoOptions): import("../types").BoundStreamInfo;
16
+ createStreamInfo(options: CreateStreamInfoOptions): import("../types.js").BoundStreamInfo;
17
17
  appendChannelsToStreamInfo(options: AppendChannelsToStreamInfoOptions): void;
18
- createOutlet(options: CreateOutletOptions): import("../types").BoundOutlet;
18
+ createOutlet(options: CreateOutletOptions): import("../types.js").BoundOutlet;
19
19
  pushSampleFloatTimestamp(options: PushSampleFloatTimestampOptions): void;
20
20
  pushSampleStringTimestamp(options: PushSampleStringTimestampOptions): void;
21
21
  destroyOutlet(options: DestroyOutletOptions): void;
22
- createInlet(options: CreateInletOptions): import("../types").BoundInlet;
22
+ createInlet(options: CreateInletOptions): import("../types.js").BoundInlet;
23
+ flushInlet(options: FlushInletOptions): void;
23
24
  destroyInlet(_options: DestroyInletOptions): void;
24
25
  localClock(): number;
25
26
  private readonly defaultMacOsPath;
@@ -1,9 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const ffi_rs_1 = require("ffi-rs");
4
- class LiblslAdapter {
1
+ import { DataType, define, open } from 'ffi-rs';
2
+ export default class LiblslAdapter {
3
+ static ffiRsOpen = open;
4
+ static ffiRsDefine = define;
5
+ static instance;
6
+ path;
7
+ bindings;
5
8
  constructor() {
6
- this.defaultMacOsPath = '/opt/homebrew/Cellar/lsl/1.16.2/lib/liblsl.1.16.2.dylib';
7
9
  this.path = process.env.LIBLSL_PATH ?? this.defaultMacOsPath;
8
10
  this.tryToLoadBindings();
9
11
  }
@@ -38,78 +40,83 @@ class LiblslAdapter {
38
40
  return LiblslAdapter.ffiRsDefine({
39
41
  lsl_create_streaminfo: {
40
42
  library: 'lsl',
41
- retType: ffi_rs_1.DataType.External,
43
+ retType: DataType.External,
42
44
  paramsType: [
43
- ffi_rs_1.DataType.String,
44
- ffi_rs_1.DataType.String,
45
- ffi_rs_1.DataType.I32,
46
- ffi_rs_1.DataType.Double,
47
- ffi_rs_1.DataType.I32,
48
- ffi_rs_1.DataType.String,
45
+ DataType.String,
46
+ DataType.String,
47
+ DataType.I32,
48
+ DataType.Double,
49
+ DataType.I32,
50
+ DataType.String,
49
51
  ],
50
52
  },
51
53
  lsl_create_outlet: {
52
54
  library: 'lsl',
53
- retType: ffi_rs_1.DataType.External,
54
- paramsType: [ffi_rs_1.DataType.External, ffi_rs_1.DataType.I32, ffi_rs_1.DataType.I32],
55
+ retType: DataType.External,
56
+ paramsType: [DataType.External, DataType.I32, DataType.I32],
55
57
  },
56
- lsl_destroy_outlet: {
58
+ lsl_push_sample_ft: {
57
59
  library: 'lsl',
58
- retType: ffi_rs_1.DataType.Void,
59
- paramsType: [ffi_rs_1.DataType.External],
60
+ retType: DataType.Void,
61
+ paramsType: [
62
+ DataType.External,
63
+ DataType.FloatArray,
64
+ DataType.Double,
65
+ ],
60
66
  },
61
- lsl_create_inlet: {
67
+ lsl_push_sample_strt: {
62
68
  library: 'lsl',
63
- retType: ffi_rs_1.DataType.External,
64
- paramsType: [ffi_rs_1.DataType.External, ffi_rs_1.DataType.I32, ffi_rs_1.DataType.I32],
69
+ retType: DataType.Void,
70
+ paramsType: [
71
+ DataType.External,
72
+ DataType.StringArray,
73
+ DataType.Double,
74
+ ],
65
75
  },
66
- lsl_destroy_inlet: {
76
+ lsl_destroy_outlet: {
67
77
  library: 'lsl',
68
- retType: ffi_rs_1.DataType.Void,
69
- paramsType: [ffi_rs_1.DataType.External],
78
+ retType: DataType.Void,
79
+ paramsType: [DataType.External],
70
80
  },
71
- lsl_local_clock: {
81
+ lsl_create_inlet: {
72
82
  library: 'lsl',
73
- retType: ffi_rs_1.DataType.Double,
74
- paramsType: [],
83
+ retType: DataType.External,
84
+ paramsType: [DataType.External, DataType.I32, DataType.I32],
75
85
  },
76
- lsl_push_sample_ft: {
86
+ lsl_flush_inlet: {
77
87
  library: 'lsl',
78
- retType: ffi_rs_1.DataType.Void,
79
- paramsType: [
80
- ffi_rs_1.DataType.External,
81
- ffi_rs_1.DataType.FloatArray,
82
- ffi_rs_1.DataType.Double,
83
- ],
88
+ retType: DataType.I32,
89
+ paramsType: [DataType.External],
84
90
  },
85
- lsl_push_sample_strt: {
91
+ lsl_destroy_inlet: {
86
92
  library: 'lsl',
87
- retType: ffi_rs_1.DataType.Void,
88
- paramsType: [
89
- ffi_rs_1.DataType.External,
90
- ffi_rs_1.DataType.StringArray,
91
- ffi_rs_1.DataType.Double,
92
- ],
93
+ retType: DataType.Void,
94
+ paramsType: [DataType.External],
93
95
  },
94
96
  lsl_get_desc: {
95
97
  library: 'lsl',
96
- retType: ffi_rs_1.DataType.External,
97
- paramsType: [ffi_rs_1.DataType.External],
98
+ retType: DataType.External,
99
+ paramsType: [DataType.External],
98
100
  },
99
101
  lsl_append_child: {
100
102
  library: 'lsl',
101
- retType: ffi_rs_1.DataType.External,
102
- paramsType: [ffi_rs_1.DataType.External, ffi_rs_1.DataType.String],
103
+ retType: DataType.External,
104
+ paramsType: [DataType.External, DataType.String],
103
105
  },
104
106
  lsl_append_child_value: {
105
107
  library: 'lsl',
106
- retType: ffi_rs_1.DataType.External,
108
+ retType: DataType.External,
107
109
  paramsType: [
108
- ffi_rs_1.DataType.External,
109
- ffi_rs_1.DataType.String,
110
- ffi_rs_1.DataType.String,
110
+ DataType.External,
111
+ DataType.String,
112
+ DataType.String,
111
113
  ],
112
114
  },
115
+ lsl_local_clock: {
116
+ library: 'lsl',
117
+ retType: DataType.Double,
118
+ paramsType: [],
119
+ },
113
120
  });
114
121
  }
115
122
  createStreamInfo(options) {
@@ -158,12 +165,14 @@ class LiblslAdapter {
158
165
  const { info, chunkSize, maxBuffered } = options;
159
166
  return this.bindings.lsl_create_inlet([info, chunkSize, maxBuffered]);
160
167
  }
168
+ flushInlet(options) {
169
+ const { inlet } = options;
170
+ this.bindings.lsl_flush_inlet([inlet]);
171
+ }
161
172
  destroyInlet(_options) { }
162
173
  localClock() {
163
174
  return this.bindings.lsl_local_clock([]);
164
175
  }
176
+ defaultMacOsPath = '/opt/homebrew/Cellar/lsl/1.16.2/lib/liblsl.1.16.2.dylib';
165
177
  }
166
- LiblslAdapter.ffiRsOpen = ffi_rs_1.open;
167
- LiblslAdapter.ffiRsDefine = ffi_rs_1.define;
168
- exports.default = LiblslAdapter;
169
178
  //# sourceMappingURL=LiblslAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiblslAdapter.js","sourceRoot":"","sources":["../../src/impl/LiblslAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { DurationMarker } from '../types.js';
2
+ import { StreamOutletOptions, StreamOutlet } from './LslStreamOutlet.js';
3
+ export default class LslEventMarkerOutlet implements EventMarkerOutlet {
4
+ static Class?: EventMarkerOutletConstructor;
5
+ protected outlet: StreamOutlet;
6
+ private isPlaying;
7
+ private waitResolve?;
8
+ private timeout?;
9
+ protected constructor(outlet: StreamOutlet);
10
+ static Create(options?: Partial<StreamOutletOptions>): Promise<EventMarkerOutlet>;
11
+ pushMarker(markerName: string): void;
12
+ pushMarkers(markers: DurationMarker[]): Promise<void>;
13
+ private pushMarkerToOutlet;
14
+ protected wait(durationMs: number): Promise<unknown>;
15
+ private setTimeout;
16
+ stop(): void;
17
+ }
18
+ export interface EventMarkerOutlet {
19
+ pushMarker(markerName: string): void;
20
+ pushMarkers(markers: DurationMarker[]): Promise<void>;
21
+ stop(): void;
22
+ }
23
+ export type EventMarkerOutletConstructor = new (outlet: StreamOutlet) => EventMarkerOutlet;