Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions BUILD.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,25 @@

This file includes quick start recipes. To see general principles, look [here](https://github.com/labstreaminglayer/labstreaminglayer/blob/master/doc/BUILD.md).

## Stream selection regression check

With a GUI build configured, build and run the standalone selection check:

```sh
cmake --build build --target teststreamselection --config Release
./build/teststreamselection
```

For a Visual Studio build, run `build\Release\teststreamselection.exe` instead.
This target uses the application's Qt and liblsl dependencies and is built only
when requested. It runs the actual GUI selection code offscreen with temporary
configuration files and synthetic outlets in a private LSL session. Local stream
discovery must be available. A failed check returns a nonzero exit code.

The checks cover stream identities after query selection and refresh, missing
stream deselection and watchlist input, and disappearance/reappearance without
switching source identities. They do not start a recording or validate XDF contents.


## Windows - CMake - Visual Studio 2017

Expand Down
14 changes: 14 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,20 @@ if(LABRECORDER_BUILD_GUI)
LSL::lsl
)

# Build explicitly with --target teststreamselection; uses the actual GUI code.
add_executable(teststreamselection EXCLUDE_FROM_ALL
src/test_stream_selection.cpp
src/mainwindow.cpp
src/mainwindow.h
src/mainwindow.ui
src/recording.cpp
src/tcpinterface.cpp
src/tcpinterface.h
)
target_link_libraries(teststreamselection PRIVATE
xdfwriter Qt6::Core Qt6::Widgets Qt6::Network Threads::Threads LSL::lsl
)

# macOS bundle configuration
if(APPLE)
set(MACOSX_BUNDLE_GUI_IDENTIFIER "com.labstreaminglayer.${PROJECT_NAME}")
Expand Down
11 changes: 10 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,11 +87,20 @@ If you check the box to EnableRCS then LabRecorder exposes some rudimentary cont
Currently supported commands include:
* `select all`
* `select none`
* `start`
* `select <query>` - checks streams matching an LSL resolver predicate such as `name='BioSemi'`, `type='EEG'`, or `name='BioSemi' and hostname='LabPC1'`.
* `start` - starts recording the current stream selection; returns an error if no streams are selected.
* `stop`
* `update`
* `filename ...`

Commands respond with `OK`, `WARNING ...`, or `ERROR ...`.

Query selection is additive: use `select none` before `select <query>` to select
only its matches. For a stream with a nonempty source ID, that identity is retained
during a session if it disappears, so a different source with the same display name
is not selected or recorded in its place. Unchecked missing streams are not watched
for recording.

`filename` is followed by a series of space-delimited options enclosed in curly braces. e.g. {root:C:\root_data_dir}
* `root` - Sets the root data directory.
* `template` - sets the File Name / Template. Will unselect BIDS option. May contain wildcards.
Expand Down
Loading