v2.0.0
Loading...
Searching...
No Matches
lsl_stream_inlet.h File Reference

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>
Include dependency graph for lsl_stream_inlet.h:
This graph shows which files directly or indirectly include this file:

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.

Detailed Description

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

Author
Christoph Dinh chris.nosp@m.toph.nosp@m..dinh.nosp@m.@mne.nosp@m.-cpp..nosp@m.org
Since
2.0.0
Date
March 2026

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.