How md12c/spacemousemapper works
SpaceMouseMapper is a Windows desktop app that turns 3Dconnexion SpaceMouse axis input into keyboard and mouse actions. The user configures axis bindings, applies changes, connects the device, then uses live gauges and sensitivity sliders to tune behavior; presets can load bindings and sensitivity settings. The graph includes the documented advanced device/byte views and event logging. Relationship evidence is limited to the README and indexed source excerpts; unsampled panel and device implementation details are not expanded beyond supported connections.
Main entry points: Frame.cpp Main frame · SensitivityPanel.cpp Sensitivity controls · Mouse.cpp Device input and output · JSONParsing.h Preset parsing
Components 13
Desktop interface
- App startup
SpaceMouseMapper/src/App.cpp - Main frame
SpaceMouseMapper/src/GUI/Frame.cpp - About panel
SpaceMouseMapper/src/GUI/AboutPanel.cpp
Mapping and presets
- Axis mapping
SpaceMouseMapper/src/GUI/MapPanel.cpp - Sensitivity controls
SpaceMouseMapper/src/GUI/SensitivityPanel.cpp - Preset parsing
SpaceMouseMapper/src/KeybindParsing/JSONParsing.h - Keybind lookup
SpaceMouseMapper/src/KeybindParsing/KeybindLookup.h
Input runtime
- Device input and output
SpaceMouseMapper/src/Mouse/Mouse.cpp
Diagnostics
- Advanced device views
SpaceMouseMapper/src/GUI/AdvancedPanel.cpp - Event log
SpaceMouseMapper/src/GUI/EventPanel.cpp
Other components
- User
- SpaceMouse device
- Keyboard and mouse actions
Connections 18
- User → Main frame: uses
README.md - App startup → Main frame: starts
- Main frame → Axis mapping: creates
SpaceMouseMapper/src/GUI/Frame.cpp - Main frame → Sensitivity controls: creates
SpaceMouseMapper/src/GUI/Frame.cpp - Main frame → Advanced device views: creates
SpaceMouseMapper/src/GUI/Frame.cpp - Main frame → Event log: creates
SpaceMouseMapper/src/GUI/Frame.cpp - Main frame → About panel: creates
SpaceMouseMapper/src/GUI/Frame.cpp - Main frame → Device input and output: dispatches input
SpaceMouseMapper/src/GUI/Frame.cpp - Main frame → Preset parsing: loads preset
SpaceMouseMapper/src/GUI/Frame.cpp - Preset parsing → Keybind lookup: resolves bindings
SpaceMouseMapper/src/KeybindParsing/JSONParsing.h - Main frame → Axis mapping: populates bindings
SpaceMouseMapper/src/GUI/Frame.cpp - Main frame → Sensitivity controls: populates sliders
SpaceMouseMapper/src/GUI/Frame.cpp - Main frame → Sensitivity controls: reads sensitivity
SpaceMouseMapper/src/GUI/Frame.cpp - Main frame → Advanced device views: refreshes gauges
SpaceMouseMapper/src/GUI/Frame.cpp - Main frame → Sensitivity controls: updates gauges
SpaceMouseMapper/src/GUI/Frame.cpp - Main frame → Event log: forwards logs
SpaceMouseMapper/src/GUI/Frame.cpp - SpaceMouse device → Device input and output: sends input
- Device input and output → Keyboard and mouse actions: emits actions