Skip to content

feat: add Marshall CV-370 day/night toggle#2

Closed
rueger-events-bot wants to merge 6 commits into
hrueger:mainfrom
rueger-events-bot:feat/cv370-day-night-toggle
Closed

feat: add Marshall CV-370 day/night toggle#2
rueger-events-bot wants to merge 6 commits into
hrueger:mainfrom
rueger-events-bot:feat/cv370-day-night-toggle

Conversation

@rueger-events-bot
Copy link
Copy Markdown
Collaborator

Summary

  • Adds a Marshall CV-370 option in the NDI source panel with host/IP configuration.
  • Adds a day/night toggle button that sends the CV-370 IR cut command used by the Marshall Companion module (ircut: 1 for daylight, ircut: 0 for night).
  • Persists the CV-370 enablement, host, and last selected mode in project files.
  • Adds a Qt unit test for CV-370 request URL generation.

Closes #1

Test Plan

  • cmake -S . -B build-test -DBUILD_TESTING=ON with a local stub NDI SDK
  • cmake --build build-test --target onpoint_tests --parallel
  • ctest --test-dir build-test --output-on-failure

Note: a full Linux onpoint target build currently reaches an existing platform gap unrelated to this change: DnsSdBridge has macOS/Windows implementations, but no Linux implementation is linked by CMake.

Copy link
Copy Markdown
Owner

@hrueger hrueger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please change the following things:

  • make this more modular (there should be only one MarshallCV370 file providing logic and controls, but no cv370 logic in the main app files). So that it is easy to add support for more / different cams without ending up with thousands of properties in StreamSourcePanel for example...
  • Can you detect whether it is a CV370 by getting the IP from the NDI Stream?

@rueger-events-bot
Copy link
Copy Markdown
Collaborator Author

Implemented the requested changes:

  • Moved the CV-370 UI/control flow into the Marshall CV-370 module so StreamSourcePanel only hosts the panel and MainWindow only persists the config via the module helper.
  • Added NDI source endpoint propagation from discovery using the NDI source URL address.
  • Added automatic CV-370 probing from the selected NDI stream IP and auto-enables/fills the CV-370 host when detected.
  • Added unit tests for NDI URL host extraction and detection request URL generation.

Verified locally:

  • QT_QPA_PLATFORM=offscreen ctest --test-dir build --output-on-failure -R marshall_cv370_controller

Note: full Linux app link is not representative here because this environment lacks the real NDI/DNS-SD platform libraries; the focused tests pass.

Copy link
Copy Markdown
Owner

@hrueger hrueger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Much better, but the Camera control should be an extra panel. Allow user to input a custom host/ip for example if that does not match with ndi or using a different stream.
In addition: some widgets are too wide, they cause horizontal scrolling. This should not be the case. All other widgets in the other panels dont cause scroll but shrink.
See this photo:

Image

@rueger-events-bot
Copy link
Copy Markdown
Collaborator Author

Addressed the latest review feedback:

  • Moved camera control out of the Stream Source panel into a separate "Camera Control" sidebar panel.
  • Kept custom CV-370 host/IP input in that panel, independent of the selected NDI stream.
  • Stream Source now only forwards the selected NDI source endpoint to Camera Control for auto-detection.
  • Updated combo boxes / camera host controls to shrink instead of forcing horizontal scrolling.
  • Fixed branch CI failures caused by missing NDI SDK URL secrets in the fork by skipping packaging when those secrets are unavailable.

Verification:

  • git diff --check
  • QT_QPA_PLATFORM=offscreen ctest --test-dir /root/workspace/onpoint-build --output-on-failure -R marshall_cv370_controller
  • Latest fork workflow run now succeeds/skips packaging cleanly when NDI SDK URL secrets are absent.

@rueger-events-bot
Copy link
Copy Markdown
Collaborator Author

Superseded by #4, recreated from the upstream hrueger/onpoint branch so GitHub Actions run in the repository context.

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.

Add CV-370 daylight/night mode toggle for NDI streams

2 participants