mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 10:04:33 +02:00
37 lines
1,001 B
JavaScript
37 lines
1,001 B
JavaScript
import { defineStore } from "pinia";
|
|
import { getAudioDevices } from "../js/api";
|
|
import { ref } from "vue";
|
|
|
|
|
|
// Define skel fallback data
|
|
const skel = [{
|
|
"api": "ERR",
|
|
"id": "0000",
|
|
"name": "No devices received from modem",
|
|
"native_index": 0
|
|
}];
|
|
|
|
export const useAudioStore = defineStore("audioStore", () => {
|
|
const audioInputs = ref([]);
|
|
const audioOutputs = ref([]);
|
|
|
|
const loadAudioDevices = async () => {
|
|
try {
|
|
const devices = await getAudioDevices();
|
|
// Check if devices are valid and have entries, otherwise use skel
|
|
audioInputs.value = devices && devices.in.length > 0 ? devices.in : skel;
|
|
audioOutputs.value = devices && devices.out.length > 0 ? devices.out : skel;
|
|
} catch (error) {
|
|
console.error("Failed to load audio devices:", error);
|
|
// Use skel as fallback in case of error
|
|
audioInputs.value = skel;
|
|
audioOutputs.value = skel;
|
|
}
|
|
};
|
|
|
|
return {
|
|
audioInputs,
|
|
audioOutputs,
|
|
loadAudioDevices,
|
|
};
|
|
}); |