Skip to content

Add remote stream selection command#144

Open
sena-neuro wants to merge 2 commits into
labstreaminglayer:masterfrom
sena-neuro:add-select-stream
Open

Add remote stream selection command#144
sena-neuro wants to merge 2 commits into
labstreaminglayer:masterfrom
sena-neuro:add-select-stream

Conversation

@sena-neuro

Copy link
Copy Markdown

Summary

Add select <query> to the remote control TCP interface, where <query> is an LSL resolver predicate such as name='BioSemi' or type='EEG'.

This allows remote clients to select a subset of streams before starting a recording.

Why The Supporting Changes Are Included

Remote start previously selected all streams before recording. That would override any stream subset selected through select <query>, so remote start now records the current selection instead.

Starting a recording refreshes the stream list. To keep TCP-selected streams stable across that refresh, the selected state is preserved before rebuilding the list, and stream matching now uses source_id when available with a fallback for streams that do not provide one.

The stream list is rebuilt from both refresh and remote-selection paths, so the list rebuild logic is shared rather than duplicated.

Remote responses were tightened because start can now fail for normal remote-control reasons, such as no streams being selected.

Compatibility Notes

Remote start no longer implicitly selects all streams. Clients that need the previous behavior should send select all before start.

A valid query that matches no streams returns WARNING no streams matched and leaves the current selection unchanged. Clients that need a deterministic subset should send select none before select <query>.

Command parsing is exact and case-sensitive.

Validation

  • Built the GUI target locally.
  • Ran TCP interface tests on the validation branch.
  • Ran a manual TCP smoke validation with synthetic LSL streams.

Smoke validation script:
https://gist.github.com/sena-neuro/ed12a2570c496ba0e43214fdf24029b4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant