LEARNING HELPER: MOCKUP ONLY
AUTHORITATIVE ARCHITECTURE MAP

Developer Info: UI Feature to Code Architecture Map

This master matrix directly ties every user interface control and feature in the IOBridge WPF desktop application to the exact XAML files, C# ViewModels, and backend service implementations that drive them.

It serves as the definitive reference for developers and technical contributors to understand what purpose every UI component fulfills, what services power it, and where its operational logic lives in the codebase.

Master UI Feature to Code Architecture Matrix

UI Feature / Control Purpose & Flight Sim Value Driving WPF XAML ViewModel / Behind Driving Services Key Symbols
Command Strip & Caption Custom Aero-snap caption bar with zero caption delay and integrated command controls. ui/IOBridge.UI/MainWindow.xaml MainViewModel.cs WindowSizingHelper.cs WindowChrome, WindowState
Profile Selector (PRF) Instant profile switching between flight sims (Star Citizen, Elite, MSFS, DCS). ui/IOBridge.UI/MainWindow.xaml MainViewModel.cs ProfileService.cs ActiveProfile, SwitchProfile()
Operational Mode Cluster Displays active mode (Default, Combat, Landing) and real-time Shift layer feedback. ui/IOBridge.UI/MainWindow.xaml MainViewModel.cs MappingManager.cs CurrentMode, IsShiftActive
Master Routing Toggle Global arming kill-switch for virtual controller injection; safe for tabbed setup. ui/IOBridge.UI/MainWindow.xaml MainViewModel.cs NativeDirectInputEngine.cs IsRoutingActive, Start(), Stop()
Telemetry Dock Toggle Flyout drawer toggle displaying real-time dispatch streams and driver health metrics. ui/IOBridge.UI/MainWindow.xaml MainViewModel.cs OutputLogger.cs IsTelemetryFlyoutOpen, OnLogDispatched
Rail: MAP View Primary input remapping matrix, hardware auto-listener, and curve response configurator. ui/IOBridge.UI/Views/DeviceRemappingPane.xaml DevicePaneViewModel.cs MappingManager.cs SelectedNavigationIndex = 0
Auto-Listen Detection Listens for physical button presses or axis movements to highlight that mapping row automatically. ui/IOBridge.UI/Views/DeviceRemappingPane.xaml DevicePaneViewModel.cs DirectInputDeviceReader.cs IsAutoListenArmed, OnInputDetected()
Device Selection Tabs Tabbed controller switcher filtering mappings to currently selected physical stick or throttle. ui/IOBridge.UI/Views/DeviceRemappingPane.xaml DevicePaneViewModel.cs DirectInputScanner.cs ConnectedDevices, SelectedDevice
Auto-Map Sequential Batch remapping wizard that prompts for sequential hardware controls and maps them in 1-to-1 order. ui/IOBridge.UI/Views/DeviceRemappingPane.xaml DevicePaneViewModel.cs MappingManager.cs AutoMapSequentialCommand, BatchAssign()
Input Search & Filter Bar Real-time text search and status filter dropdown to isolate unmapped, mapped, or inverted inputs. ui/IOBridge.UI/Views/DeviceRemappingPane.xaml DevicePaneViewModel.cs CollectionViewSource FilterText, StatusFilterOption
Mapping Matrix (Grid) Dense matrix listing every physical input with mapped action, target channel, curve, and mode. ui/IOBridge.UI/Views/DeviceRemappingPane.xaml DevicePaneViewModel.cs MappingManager.cs InputMappings, SelectedMapping
Action Configurator (Panel) Detail inspector to bind actions (vJoy, ViGEm, Keystroke, Macro, Mode Shift) and adjust curves. ui/IOBridge.UI/Views/DeviceRemappingPane.xaml DevicePaneViewModel.cs MappingManager.cs SelectedActionType, TargetChannel
Response Curve Studio Visual spline editor with deadzone, sensitivity, inversion, and monotone Hermite cubic interpolation. ui/IOBridge.UI/Views/ResponseCurveStudioView.xaml ResponseCurveViewModel.cs ResponseCurve.cs Deadzone, CenterCurve, Saturation
Rail: MONITOR View Real-time diagnostic panel displaying raw DirectInput axis percentages, POV hats, and buttons. ui/IOBridge.UI/Views/LiveMonitorView.xaml MainViewModel.cs DirectInputScanner.cs SelectedNavigationIndex = 1
Device Cloaking Status Reports whether physical devices are hidden from games via Nefarius HidHide to prevent double-input. ui/IOBridge.UI/Views/LiveMonitorView.xaml MainViewModel.cs HidHideService.cs IsCloaked, WhitelistProcess()
Digital Button Grid 128-button live grid illuminating active inputs at 1ms DirectInput 8 granularity. ui/IOBridge.UI/Views/LiveMonitorView.xaml MainViewModel.cs DirectInputDeviceReader.cs Buttons, PressedButtons
Rail: OUTPUT View Installed output drivers audit and configured virtual joystick / gamepad target management. ui/IOBridge.UI/Views/OutputDevicesView.xaml OutputDevicesViewModel.cs VirtualOutputManager.cs SelectedNavigationIndex = 2
Rail: MODES View Operational flight mode manager defining shift layers, momentary/toggle rules, and fallthrough. ui/IOBridge.UI/Views/StateManagementView.xaml MainViewModel.cs MappingManager.cs SelectedNavigationIndex = 3
Additive Fallthrough Controls whether unmapped inputs in a shift layer fall through to Default or are silenced. ui/IOBridge.UI/Views/StateManagementView.xaml MainViewModel.cs MappingManager.cs ModeInheritanceType, IsAdditive
Rail: PLUGINS View Integrations hub managing Stream Deck, Wave Link, YouTube Music, and local REST server. ui/IOBridge.UI/Views/IntegrationsView.xaml MainViewModel.cs StreamDeckServerService.cs SelectedNavigationIndex = 4
Stream Deck Server Bidirectional TCP/WebSocket server on port 28155 exchanging mode states and rotary dials. ui/IOBridge.UI/Views/IntegrationsView.xaml MainViewModel.cs StreamDeckServerService.cs BroadcastModeChange(), Port 28155
Wave Link Submix Routing Official Elgato Wave Link integration allowing HOTAS dials to control in-flight game vs voice audio. ui/IOBridge.UI/Views/IntegrationsView.xaml MainViewModel.cs WaveLinkService.cs SetChannelVolume(), MuteToggle()
Rail: DEPENDENCIES Prerequisite audit inspecting vJoy, ViGEmBus, and HidHide driver status and signatures. ui/IOBridge.UI/Views/DriverServiceView.xaml MainViewModel.cs VirtualOutputManager.cs SelectedNavigationIndex = 5
Rail: COLORS View Cockpit theme customization with real-time accent shifting across all views, HUDs, and controls. ui/IOBridge.UI/Views/ProfileThemeView.xaml MainViewModel.cs ThemeService.cs SelectedNavigationIndex = 6
Cockpit Theme Presets Authentic flight sim HUD palettes: Quantum Cyan, Cockpit Orange, Battlemech Gold, HUD Emerald. ui/IOBridge.UI/Views/ProfileThemeView.xaml MainViewModel.cs ThemeService.cs ThemePresetEnum, ApplyPreset()
Mobile Companion MFD In-flight mobile touch MFD on port 28156 for one-tap axis inversion and hot-remapping without Alt-Tab. integrations/mobile/ CompanionServerService.cs MappingManager.cs Port 28156, InvertAxisEndpoint
Telemetry Flyout Stream Bounded FIFO ring buffer logging dispatch telemetry, dropped cycles, and driver latencies in microseconds. ui/IOBridge.UI/MainWindow.xaml MainViewModel.cs OutputLogger.cs TelemetryDock, DispatchHistory
Game Action Picker Dialog Searchable catalog of simulator bindings and detected flight actions (e.g. Star Citizen, MechWarrior 5). ui/IOBridge.UI/Views/GameActionPickerDialog.xaml GameActionPickerDialog.xaml.cs GameBindingsService.cs SelectedAction, FilteredActions
Profile Theme Customization Dialog Per-profile cockpit theme editor with live swatch preview, dual hex inputs, and ship HUD presets. ui/IOBridge.UI/Views/ProfileCustomizationDialog.xaml ProfileCustomizationDialog.xaml.cs ThemeService.cs ResultCustomization, UpdatePreview()
Themed Modal Dialog & Seams High-contrast themed confirmation modals with test seams for automated non-interactive testing. ui/IOBridge.UI/Views/ThemedDialog.xaml ThemedDialog.xaml.cs None (UI Presentation) Show(), DialogHook

