From e201cee24a8b220f11b2335d7c85c12bb45bba45 Mon Sep 17 00:00:00 2001
From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com>
Date: Wed, 16 Oct 2024 22:44:26 +0900
Subject: [PATCH] [Update] Config Page: Others Tab.
EnableSendOnlyTranslatedMessages, EnableAutoExportMessageLogs,
EnableVrcMicMuteSync, EnableSendMessageToVrc
---
src-ui/app/App.jsx | 15 +++++
.../setting_box/others/Others.jsx | 59 +++++++++++++++++++
src-ui/logics/configs/index.js | 4 ++
.../others/useEnableAutoExportMessageLogs.js | 28 +++++++++
.../others/useEnableSendMessageToVrc.js | 28 +++++++++
.../useEnableSendOnlyTranslatedMessages.js | 28 +++++++++
.../configs/others/useEnableVrcMicMuteSync.js | 28 +++++++++
src-ui/logics/useReceiveRoutes.js | 30 +++++++++-
src-ui/store.js | 4 ++
9 files changed, 222 insertions(+), 2 deletions(-)
create mode 100644 src-ui/logics/configs/others/useEnableAutoExportMessageLogs.js
create mode 100644 src-ui/logics/configs/others/useEnableSendMessageToVrc.js
create mode 100644 src-ui/logics/configs/others/useEnableSendOnlyTranslatedMessages.js
create mode 100644 src-ui/logics/configs/others/useEnableVrcMicMuteSync.js
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");