@neurodevs/node-lsl 16.0.3 → 17.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/__tests__/AbstractPackageTest.d.ts +1 -1
- package/build/__tests__/AbstractPackageTest.js +1 -3
- package/build/__tests__/AbstractPackageTest.js.map +1 -1
- package/build/__tests__/impl/LiblslAdapter.test.d.ts +13 -0
- package/build/__tests__/impl/LiblslAdapter.test.js +87 -1
- package/build/__tests__/impl/LiblslAdapter.test.js.map +1 -1
- package/build/__tests__/impl/LslStreamInfo.test.d.ts +3 -1
- package/build/__tests__/impl/LslStreamInfo.test.js +26 -9
- package/build/__tests__/impl/LslStreamInfo.test.js.map +1 -1
- package/build/__tests__/impl/LslStreamInlet.test.d.ts +3 -2
- package/build/__tests__/impl/LslStreamInlet.test.js +27 -21
- package/build/__tests__/impl/LslStreamInlet.test.js.map +1 -1
- package/build/__tests__/impl/LslWebSocketBridge.test.js +8 -16
- package/build/__tests__/impl/LslWebSocketBridge.test.js.map +1 -1
- package/build/impl/LiblslAdapter.d.ts +14 -4
- package/build/impl/LiblslAdapter.js +49 -5
- package/build/impl/LiblslAdapter.js.map +1 -1
- package/build/impl/LslStreamInfo.d.ts +4 -1
- package/build/impl/LslStreamInfo.js +18 -19
- package/build/impl/LslStreamInfo.js.map +1 -1
- package/build/impl/LslStreamInlet.d.ts +3 -13
- package/build/impl/LslStreamInlet.js +12 -15
- package/build/impl/LslStreamInlet.js.map +1 -1
- package/build/impl/LslWebSocketBridge.d.ts +2 -8
- package/build/impl/LslWebSocketBridge.js +2 -2
- package/build/impl/LslWebSocketBridge.js.map +1 -1
- package/build/scripts/runOutletToInlet.js +1 -1
- package/build/scripts/runOutletToInlet.js.map +1 -1
- package/build/testDoubles/Liblsl/FakeLiblsl.d.ts +8 -4
- package/build/testDoubles/Liblsl/FakeLiblsl.js +12 -4
- package/build/testDoubles/Liblsl/FakeLiblsl.js.map +1 -1
- package/build/testDoubles/StreamInfo/FakeStreamInfo.js +1 -1
- package/build/testDoubles/StreamInfo/FakeStreamInfo.js.map +1 -1
- package/build/testDoubles/StreamInlet/SpyStreamInlet.d.ts +0 -1
- package/build/testDoubles/StreamInlet/SpyStreamInlet.js +0 -3
- package/build/testDoubles/StreamInlet/SpyStreamInlet.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/AbstractPackageTest.ts +1 -5
- package/src/__tests__/impl/LiblslAdapter.test.ts +118 -2
- package/src/__tests__/impl/LslStreamInfo.test.ts +34 -9
- package/src/__tests__/impl/LslStreamInlet.test.ts +36 -26
- package/src/__tests__/impl/LslWebSocketBridge.test.ts +9 -24
- package/src/impl/LiblslAdapter.ts +84 -11
- package/src/impl/LslStreamInfo.ts +21 -28
- package/src/impl/LslStreamInlet.ts +20 -37
- package/src/impl/LslWebSocketBridge.ts +3 -9
- package/src/scripts/runOutletToInlet.ts +6 -3
- package/src/testDoubles/Liblsl/FakeLiblsl.ts +18 -6
- package/src/testDoubles/StreamInfo/FakeStreamInfo.ts +1 -1
- package/src/testDoubles/StreamInlet/SpyStreamInlet.ts +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LslWebSocketBridge.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/LslWebSocketBridge.test.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,kBAEN,MAAM,kCAAkC,CAAA;AACzC,OAAO,eAAe,MAAM,kDAAkD,CAAA;AAE9E,OAAO,aAAa,MAAM,+CAA+C,CAAA;AACzE,OAAO,mBAAmB,MAAM,qDAAqD,CAAA;AACrF,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,kBAAkB,EAAE,CAAA;QACzB,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAC7B,IAAI,CAAC,wBAAwB,EAAE,CAAA;QAE/B,IAAI,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"LslWebSocketBridge.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/LslWebSocketBridge.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ export default class LiblslAdapter implements Liblsl {
|
|
|
5
5
|
static open: typeof open;
|
|
6
6
|
static define: typeof define;
|
|
7
7
|
static load: typeof load;
|
|
8
|
+
static alloc: (size: number, fill?: string | Uint8Array | number, encoding?: BufferEncoding) => Buffer<ArrayBuffer>;
|
|
8
9
|
private static instance?;
|
|
9
10
|
liblslPath: string;
|
|
10
11
|
private bindings;
|
|
@@ -19,8 +20,9 @@ export default class LiblslAdapter implements Liblsl {
|
|
|
19
20
|
private openLiblsl;
|
|
20
21
|
private defineLiblslBindings;
|
|
21
22
|
createStreamInfo(options: CreateStreamInfoOptions): BoundStreamInfo;
|
|
22
|
-
destroyStreamInfo(options: DestroyStreamInfoOptions): void;
|
|
23
23
|
appendChannelsToStreamInfo(options: AppendChannelsToStreamInfoOptions): void;
|
|
24
|
+
destroyStreamInfo(options: DestroyStreamInfoOptions): void;
|
|
25
|
+
resolveByProp(options: ResolveByPropOptions): Promise<bigint[]>;
|
|
24
26
|
createOutlet(options: CreateOutletOptions): BoundOutlet;
|
|
25
27
|
pushSampleFloatTimestamp(options: PushSampleFloatTimestampOptions): LslErrorCode;
|
|
26
28
|
pushSampleStringTimestamp(options: PushSampleStringTimestampOptions): LslErrorCode;
|
|
@@ -36,6 +38,7 @@ export default class LiblslAdapter implements Liblsl {
|
|
|
36
38
|
private get open();
|
|
37
39
|
private get define();
|
|
38
40
|
private get load();
|
|
41
|
+
private get alloc();
|
|
39
42
|
private get liblslFuncs();
|
|
40
43
|
}
|
|
41
44
|
export interface Liblsl {
|
|
@@ -43,6 +46,7 @@ export interface Liblsl {
|
|
|
43
46
|
createStreamInfo(options: CreateStreamInfoOptions): BoundStreamInfo;
|
|
44
47
|
destroyStreamInfo(options: DestroyStreamInfoOptions): void;
|
|
45
48
|
appendChannelsToStreamInfo(options: AppendChannelsToStreamInfoOptions): void;
|
|
49
|
+
resolveByProp(options: ResolveByPropOptions): Promise<bigint[]>;
|
|
46
50
|
createOutlet(options: CreateOutletOptions): BoundOutlet;
|
|
47
51
|
pushSampleFloatTimestamp(options: PushSampleFloatTimestampOptions): LslErrorCode;
|
|
48
52
|
pushSampleStringTimestamp(options: PushSampleStringTimestampOptions): LslErrorCode;
|
|
@@ -68,14 +72,20 @@ export interface AppendChannelsToStreamInfoOptions {
|
|
|
68
72
|
info: BoundStreamInfo;
|
|
69
73
|
channels: LslChannel[];
|
|
70
74
|
}
|
|
75
|
+
export interface DestroyStreamInfoOptions {
|
|
76
|
+
info: BoundStreamInfo;
|
|
77
|
+
}
|
|
78
|
+
export interface ResolveByPropOptions {
|
|
79
|
+
prop: string;
|
|
80
|
+
value: string;
|
|
81
|
+
minResults?: number;
|
|
82
|
+
timeoutMs?: number;
|
|
83
|
+
}
|
|
71
84
|
export interface CreateOutletOptions {
|
|
72
85
|
info: BoundStreamInfo;
|
|
73
86
|
chunkSize: number;
|
|
74
87
|
maxBufferedMs: number;
|
|
75
88
|
}
|
|
76
|
-
export interface DestroyStreamInfoOptions {
|
|
77
|
-
info: BoundStreamInfo;
|
|
78
|
-
}
|
|
79
89
|
export interface PushSampleFloatTimestampOptions {
|
|
80
90
|
outlet: BoundOutlet;
|
|
81
91
|
sample: number[];
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { DataType, define, load, open, unwrapPointer } from 'ffi-rs';
|
|
1
|
+
import { createPointer, DataType, define, load, open, unwrapPointer, } from 'ffi-rs';
|
|
2
2
|
export default class LiblslAdapter {
|
|
3
3
|
static open = open;
|
|
4
4
|
static define = define;
|
|
5
5
|
static load = load;
|
|
6
|
+
static alloc = Buffer.alloc;
|
|
6
7
|
static instance;
|
|
7
8
|
liblslPath;
|
|
8
9
|
bindings;
|
|
@@ -58,10 +59,6 @@ export default class LiblslAdapter {
|
|
|
58
59
|
sourceId,
|
|
59
60
|
]);
|
|
60
61
|
}
|
|
61
|
-
destroyStreamInfo(options) {
|
|
62
|
-
const { info } = options;
|
|
63
|
-
this.bindings.lsl_destroy_streaminfo([info]);
|
|
64
|
-
}
|
|
65
62
|
appendChannelsToStreamInfo(options) {
|
|
66
63
|
const { info, channels } = options;
|
|
67
64
|
const description = this.bindings.lsl_get_desc([info]);
|
|
@@ -77,6 +74,50 @@ export default class LiblslAdapter {
|
|
|
77
74
|
this.bindings.lsl_append_child_value([child, 'type', channel.type]);
|
|
78
75
|
}
|
|
79
76
|
}
|
|
77
|
+
destroyStreamInfo(options) {
|
|
78
|
+
const { info } = options;
|
|
79
|
+
this.bindings.lsl_destroy_streaminfo([info]);
|
|
80
|
+
}
|
|
81
|
+
async resolveByProp(options) {
|
|
82
|
+
const { prop, value, minResults = 1, timeoutMs = 1000 } = options;
|
|
83
|
+
const maxResults = 1024;
|
|
84
|
+
const bytesPerPointer = 8;
|
|
85
|
+
const resultsBuffer = this.alloc(maxResults * bytesPerPointer);
|
|
86
|
+
const resultsBufferPtr = unwrapPointer(createPointer({
|
|
87
|
+
paramsType: [DataType.U8Array],
|
|
88
|
+
paramsValue: [resultsBuffer],
|
|
89
|
+
}))[0];
|
|
90
|
+
const numResults = await this.load({
|
|
91
|
+
library: 'lsl',
|
|
92
|
+
funcName: 'lsl_resolve_byprop',
|
|
93
|
+
retType: DataType.I32,
|
|
94
|
+
paramsType: [
|
|
95
|
+
DataType.External,
|
|
96
|
+
DataType.I32,
|
|
97
|
+
DataType.String,
|
|
98
|
+
DataType.String,
|
|
99
|
+
DataType.I32,
|
|
100
|
+
DataType.Double,
|
|
101
|
+
],
|
|
102
|
+
paramsValue: [
|
|
103
|
+
resultsBufferPtr,
|
|
104
|
+
maxResults,
|
|
105
|
+
prop,
|
|
106
|
+
value,
|
|
107
|
+
minResults,
|
|
108
|
+
timeoutMs / 1000,
|
|
109
|
+
],
|
|
110
|
+
runInNewThread: true,
|
|
111
|
+
});
|
|
112
|
+
const handles = [];
|
|
113
|
+
for (let i = 0; i < numResults; i++) {
|
|
114
|
+
const handle = resultsBuffer.readBigUInt64LE(i * bytesPerPointer);
|
|
115
|
+
if (handle !== 0n) {
|
|
116
|
+
handles.push(handle);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return handles;
|
|
120
|
+
}
|
|
80
121
|
createOutlet(options) {
|
|
81
122
|
const { info, chunkSize, maxBufferedMs } = options;
|
|
82
123
|
return this.bindings.lsl_create_outlet([
|
|
@@ -176,6 +217,9 @@ export default class LiblslAdapter {
|
|
|
176
217
|
get load() {
|
|
177
218
|
return LiblslAdapter.load;
|
|
178
219
|
}
|
|
220
|
+
get alloc() {
|
|
221
|
+
return LiblslAdapter.alloc;
|
|
222
|
+
}
|
|
179
223
|
get liblslFuncs() {
|
|
180
224
|
return {
|
|
181
225
|
lsl_create_streaminfo: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiblslAdapter.js","sourceRoot":"","sources":["../../src/impl/LiblslAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"LiblslAdapter.js","sourceRoot":"","sources":["../../src/impl/LiblslAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,11 +18,13 @@ export default class LslStreamInfo implements StreamInfo {
|
|
|
18
18
|
private lsl;
|
|
19
19
|
protected constructor(options: StreamInfoOptions);
|
|
20
20
|
static Create(options: StreamInfoOptions): StreamInfo;
|
|
21
|
+
static From(handle: BoundStreamInfo): StreamInfo;
|
|
21
22
|
private createStreamInfo;
|
|
22
23
|
private get lslChannelFormat();
|
|
23
24
|
private appendChannelsToStreamInfo;
|
|
24
25
|
destroy(): void;
|
|
25
26
|
get boundStreamInfo(): BoundStreamInfo;
|
|
27
|
+
set boundStreamInfo(boundInfo: BoundStreamInfo);
|
|
26
28
|
}
|
|
27
29
|
export interface StreamInfo {
|
|
28
30
|
destroy(): void;
|
|
@@ -34,7 +36,7 @@ export interface StreamInfo {
|
|
|
34
36
|
readonly channelCount: number;
|
|
35
37
|
readonly channelFormat: ChannelFormat;
|
|
36
38
|
readonly sampleRateHz: number;
|
|
37
|
-
|
|
39
|
+
boundStreamInfo: BoundStreamInfo;
|
|
38
40
|
}
|
|
39
41
|
type StreamInfoConstructor = new (options: StreamInfoOptions) => StreamInfo;
|
|
40
42
|
export interface StreamInfoOptions {
|
|
@@ -45,5 +47,6 @@ export interface StreamInfoOptions {
|
|
|
45
47
|
type?: string;
|
|
46
48
|
sourceId?: string;
|
|
47
49
|
units?: string;
|
|
50
|
+
boundStreamInfo?: BoundStreamInfo;
|
|
48
51
|
}
|
|
49
52
|
export {};
|
|
@@ -3,7 +3,7 @@ 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 =
|
|
6
|
+
static instanceCache = new Map();
|
|
7
7
|
name;
|
|
8
8
|
type;
|
|
9
9
|
sourceId;
|
|
@@ -19,7 +19,7 @@ export default class LslStreamInfo {
|
|
|
19
19
|
defaultUnits = 'N/A';
|
|
20
20
|
lsl = LiblslAdapter.getInstance();
|
|
21
21
|
constructor(options) {
|
|
22
|
-
const { name = this.defaultName, type = this.defaultType, sourceId = this.defaultSourceId, channelNames, channelFormat, sampleRateHz, units = this.defaultUnits, } = options;
|
|
22
|
+
const { name = this.defaultName, type = this.defaultType, sourceId = this.defaultSourceId, channelNames, channelFormat, sampleRateHz, units = this.defaultUnits, boundStreamInfo, } = options;
|
|
23
23
|
this.name = name;
|
|
24
24
|
this.type = type;
|
|
25
25
|
this.sourceId = sourceId;
|
|
@@ -28,27 +28,23 @@ export default class LslStreamInfo {
|
|
|
28
28
|
this.channelFormat = channelFormat;
|
|
29
29
|
this.sampleRateHz = sampleRateHz;
|
|
30
30
|
this.units = units;
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
if (!boundStreamInfo) {
|
|
32
|
+
this.createStreamInfo();
|
|
33
|
+
this.appendChannelsToStreamInfo();
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
this.boundInfo = boundStreamInfo;
|
|
37
|
+
}
|
|
33
38
|
}
|
|
34
39
|
static Create(options) {
|
|
35
|
-
const
|
|
36
|
-
const
|
|
37
|
-
|
|
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
|
-
}
|
|
40
|
+
const instance = new (this.Class ?? this)(options);
|
|
41
|
+
const { boundStreamInfo: handle } = instance;
|
|
42
|
+
this.instanceCache.set(handle, instance);
|
|
50
43
|
return instance;
|
|
51
44
|
}
|
|
45
|
+
static From(handle) {
|
|
46
|
+
return this.instanceCache.get(handle);
|
|
47
|
+
}
|
|
52
48
|
createStreamInfo() {
|
|
53
49
|
this.boundInfo = this.lsl.createStreamInfo({
|
|
54
50
|
name: this.name,
|
|
@@ -78,5 +74,8 @@ export default class LslStreamInfo {
|
|
|
78
74
|
get boundStreamInfo() {
|
|
79
75
|
return this.boundInfo;
|
|
80
76
|
}
|
|
77
|
+
set boundStreamInfo(boundInfo) {
|
|
78
|
+
this.boundInfo = boundInfo;
|
|
79
|
+
}
|
|
81
80
|
}
|
|
82
81
|
//# sourceMappingURL=LslStreamInfo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LslStreamInfo.js","sourceRoot":"","sources":["../../src/impl/LslStreamInfo.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,aAAa,MAAM,oBAAoB,CAAA;AAE9C,MAAM,CAAC,OAAO,OAAO,aAAa;IACvB,MAAM,CAAC,KAAK,CAAwB;IAEnC,MAAM,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"LslStreamInfo.js","sourceRoot":"","sources":["../../src/impl/LslStreamInfo.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import { BoundInlet
|
|
1
|
+
import { BoundInlet } from './LiblslAdapter.js';
|
|
2
2
|
import { StreamInfo } from './LslStreamInfo.js';
|
|
3
3
|
export default class LslStreamInlet implements StreamInlet {
|
|
4
4
|
static Class?: StreamInletConstructor;
|
|
5
5
|
isRunning: boolean;
|
|
6
6
|
protected info: StreamInfo;
|
|
7
|
-
protected name: string;
|
|
8
|
-
private channelNames;
|
|
9
7
|
private channelCount;
|
|
10
8
|
private chunkSize;
|
|
11
9
|
private maxBufferedMs;
|
|
@@ -19,11 +17,10 @@ export default class LslStreamInlet implements StreamInlet {
|
|
|
19
17
|
private timestampBufferPtr;
|
|
20
18
|
private errorCodeBuffer;
|
|
21
19
|
private errorCodeBufferPtr;
|
|
22
|
-
private readonly defaultName;
|
|
23
20
|
private readonly sixMinutesInMs;
|
|
24
21
|
private lsl;
|
|
25
22
|
protected constructor(info: StreamInfo, options: StreamInletOptions, onData: OnDataCallback);
|
|
26
|
-
static Create(options: StreamInletOptions, onData: OnDataCallback): StreamInlet
|
|
23
|
+
static Create(options: StreamInletOptions, onData: OnDataCallback): Promise<StreamInlet>;
|
|
27
24
|
private setPullDataMethod;
|
|
28
25
|
private createBoundInlet;
|
|
29
26
|
private get boundStreamInfo();
|
|
@@ -62,16 +59,9 @@ export interface StreamInlet {
|
|
|
62
59
|
}
|
|
63
60
|
export type StreamInletConstructor = new (info: StreamInfo, options: StreamInletOptions, onData: OnDataCallback) => StreamInlet;
|
|
64
61
|
export interface StreamInletOptions {
|
|
65
|
-
|
|
66
|
-
channelFormat: ChannelFormat;
|
|
67
|
-
sampleRateHz: number;
|
|
62
|
+
sourceId: string;
|
|
68
63
|
chunkSize: number;
|
|
69
64
|
maxBufferedMs?: number;
|
|
70
65
|
timeoutMs?: number;
|
|
71
|
-
name?: string;
|
|
72
|
-
type?: string;
|
|
73
|
-
sourceId?: string;
|
|
74
|
-
manufacturer?: string;
|
|
75
|
-
units?: string;
|
|
76
66
|
}
|
|
77
67
|
export type OnDataCallback = (samples: Float32Array, timestamps: Float64Array) => void;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import generateId from '@neurodevs/generate-id';
|
|
2
1
|
import { createPointer, DataType, unwrapPointer } from 'ffi-rs';
|
|
3
2
|
import handleError from '../handleError.js';
|
|
4
3
|
import LiblslAdapter from './LiblslAdapter.js';
|
|
@@ -7,8 +6,6 @@ export default class LslStreamInlet {
|
|
|
7
6
|
static Class;
|
|
8
7
|
isRunning = false;
|
|
9
8
|
info;
|
|
10
|
-
name;
|
|
11
|
-
channelNames;
|
|
12
9
|
channelCount;
|
|
13
10
|
chunkSize;
|
|
14
11
|
maxBufferedMs;
|
|
@@ -22,15 +19,12 @@ export default class LslStreamInlet {
|
|
|
22
19
|
timestampBufferPtr;
|
|
23
20
|
errorCodeBuffer;
|
|
24
21
|
errorCodeBufferPtr;
|
|
25
|
-
defaultName = `lsl-inlet-${generateId()}`;
|
|
26
22
|
sixMinutesInMs = 360 * 1000;
|
|
27
23
|
lsl = LiblslAdapter.getInstance();
|
|
28
24
|
constructor(info, options, onData) {
|
|
29
|
-
const {
|
|
25
|
+
const { chunkSize, maxBufferedMs, timeoutMs } = options ?? {};
|
|
30
26
|
this.info = info;
|
|
31
|
-
this.
|
|
32
|
-
this.channelNames = channelNames;
|
|
33
|
-
this.channelCount = this.channelNames.length;
|
|
27
|
+
this.channelCount = this.info.channelCount;
|
|
34
28
|
this.chunkSize = chunkSize;
|
|
35
29
|
this.maxBufferedMs = maxBufferedMs ?? this.sixMinutesInMs;
|
|
36
30
|
this.timeoutMs = timeoutMs ?? 0;
|
|
@@ -38,11 +32,9 @@ export default class LslStreamInlet {
|
|
|
38
32
|
this.setPullDataMethod();
|
|
39
33
|
this.createBoundInlet();
|
|
40
34
|
}
|
|
41
|
-
static Create(options, onData) {
|
|
42
|
-
|
|
43
|
-
const
|
|
44
|
-
const infoOptions = rest;
|
|
45
|
-
const info = this.LslStreamInfo(infoOptions);
|
|
35
|
+
static async Create(options, onData) {
|
|
36
|
+
const { sourceId } = options;
|
|
37
|
+
const info = await this.LslStreamInfo(sourceId);
|
|
46
38
|
return new (this.Class ?? this)(info, options, onData);
|
|
47
39
|
}
|
|
48
40
|
setPullDataMethod() {
|
|
@@ -181,8 +173,13 @@ export default class LslStreamInlet {
|
|
|
181
173
|
destroyBoundInlet() {
|
|
182
174
|
this.lsl.destroyInlet({ inlet: this.inlet });
|
|
183
175
|
}
|
|
184
|
-
static LslStreamInfo(
|
|
185
|
-
|
|
176
|
+
static async LslStreamInfo(sourceId) {
|
|
177
|
+
const lsl = LiblslAdapter.getInstance();
|
|
178
|
+
const handles = await lsl.resolveByProp({
|
|
179
|
+
prop: 'source_id',
|
|
180
|
+
value: sourceId,
|
|
181
|
+
});
|
|
182
|
+
return LslStreamInfo.From(handles[0]);
|
|
186
183
|
}
|
|
187
184
|
}
|
|
188
185
|
//# sourceMappingURL=LslStreamInlet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LslStreamInlet.js","sourceRoot":"","sources":["../../src/impl/LslStreamInlet.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"LslStreamInlet.js","sourceRoot":"","sources":["../../src/impl/LslStreamInlet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import WebSocket, { WebSocketServer } from 'ws';
|
|
2
|
-
import { ChannelFormat } from './LiblslAdapter.js';
|
|
3
2
|
import { StreamInlet } from './LslStreamInlet.js';
|
|
4
3
|
export default class LslWebSocketBridge implements WebSocketBridge {
|
|
5
4
|
static Class?: WebSocketBridgeConstructor;
|
|
@@ -10,7 +9,7 @@ export default class LslWebSocketBridge implements WebSocketBridge {
|
|
|
10
9
|
private remoteSockets?;
|
|
11
10
|
private isDestroyed;
|
|
12
11
|
protected constructor(options: WebSocketBridgeConstructorOptions);
|
|
13
|
-
static Create(options: WebSocketBridgeOptions): WebSocketBridge
|
|
12
|
+
static Create(options: WebSocketBridgeOptions): Promise<WebSocketBridge>;
|
|
14
13
|
private throwIfNoLocalServerOrRemoteSockets;
|
|
15
14
|
private readonly insufficientOptionsError;
|
|
16
15
|
activate(): void;
|
|
@@ -39,13 +38,8 @@ export interface WebSocketBridge {
|
|
|
39
38
|
}
|
|
40
39
|
export type WebSocketBridgeConstructor = new (options: WebSocketBridgeConstructorOptions) => WebSocketBridge;
|
|
41
40
|
export interface WebSocketBridgeOptions {
|
|
42
|
-
|
|
43
|
-
channelFormat: ChannelFormat;
|
|
44
|
-
sampleRateHz: number;
|
|
41
|
+
sourceId: string;
|
|
45
42
|
chunkSize: number;
|
|
46
|
-
name?: string;
|
|
47
|
-
type?: string;
|
|
48
|
-
sourceId?: string;
|
|
49
43
|
listenPort?: number;
|
|
50
44
|
connectUrls?: string | string[];
|
|
51
45
|
}
|
|
@@ -15,12 +15,12 @@ export default class LslWebSocketBridge {
|
|
|
15
15
|
this.remoteSockets = remoteSockets;
|
|
16
16
|
this.throwIfNoLocalServerOrRemoteSockets();
|
|
17
17
|
}
|
|
18
|
-
static Create(options) {
|
|
18
|
+
static async Create(options) {
|
|
19
19
|
const { listenPort, connectUrls, ...rest } = options;
|
|
20
20
|
const inletOptions = rest;
|
|
21
21
|
const localServer = this.WebSocketServer(listenPort);
|
|
22
22
|
const remoteSockets = this.createSocketsFrom(connectUrls);
|
|
23
|
-
const inlet = this.LslStreamInlet(inletOptions, localServer, remoteSockets);
|
|
23
|
+
const inlet = await this.LslStreamInlet(inletOptions, localServer, remoteSockets);
|
|
24
24
|
return new (this.Class ?? this)({
|
|
25
25
|
...options,
|
|
26
26
|
inlet,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LslWebSocketBridge.js","sourceRoot":"","sources":["../../src/impl/LslWebSocketBridge.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,EAAE,EAAE,eAAe,EAAE,MAAM,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"LslWebSocketBridge.js","sourceRoot":"","sources":["../../src/impl/LslWebSocketBridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ const inletOptions = {
|
|
|
22
22
|
channelFormat: 'float32',
|
|
23
23
|
chunkSize: 1,
|
|
24
24
|
};
|
|
25
|
-
const inlet = LslStreamInlet.Create(inletOptions, (samples, timestamps) => {
|
|
25
|
+
const inlet = await LslStreamInlet.Create(inletOptions, (samples, timestamps) => {
|
|
26
26
|
console.log('Received samples:', samples, 'at timestamps:', timestamps);
|
|
27
27
|
});
|
|
28
28
|
console.log('Start pulling...');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runOutletToInlet.js","sourceRoot":"","sources":["../../src/scripts/runOutletToInlet.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,2BAA2B,CAAA;AACtD,OAAO,eAAe,MAAM,4BAA4B,CAAA;AAExD,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;AACjC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,cAAc;IACxB,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;IACnC,aAAa,EAAE,SAAS;IACxB,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,MAAM;IACb,YAAY,EAAE,MAAM;CACvB,CAAC,CAAA;AAEF,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;AAEhC,MAAM,YAAY,GAAG;IACjB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,cAAc;IACxB,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;IACnC,aAAa,EAAE,SAAkB;IACjC,SAAS,EAAE,CAAC;CACf,CAAA;AAED,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"runOutletToInlet.js","sourceRoot":"","sources":["../../src/scripts/runOutletToInlet.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,2BAA2B,CAAA;AACtD,OAAO,eAAe,MAAM,4BAA4B,CAAA;AAExD,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;AACjC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,cAAc;IACxB,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;IACnC,aAAa,EAAE,SAAS;IACxB,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,MAAM;IACb,YAAY,EAAE,MAAM;CACvB,CAAC,CAAA;AAEF,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;AAEhC,MAAM,YAAY,GAAG;IACjB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,cAAc;IACxB,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;IACnC,aAAa,EAAE,SAAkB;IACjC,SAAS,EAAE,CAAC;CACf,CAAA;AAED,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,MAAM,CACrC,YAAY,EACZ,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;IACpB,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,OAAO,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAA;AAC3E,CAAC,CACJ,CAAA;AAED,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;AAC/B,KAAK,CAAC,YAAY,EAAE,CAAA;AAEpB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;AACpC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;AAExD,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;AACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACxB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IACzB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AAC3D,CAAC;AAED,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;AAEzD,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;AACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACxB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IACzB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;AAC5D,CAAC"}
|
|
@@ -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 fakeStreamInfoHandles: BoundStreamInfo[];
|
|
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 fakeStreamInfoHandles = [];
|
|
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
|
-
|
|
50
|
-
this.
|
|
55
|
+
async resolveByProp(options) {
|
|
56
|
+
this.lastResolveByPropOptions = options;
|
|
57
|
+
return FakeLiblsl.fakeStreamInfoHandles;
|
|
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++;
|