306 lines
11 KiB
JavaScript
306 lines
11 KiB
JavaScript
import {
|
|
useStore_EnableAutoMicSelect,
|
|
useStore_EnableAutoSpeakerSelect,
|
|
|
|
useStore_MicDeviceList,
|
|
useStore_MicHostList,
|
|
useStore_SpeakerDeviceList,
|
|
|
|
useStore_SelectedMicHost,
|
|
useStore_SelectedMicDevice,
|
|
|
|
useStore_SelectedSpeakerDevice,
|
|
|
|
useStore_MicThreshold,
|
|
useStore_EnableAutomaticMicThreshold,
|
|
useStore_SpeakerThreshold,
|
|
useStore_EnableAutomaticSpeakerThreshold,
|
|
} from "@store";
|
|
import { useStdoutToPython } from "@useStdoutToPython";
|
|
import { arrayToObject } from "@utils";
|
|
import { useNotificationStatus } from "@logics_common";
|
|
|
|
export const useDevice = () => {
|
|
const { asyncStdoutToPython } = useStdoutToPython();
|
|
const { showNotification_SaveSuccess } = useNotificationStatus();
|
|
|
|
const { currentEnableAutoMicSelect, updateEnableAutoMicSelect, pendingEnableAutoMicSelect } = useStore_EnableAutoMicSelect();
|
|
const { currentEnableAutoSpeakerSelect, updateEnableAutoSpeakerSelect, pendingEnableAutoSpeakerSelect } = useStore_EnableAutoSpeakerSelect();
|
|
|
|
const { currentMicDeviceList, updateMicDeviceList, pendingMicDeviceList } = useStore_MicDeviceList();
|
|
const { currentMicHostList, updateMicHostList, pendingMicHostList } = useStore_MicHostList();
|
|
const { currentSpeakerDeviceList, updateSpeakerDeviceList, pendingSpeakerDeviceList } = useStore_SpeakerDeviceList();
|
|
|
|
const { currentSelectedMicHost, updateSelectedMicHost, pendingSelectedMicHost } = useStore_SelectedMicHost();
|
|
const { currentSelectedMicDevice, updateSelectedMicDevice, pendingSelectedMicDevice } = useStore_SelectedMicDevice();
|
|
|
|
const { currentSelectedSpeakerDevice, updateSelectedSpeakerDevice, pendingSelectedSpeakerDevice } = useStore_SelectedSpeakerDevice();
|
|
|
|
const { currentMicThreshold, updateMicThreshold } = useStore_MicThreshold();
|
|
const { currentEnableAutomaticMicThreshold, updateEnableAutomaticMicThreshold, pendingEnableAutomaticMicThreshold } = useStore_EnableAutomaticMicThreshold();
|
|
|
|
const { currentSpeakerThreshold, updateSpeakerThreshold } = useStore_SpeakerThreshold();
|
|
const { currentEnableAutomaticSpeakerThreshold, updateEnableAutomaticSpeakerThreshold, pendingEnableAutomaticSpeakerThreshold } = useStore_EnableAutomaticSpeakerThreshold();
|
|
|
|
// Auto Select (Mic)
|
|
const getEnableAutoMicSelect = () => {
|
|
pendingEnableAutoMicSelect();
|
|
asyncStdoutToPython("/get/data/auto_mic_select");
|
|
};
|
|
|
|
const toggleEnableAutoMicSelect = () => {
|
|
pendingEnableAutoMicSelect();
|
|
if (currentEnableAutoMicSelect.data) {
|
|
asyncStdoutToPython("/set/disable/auto_mic_select");
|
|
} else {
|
|
asyncStdoutToPython("/set/enable/auto_mic_select");
|
|
}
|
|
};
|
|
|
|
const setSuccessEnableAutoMicSelect = (enabled) => {
|
|
updateEnableAutoMicSelect(enabled);
|
|
showNotification_SaveSuccess();
|
|
};
|
|
|
|
// Auto Select (Speaker)
|
|
const getEnableAutoSpeakerSelect = () => {
|
|
pendingEnableAutoSpeakerSelect();
|
|
asyncStdoutToPython("/get/data/auto_speaker_select");
|
|
};
|
|
|
|
const toggleEnableAutoSpeakerSelect = () => {
|
|
pendingEnableAutoSpeakerSelect();
|
|
if (currentEnableAutoSpeakerSelect.data) {
|
|
asyncStdoutToPython("/set/disable/auto_speaker_select");
|
|
} else {
|
|
asyncStdoutToPython("/set/enable/auto_speaker_select");
|
|
}
|
|
};
|
|
|
|
const setSuccessEnableAutoSpeakerSelect = (enabled) => {
|
|
updateEnableAutoSpeakerSelect(enabled);
|
|
showNotification_SaveSuccess();
|
|
};
|
|
|
|
// List (Mic device)
|
|
const getMicDeviceList = () => {
|
|
pendingMicDeviceList();
|
|
asyncStdoutToPython("/get/data/mic_device_list");
|
|
};
|
|
|
|
const updateMicDeviceList_FromBackend = (payload) => {
|
|
updateMicDeviceList(arrayToObject(payload));
|
|
};
|
|
|
|
// List (Mic host)
|
|
const getMicHostList = () => {
|
|
pendingMicHostList();
|
|
asyncStdoutToPython("/get/data/mic_host_list");
|
|
};
|
|
|
|
const updateMicHostList_FromBackend = (payload) => {
|
|
updateMicHostList(arrayToObject(payload));
|
|
};
|
|
|
|
// List (Speaker device)
|
|
const getSpeakerDeviceList = () => {
|
|
pendingSpeakerDeviceList();
|
|
asyncStdoutToPython("/get/data/speaker_device_list");
|
|
};
|
|
|
|
const updateSpeakerDeviceList_FromBackend = (payload) => {
|
|
updateSpeakerDeviceList(arrayToObject(payload));
|
|
};
|
|
|
|
// Selected (Mic host)
|
|
const getSelectedMicHost = () => {
|
|
pendingSelectedMicHost();
|
|
asyncStdoutToPython("/get/data/selected_mic_host");
|
|
};
|
|
|
|
const setSelectedMicHost = (selected_mic_host) => {
|
|
pendingSelectedMicHost();
|
|
asyncStdoutToPython("/set/data/selected_mic_host", selected_mic_host);
|
|
};
|
|
|
|
const setSuccessSelectedMicHost = (payload) => {
|
|
updateSelectedMicHostAndDevice(payload); // Receive host and device from backend.
|
|
showNotification_SaveSuccess();
|
|
};
|
|
|
|
// Selected (Mic device)
|
|
const getSelectedMicDevice = () => {
|
|
pendingSelectedMicDevice();
|
|
asyncStdoutToPython("/get/data/selected_mic_device");
|
|
};
|
|
|
|
const setSelectedMicDevice = (selected_mic_device) => {
|
|
pendingSelectedMicDevice();
|
|
asyncStdoutToPython("/set/data/selected_mic_device", selected_mic_device);
|
|
};
|
|
|
|
const setSuccessSelectedMicDevice = (selected_mic_device) => {
|
|
updateSelectedMicDevice(selected_mic_device);
|
|
showNotification_SaveSuccess();
|
|
};
|
|
|
|
// Selected (Mic Device and Host)
|
|
const updateSelectedMicHostAndDevice = (payload) => {
|
|
updateSelectedMicHost(payload.host);
|
|
updateSelectedMicDevice(payload.device);
|
|
}
|
|
|
|
// Selected (Speaker device)
|
|
const getSelectedSpeakerDevice = () => {
|
|
pendingSelectedSpeakerDevice();
|
|
asyncStdoutToPython("/get/data/selected_speaker_device");
|
|
};
|
|
|
|
const setSelectedSpeakerDevice = (selected_speaker_device) => {
|
|
pendingSelectedSpeakerDevice();
|
|
asyncStdoutToPython("/set/data/selected_speaker_device", selected_speaker_device);
|
|
};
|
|
|
|
const setSuccessSelectedSpeakerDevice = (selected_speaker_device) => {
|
|
updateSelectedSpeakerDevice(selected_speaker_device);
|
|
showNotification_SaveSuccess();
|
|
};
|
|
|
|
// Threshold (Mic)
|
|
const getMicThreshold = () => {
|
|
asyncStdoutToPython("/get/data/mic_threshold");
|
|
};
|
|
|
|
const setMicThreshold = (mic_threshold) => {
|
|
asyncStdoutToPython("/set/data/mic_threshold", mic_threshold);
|
|
};
|
|
|
|
const setSuccessMicThreshold = (mic_threshold) => {
|
|
updateMicThreshold(mic_threshold);
|
|
showNotification_SaveSuccess();
|
|
};
|
|
|
|
const getEnableAutomaticMicThreshold = () => {
|
|
pendingEnableAutomaticMicThreshold();
|
|
asyncStdoutToPython("/get/data/mic_automatic_threshold");
|
|
};
|
|
|
|
const toggleEnableAutomaticMicThreshold = () => {
|
|
pendingEnableAutomaticMicThreshold();
|
|
if (currentEnableAutomaticMicThreshold.data) {
|
|
asyncStdoutToPython("/set/disable/mic_automatic_threshold");
|
|
} else {
|
|
asyncStdoutToPython("/set/enable/mic_automatic_threshold");
|
|
}
|
|
};
|
|
|
|
const setSuccessEnableAutomaticMicThreshold = (enabled) => {
|
|
updateEnableAutomaticMicThreshold(enabled);
|
|
showNotification_SaveSuccess();
|
|
};
|
|
|
|
// Threshold (Speaker)
|
|
const getSpeakerThreshold = () => {
|
|
asyncStdoutToPython("/get/data/speaker_threshold");
|
|
};
|
|
|
|
const setSpeakerThreshold = (speaker_threshold) => {
|
|
asyncStdoutToPython("/set/data/speaker_threshold", speaker_threshold);
|
|
};
|
|
|
|
const setSuccessSpeakerThreshold = (speaker_threshold) => {
|
|
updateSpeakerThreshold(speaker_threshold);
|
|
showNotification_SaveSuccess();
|
|
};
|
|
|
|
const getEnableAutomaticSpeakerThreshold = () => {
|
|
pendingEnableAutomaticSpeakerThreshold();
|
|
asyncStdoutToPython("/get/data/speaker_automatic_threshold");
|
|
};
|
|
|
|
const toggleEnableAutomaticSpeakerThreshold = () => {
|
|
pendingEnableAutomaticSpeakerThreshold();
|
|
if (currentEnableAutomaticSpeakerThreshold.data) {
|
|
asyncStdoutToPython("/set/disable/speaker_automatic_threshold");
|
|
} else {
|
|
asyncStdoutToPython("/set/enable/speaker_automatic_threshold");
|
|
}
|
|
};
|
|
|
|
const setSuccessEnableAutomaticSpeakerThreshold = (enabled) => {
|
|
updateEnableAutomaticSpeakerThreshold(enabled);
|
|
showNotification_SaveSuccess();
|
|
};
|
|
|
|
return {
|
|
currentEnableAutoMicSelect,
|
|
getEnableAutoMicSelect,
|
|
updateEnableAutoMicSelect,
|
|
toggleEnableAutoMicSelect,
|
|
setSuccessEnableAutoMicSelect,
|
|
|
|
currentEnableAutoSpeakerSelect,
|
|
getEnableAutoSpeakerSelect,
|
|
updateEnableAutoSpeakerSelect,
|
|
toggleEnableAutoSpeakerSelect,
|
|
setSuccessEnableAutoSpeakerSelect,
|
|
|
|
currentMicDeviceList,
|
|
getMicDeviceList,
|
|
updateMicDeviceList,
|
|
updateMicDeviceList_FromBackend,
|
|
|
|
currentMicHostList,
|
|
getMicHostList,
|
|
updateMicHostList,
|
|
updateMicHostList_FromBackend,
|
|
|
|
currentSpeakerDeviceList,
|
|
getSpeakerDeviceList,
|
|
updateSpeakerDeviceList,
|
|
updateSpeakerDeviceList_FromBackend,
|
|
|
|
currentSelectedMicHost,
|
|
getSelectedMicHost,
|
|
updateSelectedMicHost,
|
|
setSelectedMicHost,
|
|
setSuccessSelectedMicHost,
|
|
|
|
currentSelectedMicDevice,
|
|
getSelectedMicDevice,
|
|
updateSelectedMicDevice,
|
|
setSelectedMicDevice,
|
|
setSuccessSelectedMicDevice,
|
|
updateSelectedMicHostAndDevice,
|
|
|
|
currentSelectedSpeakerDevice,
|
|
getSelectedSpeakerDevice,
|
|
updateSelectedSpeakerDevice,
|
|
setSelectedSpeakerDevice,
|
|
setSuccessSelectedSpeakerDevice,
|
|
|
|
currentMicThreshold,
|
|
getMicThreshold,
|
|
setMicThreshold,
|
|
updateMicThreshold,
|
|
setSuccessMicThreshold,
|
|
|
|
currentEnableAutomaticMicThreshold,
|
|
getEnableAutomaticMicThreshold,
|
|
toggleEnableAutomaticMicThreshold,
|
|
updateEnableAutomaticMicThreshold,
|
|
setSuccessEnableAutomaticMicThreshold,
|
|
|
|
currentSpeakerThreshold,
|
|
getSpeakerThreshold,
|
|
setSpeakerThreshold,
|
|
updateSpeakerThreshold,
|
|
setSuccessSpeakerThreshold,
|
|
|
|
currentEnableAutomaticSpeakerThreshold,
|
|
getEnableAutomaticSpeakerThreshold,
|
|
toggleEnableAutomaticSpeakerThreshold,
|
|
updateEnableAutomaticSpeakerThreshold,
|
|
setSuccessEnableAutomaticSpeakerThreshold,
|
|
};
|
|
}; |