Key Subsystem Specifications

1. Remapping Matrix & Hardware Ingestion

Driving Files: ui/IOBridge.UI/Views/DeviceRemappingPane.xaml, DevicePaneViewModel.cs, MappingManager.cs, NativeDirectInputEngine.cs

Captures low-level DirectInput packets via Vortice DirectInput with timeBeginPeriod(1) scheduling. Each physical button or axis is mapped to an action type (vJoy virtual joystick button/axis, ViGEmBus Xbox 360 controller button/axis, scancode keystroke, mode shift toggle, or multi-step macro). The matrix uses WPF UI virtualization (VirtualizingStackPanel) to guarantee 60 FPS rendering regardless of controller input density.

2. Live Hardware Monitor & Cloaking

Driving Files: ui/IOBridge.UI/Views/LiveMonitorView.xaml, DirectInputScanner.cs, HidHideService.cs

Polls physical input devices at the configured poll rate (default 1ms / 1000Hz). Dispatches axis telemetry and button states to real-time progress bars and LED indicators. Integrates directly with the Nefarius HidHide client API to cloak physical joysticks from game processes so flight simulators only recognize the consolidated virtual controller.

3. Virtual Controller Dispatch Pipeline

Driving Files: ui/IOBridge.UI/Views/OutputDevicesView.xaml, VirtualOutputManager.cs

