fix audio device selection

This commit is contained in:
DJ2LS 2023-11-09 14:15:11 +01:00
parent 119eb4ed88
commit 24ad55081c
4 changed files with 30 additions and 16 deletions

View file

@ -4,6 +4,8 @@ import pinia from "../store/index";
setActivePinia(pinia); setActivePinia(pinia);
import { import {
processModemConfig, processModemConfig,
processModemAudioDevices,
processModemSerialDevices,
getModemConfigAsJSON, getModemConfigAsJSON,
} from "../js/settingsHandler.ts"; } from "../js/settingsHandler.ts";
@ -52,10 +54,10 @@ function restDataDispatcher(endpoint, data) {
processModemConfig(data); processModemConfig(data);
break; break;
case "devices/audio": case "devices/audio":
//processModemAudioDevices(data); processModemAudioDevices(data);
break; break;
case "devices/serial": case "devices/serial":
//processModemSerialDevices(data); processModemSerialDevices(data);
break; break;
default: default:

View file

@ -9,6 +9,9 @@ setActivePinia(pinia);
import { useSettingsStore } from "../store/settingsStore.js"; import { useSettingsStore } from "../store/settingsStore.js";
const settings = useSettingsStore(pinia); const settings = useSettingsStore(pinia);
import { useAudioStore } from "../store/audioStore.js";
const audioStore = useAudioStore(pinia);
import { postToServer, getFromServer } from "./rest.js"; import { postToServer, getFromServer } from "./rest.js";
// --------------------------------- // ---------------------------------
@ -133,6 +136,8 @@ export function processModemConfig(data) {
settings.auto_tune = data.AUDIO.auto_tune; settings.auto_tune = data.AUDIO.auto_tune;
settings.rx_audio_level = data.AUDIO.rxaudiolevel; settings.rx_audio_level = data.AUDIO.rxaudiolevel;
settings.tx_audio_level = data.AUDIO.txaudiolevel; settings.tx_audio_level = data.AUDIO.txaudiolevel;
settings.rx_audio = data.AUDIO.rx;
settings.tx_audio = data.AUDIO.tx;
// MODEM SETTINGS // MODEM SETTINGS
settings.enable_fft = data.Modem.fft; settings.enable_fft = data.Modem.fft;
@ -159,6 +164,18 @@ export function processModemConfig(data) {
settings.enable_mesh_features = data.MESH.enable_protocol; 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() { export function getModemConfigAsJSON() {
// create json output from settings // create json output from settings
// TODO Can we make this more dynamic? Maybe using a settings object? // TODO Can we make this more dynamic? Maybe using a settings object?
@ -167,9 +184,9 @@ export function getModemConfigAsJSON() {
const configData = { const configData = {
AUDIO: { AUDIO: {
auto_tune: settings.auto_tune, auto_tune: settings.auto_tune,
rx: "560f", rx: settings.rx_audio,
rxaudiolevel: settings.rx_audio_level, rxaudiolevel: settings.rx_audio_level,
tx: "560f", tx: settings.tx_audio,
txaudiolevel: settings.tx_audio_level, txaudiolevel: settings.tx_audio_level,
}, },
MESH: { MESH: {

View file

@ -19,13 +19,15 @@ export const useAudioStore = defineStore("audioStore", () => {
var html = ""; var html = "";
for (var key in inputDevices.value) { for (var key in inputDevices.value) {
let selected = ""; 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"; selected = "selected";
} else { } else {
selected = ""; selected = "";
} }
html += `<option value=${inputDevices.value[key]["id"]} ${selected}>${inputDevices.value[key]["name"]}</option>`; html += `<option value=${inputDevices.value[key]["id"]} ${selected}>${inputDevices.value[key]["name"]} | ${inputDevices.value[key]["api"]}</option>`;
} }
return html; return html;
} }
@ -34,12 +36,12 @@ export const useAudioStore = defineStore("audioStore", () => {
var html = ""; var html = "";
for (var key in outputDevices.value) { for (var key in outputDevices.value) {
let selected = ""; let selected = "";
if (outputDevices.value[key]["name"] == settings.tx_audio) { if (outputDevices.value[key]["id"] == settings.tx_audio) {
selected = "selected"; selected = "selected";
} else { } else {
selected = ""; selected = "";
} }
html += `<option value=${outputDevices.value[key]["id"]} ${selected}>${outputDevices.value[key]["name"]}</option>`; html += `<option value=${outputDevices.value[key]["id"]} ${selected}>${outputDevices.value[key]["name"]} | ${inputDevices.value[key]["api"]}</option>`;
} }
return html; return html;
} }

View file

@ -116,12 +116,5 @@ def post_cqcqcq():
# Event websocket # Event websocket
@sock.route('/events') @sock.route('/events')
def echo(sock): def echo(sock):
print("----------------------")
print("waiting for input")
ev = app.modem_events.get() ev = app.modem_events.get()
print(ev)
try:
sock.send(ev) sock.send(ev)
except Exception as e:
print(e)
print("sending to sock done")