Declares the resolve_streams / resolve_stream free functions used to enumerate LSL outlets currently visible on the LAN. More...


Go to the source code of this file.
Namespaces | |
| namespace | LSLLIB |
| Lab Streaming Layer (LSL) integration for real-time data exchange. | |
Functions | |
| std::vector< stream_info > | LSLLIB::resolve_streams (double timeout=1.0) |
| Resolve all streams currently available on the network. | |
| std::vector< stream_info > | LSLLIB::resolve_stream (const std::string &prop, const std::string &value, double timeout=1.0) |
| Resolve streams by a specific property value. | |
Declares the resolve_streams / resolve_stream free functions used to enumerate LSL outlets currently visible on the LAN.
SPDX-License-Identifier: BSD-3-Clause Copyright (c) 2026 MNE-CPP Authors
Stream discovery is the entry point of every LSLLIB consumer: an acquisition plug-in or analysis tool first calls LSLLIB::resolve_streams to obtain the set of LSLLIB::stream_info descriptors currently being advertised on the network, then constructs a LSLLIB::stream_inlet from the one it is interested in. LSLLIB::resolve_stream layers a property filter on top so that callers who already know the name, type, source_id, uid or hostname they expect can wait only for that match.
Both functions block for at most the supplied timeout while listening for the periodic UDP multicast announcements emitted by every active LSLLIB::stream_outlet on the LSL discovery channel. They deduplicate observed streams by their per-instance UUID so that the same outlet is not returned twice when it announces itself more than once during the listen window. The default 1.0 s timeout matches the upstream liblsl default and is long enough to pick up any outlet whose broadcast interval is at most half a second.
Definition in file lsl_stream_discovery.h.