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);
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:

View file

@ -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: {

View file

@ -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 += `<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;
}
@ -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 += `<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;
}

View file

@ -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)