dragon-iso/src/TeamsISO.App
Zac Gaetano 9c231118de feat(stats): wire IsoHealthStats end-to-end and surface live counters in UI
IsoPipeline now publishes refs to its currently-live NdiReceiver and NdiSender (set by RunInnerPipelineAsync, cleared on exit) so a stats poll from any thread can read FramesCaptured / FramesSent without entangling the pipeline's lifetime with its observer. The receiver's raw-frame channel is wrapped with a TappedChannelWriter so the most recent RawFrame is captured for source-resolution display, again without changing the receiver's contract.

IsoController.GetStats() drops the stub return-Empty and instead reads the live pipeline.GetStats() outside the gate so a slow stats read can't serialize the controller's other operations.

WPF: MainViewModel runs a 1 Hz DispatcherTimer that pulls stats for every participant view-model and pushes them via UpdateStats(). ParticipantViewModel grows three displayable properties — FramesIn, FramesOut, IncomingResolution — bound into the participants DataGrid as a new 'Live' column showing the down/up frame counts and the source resolution underneath the machine name.

Tests: 74/74 unit + 9/9 NDI integration green; the existing round-trip integration test exercises the new wiring at runtime (live receiver/sender refs are set, frames flow, channels close cleanly).
2026-05-08 00:52:44 -04:00
..
Converters feat(ui): rebrand to Wild Dragon + Microsoft Teams layout 2026-05-08 00:08:39 -04:00
Themes feat(ui): rebrand to Wild Dragon + Microsoft Teams layout 2026-05-08 00:08:39 -04:00
ViewModels feat(stats): wire IsoHealthStats end-to-end and surface live counters in UI 2026-05-08 00:52:44 -04:00
App.xaml feat(ui): rebrand to Wild Dragon + Microsoft Teams layout 2026-05-08 00:08:39 -04:00
App.xaml.cs feat(logging): rolling file sink under %LOCALAPPDATA%\\TeamsISO\\Logs 2026-05-08 00:47:25 -04:00
MainWindow.xaml feat(stats): wire IsoHealthStats end-to-end and surface live counters in UI 2026-05-08 00:52:44 -04:00
MainWindow.xaml.cs feat(ui): add MainWindow XAML with participants DataGrid, settings sidebar, alert banner 2026-05-07 15:40:49 +00:00
TeamsISO.App.csproj feat(ui): add MVVM helpers and per-component view models (Participant, GlobalSettings, AlertBanner) 2026-05-07 15:39:46 +00:00