How geronimonzy/soundflip works
SoundFlip is a Windows tray utility and command-line tool for selecting, listing, and cycling playback and recording devices. The main workflow enters through Program.cs: parsed CLI commands operate on audio devices, while the tray path loads settings and exposes device rings, global hotkeys, language selection, and startup controls. TrayContext coordinates switching and persists device selections; Audio applies defaults through Windows audio APIs. The README documents additional settings and presentation capabilities; some links to their implementations are inferred only where the sampled excerpts do not show the call site.
Main entry points: TrayContext.cs Tray controller · Program.cs Application entry · Audio.cs Device operations · SettingsStore.cs Settings persistence
Components 15
Entry and commands
- Application entry
Program.cs - Command parsing
CommandLine.cs
Audio switching
- Device operations
Audio.cs - Windows audio
Tray experience
- Tray controller
TrayContext.cs - Global hotkeys
Hotkeys.cs - Dialogs and toasts
UI.cs - About dialog
AboutDialog.cs - Localized text
Strings.cs
Preferences and integration
- Settings persistence
SettingsStore.cs - Saved preferences
- Startup control
AutoStart.cs - Windows startup
Other components
- CLI user
- Desktop user
Connections 17
- CLI user → Application entry: runs commands
- Desktop user → Application entry: launches app
- Application entry → Command parsing: parses arguments
- Application entry → Device operations: lists and sets
- Application entry → Settings persistence: loads preferences
- Application entry → Tray controller: starts tray
- Device operations → Windows audio: reads and sets defaults
- Tray controller → Device operations: switches and lists
- Tray controller → Global hotkeys: registers bindings
- Global hotkeys → Tray controller: dispatches actions
- Tray controller → Settings persistence: saves selections
- Settings persistence → Saved preferences: reads and writes
- Tray controller → Startup control: checks and toggles
- Startup control → Windows startup: updates startup
- Tray controller → Dialogs and toasts: shows dialogs and toasts
- Tray controller → About dialog: opens about
- Tray controller → Localized text: localizes labels