node-labstreaminglayer
Version:
Node.js bindings for Lab Streaming Layer (LSL)
191 lines • 9.72 kB
TypeScript
/**
* @fileoverview Low-level FFI (Foreign Function Interface) bindings for Lab Streaming Layer (LSL).
*
* This module provides direct access to the LSL C library functions through Koffi FFI.
* Most users should use the high-level classes (StreamInfo, StreamOutlet, StreamInlet) instead
* of calling these functions directly.
*
* @module lib/index
* @see {@link https://github.com/sccn/labstreaminglayer} - LSL Documentation
* @see {@link https://koffi.dev/} - Koffi FFI Documentation
*/
import koffi from 'koffi';
export declare const lib: koffi.IKoffiLib;
/** @const {number} Undefined format (0) - Should not be used for data streams */
export declare const cf_undefined = 0;
/** @const {number} 32-bit IEEE floating point (1) - Standard single precision */
export declare const cf_float32 = 1;
/** @const {number} 64-bit IEEE floating point (2) - Double precision */
export declare const cf_double64 = 2;
/** @const {number} Variable-length string (3) - UTF-8 encoded text */
export declare const cf_string = 3;
/** @const {number} 32-bit signed integer (4) */
export declare const cf_int32 = 4;
/** @const {number} 16-bit signed integer (5) */
export declare const cf_int16 = 5;
/** @const {number} 8-bit signed integer (6) */
export declare const cf_int8 = 6;
/** @const {number} 64-bit signed integer (7) - May have limited support */
export declare const cf_int64 = 7;
/**
* Maps string format names to numeric channel format constants.
* Used when creating streams with string-based format specification.
* @example
* const format = string2fmt['float32']; // Returns cf_float32 (1)
*/
export declare const string2fmt: {
[key: string]: number;
};
/**
* Array mapping numeric format constants to string names.
* Index corresponds to the channel format constant value.
* @example
* const name = fmt2string[cf_float32]; // Returns 'float32'
*/
export declare const fmt2string: string[];
export declare const lsl_create_streaminfo: koffi.KoffiFunction;
export declare const lsl_destroy_streaminfo: koffi.KoffiFunction;
export declare const lsl_get_name: koffi.KoffiFunction;
export declare const lsl_get_type: koffi.KoffiFunction;
export declare const lsl_get_channel_count: koffi.KoffiFunction;
export declare const lsl_get_nominal_srate: koffi.KoffiFunction;
export declare const lsl_get_channel_format: koffi.KoffiFunction;
export declare const lsl_get_source_id: koffi.KoffiFunction;
export declare const lsl_get_version: koffi.KoffiFunction;
export declare const lsl_get_created_at: koffi.KoffiFunction;
export declare const lsl_get_uid: koffi.KoffiFunction;
export declare const lsl_get_session_id: koffi.KoffiFunction;
export declare const lsl_get_hostname: koffi.KoffiFunction;
export declare const lsl_get_desc: koffi.KoffiFunction;
export declare const lsl_get_xml: koffi.KoffiFunction;
export declare const lsl_create_outlet: koffi.KoffiFunction;
export declare const lsl_destroy_outlet: koffi.KoffiFunction;
export declare const lsl_have_consumers: koffi.KoffiFunction;
export declare const lsl_wait_for_consumers: koffi.KoffiFunction;
export declare const lsl_get_info: koffi.KoffiFunction;
export declare const lsl_push_sample_f: koffi.KoffiFunction;
export declare const lsl_push_sample_d: koffi.KoffiFunction;
export declare const lsl_push_sample_i: koffi.KoffiFunction;
export declare const lsl_push_sample_s: koffi.KoffiFunction;
export declare const lsl_push_sample_c: koffi.KoffiFunction;
export declare const lsl_push_sample_l: koffi.KoffiFunction;
export declare const lsl_push_sample_str: koffi.KoffiFunction;
export declare const lsl_push_sample_v: koffi.KoffiFunction;
export declare const lsl_push_chunk_f: koffi.KoffiFunction;
export declare const lsl_push_chunk_ft: koffi.KoffiFunction;
export declare const lsl_push_chunk_d: koffi.KoffiFunction;
export declare const lsl_push_chunk_dt: koffi.KoffiFunction;
export declare const lsl_push_chunk_i: koffi.KoffiFunction;
export declare const lsl_push_chunk_it: koffi.KoffiFunction;
export declare const lsl_push_chunk_s: koffi.KoffiFunction;
export declare const lsl_push_chunk_st: koffi.KoffiFunction;
export declare const lsl_push_chunk_c: koffi.KoffiFunction;
export declare const lsl_push_chunk_ct: koffi.KoffiFunction;
export declare const lsl_push_chunk_l: koffi.KoffiFunction;
export declare const lsl_push_chunk_lt: koffi.KoffiFunction;
export declare const lsl_push_chunk_str: koffi.KoffiFunction;
export declare const lsl_push_chunk_strt: koffi.KoffiFunction;
export declare const lsl_create_inlet: koffi.KoffiFunction;
export declare const lsl_destroy_inlet: koffi.KoffiFunction;
export declare const lsl_get_fullinfo: koffi.KoffiFunction;
export declare const lsl_open_stream: koffi.KoffiFunction;
export declare const lsl_close_stream: koffi.KoffiFunction;
export declare const lsl_time_correction: koffi.KoffiFunction;
export declare const lsl_set_postprocessing: koffi.KoffiFunction;
export declare const lsl_samples_available: koffi.KoffiFunction;
export declare const lsl_inlet_flush: koffi.KoffiFunction;
export declare const lsl_was_clock_reset: koffi.KoffiFunction;
export declare const lsl_pull_sample_f: koffi.KoffiFunction;
export declare const lsl_pull_sample_d: koffi.KoffiFunction;
export declare const lsl_pull_sample_i: koffi.KoffiFunction;
export declare const lsl_pull_sample_s: koffi.KoffiFunction;
export declare const lsl_pull_sample_c: koffi.KoffiFunction;
export declare const lsl_pull_sample_l: koffi.KoffiFunction;
export declare const lsl_pull_sample_str: koffi.KoffiFunction;
export declare const lsl_pull_sample_v: koffi.KoffiFunction;
export declare const lsl_pull_chunk_f: koffi.KoffiFunction;
export declare const lsl_pull_chunk_d: koffi.KoffiFunction;
export declare const lsl_pull_chunk_i: koffi.KoffiFunction;
export declare const lsl_pull_chunk_s: koffi.KoffiFunction;
export declare const lsl_pull_chunk_c: koffi.KoffiFunction;
export declare const lsl_pull_chunk_l: koffi.KoffiFunction;
export declare const lsl_pull_chunk_str: koffi.KoffiFunction;
export declare const lsl_resolve_all: koffi.KoffiFunction;
export declare const lsl_resolve_byprop: koffi.KoffiFunction;
export declare const lsl_resolve_bypred: koffi.KoffiFunction;
export declare const lsl_create_continuous_resolver: koffi.KoffiFunction;
export declare const lsl_create_continuous_resolver_byprop: koffi.KoffiFunction;
export declare const lsl_create_continuous_resolver_bypred: koffi.KoffiFunction;
export declare const lsl_destroy_continuous_resolver: koffi.KoffiFunction;
export declare const lsl_resolver_results: koffi.KoffiFunction;
export declare const lsl_local_clock: koffi.KoffiFunction;
export declare const lsl_protocol_version: koffi.KoffiFunction;
export declare const lsl_library_version: koffi.KoffiFunction;
export declare const lsl_library_info: koffi.KoffiFunction;
export declare const lsl_destroy_string: koffi.KoffiFunction;
export declare const lsl_first_child: koffi.KoffiFunction;
export declare const lsl_last_child: koffi.KoffiFunction;
export declare const lsl_next_sibling: koffi.KoffiFunction;
export declare const lsl_next_sibling_n: koffi.KoffiFunction;
export declare const lsl_previous_sibling: koffi.KoffiFunction;
export declare const lsl_previous_sibling_n: koffi.KoffiFunction;
export declare const lsl_parent: koffi.KoffiFunction;
export declare const lsl_child: koffi.KoffiFunction;
export declare const lsl_empty: koffi.KoffiFunction;
export declare const lsl_is_text: koffi.KoffiFunction;
export declare const lsl_name: koffi.KoffiFunction;
export declare const lsl_value: koffi.KoffiFunction;
export declare const lsl_child_value: koffi.KoffiFunction;
export declare const lsl_child_value_n: koffi.KoffiFunction;
export declare const lsl_append_child_value: koffi.KoffiFunction;
export declare const lsl_prepend_child_value: koffi.KoffiFunction;
export declare const lsl_set_child_value: koffi.KoffiFunction;
export declare const lsl_set_name: koffi.KoffiFunction;
export declare const lsl_set_value: koffi.KoffiFunction;
export declare const lsl_append_child: koffi.KoffiFunction;
export declare const lsl_prepend_child: koffi.KoffiFunction;
export declare const lsl_append_copy: koffi.KoffiFunction;
export declare const lsl_prepend_copy: koffi.KoffiFunction;
export declare const lsl_remove_child: koffi.KoffiFunction;
export declare const lsl_remove_child_n: koffi.KoffiFunction;
/**
* Union type representing all valid channel format constants.
* Used for type safety in TypeScript.
*/
export type ChannelFormat = typeof cf_float32 | typeof cf_double64 | typeof cf_string | typeof cf_int32 | typeof cf_int16 | typeof cf_int8 | typeof cf_int64 | typeof cf_undefined;
/**
* Maps channel format to corresponding push_sample function.
* Used internally by StreamOutlet to select the correct function.
*/
export declare const fmt2push_sample: {
[key: number]: any;
};
/**
* Maps channel format to corresponding push_chunk function (single timestamp).
* Used for pushing chunks where all samples share the same timestamp.
*/
export declare const fmt2push_chunk: {
[key: number]: any;
};
/**
* Maps channel format to corresponding push_chunk function (multiple timestamps).
* Used for pushing chunks where each sample has its own timestamp.
*/
export declare const fmt2push_chunk_n: {
[key: number]: any;
};
/**
* Maps channel format to corresponding pull_sample function.
* Used internally by StreamInlet to select the correct function.
*/
export declare const fmt2pull_sample: {
[key: number]: any;
};
/**
* Maps channel format to corresponding pull_chunk function.
* Used for pulling multiple samples efficiently.
*/
export declare const fmt2pull_chunk: {
[key: number]: any;
};
//# sourceMappingURL=index.d.ts.map