### Build and Install Project (Commandline) Source: https://labstreaminglayer.readthedocs.io/_sources/dev/app_build.rst.txt Start the build process and install the application using CMake from the command line. This command builds the project and installs it to the specified CMAKE_INSTALL_PREFIX. ```bash cmake --build . --config Release --target install ``` -------------------------------- ### Installed Directory Tree Example Source: https://labstreaminglayer.readthedocs.io/dev/build_full_tree.html Example structure of the 'installed' directory after building and installing LabStreamingLayer, showing executables, libraries, and configuration files. ```tree ├── AppX │ ├── AppX.exe │ ├── liblsl64.dll │ ├── Qt5Xml.dll │ ├── Qt5Gui.dll │ └── AppX_configuration.ini ├── AppY │ ├── AppY.exe │ ├── AppY_conf.exe │ ├── liblsl64.dll │ └── example.png ├── examples │ ├── CppReceive.exe │ ├── CppSendRand.exe │ ├── SendDataC.exe │ ├── liblsl64.dll └── LSL ├── share │ ├── LSL │ │ ├── LSLCMake.cmake │ │ ├── LSLConfig.cmake │ │ └── LSLCMake.cmake ├── include │ ├── lsl_c.h │ └── lsl_cpp.h └── lib ├── liblsl64.dll ├── liblsl64.lib └── lslboost.lib ``` -------------------------------- ### Example installed directory tree Source: https://labstreaminglayer.readthedocs.io/dev/app_build.html Visual representation of the expected file structure after a successful build and installation. ```text ├── AppX │ ├── AppX.exe │ ├── liblsl64.dll │ ├── Qt5Xml.dll │ ├── Qt5Gui.dll │ ├── VendorDevice.dll │ └── AppX_configuration.ini └── LSL ├── share │ ├── LSL │ │ ├── LSLCMake.cmake │ │ ├── LSLConfig.cmake │ │ └── LSLCMake.cmake ├── include │ ├── lsl_c.h │ └── lsl_cpp.h └── lib ├── liblsl64.dll ├── liblsl64.lib └── lslboost.lib ``` -------------------------------- ### Installed Directory Tree Example Source: https://labstreaminglayer.readthedocs.io/_sources/dev/build_full_tree.rst.txt Illustrates the typical directory structure of an installed LabStreamingLayer distribution. ```bash ├── AppX │ ├── AppX.exe │ ├── liblsl64.dll │ ├── Qt5Xml.dll │ ├── Qt5Gui.dll │ └── AppX_configuration.ini ├── AppY │ ├── AppY.exe │ ├── AppY_conf.exe │ ├── liblsl64.dll │ └── example.png ├── examples │ ├── CppReceive.exe │ ├── CppSendRand.exe │ ├── SendDataC.exe │ ├── liblsl64.dll └── LSL ├── share │ ├── LSL │ │ ├── LSLCMake.cmake ``` -------------------------------- ### Installed Directory Tree Example Source: https://labstreaminglayer.readthedocs.io/_sources/dev/app_build.rst.txt This structure represents the typical output of an LSL application build, showing the executable, libraries, and configuration files. ```bash ├── AppX │ ├── AppX.exe │ ├── liblsl64.dll │ ├── Qt5Xml.dll │ ├── Qt5Gui.dll │ ├── VendorDevice.dll │ └── AppX_configuration.ini └── LSL ├── share │ ├── LSL │ │ ├── LSLCMake.cmake │ │ ├── LSLConfig.cmake │ │ └── LSLCMake.cmake ├── include │ ├── lsl_c.h │ └── lsl_cpp.h └── lib ├── liblsl64.dll ├── liblsl64.lib └── lslboost.lib ``` -------------------------------- ### Run Basic LSL Plotter Example Source: https://labstreaminglayer.readthedocs.io/_sources/info/viewers.rst.txt This command runs a basic visualizer included with the Python bindings for LSL. Ensure pylsl and pyqtgraph are installed. ```bash python -m pylsl.examples.ReceiveAndPlot ``` -------------------------------- ### Build the liblsl install target Source: https://labstreaminglayer.readthedocs.io/_sources/dev/lib_dev.rst.txt Compile the library and install it to the specified directory using the command line. ```bash cmake --build build -j --config Release --target install ``` -------------------------------- ### Import Visual Studio configuration Source: https://labstreaminglayer.readthedocs.io/_sources/dev/build_env.rst.txt Use this JSON configuration file to import a minimal Visual Studio installation via the installer. ```json { "version": "1.0", "components": [ "microsoft.visualstudio.component.vc.coreide", "microsoft.visualstudio.component.vc.cmake.project" ] } ``` -------------------------------- ### Set CMake Install Prefix Source: https://labstreaminglayer.readthedocs.io/dev/app_build.html Specifies the directory where the built project will be installed. Use 'build/install' as a good default. ```cmake -DCMAKE_INSTALL_PREFIX="build/install" ``` -------------------------------- ### MATLAB LSL String Marker Examples Source: https://labstreaminglayer.readthedocs.io/_sources/dev/examples.rst.txt Examples for sending and receiving irregular string-formatted streams in MATLAB. ```text https://github.com/labstreaminglayer/liblsl-Matlab/tree/master/examples/SendStringMarkers.m ``` ```text https://github.com/labstreaminglayer/liblsl-Matlab/tree/master/examples/ReceiveStringMarkers.m ``` -------------------------------- ### Launch MATLAB Visualization Tools Source: https://labstreaminglayer.readthedocs.io/_sources/info/matlab_example_with_muse.rst.txt Commands to start stream visualization within the MATLAB environment. ```matlab vis_stream ``` ```matlab bcilab ``` ```matlab eeglab ``` -------------------------------- ### Configure CMake for Mac Build Source: https://labstreaminglayer.readthedocs.io/_sources/dev/build_full_tree.rst.txt Example command for building LSL on macOS using Homebrew-installed Qt. ```bash cmake .. -DQt5_DIR=$(brew --prefix qt)/lib/cmake/Qt5/ -DLSLAPPS_LabRecorder=ON -DLSLAPPS_Benchmarks=ON -DLSLAPPS_XDFBrowser=ON ``` -------------------------------- ### Python LSL String Marker Examples Source: https://labstreaminglayer.readthedocs.io/_sources/dev/examples.rst.txt Examples for sending and receiving irregular string-formatted streams, typically used for event markers. ```text https://github.com/labstreaminglayer/liblsl-Python/tree/master/pylsl/examples/SendStringMarkers.py ``` ```text https://github.com/labstreaminglayer/liblsl-Python/tree/master/pylsl/examples/ReceiveStringMarkers.py ``` -------------------------------- ### Python SendData Example Source: https://labstreaminglayer.readthedocs.io/info/network-connectivity.html This example demonstrates how to send data using pylsl. Ensure the SendData.py script is modified to print received data to a file or console for testing. ```python https://github.com/chkothe/pylsl/blob/master/examples/SendData.py ``` -------------------------------- ### Python ReceiveData Example Source: https://labstreaminglayer.readthedocs.io/info/network-connectivity.html This example demonstrates how to receive data using pylsl. Ensure the ReceiveData.py script is modified to print received data to a file or console for testing. ```python https://github.com/chkothe/pylsl/blob/master/examples/ReceiveData.py ``` -------------------------------- ### Configure CMake for Windows Build Source: https://labstreaminglayer.readthedocs.io/_sources/dev/build_full_tree.rst.txt Example command for building LSL on Windows using Visual Studio 14 2015 with specific Qt and Boost paths. ```bash cmake .. -G "Visual Studio 14 2015 Win64" -DQt5_DIR=C:\Qt\5.11.1\msvc2015_64\lib\cmake\Qt5 -DBOOST_ROOT=C:\local\boost_1_67_0 -DLSLAPPS_LabRecorder=ON -DLSLAPPS_XDFBrowser=ON -DLSLAPPS_OpenVR=ON ``` -------------------------------- ### More Specific Stream Query Examples Source: https://labstreaminglayer.readthedocs.io/info/faqs.html Use more specific queries to resolve a single stream when multiple matches are found. Examples include specifying the stream name, hostname, or serial number. ```text name='Cognionics Quick-20' ``` ```text name='Cognionics Quick-20' and hostname='My-PC001' ``` ```text type='EEG' and serial_number='ABCDEF' ``` -------------------------------- ### Configure Project with CMake (Commandline) Source: https://labstreaminglayer.readthedocs.io/_sources/dev/app_build.rst.txt Configure the project using CMake from the command line, specifying the source directory, build directory, build type, and installation prefix. This is a recommended option for command-line users. ```bash cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="build/install" {other options} ``` -------------------------------- ### GET /samples_available Source: https://labstreaminglayer.readthedocs.io/projects/liblsl/ref/inlet.html Query whether samples are currently available for immediate pickup. ```APIDOC ## GET /samples_available ### Description Query whether samples are currently available for immediate pickup. Note that this should not be used to determine if a pull call will block. ### Method GET ### Response #### Success Response (200) - **value** (std::size_t) - The number of samples available (or 1/0 if exact count is unsupported). ``` -------------------------------- ### Build Project Using CMake Build System Source: https://labstreaminglayer.readthedocs.io/dev/cmake.html After a build folder is configured, binaries can be built using CMake's build system wrapper. This command builds the project, specifies the Release configuration, uses parallel jobs, and targets the 'install' step. ```bash cmake --build path/to/build/folder --config Release -j --target install ``` -------------------------------- ### Clean build directory Source: https://labstreaminglayer.readthedocs.io/dev/app_build.html Commands to remove an existing build directory before starting a fresh build. ```shell rmdir /S build ``` ```shell rm -Rf build ``` -------------------------------- ### Set LD_LIBRARY_PATH for Qt Source: https://labstreaminglayer.readthedocs.io/_sources/dev/build_env.rst.txt Update the environment variable to include the path to the Qt library directory. Replace {version} with the specific Qt version installed. ```bash LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/Qt/{version}/gcc_64/lib" ``` -------------------------------- ### Configure CMake Variables in Visual Studio Source: https://labstreaminglayer.readthedocs.io/dev/app_build.html Example of how to set CMake variables like Qt5_DIR, BOOST_ROOT, Vendor_ROOT, and LSL_INSTALL_ROOT within a Visual Studio CMakeSettings.json file for a specific configuration. ```json , "variables": [ { "name": "Qt5_DIR", "value": "C:\\Qt\\5.11.1\\msvc2015_64\\lib\\cmake\\Qt5 " }, { "name": "BOOST_ROOT", "value": "C:\\local\\boost_1_67_0" }, { "name": "Vendor_ROOT", "value": "C:\\path\\to\\vendor\\sdk" }, { "name": "LSL_INSTALL_ROOT", "value": "C:\\path\\to\\liblsl\\install" } ] ``` -------------------------------- ### Initialize Muse Stream with muse-io Source: https://labstreaminglayer.readthedocs.io/_sources/info/matlab_example_with_muse.rst.txt Connect the Muse headset to the local network via LSL using the muse-io utility. ```bash muse-io --device Muse-XXXX --lsl-eeg EEG ``` -------------------------------- ### Set LSL Install Root for CMake Source: https://labstreaminglayer.readthedocs.io/dev/app_build.html Specifies the installation root for liblsl. This is often not required if liblsl is installed via package managers or is in a sibling directory. ```cmake -DLSL_INSTALL_ROOT=path/to/liblsl/ ``` -------------------------------- ### Build Documentation Locally Source: https://labstreaminglayer.readthedocs.io/dev/doc_syntax.html Commands to generate documentation locally using Sphinx. ```bash make html ``` ```bash sphinx-build . _build ``` -------------------------------- ### Clone repository with submodules Source: https://labstreaminglayer.readthedocs.io/_sources/dev/full_tree.rst.txt Initial command to clone the repository and initialize all submodules. ```bash git clone --recurse-submodules git@github.com:labstreaminglayer/labstreaminglayer.git ``` -------------------------------- ### Configure Project with CMake GUI Source: https://labstreaminglayer.readthedocs.io/_sources/dev/app_build.rst.txt Initiate the CMake configuration process using the GUI, specifying source and build directories. This method allows for interactive setting of options and paths. ```bash cmake-gui -S . -B build ``` -------------------------------- ### Initialize and update a single submodule Source: https://labstreaminglayer.readthedocs.io/_sources/dev/full_tree.rst.txt Command to fetch and check out a specific submodule. ```bash git submodule update --init ``` -------------------------------- ### GET lsl_local_clock Source: https://labstreaminglayer.readthedocs.io/projects/liblsl/ref/freefuncs.html Obtain a local system time stamp in seconds. ```APIDOC ## GET lsl_local_clock ### Description Obtain a local system time stamp in seconds. The resolution is better than a millisecond. ### Response - **return** (double) - The local system time stamp in seconds. ``` -------------------------------- ### Configure and Build Project with CMake Source: https://labstreaminglayer.readthedocs.io/dev/cmake.html This command configures a project, specifying the source and build directories, enabling unit tests, and using the Ninja generator. ```bash cmake -S . -B build -DLSL_UNITTESTS=1 -G Ninja ``` -------------------------------- ### GET /stream_inlet/time_correction Source: https://labstreaminglayer.readthedocs.io/projects/liblsl/ref/inlet.html Retrieves an estimated time correction offset for the given stream. ```APIDOC ## GET /stream_inlet/time_correction ### Description Retrieve an estimated time correction offset for the given stream to map remote timestamps to the local clock domain. ### Parameters #### Query Parameters - **timeout** (double) - Optional - Timeout to acquire the first estimate (default: FOREVER). ### Response #### Success Response (200) - **offset** (double) - The time correction estimate. ``` -------------------------------- ### GET lsl_time_correction_ex Source: https://labstreaminglayer.readthedocs.io/projects/liblsl/ref/freefuncs.html Retrieve an estimated time correction offset for a given stream. ```APIDOC ## GET lsl_time_correction_ex ### Description Retrieve an estimated time correction offset for the given stream. This value should be added to a remotely generated time stamp to map it into the local clock domain. ### Parameters #### Path Parameters - **in** (lsl_inlet) - Required - The lsl_inlet object to act on. - **timeout** (double) - Required - Timeout to acquire the first time-correction estimate. ### Response #### Success Response (200) - **return** (double) - The time correction estimate. - **remote_time** (double) - The current time of the remote computer. - **uncertainty** (double) - The maximum uncertainty of the given time correction. - **ec** (int32_t) - Error code: nonzero if lsl_timeout_error or lsl_lost_error occurs. ``` -------------------------------- ### Find liblsl with CMake Source: https://labstreaminglayer.readthedocs.io/_sources/dev/app_dev.rst.txt Use this configuration in your CMakeLists.txt to locate the liblsl library installation. ```cmake find_package(LSL 1.13.0 REQUIRED HINTS ${LSL_INSTALL_ROOT} "${CMAKE_CURRENT_LIST_DIR}/../../LSL/liblsl/build/" "${CMAKE_CURRENT_LIST_DIR}/../../LSL/liblsl/build/install" PATH_SUFFIXES share/LSL ) ``` -------------------------------- ### Configure Git settings Source: https://labstreaminglayer.readthedocs.io/_sources/dev/full_tree.rst.txt Recommended settings to manage submodules and commit history effectively. ```bash git config --add setting.name value ``` ```bash git config --global --add ... ``` -------------------------------- ### GET /was_clock_reset Source: https://labstreaminglayer.readthedocs.io/projects/liblsl/ref/inlet.html Query whether the clock was potentially reset since the last call. ```APIDOC ## GET /was_clock_reset ### Description Query whether the clock was potentially reset since the last call to was_clock_reset(). Useful for applications estimating precise clock drift. ### Method GET ### Response #### Success Response (200) - **result** (bool) - True if the clock was reset. ``` -------------------------------- ### GET /stream_inlet/info Source: https://labstreaminglayer.readthedocs.io/projects/liblsl/ref/inlet.html Retrieves the complete information of the given stream, including the extended description. ```APIDOC ## GET /stream_inlet/info ### Description Retrieve the complete information of the given stream, including the extended description. ### Parameters #### Query Parameters - **timeout** (double) - Optional - Timeout of the operation (default: FOREVER). ### Response #### Success Response (200) - **info** (stream_info) - The complete stream information. ``` -------------------------------- ### LSL Configuration File Reference Source: https://labstreaminglayer.readthedocs.io/info/lslapicfg.html Default configuration settings for LSL timing, buffering, and logging. ```ini ; This setting offers fine control over various intervals and constants in LSL. ; We apologize that there is not more documentation for these settings at this time. ; Brief descriptions can be found in https://github.com/sccn/liblsl/blob/master/src/api_config.h#L149-L200 ; UseProtocolVersion = not set, read from common.h. WatchdogCheckInterval = 15.0 WatchdogTimeThreshold = 15.0 MulticastMinRTT = 0.5 MulticastMaxRTT = 3.0 UnicastMinRTT = 0.75 UnicastMaxRTT = 5.0 ContinuousResolveInterval = 0.5 TimerResolution = 1 MaxCachedQueries = 100 TimeUpdateInterval = 2.0 TimeUpdateMinProbes = 6 TimeProbeCount = 8 TimeProbeInterval = 0.064 TimeProbeMaxRTT = 0.128 OutletBufferReserveMs = 5000 OutletBufferReserveSamples = 128 SendSocketBufferSize = 0 InletBufferReserveMs = 5000 InletBufferReserveSamples = 128 ReceiveSocketBufferSize = 0 SmoothingHalftime = 90.0 ForceDefaultTimestamps = false [log] ; the log level. Only messages at this level or below will be logged ; -2: errors ; -1: warnings ; 0: information ; 1-9: increasingly less important details ; When liblsl is built with LSL_DEBUGLOG=On, the levels 1-9 will log more details ; The log looks like this: ; Date and time | runtime | thread ID | source location | level | Log message ; 2020-11-11 08:54:08.696 ( 3.132s) [ A5247740] inlet_connection.cpp:46 WARN| The stream named 'timesync' can't be recovered automatically if its provider crashes because it doesn't have a unique source ID level = -2 ; liblsl can also write all log messages to a file specified here. By default, log messages will be appended file = ``` -------------------------------- ### GET /pull_chunk_numeric_structs Source: https://labstreaminglayer.readthedocs.io/projects/liblsl/ref/inlet.html Methods to pull chunks of samples from the inlet, with options for timestamps or data-only retrieval. ```APIDOC ## GET /pull_chunk_numeric_structs ### Description Pull a chunk of samples from the inlet. Multiple overloads exist for returning data with timestamps, only the most recent timestamp, or data only. ### Method GET ### Parameters #### Request Body - **chunk** (vector of C-style structs) - Required - A vector to hold the samples. - **timestamps** (vector) - Optional - A vector to hold the time stamps (only for the full version). ### Response #### Success Response (200) - **Return** (bool/double/vector) - Returns true if data obtained, the most recent timestamp, or a vector of samples. ### Exceptions - **lost_error** - Thrown if the stream source has been lost. ``` -------------------------------- ### Display liblsl folder structure Source: https://labstreaminglayer.readthedocs.io/_sources/dev/lib_dev.rst.txt The expected directory layout after cloning the repository. ```bash (working directory) └── liblsl ├── {...} ├── include ├── lslboost ├── project ├── src └── testing ``` -------------------------------- ### Push Sample as Raw Pointer Source: https://labstreaminglayer.readthedocs.io/projects/liblsl/ref/outlet.html Pushes a pointer to values as a sample into the outlet. This is a lower-level function for existing buffers. Ensure the buffer size is sufficient. ```cpp void push_sample(_const_ float *_data_, double _timestamp_ = 0.0, bool _pushthrough_ = true) ``` -------------------------------- ### Java LSL Chunked Data Transmission Source: https://labstreaminglayer.readthedocs.io/_sources/dev/examples.rst.txt Examples for transmitting data in chunks for improved convenience in Java. ```text https://github.com/labstreaminglayer/liblsl-Java/tree/master/src/examples/SendDataInChunks.java ``` ```text https://github.com/labstreaminglayer/liblsl-Java/tree/master/src/examples/ReceiveDataInChunks.java ``` -------------------------------- ### Configure local.properties Source: https://labstreaminglayer.readthedocs.io/_sources/dev/build_android.rst.txt Set the paths for NDK, SDK, and CMake in the local.properties file. ```properties ndk.dir=C\:\Users\user\AppData\Local\Android\Sdk\ndk\16.1.4479499 android.ndkVersion=16.1.4479499 sdk.dir=C\:\Users\user\AppData\Local\Android\Sdk cmake.dir=C\:\Program Files\CMake ``` -------------------------------- ### Handle Stream Meta-Data in LSL Source: https://labstreaminglayer.readthedocs.io/dev/examples.html Shows how to attach and read meta-data for LSL streams. Meta-data makes streams self-describing. ```c #include #include #include int main() { // Create a stream with meta-data lsl::stream_info info("MetaStream", "EEG", 8, 0.0, "cf", "EEG_Data_With_Meta"); lsl::xml_element channels = info.desc().append_child("channels"); for (int i = 0; i < 8; ++i) { channels.append_child("channel") .append_child_value("label", "EEG " + std::to_string(i + 1)) .append_child_value("unit", "microvolts") .append_child_value("type", "EEG"); } lsl::stream_outlet outlet(info); // Resolve the stream and read its meta-data std::vector results = lsl::resolve_streams("name=\"MetaStream\""); if (!results.empty()) { lsl::stream_inlet inlet(results[0]); lsl::xml_element desc = inlet.info().desc(); std::cout << "Stream Description:" << std::endl; std::cout << desc.first_child().name() << std::endl; // Should be 'channels' for (lsl::xml_element channel : desc.child("channels").children("channel")) { std::cout << " Label: " << channel.child_value("label") << ", Unit: " << channel.child_value("unit") << std::endl; } } return 0; } ``` -------------------------------- ### GET Library and Protocol Info Source: https://labstreaminglayer.readthedocs.io/projects/liblsl/ref/freefuncs.html Functions to retrieve library version, library info, and protocol version. ```APIDOC ## GET lsl_library_version ### Description Returns the version of the liblsl library. ## GET lsl_library_info ### Description Returns a string containing library information for debugging purposes. ## GET lsl_protocol_version ### Description Returns the protocol version. Clients with different major versions are incompatible. ``` -------------------------------- ### Build liblsl with Gradle Source: https://labstreaminglayer.readthedocs.io/_sources/dev/build_android.rst.txt Execute the build process to generate the AAR file. ```bash gradlew assembleRelease ``` -------------------------------- ### MATLAB LSL Chunked Data Transmission Source: https://labstreaminglayer.readthedocs.io/_sources/dev/examples.rst.txt Examples for transmitting data in chunks to improve performance in the MATLAB interpreter. ```text https://github.com/labstreaminglayer/liblsl-Matlab/tree/master/examples/SendDataInChunks.m ``` ```text https://github.com/labstreaminglayer/liblsl-Matlab/tree/master/examples/ReceiveDataInChunks.m ``` -------------------------------- ### LSL Utility Functions Source: https://labstreaminglayer.readthedocs.io/projects/liblsl/genindex.html Provides essential utility functions for LSL, such as getting library information and time correction. ```APIDOC ## LSL Utility Functions ### Description Core functions for interacting with the LSL library. ### Functions - `lsl_library_info()`: Returns information about the LSL library. - `lsl_library_version()`: Returns the version of the LSL library. - `lsl_local_clock()`: Returns the current local system time. - `lsl_protocol_version()`: Returns the current LSL protocol version. - `lsl_time_correction_ex(double)`: Returns the time correction offset for a given timestamp. ``` -------------------------------- ### Retrieve liblsl Repository Source: https://labstreaminglayer.readthedocs.io/_sources/dev/build_android.rst.txt Clone the labstreaminglayer repository and initialize the necessary submodules. ```bash git clone --depth=1 https://github.com/sccn/labstreaminglayer.git git submodule update --init LSL/liblsl LSL/liblsl-Java ``` -------------------------------- ### Configure LSL_INSTALL_ROOT in CMake Source: https://labstreaminglayer.readthedocs.io/dev/LSL_INSTALL_ROOT.html Set the absolute path to the installed LSL directory or update the CMAKE_MODULE_PATH to include the cmake subfolder. ```cmake -DLSL_INSTALL_ROOT=C:/LSL/build/install/ ``` ```cmake list(APPEND CMAKE_MODULE_PATH "C:/path/to/LSL/build/install/cmake/") ``` -------------------------------- ### Configure Universal Executable on Windows Source: https://labstreaminglayer.readthedocs.io/dev/app_build.html Builds a more universal executable on Windows. Ensure the toolset and host architecture are correctly specified. ```cmake -T v142,host=x86 ``` -------------------------------- ### Querying stream information with XPath Source: https://labstreaminglayer.readthedocs.io/projects/liblsl/ref/streaminfo.html Examples of XPath query strings used with the matches_query method to filter stream information. ```text channel_count>5 and type='EEG' type='TestStream' or contains(name,'Brain') name='ExampleStream' ``` -------------------------------- ### MATLAB LSL Numeric Data Transmission Source: https://labstreaminglayer.readthedocs.io/_sources/dev/examples.rst.txt Basic examples for sending and receiving multi-channel numeric time series data. ```text https://github.com/labstreaminglayer/liblsl-Matlab/tree/master/examples/SendData.m ``` ```text https://github.com/labstreaminglayer/liblsl-Matlab/tree/master/examples/ReceiveData.m ``` -------------------------------- ### Push Sample as C Array Source: https://labstreaminglayer.readthedocs.io/projects/liblsl/ref/outlet.html Pushes a C array of values as a sample into the outlet. Handles type checking and conversion. Use for fixed-size numeric data. ```cpp template void push_sample(_const_ T _data_[_N_], double _timestamp_ = 0.0, bool _pushthrough_ = true) ```