diff --git a/src-ui/app/App.jsx b/src-ui/app/App.jsx index f421bb4c..af1b4cf2 100644 --- a/src-ui/app/App.jsx +++ b/src-ui/app/App.jsx @@ -42,6 +42,10 @@ import { useMicThreshold, useSpeakerThreshold, useEnableAutoClearMessageInputBox, + useEnableSendOnlyTranslatedMessages, + useEnableAutoExportMessageLogs, + useEnableVrcMicMuteSync, + useEnableSendMessageToVrc, useSendMessageButtonType, useUiLanguage, useUiScaling, @@ -88,7 +92,13 @@ const StartPythonFacadeComponent = () => { const { getSelectedSpeakerDevice } = useSelectedSpeakerDevice(); const { getMicThreshold, getEnableAutomaticMicThreshold } = useMicThreshold(); const { getSpeakerThreshold, getEnableAutomaticSpeakerThreshold } = useSpeakerThreshold(); + const { getEnableAutoClearMessageInputBox } = useEnableAutoClearMessageInputBox(); + const { getEnableSendOnlyTranslatedMessages } = useEnableSendOnlyTranslatedMessages(); + const { getEnableAutoExportMessageLogs } = useEnableAutoExportMessageLogs(); + const { getEnableVrcMicMuteSync } = useEnableVrcMicMuteSync(); + const { getEnableSendMessageToVrc } = useEnableSendMessageToVrc(); + const { getSendMessageButtonType } = useSendMessageButtonType(); const { getUiLanguage } = useUiLanguage(); const { getUiScaling } = useUiScaling(); @@ -170,6 +180,11 @@ const StartPythonFacadeComponent = () => { getEnableAutoClearMessageInputBox(); getSendMessageButtonType(); + + getEnableSendOnlyTranslatedMessages(); + getEnableAutoExportMessageLogs(); + getEnableVrcMicMuteSync(); + getEnableSendMessageToVrc(); }).catch((err) => { console.error(err); }); diff --git a/src-ui/app/config_page/setting_section/setting_box/others/Others.jsx b/src-ui/app/config_page/setting_section/setting_box/others/Others.jsx index b8de0d9c..71add0da 100644 --- a/src-ui/app/config_page/setting_section/setting_box/others/Others.jsx +++ b/src-ui/app/config_page/setting_section/setting_box/others/Others.jsx @@ -2,6 +2,10 @@ import { useTranslation } from "react-i18next"; import { useEnableAutoClearMessageInputBox, + useEnableSendOnlyTranslatedMessages, + useEnableAutoExportMessageLogs, + useEnableVrcMicMuteSync, + useEnableSendMessageToVrc, } from "@logics_configs"; import { @@ -13,6 +17,10 @@ export const Others = () => { return ( <> + + + + ); }; @@ -28,4 +36,55 @@ const AutoClearMessageInputBoxContainer = () => { toggleFunction={toggleEnableAutoClearMessageInputBox} /> ); +}; +const SendOnlyTranslatedMessagesContainer = () => { + const { t } = useTranslation(); + const { currentEnableSendOnlyTranslatedMessages, toggleEnableSendOnlyTranslatedMessages } = useEnableSendOnlyTranslatedMessages(); + + return ( + + ); +}; +const AutoExportMessageLogsContainer = () => { + const { t } = useTranslation(); + const { currentEnableAutoExportMessageLogs, toggleEnableAutoExportMessageLogs } = useEnableAutoExportMessageLogs(); + + return ( + + ); +}; +const VrcMicMuteSyncContainer = () => { + const { t } = useTranslation(); + const { currentEnableVrcMicMuteSync, toggleEnableVrcMicMuteSync } = useEnableVrcMicMuteSync(); + + return ( + + ); +}; +const SendMessageToVrcContainer = () => { + const { t } = useTranslation(); + const { currentEnableSendMessageToVrc, toggleEnableSendMessageToVrc } = useEnableSendMessageToVrc(); + + return ( + + ); }; \ No newline at end of file diff --git a/src-ui/logics/configs/index.js b/src-ui/logics/configs/index.js index 6d30baec..f9555445 100644 --- a/src-ui/logics/configs/index.js +++ b/src-ui/logics/configs/index.js @@ -17,6 +17,10 @@ export { useUiLanguage } from "./appearance/useUiLanguage"; export { useUiScaling } from "./appearance/useUiScaling"; export { useEnableAutoClearMessageInputBox } from "./others/useEnableAutoClearMessageInputBox"; +export { useEnableAutoExportMessageLogs } from "./others/useEnableAutoExportMessageLogs"; +export { useEnableSendMessageToVrc } from "./others/useEnableSendMessageToVrc"; +export { useEnableSendOnlyTranslatedMessages } from "./others/useEnableSendOnlyTranslatedMessages"; +export { useEnableVrcMicMuteSync } from "./others/useEnableVrcMicMuteSync"; export { useMicRecordTimeout } from "./transcription/useMicRecordTimeout"; export { useMicPhraseTimeout } from "./transcription/useMicPhraseTimeout"; diff --git a/src-ui/logics/configs/others/useEnableAutoExportMessageLogs.js b/src-ui/logics/configs/others/useEnableAutoExportMessageLogs.js new file mode 100644 index 00000000..8249a83a --- /dev/null +++ b/src-ui/logics/configs/others/useEnableAutoExportMessageLogs.js @@ -0,0 +1,28 @@ +import { useStore_EnableAutoExportMessageLogs } from "@store"; +import { useStdoutToPython } from "@logics/useStdoutToPython"; + +export const useEnableAutoExportMessageLogs = () => { + const { asyncStdoutToPython } = useStdoutToPython(); + const { currentEnableAutoExportMessageLogs, updateEnableAutoExportMessageLogs, pendingEnableAutoExportMessageLogs } = useStore_EnableAutoExportMessageLogs(); + + const getEnableAutoExportMessageLogs = () => { + pendingEnableAutoExportMessageLogs(); + asyncStdoutToPython("/get/data/logger_feature"); + }; + + const toggleEnableAutoExportMessageLogs = () => { + pendingEnableAutoExportMessageLogs(); + if (currentEnableAutoExportMessageLogs.data) { + asyncStdoutToPython("/set/disable/logger_feature"); + } else { + asyncStdoutToPython("/set/enable/logger_feature"); + } + }; + + return { + currentEnableAutoExportMessageLogs, + getEnableAutoExportMessageLogs, + toggleEnableAutoExportMessageLogs, + updateEnableAutoExportMessageLogs, + }; +}; \ No newline at end of file diff --git a/src-ui/logics/configs/others/useEnableSendMessageToVrc.js b/src-ui/logics/configs/others/useEnableSendMessageToVrc.js new file mode 100644 index 00000000..10ef4b0c --- /dev/null +++ b/src-ui/logics/configs/others/useEnableSendMessageToVrc.js @@ -0,0 +1,28 @@ +import { useStore_EnableSendMessageToVrc } from "@store"; +import { useStdoutToPython } from "@logics/useStdoutToPython"; + +export const useEnableSendMessageToVrc = () => { + const { asyncStdoutToPython } = useStdoutToPython(); + const { currentEnableSendMessageToVrc, updateEnableSendMessageToVrc, pendingEnableSendMessageToVrc } = useStore_EnableSendMessageToVrc(); + + const getEnableSendMessageToVrc = () => { + pendingEnableSendMessageToVrc(); + asyncStdoutToPython("/get/data/send_message_to_vrc"); + }; + + const toggleEnableSendMessageToVrc = () => { + pendingEnableSendMessageToVrc(); + if (currentEnableSendMessageToVrc.data) { + asyncStdoutToPython("/set/disable/send_message_to_vrc"); + } else { + asyncStdoutToPython("/set/enable/send_message_to_vrc"); + } + }; + + return { + currentEnableSendMessageToVrc, + getEnableSendMessageToVrc, + toggleEnableSendMessageToVrc, + updateEnableSendMessageToVrc, + }; +}; \ No newline at end of file diff --git a/src-ui/logics/configs/others/useEnableSendOnlyTranslatedMessages.js b/src-ui/logics/configs/others/useEnableSendOnlyTranslatedMessages.js new file mode 100644 index 00000000..7e9abefb --- /dev/null +++ b/src-ui/logics/configs/others/useEnableSendOnlyTranslatedMessages.js @@ -0,0 +1,28 @@ +import { useStore_EnableSendOnlyTranslatedMessages } from "@store"; +import { useStdoutToPython } from "@logics/useStdoutToPython"; + +export const useEnableSendOnlyTranslatedMessages = () => { + const { asyncStdoutToPython } = useStdoutToPython(); + const { currentEnableSendOnlyTranslatedMessages, updateEnableSendOnlyTranslatedMessages, pendingEnableSendOnlyTranslatedMessages } = useStore_EnableSendOnlyTranslatedMessages(); + + const getEnableSendOnlyTranslatedMessages = () => { + pendingEnableSendOnlyTranslatedMessages(); + asyncStdoutToPython("/get/data/send_only_translated_messages"); + }; + + const toggleEnableSendOnlyTranslatedMessages = () => { + pendingEnableSendOnlyTranslatedMessages(); + if (currentEnableSendOnlyTranslatedMessages.data) { + asyncStdoutToPython("/set/disable/send_only_translated_messages"); + } else { + asyncStdoutToPython("/set/enable/send_only_translated_messages"); + } + }; + + return { + currentEnableSendOnlyTranslatedMessages, + getEnableSendOnlyTranslatedMessages, + toggleEnableSendOnlyTranslatedMessages, + updateEnableSendOnlyTranslatedMessages, + }; +}; \ No newline at end of file diff --git a/src-ui/logics/configs/others/useEnableVrcMicMuteSync.js b/src-ui/logics/configs/others/useEnableVrcMicMuteSync.js new file mode 100644 index 00000000..16a853ab --- /dev/null +++ b/src-ui/logics/configs/others/useEnableVrcMicMuteSync.js @@ -0,0 +1,28 @@ +import { useStore_EnableVrcMicMuteSync } from "@store"; +import { useStdoutToPython } from "@logics/useStdoutToPython"; + +export const useEnableVrcMicMuteSync = () => { + const { asyncStdoutToPython } = useStdoutToPython(); + const { currentEnableVrcMicMuteSync, updateEnableVrcMicMuteSync, pendingEnableVrcMicMuteSync } = useStore_EnableVrcMicMuteSync(); + + const getEnableVrcMicMuteSync = () => { + pendingEnableVrcMicMuteSync(); + asyncStdoutToPython("/get/data/vrc_mic_mute_sync"); + }; + + const toggleEnableVrcMicMuteSync = () => { + pendingEnableVrcMicMuteSync(); + if (currentEnableVrcMicMuteSync.data) { + asyncStdoutToPython("/set/disable/vrc_mic_mute_sync"); + } else { + asyncStdoutToPython("/set/enable/vrc_mic_mute_sync"); + } + }; + + return { + currentEnableVrcMicMuteSync, + getEnableVrcMicMuteSync, + toggleEnableVrcMicMuteSync, + updateEnableVrcMicMuteSync, + }; +}; \ No newline at end of file diff --git a/src-ui/logics/useReceiveRoutes.js b/src-ui/logics/useReceiveRoutes.js index 1bad2043..a5a27499 100644 --- a/src-ui/logics/useReceiveRoutes.js +++ b/src-ui/logics/useReceiveRoutes.js @@ -28,6 +28,10 @@ import { useMicThreshold, useSpeakerThreshold, useEnableAutoClearMessageInputBox, + useEnableSendOnlyTranslatedMessages, + useEnableAutoExportMessageLogs, + useEnableVrcMicMuteSync, + useEnableSendMessageToVrc, useSelectedFontFamily, useUiLanguage, useUiScaling, @@ -76,7 +80,13 @@ export const useReceiveRoutes = () => { const { updateSelectedSpeakerDevice } = useSelectedSpeakerDevice(); const { updateMicThreshold, updateEnableAutomaticMicThreshold } = useMicThreshold(); const { updateSpeakerThreshold, updateEnableAutomaticSpeakerThreshold } = useSpeakerThreshold(); - const { updateEnableAutoClearMessageInputBox } = useEnableAutoClearMessageInputBox(); + + const { updateEnableAutoClearMessageInputBox } = useEnableAutoClearMessageInputBox(); + const { updateEnableSendOnlyTranslatedMessages } = useEnableSendOnlyTranslatedMessages(); + const { updateEnableAutoExportMessageLogs } = useEnableAutoExportMessageLogs(); + const { updateEnableVrcMicMuteSync } = useEnableVrcMicMuteSync(); + const { updateEnableSendMessageToVrc } = useEnableSendMessageToVrc(); + const { updateSendMessageButtonType } = useSendMessageButtonType(); const { updateUiLanguage } = useUiLanguage(); const { updateUiScaling } = useUiScaling(); @@ -95,7 +105,7 @@ export const useReceiveRoutes = () => { const { updateMicRecordTimeout } = useMicRecordTimeout(); const { updateMicPhraseTimeout } = useMicPhraseTimeout(); const { updateMicMaxWords } = useMicMaxWords(); - const { currentMicWordFilterList, updateMicWordFilterList } = useMicWordFilterList(); + const { updateMicWordFilterList } = useMicWordFilterList(); const { updateSpeakerRecordTimeout } = useSpeakerRecordTimeout(); const { updateSpeakerPhraseTimeout } = useSpeakerPhraseTimeout(); @@ -298,6 +308,22 @@ export const useReceiveRoutes = () => { "/get/data/auto_clear_message_box": updateEnableAutoClearMessageInputBox, "/set/enable/auto_clear_message_box": updateEnableAutoClearMessageInputBox, "/set/disable/auto_clear_message_box": updateEnableAutoClearMessageInputBox, + + "/get/data/send_only_translated_messages": updateEnableSendOnlyTranslatedMessages, + "/set/enable/send_only_translated_messages": updateEnableSendOnlyTranslatedMessages, + "/set/disable/send_only_translated_messages": updateEnableSendOnlyTranslatedMessages, + + "/get/data/logger_feature": updateEnableAutoExportMessageLogs, + "/set/enable/logger_feature": updateEnableAutoExportMessageLogs, + "/set/disable/logger_feature": updateEnableAutoExportMessageLogs, + + "/get/data/vrc_mic_mute_sync": updateEnableVrcMicMuteSync, + "/set/enable/vrc_mic_mute_sync": updateEnableVrcMicMuteSync, + "/set/disable/vrc_mic_mute_sync": updateEnableVrcMicMuteSync, + + "/get/data/send_message_to_vrc": updateEnableSendMessageToVrc, + "/set/enable/send_message_to_vrc": updateEnableSendMessageToVrc, + "/set/disable/send_message_to_vrc": updateEnableSendMessageToVrc, }; const error_routes = { diff --git a/src-ui/store.js b/src-ui/store.js index c5b8114f..1ea68913 100644 --- a/src-ui/store.js +++ b/src-ui/store.js @@ -191,6 +191,10 @@ export const { atomInstance: Atom_SpeakerMaxWords, useHook: useStore_SpeakerMaxW // Others export const { atomInstance: Atom_EnableAutoClearMessageInputBox, useHook: useStore_EnableAutoClearMessageInputBox } = createAtomWithHook(true, "EnableAutoClearMessageInputBox"); +export const { atomInstance: Atom_EnableSendOnlyTranslatedMessages, useHook: useStore_EnableSendOnlyTranslatedMessages } = createAtomWithHook(false, "EnableSendOnlyTranslatedMessages"); +export const { atomInstance: Atom_EnableAutoExportMessageLogs, useHook: useStore_EnableAutoExportMessageLogs } = createAtomWithHook(false, "EnableAutoExportMessageLogs"); +export const { atomInstance: Atom_EnableVrcMicMuteSync, useHook: useStore_EnableVrcMicMuteSync } = createAtomWithHook(false, "EnableVrcMicMuteSync"); +export const { atomInstance: Atom_EnableSendMessageToVrc, useHook: useStore_EnableSendMessageToVrc } = createAtomWithHook(true, "EnableSendMessageToVrc"); export const { atomInstance: Atom_IsOpenedTranslatorSelector, useHook: useStore_IsOpenedTranslatorSelector } = createAtomWithHook(false, "IsOpenedTranslatorSelector");