Declares stream_inlet, the client side of an LSL connection that pulls multichannel sample chunks from a remote outlet. More...
#include "lsl_global.h"#include "lsl_stream_info.h"#include <vector>#include <memory>#include <type_traits>

Go to the source code of this file.
Classes | |
| class | LSLLIB::stream_inlet |
| Client-side LSL endpoint: connects to a resolved outlet over TCP and exposes pulled samples as float chunks. More... | |
Namespaces | |
| namespace | LSLLIB |
| Lab Streaming Layer (LSL) integration for real-time data exchange. | |
Declares stream_inlet, the client side of an LSL connection that pulls multichannel sample chunks from a remote outlet.
SPDX-License-Identifier: BSD-3-Clause Copyright (c) 2026 MNE-CPP Authors
A LSLLIB::stream_inlet is constructed from a resolved LSLLIB::stream_info (typically obtained via LSLLIB::resolve_streams) and represents a one-way TCP connection to the corresponding LSLLIB::stream_outlet. The class wraps the QTcpSocket plumbing, the framing of channel-count-sized sample blocks, and an internal ring buffer behind a PIMPL so that the public header pulls in no Qt network symbols.
The data path is intentionally chunked rather than sample-at-a-time: samples_available drains pending bytes off the socket in a non-blocking pass and pull_chunk returns every fully-received multichannel sample in one call, which is the pattern that real-time acquisition pipelines in mne-cpp (sensor plug-ins under applications/mne_scan_plugins) consume most efficiently. The templated pull_chunk is provided purely for source-level compatibility with liblsl; in this implementation only the float specialisation is wired up, since every mne-cpp acquisition path operates on 32-bit floating-point samples.
Definition in file lsl_stream_inlet.h.