Feeds virtual controllers via signed drivers. Interops with vJoyInterface.dll to feed up to 16 virtual joysticks with 128 buttons each. Interops with Nefarius.ViGEm.Client to expose a virtual Xbox 360 gamepad for titles that only accept XInput. Injects hardware keyboard scancodes via Windows SendInput using KEYEVENTF_SCANCODE to bypass software hooks.

4. Response Curve Studio & Spline Mathematics

Driving Files: ui/IOBridge.UI/Views/ResponseCurveStudioView.xaml, ResponseCurve.cs

Provides visual curve shaping using Monotone Cubic Hermite Splines with Fritsch-Carlson tangent calculation. Guarantees strictly monotonic behavior without polynomial overshoot beyond [-1.0, 1.0]. Controls include deadzone tuning, center curve sensitivity, saturation endpoints, and one-tap axis inversion (IsInverted).

5. Stream Deck & External Plugins

Driving Files: ui/IOBridge.UI/Views/IntegrationsView.xaml, StreamDeckServerService.cs (port :28155), WaveLinkService.cs

Hosts an asynchronous HTTP and WebSocket listener on port :28155. The Elgato Stream Deck plugin communicates over this local port to display active flight modes, trigger shift layers, and bind continuous rotary dials to flight axes. The Wave Link service binds hardware rotary knobs to Elgato Wave Link submix channels via local WebSocket IPC.

6. Mobile Companion MFD

Driving Files: integrations/mobile/, CompanionServerService.cs (port :28156), MappingManager.cs

Provides a standalone mobile multi-function display (MFD) that runs on the pilot's phone or tablet mounted in their cockpit. The companion communicates over local Wi-Fi with port :28156 using secure PIN pairing. Allows pilots to hot-remap inputs, switch operational modes, and invert axes mid-combat without alt-tabbing or interrupting flight.

7. Modal Dialogs & Automated Test Seams

Driving Files: ui/IOBridge.UI/Views/ThemedDialog.xaml, GameActionPickerDialog.xaml, ProfileCustomizationDialog.xaml

Provides custom cockpit-themed dialogue windows with consistent glass borders and accent headers. ThemedDialog features test seams (ThemedDialog.DialogHook) allowing CI pipelines to intercept and mock modal responses without blocking headless test runners. GameActionPickerDialog provides category-based filtering and instant search over auto-detected game actions from GameBindingsService.