- Add EchoType to TextInjectionMode enum (becomes default)
- Add WriteToEchoTypePipe(): write [UINT32 cch][WCHAR text] to
\.\pipe\EchoType\pid_<PID> via NamedPipeClientStream
- InsertText(): route to EchoType pipe when mode is EchoType
- TrayApplicationContext: add 'EchoType (recommended)' to input mode menu
- Update tray branding: 'EchoType Bridge' in tooltips and balloon tips
- AppLogger: log to %LocalAppData%\EchoType\bridge.log
The bridge keeps WebSocket server + UDP discovery + audio control
unchanged. Text injection now goes through the EchoType TIP's
composition-commit mechanism for atomic insertion, falling back to
clipboard and SendInput as secondary options.
Co-Authored-By: Claude <noreply@anthropic.com>
Introduce a setMute protocol action and an NAudio-backed
AudioControlService so the Android client can toggle the Windows
render endpoint mute state over WebSocket.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add heartbeat ping every 5 seconds to detect stale connections
- Replace clients when same IP reconnects instead of accumulating
- Remove unavailable clients on connect and heartbeat probe
- Marshal UI updates to UI thread via SynchronizationContext
- Show balloon toast on device connect/disconnect
- Add disposal safety check for UpdateTrayStatus
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>