From 24ad55081c384bb93c2b92f06605a82a1dec721f Mon Sep 17 00:00:00 2001 From: DJ2LS Date: Thu, 9 Nov 2023 14:15:11 +0100 Subject: [PATCH] fix audio device selection --- gui/src/js/rest.js | 6 ++++-- gui/src/js/settingsHandler.ts | 21 +++++++++++++++++++-- gui/src/store/audioStore.js | 10 ++++++---- modem/server.py | 9 +-------- 4 files changed, 30 insertions(+), 16 deletions(-) diff --git a/gui/src/js/rest.js b/gui/src/js/rest.js index d7afa170..35ae0061 100644 --- a/gui/src/js/rest.js +++ b/gui/src/js/rest.js @@ -4,6 +4,8 @@ import pinia from "../store/index"; setActivePinia(pinia); import { processModemConfig, + processModemAudioDevices, + processModemSerialDevices, getModemConfigAsJSON, } from "../js/settingsHandler.ts"; @@ -52,10 +54,10 @@ function restDataDispatcher(endpoint, data) { processModemConfig(data); break; case "devices/audio": - //processModemAudioDevices(data); + processModemAudioDevices(data); break; case "devices/serial": - //processModemSerialDevices(data); + processModemSerialDevices(data); break; default: diff --git a/gui/src/js/settingsHandler.ts b/gui/src/js/settingsHandler.ts index 3d6bf6a3..bb49861b 100644 --- a/gui/src/js/settingsHandler.ts +++ b/gui/src/js/settingsHandler.ts @@ -9,6 +9,9 @@ setActivePinia(pinia); import { useSettingsStore } from "../store/settingsStore.js"; const settings = useSettingsStore(pinia); +import { useAudioStore } from "../store/audioStore.js"; +const audioStore = useAudioStore(pinia); + import { postToServer, getFromServer } from "./rest.js"; // --------------------------------- @@ -133,6 +136,8 @@ export function processModemConfig(data) { settings.auto_tune = data.AUDIO.auto_tune; settings.rx_audio_level = data.AUDIO.rxaudiolevel; settings.tx_audio_level = data.AUDIO.txaudiolevel; + settings.rx_audio = data.AUDIO.rx; + settings.tx_audio = data.AUDIO.tx; // MODEM SETTINGS settings.enable_fft = data.Modem.fft; @@ -159,6 +164,18 @@ export function processModemConfig(data) { settings.enable_mesh_features = data.MESH.enable_protocol; } +export function processModemAudioDevices(data) { + console.log(data) + audioStore.inputDevices = data["in"]; + audioStore.outputDevices = data["out"]; +} + +export function processModemSerialDevices(data) { + + settings.serial_devices = data; +} + + export function getModemConfigAsJSON() { // create json output from settings // TODO Can we make this more dynamic? Maybe using a settings object? @@ -167,9 +184,9 @@ export function getModemConfigAsJSON() { const configData = { AUDIO: { auto_tune: settings.auto_tune, - rx: "560f", + rx: settings.rx_audio, rxaudiolevel: settings.rx_audio_level, - tx: "560f", + tx: settings.tx_audio, txaudiolevel: settings.tx_audio_level, }, MESH: { diff --git a/gui/src/store/audioStore.js b/gui/src/store/audioStore.js index cf7282cc..20bde06a 100644 --- a/gui/src/store/audioStore.js +++ b/gui/src/store/audioStore.js @@ -19,13 +19,15 @@ export const useAudioStore = defineStore("audioStore", () => { var html = ""; for (var key in inputDevices.value) { let selected = ""; - if (inputDevices.value[key]["name"] == settings.rx_audio) { + + console.log("AUDIO DEVICES: " + inputDevices.value[key]["id"] + " | " + settings.rx_audio) + if (inputDevices.value[key]["id"] == settings.rx_audio) { selected = "selected"; } else { selected = ""; } - html += ``; + html += ``; } return html; } @@ -34,12 +36,12 @@ export const useAudioStore = defineStore("audioStore", () => { var html = ""; for (var key in outputDevices.value) { let selected = ""; - if (outputDevices.value[key]["name"] == settings.tx_audio) { + if (outputDevices.value[key]["id"] == settings.tx_audio) { selected = "selected"; } else { selected = ""; } - html += ``; + html += ``; } return html; } diff --git a/modem/server.py b/modem/server.py index e38c5e4f..eaea6c01 100644 --- a/modem/server.py +++ b/modem/server.py @@ -116,12 +116,5 @@ def post_cqcqcq(): # Event websocket @sock.route('/events') def echo(sock): - print("----------------------") - print("waiting for input") ev = app.modem_events.get() - print(ev) - try: - sock.send(ev) - except Exception as e: - print(e) - print("sending to sock done") + sock.send(ev)