add browser mic TX: Opus-encoded mic audio from web client to WDSP TX chain

- Browser: AudioWorklet accumulates 960-sample frames, AudioEncoder encodes
  to Opus, sends binary WS frame 'M' + raw Opus packet
- Server: opcode $02 handler decodes Opus via libopus, calls OnWebMic callback
- MainForm: WebOnMic converts PSingle→Double, pushes to PushTXMicSamplesD;
  ApplyMOX switches mic source to txmsWeb when web client active, restores on TX-off
- WDSPEngine: added txmsWeb to TTXMicSource enum

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-09 21:49:51 +03:00
co-authored by Claude Sonnet 4.6
parent 3d25f837af
commit 2ab90e8855
4 changed files with 117 additions and 2 deletions
+1 -1
View File
@@ -140,7 +140,7 @@ type
TPullMicSamplesFunc = function(Max: Integer): Integer of object;
// TX mic source: откуда получаем сэмплы для модулятора.
TTXMicSource = (txmsRadio, txmsSoundCard);
TTXMicSource = (txmsRadio, txmsSoundCard, txmsWeb);
{ TWDSPEngine }
TWDSPEngine = class