@neurodevs/node-lsl 10.2.2 → 11.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.
- package/README.md +17 -38
- package/build/__tests__/{AbstractNodeLslTest.d.ts → AbstractLslTest.d.ts} +5 -4
- package/build/__tests__/{AbstractNodeLslTest.js → AbstractLslTest.js} +30 -24
- package/build/__tests__/AbstractLslTest.js.map +1 -0
- package/build/__tests__/EventMarkerOutlet.test.d.ts +18 -0
- package/build/__tests__/EventMarkerOutlet.test.js +144 -0
- package/build/__tests__/EventMarkerOutlet.test.js.map +1 -0
- package/build/__tests__/{Liblsl.test.d.ts → LiblslAdapter.test.d.ts} +2 -2
- package/build/__tests__/{Liblsl.test.js → LiblslAdapter.test.js} +43 -75
- package/build/__tests__/LiblslAdapter.test.js.map +1 -0
- package/build/__tests__/LslStreamInfo.test.d.ts +3 -3
- package/build/__tests__/LslStreamInfo.test.js +3 -3
- package/build/__tests__/LslStreamInfo.test.js.map +1 -1
- package/build/__tests__/{LslInlet.test.d.ts → LslStreamInlet.test.d.ts} +4 -4
- package/build/__tests__/{LslInlet.test.js → LslStreamInlet.test.js} +17 -17
- package/build/__tests__/LslStreamInlet.test.js.map +1 -0
- package/build/__tests__/{LslOutlet.test.d.ts → LslStreamOutlet.test.d.ts} +3 -3
- package/build/__tests__/{LslOutlet.test.js → LslStreamOutlet.test.js} +45 -41
- package/build/__tests__/LslStreamOutlet.test.js.map +1 -0
- package/build/{components/Liblsl.d.ts → adapters/LiblslAdapter.d.ts} +1 -1
- package/build/{components/Liblsl.js → adapters/LiblslAdapter.js} +7 -7
- package/build/adapters/LiblslAdapter.js.map +1 -0
- package/build/components/EventMarkerOutlet.d.ts +20 -0
- package/build/components/{TimeMarkerOutlet.js → EventMarkerOutlet.js} +19 -25
- package/build/components/EventMarkerOutlet.js.map +1 -0
- package/build/components/LiblslAdapter.d.ts +24 -0
- package/build/components/LiblslAdapter.js +198 -0
- package/build/components/LiblslAdapter.js.map +1 -0
- package/build/components/LslStreamInfo.js +2 -2
- package/build/components/LslStreamInfo.js.map +1 -1
- package/build/components/{LslInlet.d.ts → LslStreamInlet.d.ts} +4 -4
- package/build/components/{LslInlet.js → LslStreamInlet.js} +5 -5
- package/build/components/LslStreamInlet.js.map +1 -0
- package/build/components/{LslOutlet.d.ts → LslStreamOutlet.d.ts} +1 -1
- package/build/components/{LslOutlet.js → LslStreamOutlet.js} +5 -5
- package/build/components/LslStreamOutlet.js.map +1 -0
- package/build/index.d.ts +20 -19
- package/build/index.js +33 -28
- package/build/index.js.map +1 -1
- package/build/nodeLsl.types.d.ts +3 -3
- package/build/testDoubles/{FakeLiblsl.d.ts → Liblsl/FakeLiblsl.d.ts} +1 -1
- package/build/testDoubles/Liblsl/FakeLiblsl.js.map +1 -0
- package/build/testDoubles/LslInlet/SpyLslInlet.d.ts +7 -0
- package/build/testDoubles/{SpyLslInlet.js → LslInlet/SpyLslInlet.js} +2 -2
- package/build/testDoubles/LslInlet/SpyLslInlet.js.map +1 -0
- package/build/testDoubles/{FakeLslOutlet.d.ts → LslOutlet/FakeLslOutlet.d.ts} +3 -5
- package/build/testDoubles/{FakeLslOutlet.js → LslOutlet/FakeLslOutlet.js} +0 -4
- package/build/testDoubles/LslOutlet/FakeLslOutlet.js.map +1 -0
- package/build/testDoubles/MarkerOutlet/FakeMarkerOutlet.d.ts +12 -0
- package/build/testDoubles/MarkerOutlet/FakeMarkerOutlet.js +25 -0
- package/build/testDoubles/MarkerOutlet/FakeMarkerOutlet.js.map +1 -0
- package/build/testDoubles/{MockTimeMarkerOutlet.d.ts → MarkerOutlet/MockMarkerOutlet.d.ts} +3 -2
- package/build/testDoubles/{MockTimeMarkerOutlet.js → MarkerOutlet/MockMarkerOutlet.js} +3 -3
- package/build/testDoubles/MarkerOutlet/MockMarkerOutlet.js.map +1 -0
- package/build/testDoubles/MarkerOutlet/SpyMarkerOutlet.d.ts +9 -0
- package/build/testDoubles/MarkerOutlet/SpyMarkerOutlet.js +24 -0
- package/build/testDoubles/MarkerOutlet/SpyMarkerOutlet.js.map +1 -0
- package/build/testDoubles/{FakeStreamInfo.d.ts → StreamInfo/FakeStreamInfo.d.ts} +2 -2
- package/build/testDoubles/StreamInfo/FakeStreamInfo.js.map +1 -0
- package/build/testDoubles/StreamInfo/SpyStreamInfo.d.ts +9 -0
- package/build/testDoubles/{SpyLslStreamInfo.js → StreamInfo/SpyStreamInfo.js} +4 -4
- package/build/testDoubles/StreamInfo/SpyStreamInfo.js.map +1 -0
- package/build/testDoubles/generateRandomOutletOptions.d.ts +1 -1
- package/package.json +1 -1
- package/src/__tests__/AbstractLslTest.ts +58 -0
- package/src/__tests__/EventMarkerOutlet.test.ts +165 -0
- package/src/__tests__/{Liblsl.test.ts → LiblslAdapter.test.ts} +18 -22
- package/src/__tests__/LslStreamInfo.test.ts +12 -12
- package/src/__tests__/{LslInlet.test.ts → LslStreamInlet.test.ts} +11 -11
- package/src/__tests__/{LslOutlet.test.ts → LslStreamOutlet.test.ts} +28 -22
- package/src/{components/Liblsl.ts → adapters/LiblslAdapter.ts} +3 -3
- package/src/components/{TimeMarkerOutlet.ts → EventMarkerOutlet.ts} +23 -33
- package/src/components/LslStreamInfo.ts +2 -2
- package/src/components/{LslInlet.ts → LslStreamInlet.ts} +5 -5
- package/src/components/{LslOutlet.ts → LslStreamOutlet.ts} +3 -3
- package/src/index.ts +28 -19
- package/src/nodeLsl.types.ts +3 -3
- package/src/testDoubles/{FakeLiblsl.ts → Liblsl/FakeLiblsl.ts} +1 -1
- package/src/testDoubles/{SpyLslInlet.ts → LslInlet/SpyLslInlet.ts} +5 -3
- package/src/testDoubles/{FakeLslOutlet.ts → LslOutlet/FakeLslOutlet.ts} +3 -9
- package/src/testDoubles/MarkerOutlet/FakeMarkerOutlet.ts +32 -0
- package/src/testDoubles/{MockTimeMarkerOutlet.ts → MarkerOutlet/MockMarkerOutlet.ts} +3 -2
- package/src/testDoubles/MarkerOutlet/SpyMarkerOutlet.ts +24 -0
- package/src/testDoubles/{FakeStreamInfo.ts → StreamInfo/FakeStreamInfo.ts} +2 -2
- package/src/testDoubles/{SpyLslStreamInfo.ts → StreamInfo/SpyStreamInfo.ts} +4 -2
- package/src/testDoubles/generateRandomOutletOptions.ts +1 -1
- package/build/__tests__/AbstractNodeLslTest.js.map +0 -1
- package/build/__tests__/Liblsl.test.js.map +0 -1
- package/build/__tests__/LslInlet.test.js.map +0 -1
- package/build/__tests__/LslOutlet.test.js.map +0 -1
- package/build/__tests__/SpyLslStreamInfo.d.ts +0 -5
- package/build/__tests__/SpyLslStreamInfo.js +0 -17
- package/build/__tests__/SpyLslStreamInfo.js.map +0 -1
- package/build/__tests__/TimeMarkerOutlet.test.d.ts +0 -28
- package/build/__tests__/TimeMarkerOutlet.test.js +0 -165
- package/build/__tests__/TimeMarkerOutlet.test.js.map +0 -1
- package/build/components/Liblsl.js.map +0 -1
- package/build/components/LslInlet.js.map +0 -1
- package/build/components/LslOutlet.js.map +0 -1
- package/build/components/TimeMarkerOutlet.d.ts +0 -19
- package/build/components/TimeMarkerOutlet.js.map +0 -1
- package/build/demo.d.ts +0 -1
- package/build/demo.js +0 -42
- package/build/demo.js.map +0 -1
- package/build/testDoubles/FakeLiblsl.js.map +0 -1
- package/build/testDoubles/FakeLslOutlet.js.map +0 -1
- package/build/testDoubles/FakeLslStreamInfo.d.ts +0 -5
- package/build/testDoubles/FakeLslStreamInfo.js +0 -10
- package/build/testDoubles/FakeLslStreamInfo.js.map +0 -1
- package/build/testDoubles/FakeStreamInfo.js.map +0 -1
- package/build/testDoubles/FakeTimeMarkerOutlet.d.ts +0 -14
- package/build/testDoubles/FakeTimeMarkerOutlet.js +0 -30
- package/build/testDoubles/FakeTimeMarkerOutlet.js.map +0 -1
- package/build/testDoubles/MockTimeMarkerOutlet.js.map +0 -1
- package/build/testDoubles/SpyLslInlet.d.ts +0 -7
- package/build/testDoubles/SpyLslInlet.js.map +0 -1
- package/build/testDoubles/SpyLslStreamInfo.d.ts +0 -9
- package/build/testDoubles/SpyLslStreamInfo.js.map +0 -1
- package/build/testDoubles/SpyTimeMarkerOutlet.d.ts +0 -9
- package/build/testDoubles/SpyTimeMarkerOutlet.js +0 -19
- package/build/testDoubles/SpyTimeMarkerOutlet.js.map +0 -1
- package/src/__tests__/AbstractNodeLslTest.ts +0 -50
- package/src/__tests__/TimeMarkerOutlet.test.ts +0 -181
- package/src/demo.ts +0 -43
- package/src/testDoubles/FakeTimeMarkerOutlet.ts +0 -39
- package/src/testDoubles/SpyTimeMarkerOutlet.ts +0 -19
- /package/build/testDoubles/{FakeLiblsl.js → Liblsl/FakeLiblsl.js} +0 -0
- /package/build/testDoubles/{FakeStreamInfo.js → StreamInfo/FakeStreamInfo.js} +0 -0
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { test, assert, errorAssert, generateId } from '@sprucelabs/test-utils'
|
|
2
|
-
import LslOutletImpl, { LslOutletOptions } from '../components/LslOutlet'
|
|
3
2
|
import { StreamInfo } from '../components/LslStreamInfo'
|
|
3
|
+
import LslStreamOutlet, {
|
|
4
|
+
LslOutletOptions,
|
|
5
|
+
} from '../components/LslStreamOutlet'
|
|
4
6
|
import { LslSample } from '../nodeLsl.types'
|
|
5
7
|
import {
|
|
6
8
|
TEST_SUPPORTED_CHANNEL_FORMATS,
|
|
@@ -8,17 +10,17 @@ import {
|
|
|
8
10
|
TestChannelFormat,
|
|
9
11
|
} from '../testDoubles/consts'
|
|
10
12
|
|
|
11
|
-
import FakeStreamInfo from '../testDoubles/FakeStreamInfo'
|
|
12
13
|
import generateRandomOutletOptions from '../testDoubles/generateRandomOutletOptions'
|
|
13
|
-
import
|
|
14
|
+
import FakeStreamInfo from '../testDoubles/StreamInfo/FakeStreamInfo'
|
|
15
|
+
import AbstractLslTest from './AbstractLslTest'
|
|
14
16
|
|
|
15
|
-
export default class
|
|
17
|
+
export default class LslStreamOutletTest extends AbstractLslTest {
|
|
16
18
|
private static randomOutletOptions: LslOutletOptions
|
|
17
19
|
|
|
18
20
|
protected static async beforeEach() {
|
|
19
21
|
await super.beforeEach()
|
|
20
22
|
|
|
21
|
-
delete
|
|
23
|
+
delete LslStreamOutlet.Class
|
|
22
24
|
|
|
23
25
|
this.randomOutletOptions = generateRandomOutletOptions()
|
|
24
26
|
|
|
@@ -30,7 +32,7 @@ export default class LslOutletTest extends AbstractNodeLslTest {
|
|
|
30
32
|
protected static async throwsWithMissingRequiredParams() {
|
|
31
33
|
const err = await assert.doesThrowAsync(
|
|
32
34
|
//@ts-ignore
|
|
33
|
-
async () => await
|
|
35
|
+
async () => await LslStreamOutlet.Create()
|
|
34
36
|
)
|
|
35
37
|
errorAssert.assertError(err, 'MISSING_PARAMETERS', {
|
|
36
38
|
parameters: [
|
|
@@ -55,7 +57,7 @@ export default class LslOutletTest extends AbstractNodeLslTest {
|
|
|
55
57
|
|
|
56
58
|
@test()
|
|
57
59
|
protected static async allowsZeroSampleRate() {
|
|
58
|
-
await this.
|
|
60
|
+
await this.LslStreamOutlet({ sampleRate: 0 })
|
|
59
61
|
}
|
|
60
62
|
|
|
61
63
|
@test()
|
|
@@ -75,7 +77,7 @@ export default class LslOutletTest extends AbstractNodeLslTest {
|
|
|
75
77
|
|
|
76
78
|
@test()
|
|
77
79
|
protected static async throwsWithInvalidChunkSize() {
|
|
78
|
-
await this.
|
|
80
|
+
await this.LslStreamOutlet({ chunkSize: 0 })
|
|
79
81
|
await this.assertThrowsInvalidChunkSize(-1)
|
|
80
82
|
await this.assertThrowsInvalidChunkSize(-1.5)
|
|
81
83
|
await this.assertThrowsInvalidChunkSize(1.5)
|
|
@@ -83,7 +85,7 @@ export default class LslOutletTest extends AbstractNodeLslTest {
|
|
|
83
85
|
|
|
84
86
|
@test()
|
|
85
87
|
protected static async throwsWithInvalidMaxBuffered() {
|
|
86
|
-
await this.
|
|
88
|
+
await this.LslStreamOutlet({ maxBuffered: 0 })
|
|
87
89
|
await this.assertThrowsInvalidMaxBuffered(-1)
|
|
88
90
|
await this.assertThrowsInvalidMaxBuffered(-1.5)
|
|
89
91
|
await this.assertThrowsInvalidMaxBuffered(1.5)
|
|
@@ -94,7 +96,9 @@ export default class LslOutletTest extends AbstractNodeLslTest {
|
|
|
94
96
|
for (let unsupportedType of TEST_UNSUPPORTED_CHANNEL_FORMATS) {
|
|
95
97
|
await assert.doesThrowAsync(
|
|
96
98
|
async () =>
|
|
97
|
-
await this.
|
|
99
|
+
await this.LslStreamOutlet({
|
|
100
|
+
channelFormat: unsupportedType,
|
|
101
|
+
}),
|
|
98
102
|
`This method currently does not support the ${unsupportedType} type! Please implement it.`
|
|
99
103
|
)
|
|
100
104
|
}
|
|
@@ -103,7 +107,9 @@ export default class LslOutletTest extends AbstractNodeLslTest {
|
|
|
103
107
|
@test()
|
|
104
108
|
protected static async supportsAllKnownChannelFormats() {
|
|
105
109
|
for (const format of TEST_SUPPORTED_CHANNEL_FORMATS) {
|
|
106
|
-
await this.
|
|
110
|
+
await this.LslStreamOutlet({
|
|
111
|
+
channelFormat: format as TestChannelFormat,
|
|
112
|
+
})
|
|
107
113
|
}
|
|
108
114
|
}
|
|
109
115
|
|
|
@@ -172,7 +178,7 @@ export default class LslOutletTest extends AbstractNodeLslTest {
|
|
|
172
178
|
|
|
173
179
|
@test()
|
|
174
180
|
protected static async constructionCreatesStreamInfo() {
|
|
175
|
-
await this.
|
|
181
|
+
await this.LslStreamOutlet()
|
|
176
182
|
|
|
177
183
|
assert.isEqualDeep(FakeStreamInfo.callsToConstructor[0], {
|
|
178
184
|
channelNames: this.randomOutletOptions.channelNames,
|
|
@@ -187,15 +193,15 @@ export default class LslOutletTest extends AbstractNodeLslTest {
|
|
|
187
193
|
|
|
188
194
|
@test()
|
|
189
195
|
protected static async canOverrideClassInstantiatedInFactory() {
|
|
190
|
-
|
|
191
|
-
const instance = await this.
|
|
196
|
+
LslStreamOutlet.Class = CheckingOutlet
|
|
197
|
+
const instance = await this.LslStreamOutlet()
|
|
192
198
|
|
|
193
199
|
assert.isInstanceOf(instance, CheckingOutlet)
|
|
194
200
|
}
|
|
195
201
|
|
|
196
202
|
@test()
|
|
197
203
|
protected static async canDestroyOutlet() {
|
|
198
|
-
const outlet = await this.
|
|
204
|
+
const outlet = await this.LslStreamOutlet()
|
|
199
205
|
outlet.destroy()
|
|
200
206
|
|
|
201
207
|
assert.isEqual(this.fakeLiblsl.destroyOutletHitCount, 1)
|
|
@@ -214,7 +220,7 @@ export default class LslOutletTest extends AbstractNodeLslTest {
|
|
|
214
220
|
@test()
|
|
215
221
|
protected static async waitsForTenMsAfterConstructionBeforeReturning() {
|
|
216
222
|
const startMs = Date.now()
|
|
217
|
-
await this.
|
|
223
|
+
await this.LslStreamOutlet({ waitAfterConstructionMs: 10 })
|
|
218
224
|
const endMs = Date.now()
|
|
219
225
|
|
|
220
226
|
assert.isAbove(endMs - startMs, 10)
|
|
@@ -250,7 +256,7 @@ export default class LslOutletTest extends AbstractNodeLslTest {
|
|
|
250
256
|
parameters: string[]
|
|
251
257
|
) {
|
|
252
258
|
const err = await assert.doesThrowAsync(
|
|
253
|
-
async () => await this.
|
|
259
|
+
async () => await this.LslStreamOutlet(options)
|
|
254
260
|
)
|
|
255
261
|
errorAssert.assertError(err, 'INVALID_PARAMETERS', {
|
|
256
262
|
parameters,
|
|
@@ -258,22 +264,22 @@ export default class LslOutletTest extends AbstractNodeLslTest {
|
|
|
258
264
|
}
|
|
259
265
|
|
|
260
266
|
private static async StringOutlet() {
|
|
261
|
-
return await this.
|
|
267
|
+
return await this.LslStreamOutlet({ channelFormat: 'string' })
|
|
262
268
|
}
|
|
263
269
|
|
|
264
270
|
private static async FloatOutlet() {
|
|
265
|
-
return await this.
|
|
271
|
+
return await this.LslStreamOutlet({ channelFormat: 'float32' })
|
|
266
272
|
}
|
|
267
273
|
|
|
268
|
-
private static async
|
|
269
|
-
return await
|
|
274
|
+
private static async LslStreamOutlet(options?: Partial<LslOutletOptions>) {
|
|
275
|
+
return await LslStreamOutlet.Create({
|
|
270
276
|
...this.randomOutletOptions,
|
|
271
277
|
...options,
|
|
272
278
|
})
|
|
273
279
|
}
|
|
274
280
|
}
|
|
275
281
|
|
|
276
|
-
class CheckingOutlet extends
|
|
282
|
+
class CheckingOutlet extends LslStreamOutlet {
|
|
277
283
|
public constructor(info: StreamInfo, options: LslOutletOptions) {
|
|
278
284
|
super(info, options)
|
|
279
285
|
}
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
DestroyInletOptions,
|
|
15
15
|
} from '../nodeLsl.types'
|
|
16
16
|
|
|
17
|
-
export default class
|
|
17
|
+
export default class LiblslAdapter implements Liblsl {
|
|
18
18
|
private static instance?: Liblsl
|
|
19
19
|
public static ffiRsOpen = open
|
|
20
20
|
public static ffiRsDefine = define
|
|
@@ -54,12 +54,12 @@ export default class LiblslImpl implements Liblsl {
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
private loadBindings(liblslPath: string) {
|
|
57
|
-
|
|
57
|
+
LiblslAdapter.ffiRsOpen({
|
|
58
58
|
library: 'lsl',
|
|
59
59
|
path: liblslPath,
|
|
60
60
|
})
|
|
61
61
|
|
|
62
|
-
return
|
|
62
|
+
return LiblslAdapter.ffiRsDefine({
|
|
63
63
|
lsl_create_streaminfo: {
|
|
64
64
|
library: 'lsl',
|
|
65
65
|
retType: DataType.External,
|
|
@@ -1,52 +1,45 @@
|
|
|
1
1
|
import { DurationMarker } from '../nodeLsl.types'
|
|
2
|
-
import
|
|
3
|
-
import LslStreamInfo, { StreamInfo } from './LslStreamInfo'
|
|
2
|
+
import LslStreamOutlet, { LslOutletOptions, LslOutlet } from './LslStreamOutlet'
|
|
4
3
|
|
|
5
|
-
export default class
|
|
6
|
-
|
|
7
|
-
implements TimeMarkerOutlet
|
|
8
|
-
{
|
|
9
|
-
public static Class?: TimeMarkerOutletConstructor
|
|
4
|
+
export default class EventMarkerOutlet implements MarkerOutlet {
|
|
5
|
+
public static Class?: MarkerOutletConstructor
|
|
10
6
|
|
|
7
|
+
protected lslOutlet: LslOutlet
|
|
11
8
|
private isPlaying = false
|
|
12
9
|
private waitResolve?: () => void
|
|
13
10
|
private timeout?: any
|
|
14
11
|
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
protected constructor(lslOutlet: LslOutlet) {
|
|
13
|
+
this.lslOutlet = lslOutlet
|
|
14
|
+
}
|
|
17
15
|
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
public static async Create(options?: Partial<LslOutletOptions>) {
|
|
17
|
+
const defaultOptions = {
|
|
18
|
+
name: 'Event markers',
|
|
20
19
|
type: 'Markers',
|
|
21
20
|
channelNames: ['Markers'],
|
|
22
21
|
sampleRate: 0,
|
|
23
22
|
channelFormat: 'string',
|
|
24
|
-
sourceId: '
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
sourceId: 'event-markers',
|
|
24
|
+
manufacturer: 'N/A',
|
|
25
|
+
unit: 'N/A',
|
|
26
|
+
chunkSize: 0,
|
|
27
|
+
maxBuffered: 0,
|
|
27
28
|
} as LslOutletOptions
|
|
28
29
|
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
manufacturer: manufacturer ?? 'N/A',
|
|
34
|
-
chunkSize: chunkSize ?? 0,
|
|
35
|
-
maxBuffered: maxBuffered ?? 0,
|
|
36
|
-
unit: unit ?? 'N/A',
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// @ts-ignore
|
|
40
|
-
delete outletOptions.units
|
|
30
|
+
const outlet = await LslStreamOutlet.Create({
|
|
31
|
+
...defaultOptions,
|
|
32
|
+
...options,
|
|
33
|
+
})
|
|
41
34
|
|
|
42
|
-
return new (this.Class ?? this)(
|
|
35
|
+
return new (this.Class ?? this)(outlet)
|
|
43
36
|
}
|
|
44
37
|
|
|
45
38
|
public async pushMarkers(markers: DurationMarker[]) {
|
|
46
39
|
this.isPlaying = true
|
|
47
40
|
|
|
48
41
|
for (let marker of markers) {
|
|
49
|
-
this.pushSample([marker.name])
|
|
42
|
+
this.lslOutlet.pushSample([marker.name])
|
|
50
43
|
|
|
51
44
|
await this.wait(marker.durationMs)
|
|
52
45
|
|
|
@@ -72,12 +65,9 @@ export default class TimeMarkerOutletImpl
|
|
|
72
65
|
}
|
|
73
66
|
}
|
|
74
67
|
|
|
75
|
-
export interface
|
|
68
|
+
export interface MarkerOutlet {
|
|
76
69
|
pushMarkers(markers: DurationMarker[]): Promise<void>
|
|
77
70
|
stop(): void
|
|
78
71
|
}
|
|
79
72
|
|
|
80
|
-
export type
|
|
81
|
-
info: StreamInfo,
|
|
82
|
-
options: LslOutletOptions
|
|
83
|
-
) => TimeMarkerOutlet
|
|
73
|
+
export type MarkerOutletConstructor = new (lslOutlet: LslOutlet) => MarkerOutlet
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { assertOptions } from '@sprucelabs/schema'
|
|
2
2
|
import { generateId } from '@sprucelabs/test-utils'
|
|
3
|
+
import LiblslAdapter from '../adapters/LiblslAdapter'
|
|
3
4
|
import { CHANNEL_FORMATS_MAP } from '../consts'
|
|
4
5
|
import { BoundStreamInfo, ChannelFormat } from '../nodeLsl.types'
|
|
5
|
-
import LiblslImpl from './Liblsl'
|
|
6
6
|
|
|
7
7
|
export default class LslStreamInfo implements StreamInfo {
|
|
8
8
|
public static Class?: StreamInfoConstructor
|
|
@@ -79,7 +79,7 @@ export default class LslStreamInfo implements StreamInfo {
|
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
private get lsl() {
|
|
82
|
-
return
|
|
82
|
+
return LiblslAdapter.getInstance()
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
private readonly defaultName = `lsl-stream-info-${generateId()}`
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { assertOptions } from '@sprucelabs/schema'
|
|
2
2
|
import { generateId } from '@sprucelabs/test-utils'
|
|
3
|
+
import LiblslAdapter from '../adapters/LiblslAdapter'
|
|
3
4
|
import { ChannelFormat } from '../nodeLsl.types'
|
|
4
|
-
import LiblslImpl from './Liblsl'
|
|
5
5
|
import LslStreamInfo, { StreamInfo, StreamInfoOptions } from './LslStreamInfo'
|
|
6
6
|
|
|
7
|
-
export default class
|
|
7
|
+
export default class LslStreamInlet implements LslInlet {
|
|
8
8
|
public static Class?: LslInletConstructor
|
|
9
9
|
|
|
10
10
|
protected name: string
|
|
@@ -54,7 +54,7 @@ export default class LslInlet implements StreamInlet {
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
private get lsl() {
|
|
57
|
-
return
|
|
57
|
+
return LiblslAdapter.getInstance()
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
private readonly defaultName = `lsl-inlet-${generateId()}`
|
|
@@ -64,12 +64,12 @@ export default class LslInlet implements StreamInlet {
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
export interface
|
|
67
|
+
export interface LslInlet {}
|
|
68
68
|
|
|
69
69
|
export type LslInletConstructor = new (
|
|
70
70
|
info: StreamInfo,
|
|
71
71
|
options: LslInletOptions
|
|
72
|
-
) =>
|
|
72
|
+
) => LslInlet
|
|
73
73
|
|
|
74
74
|
export interface LslInletOptions {
|
|
75
75
|
sampleRate: number
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { assertOptions } from '@sprucelabs/schema'
|
|
2
|
+
import LiblslAdapter from '../adapters/LiblslAdapter'
|
|
2
3
|
import {
|
|
3
4
|
assertValidChannelCount,
|
|
4
5
|
assertValidChannelFormat,
|
|
@@ -7,10 +8,9 @@ import {
|
|
|
7
8
|
assertValidSampleRate,
|
|
8
9
|
} from '../assertions'
|
|
9
10
|
import { ChannelFormat, BoundOutlet, Liblsl, LslSample } from '../nodeLsl.types'
|
|
10
|
-
import LiblslImpl from './Liblsl'
|
|
11
11
|
import LslStreamInfo, { StreamInfo, StreamInfoOptions } from './LslStreamInfo'
|
|
12
12
|
|
|
13
|
-
export default class
|
|
13
|
+
export default class LslStreamOutlet implements LslOutlet {
|
|
14
14
|
public static Class?: LslOutletConstructor
|
|
15
15
|
|
|
16
16
|
private info: StreamInfo
|
|
@@ -141,7 +141,7 @@ export default class LslOutletImpl implements LslOutlet {
|
|
|
141
141
|
}
|
|
142
142
|
|
|
143
143
|
private get lsl() {
|
|
144
|
-
return
|
|
144
|
+
return LiblslAdapter.getInstance()
|
|
145
145
|
}
|
|
146
146
|
|
|
147
147
|
private static async wait(waitMs: number) {
|
package/src/index.ts
CHANGED
|
@@ -1,35 +1,44 @@
|
|
|
1
1
|
export * from './nodeLsl.types'
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
// Liblsl
|
|
4
|
+
|
|
5
|
+
export { default as LiblslAdapter } from './adapters/LiblslAdapter'
|
|
6
|
+
export * from './adapters/LiblslAdapter'
|
|
7
|
+
|
|
8
|
+
export { default as FakeLiblsl } from './testDoubles/Liblsl/FakeLiblsl'
|
|
9
|
+
export * from './testDoubles/Liblsl/FakeLiblsl'
|
|
10
|
+
|
|
11
|
+
// LslStreamInfo
|
|
5
12
|
|
|
6
13
|
export { default as LslStreamInfo } from './components/LslStreamInfo'
|
|
7
14
|
export * from './components/LslStreamInfo'
|
|
8
15
|
|
|
9
|
-
export { default as
|
|
10
|
-
export * from './testDoubles/
|
|
16
|
+
export { default as SpyStreamInfo } from './testDoubles/StreamInfo/SpyStreamInfo'
|
|
17
|
+
export * from './testDoubles/StreamInfo/SpyStreamInfo'
|
|
18
|
+
|
|
19
|
+
export { default as FakeStreamInfo } from './testDoubles/StreamInfo/FakeStreamInfo'
|
|
20
|
+
export * from './testDoubles/StreamInfo/FakeStreamInfo'
|
|
11
21
|
|
|
12
|
-
|
|
22
|
+
// LslStreamOutlet
|
|
13
23
|
|
|
14
|
-
export { default as
|
|
15
|
-
export * from './components/
|
|
24
|
+
export { default as LslStreamOutlet } from './components/LslStreamOutlet'
|
|
25
|
+
export * from './components/LslStreamOutlet'
|
|
16
26
|
|
|
17
|
-
export { default as
|
|
18
|
-
export * from './
|
|
27
|
+
export { default as FakeLslOutlet } from './testDoubles/LslOutlet/FakeLslOutlet'
|
|
28
|
+
export * from './testDoubles/LslOutlet/FakeLslOutlet'
|
|
19
29
|
|
|
20
|
-
|
|
21
|
-
export * from './testDoubles/FakeLiblsl'
|
|
30
|
+
// EventMarkerOutlet
|
|
22
31
|
|
|
23
|
-
export { default as
|
|
24
|
-
export * from './
|
|
32
|
+
export { default as EventMarkerOutlet } from './components/EventMarkerOutlet'
|
|
33
|
+
export * from './components/EventMarkerOutlet'
|
|
25
34
|
|
|
26
|
-
export { default as
|
|
27
|
-
export * from './testDoubles/
|
|
35
|
+
export { default as FakeMarkerOutlet } from './testDoubles/MarkerOutlet/FakeMarkerOutlet'
|
|
36
|
+
export * from './testDoubles/MarkerOutlet/FakeMarkerOutlet'
|
|
28
37
|
|
|
29
|
-
export { default as
|
|
30
|
-
export * from './testDoubles/
|
|
38
|
+
export { default as MockMarkerOutlet } from './testDoubles/MarkerOutlet/MockMarkerOutlet'
|
|
39
|
+
export * from './testDoubles/MarkerOutlet/MockMarkerOutlet'
|
|
31
40
|
|
|
32
|
-
export { default as
|
|
33
|
-
export * from './testDoubles/
|
|
41
|
+
export { default as SpyMarkerOutlet } from './testDoubles/MarkerOutlet/SpyMarkerOutlet'
|
|
42
|
+
export * from './testDoubles/MarkerOutlet/SpyMarkerOutlet'
|
|
34
43
|
|
|
35
44
|
export { default as generateRandomOutletOptions } from './testDoubles/generateRandomOutletOptions'
|
package/src/nodeLsl.types.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { FuncObj, FieldType } from 'ffi-rs'
|
|
2
|
-
import {
|
|
3
|
-
import { LslOutlet } from './components/
|
|
2
|
+
import { LslInlet } from './components/LslStreamInlet'
|
|
3
|
+
import { LslOutlet } from './components/LslStreamOutlet'
|
|
4
4
|
import { CHANNEL_FORMATS } from './consts'
|
|
5
5
|
|
|
6
|
-
export type StreamFixuture = LslOutlet |
|
|
6
|
+
export type StreamFixuture = LslOutlet | LslInlet
|
|
7
7
|
|
|
8
8
|
export type ChannelFormat = (typeof CHANNEL_FORMATS)[number]
|
|
9
9
|
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import { StreamInfo } from '../../components/LslStreamInfo'
|
|
2
|
+
import LslStreamInlet, {
|
|
3
|
+
LslInletOptions,
|
|
4
|
+
} from '../../components/LslStreamInlet'
|
|
3
5
|
|
|
4
|
-
export class SpyLslInlet extends
|
|
6
|
+
export class SpyLslInlet extends LslStreamInlet {
|
|
5
7
|
public constructor(info: StreamInfo, options: LslInletOptions) {
|
|
6
8
|
super(info, options)
|
|
7
9
|
}
|
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { LslSample } from '
|
|
1
|
+
import { StreamInfo } from '../../components/LslStreamInfo'
|
|
2
|
+
import { LslOutlet, LslOutletOptions } from '../../components/LslStreamOutlet'
|
|
3
|
+
import { LslSample } from '../../nodeLsl.types'
|
|
4
4
|
|
|
5
5
|
export default class FakeLslOutlet implements LslOutlet {
|
|
6
|
-
public static constructorInfo?: StreamInfo
|
|
7
|
-
public static constructorOptions?: LslOutletOptions
|
|
8
6
|
public static callsToConstructor: CallToConstructor[] = []
|
|
9
7
|
public static callsToPushSample: LslSample[] = []
|
|
10
8
|
public static numCallsToDestroy = 0
|
|
11
9
|
|
|
12
10
|
public constructor(info: StreamInfo, options: LslOutletOptions) {
|
|
13
|
-
FakeLslOutlet.constructorInfo = info
|
|
14
|
-
FakeLslOutlet.constructorOptions = options
|
|
15
11
|
FakeLslOutlet.callsToConstructor.push({ info, options })
|
|
16
12
|
}
|
|
17
13
|
|
|
@@ -24,8 +20,6 @@ export default class FakeLslOutlet implements LslOutlet {
|
|
|
24
20
|
}
|
|
25
21
|
|
|
26
22
|
public static resetTestDouble() {
|
|
27
|
-
FakeLslOutlet.constructorInfo = undefined
|
|
28
|
-
FakeLslOutlet.constructorOptions = undefined
|
|
29
23
|
FakeLslOutlet.callsToConstructor = []
|
|
30
24
|
FakeLslOutlet.callsToPushSample = []
|
|
31
25
|
FakeLslOutlet.numCallsToDestroy = 0
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { MarkerOutlet } from '../../components/EventMarkerOutlet'
|
|
2
|
+
import { DurationMarker } from '../../nodeLsl.types'
|
|
3
|
+
|
|
4
|
+
export default class FakeMarkerOutlet implements MarkerOutlet {
|
|
5
|
+
public static pushMarkersCalls: DurationMarker[][]
|
|
6
|
+
public static numStopCalls: number
|
|
7
|
+
public static numDestroyCalls: number
|
|
8
|
+
|
|
9
|
+
public constructor() {
|
|
10
|
+
FakeMarkerOutlet.pushMarkersCalls = []
|
|
11
|
+
FakeMarkerOutlet.numStopCalls = 0
|
|
12
|
+
FakeMarkerOutlet.numDestroyCalls = 0
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
public async pushMarkers(markers: DurationMarker[]) {
|
|
16
|
+
FakeMarkerOutlet.pushMarkersCalls.push(markers)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
public stop() {
|
|
20
|
+
FakeMarkerOutlet.numStopCalls++
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public destroy() {
|
|
24
|
+
FakeMarkerOutlet.numDestroyCalls++
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
public static resetTestDouble() {
|
|
28
|
+
this.pushMarkersCalls = []
|
|
29
|
+
this.numStopCalls = 0
|
|
30
|
+
this.numDestroyCalls = 0
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { assert } from '@sprucelabs/test-utils'
|
|
2
|
-
import {
|
|
2
|
+
import { MarkerOutlet } from '../../components/EventMarkerOutlet'
|
|
3
|
+
import { DurationMarker, LslSample } from '../../nodeLsl.types'
|
|
3
4
|
|
|
4
|
-
export default class
|
|
5
|
+
export default class MockMarkerOutlet implements MarkerOutlet {
|
|
5
6
|
private didPushMarkers = false
|
|
6
7
|
private pushedMarkers?: DurationMarker[]
|
|
7
8
|
private didPushSamples = false
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import EventMarkerOutlet from '../../components/EventMarkerOutlet'
|
|
2
|
+
import { LslOutlet } from '../../components/LslStreamOutlet'
|
|
3
|
+
|
|
4
|
+
export default class SpyMarkerOutlet extends EventMarkerOutlet {
|
|
5
|
+
public totalWaitTimeMs: number
|
|
6
|
+
|
|
7
|
+
public constructor(lslOutlet: LslOutlet) {
|
|
8
|
+
super(lslOutlet)
|
|
9
|
+
this.totalWaitTimeMs = 0
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
public async wait(durationMs: number) {
|
|
13
|
+
this.totalWaitTimeMs += durationMs
|
|
14
|
+
return Promise.resolve()
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
public getLslOutlet() {
|
|
18
|
+
return this.lslOutlet
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
public resetTestDouble() {
|
|
22
|
+
this.totalWaitTimeMs = 0
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { StreamInfo, StreamInfoOptions } from '
|
|
2
|
-
import { BoundStreamInfo } from '
|
|
1
|
+
import { StreamInfo, StreamInfoOptions } from '../../components/LslStreamInfo'
|
|
2
|
+
import { BoundStreamInfo } from '../../nodeLsl.types'
|
|
3
3
|
|
|
4
4
|
export default class FakeStreamInfo implements StreamInfo {
|
|
5
5
|
public static callsToConstructor: StreamInfoOptions[] = []
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import LslStreamInfo, {
|
|
1
|
+
import LslStreamInfo, {
|
|
2
|
+
StreamInfoOptions,
|
|
3
|
+
} from '../../components/LslStreamInfo'
|
|
2
4
|
|
|
3
|
-
export default class
|
|
5
|
+
export default class SpyStreamInfo extends LslStreamInfo {
|
|
4
6
|
public constructor(options: StreamInfoOptions) {
|
|
5
7
|
super(options)
|
|
6
8
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { randomInt } from 'crypto'
|
|
2
2
|
import { generateId } from '@sprucelabs/test-utils'
|
|
3
|
-
import { LslOutletOptions } from '../components/
|
|
3
|
+
import { LslOutletOptions } from '../components/LslStreamOutlet'
|
|
4
4
|
import { TEST_SUPPORTED_CHANNEL_FORMATS } from './consts'
|
|
5
5
|
|
|
6
6
|
export default function generateRandomOutletOptions() {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNodeLslTest.js","sourceRoot":"","sources":["../../src/__tests__/AbstractNodeLslTest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qEAAuE;AACvE,kEAA6C;AAC7C,sEAA6C;AAC7C,gFAAuD;AACvD,sFAAiE;AACjE,2EAAkD;AAClD,mFAA0D;AAC1D,4DAAwD;AACxD,uFAA8D;AAC9D,6FAAoE;AAEpE,MAAqB,mBAAoB,SAAQ,oBAAkB;IAGrD,MAAM,CAAC,KAAK,CAAC,UAAU;QAC7B,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QAExB,IAAI,CAAC,aAAa,EAAE,CAAA;IACxB,CAAC;IAES,MAAM,CAAC,aAAa;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,oBAAU,EAAE,CAAA;QAClC,gBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC3C,CAAC;IAES,MAAM,CAAC,mBAAmB;QAChC,uBAAa,CAAC,KAAK,GAAG,0BAAgB,CAAA;IAC1C,CAAC;IAES,MAAM,CAAC,iBAAiB;QAC9B,uBAAa,CAAC,KAAK,GAAG,wBAAc,CAAA;QACpC,wBAAc,CAAC,eAAe,EAAE,CAAA;IACpC,CAAC;IAES,MAAM,CAAC,cAAc;QAC3B,kBAAQ,CAAC,KAAK,GAAG,yBAAW,CAAA;IAChC,CAAC;IAES,MAAM,CAAC,sBAAsB;QACnC,0BAAoB,CAAC,KAAK,GAAG,6BAAmB,CAAA;IACpD,CAAC;;AAEyB,yBAAK,GAAG,IAAA,uBAAU,GAAE,CAAA;AACpB,wBAAI,GAAG,IAAA,uBAAU,GAAE,CAAA;AACnB,4BAAQ,GAAG,IAAA,uBAAU,GAAE,CAAA;AACvB,yBAAK,GAAG,IAAA,uBAAU,GAAE,CAAA;AACpB,gCAAY,GAAG,CAAC,IAAA,uBAAU,GAAE,EAAE,IAAA,uBAAU,GAAE,CAAC,CAAA;AAC3C,6BAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAA;AAC3C,+BAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAA;kBArCtD,mBAAmB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Liblsl.test.js","sourceRoot":"","sources":["../../src/__tests__/Liblsl.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LslInlet.test.js","sourceRoot":"","sources":["../../src/__tests__/LslInlet.test.ts"],"names":[],"mappings":"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"}
|