Skip to content

Add Player channel inspector - #46

Draft
HomeDCP wants to merge 1 commit into
cth103:mainfrom
HomeDCP:codex/channel-inspector-main
Draft

Add Player channel inspector#46
HomeDCP wants to merge 1 commit into
cth103:mainfrom
HomeDCP:codex/channel-inspector-main

Conversation

@HomeDCP

@HomeDCP HomeDCP commented Aug 8, 2026

Copy link
Copy Markdown

Summary

Refs #45.

This adds a monitor-only channel inspector to DCP-o-matic Player:

  • Adds Tools > Channel inspector... in Player.
  • Shows mapped DCP channels with per-channel Solo and Mute controls.
  • Shows simple per-channel peak readings in dBFS.
  • Applies solo/mute only in the Player playback monitor path; it does not modify film metadata, DCP assets, exports, or the normal DCP creation path.
  • Preserves the configured Player output mapping by metering DCP-channel audio first, then applying the existing configured output mapping with the inspector gates.
  • Supports up to 16 DCP channels and 16 device channels.

I kept global EQ out of scope, following the discussion on the issue.

Notes

The inspector is implemented as a Player-only floating frame. When opened, FilmViewer recreates the playback Butler with an identity DCP-channel mapping so each DCP channel can be inspected before the normal output-device mapping is applied. Closing the inspector restores the normal playback path.

The monitor path intentionally matches the existing remap() behavior by applying only positive configured gains. Unmapped channels are displayed as unmapped and their Solo/Mute controls are disabled.

Validation

Tested locally on macOS:

  • ./waf configure --c++17 --disable-tests passed.
  • ./waf build passed and linked build/src/tools/dcpomatic2_player.
  • ./waf configure --c++17 passed with tests enabled.
  • ./waf build --targets=unit-tests passed, including compile of test/channel_inspector_test.cc and link of build/test/unit-tests.
  • Focused C++11 smoke compile of src/wx/channel_inspector.h passed, and the smoke executable exited 0.

I could not run the selected official Boost test cases in this checkout because test/data is a submodule pointing to cth103/dcpomatic-test-data.git, which was not accessible from my environment. The new focused unit test is included and compiles in the unit-tests target.

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