From 26eac84e3f377516b6148fb8230230937639877f Mon Sep 17 00:00:00 2001 From: sevenc-nanashi Date: Fri, 27 Jan 2023 20:17:08 +0900 Subject: [PATCH] =?UTF-8?q?Delete:=20=E5=85=A8=E4=BD=93=E8=A8=AD=E5=AE=9A?= =?UTF-8?q?=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/background.ts | 12 +++- src/background/engineManager.ts | 13 +--- src/components/SettingDialog.vue | 119 +++++++++++-------------------- src/store/audio.ts | 13 +--- src/store/setting.ts | 38 +++------- src/store/type.ts | 11 +-- src/store/ui.ts | 16 ----- src/type/preload.ts | 11 +-- tests/unit/store/Vuex.spec.ts | 6 +- 9 files changed, 71 insertions(+), 168 deletions(-) diff --git a/src/background.ts b/src/background.ts index 7ea6743080..a48df97613 100644 --- a/src/background.ts +++ b/src/background.ts @@ -132,9 +132,6 @@ const store = new Store({ } }, ">=0.14": (store) => { - if (store.get("savingSetting").outputSamplingRate == 24000) { - store.set("savingSetting.outputSamplingRate", "engineDefault"); - } // FIXME: できるならEngineManagerからEnginIDを取得したい const engineId = JSON.parse(process.env.DEFAULT_ENGINE_INFOS ?? "[]")[0] .uuid; @@ -149,6 +146,15 @@ const store = new Store({ defaultStyleId: defaultStyle.defaultStyleId, })) ); + + const outputSamplingRate: number = + // @ts-expect-error 削除されたパラメータ。 + store.get("savingSetting").outputSamplingRate; + store.set(`engineSetting.${engineId}`, { + useGpu: store.get("useGpu"), + outputSamplingRate: + outputSamplingRate === 24000 ? "engineDefault" : outputSamplingRate, + }); }, }, }); diff --git a/src/background/engineManager.ts b/src/background/engineManager.ts index e87fd4b514..ad204c2104 100644 --- a/src/background/engineManager.ts +++ b/src/background/engineManager.ts @@ -233,17 +233,8 @@ export class EngineManager { const engineProcessContainer = this.engineProcessContainers[engineId]; engineProcessContainer.willQuitEngine = false; - let useGpu = this.store.get("engineSetting")[engineId].useGpu; - let isInherit = false; - if (useGpu === "inherit" || engineInfos.length === 1) { - useGpu = this.store.get("useGpu"); - isInherit = true; - } - log.info( - `ENGINE ${engineId} mode: ${useGpu ? "GPU" : "CPU"}${ - isInherit ? " (inherit)" : "" - }` - ); + const useGpu = this.store.get("engineSetting")[engineId].useGpu; + log.info(`ENGINE ${engineId} mode: ${useGpu ? "GPU" : "CPU"}`); // エンジンプロセスの起動 const enginePath = engineInfo.executionFilePath; diff --git a/src/components/SettingDialog.vue b/src/components/SettingDialog.vue index 53e4fd4037..0cfd4abcf5 100644 --- a/src/components/SettingDialog.vue +++ b/src/components/SettingDialog.vue @@ -37,7 +37,7 @@ dense name="engine" v-model="selectedEngineId" - :options="['global', ...engineIds]" + :options="engineIds" :option-label="renderEngineNameLabel" /> @@ -701,6 +701,7 @@ import { useStore } from "@/store"; import { useQuasar } from "quasar"; import { SavingSetting, + EngineSettingRecord, ExperimentalSetting, ActivePointScrollMode, SplitTextWhenPasteType, @@ -708,7 +709,7 @@ import { } from "@/type/preload"; import FileNamePatternDialog from "./FileNamePatternDialog.vue"; -type SamplingRateOption = SavingSetting["outputSamplingRate"] | "inherit"; +type SamplingRateOption = EngineSettingRecord["outputSamplingRate"]; export default defineComponent({ name: "SettingDialog", @@ -735,18 +736,9 @@ export default defineComponent({ const engineUseGpu = computed({ get: () => { - let useGpu; - if (selectedEngineId.value == "global") { - useGpu = store.state.useGpu; - } else { - useGpu = store.state.engineSetting[selectedEngineId.value].useGpu; - if (useGpu === "inherit") { - return "inherit"; - } - } - return useGpu; + return store.state.engineSetting[selectedEngineId.value].useGpu; }, - set: (mode: boolean | "inherit") => { + set: (mode: boolean) => { changeUseGpu(mode); }, }); @@ -868,7 +860,7 @@ export default defineComponent({ }, }); - const changeUseGpu = async (useGpu: boolean | "inherit") => { + const changeUseGpu = async (useGpu: boolean) => { let useGpuBefore; if (useGpu === useGpuBefore) return; @@ -909,19 +901,19 @@ export default defineComponent({ const savingSetting = computed(() => store.state.savingSetting); const samplingRateOptions = computed(() => { - let options = ["engineDefault", 24000, 44100, 48000, 88200, 96000]; - if (selectedEngineId.value !== "global") { - options = ["inherit", ...options]; - } - return options as SamplingRateOption[]; + const options: SamplingRateOption[] = [ + "engineDefault", + 24000, + 44100, + 48000, + 88200, + 96000, + ]; + return options; }); const renderSamplingRateLabel = (value: SamplingRateOption): string => { if (value === "engineDefault") { return "エンジンのデフォルト"; - } else if (value === "inherit") { - return `全体設定を使用(${renderSamplingRateLabel( - savingSetting.value.outputSamplingRate - )})`; } else { return `${value / 1000} kHz`; } @@ -938,12 +930,8 @@ export default defineComponent({ const outputSamplingRate = computed({ get: () => { - if (selectedEngineId.value !== "global") { - return store.state.engineSetting[selectedEngineId.value] - .outputSamplingRate; - } else { - return store.state.savingSetting.outputSamplingRate; - } + return store.state.engineSetting[selectedEngineId.value] + .outputSamplingRate; }, set: (outputSamplingRate: SamplingRateOption) => { $q.dialog({ @@ -963,24 +951,13 @@ export default defineComponent({ textColor: "display", }, }).onOk(() => { - if (selectedEngineId.value !== "global") { - store.dispatch("SET_ENGINE_SETTING", { - engineId: selectedEngineId.value, - engineSetting: { - ...store.state.engineSetting[selectedEngineId.value], - outputSamplingRate, - }, - }); - } else { - if (outputSamplingRate === "inherit") { - throw new Error( - "outputSamplingRate cannot be inherit when global" - ); - } - store.dispatch("SET_SAVING_SETTING", { - data: { ...savingSetting.value, outputSamplingRate }, - }); - } + store.dispatch("SET_ENGINE_SETTING", { + engineId: selectedEngineId.value, + engineSetting: { + ...store.state.engineSetting[selectedEngineId.value], + outputSamplingRate, + }, + }); }); return; }, @@ -1011,39 +988,25 @@ export default defineComponent({ const showsFilePatternEditDialog = ref(false); - const selectedEngineId = ref("global"); - const renderEngineNameLabel = (engineIdOrGlobal: string) => { - if (engineIdOrGlobal === "global") { - return "全体"; - } else { - return engineInfos.value[engineIdOrGlobal].name; - } - }; - const engineUseGpuOptions = computed(() => { - let options: { label: string; value: boolean | "inherit" }[] = [ - { label: "CPU", value: false }, - { label: "GPU", value: true }, - ]; - if (selectedEngineId.value !== "global") { - options = [ - { - label: `全体設定を使用(${store.state.useGpu ? "GPU" : "CPU"})`, - value: "inherit", - }, - ...options, - ]; - } - return options; + const selectedEngineIdRaw = ref(""); + const selectedEngineId = computed({ + get: () => { + return selectedEngineIdRaw.value || engineIds.value[0]; + }, + set: (engineId: string) => { + selectedEngineIdRaw.value = engineId; + }, }); + const renderEngineNameLabel = (engineId: string) => { + return engineInfos.value[engineId].name; + }; + const engineUseGpuOptions = [ + { label: "CPU", value: false }, + { label: "GPU", value: true }, + ]; - const canEngineUseGpu = (engineIdOrGlobal: string) => { - if (engineIdOrGlobal === "global") { - return engineIds.value.some((engineId) => - store.getters.ENGINE_CAN_USE_GPU(engineId) - ); - } else { - return store.getters.ENGINE_CAN_USE_GPU; - } + const canEngineUseGpu = (engineId: string) => { + return store.getters.ENGINE_CAN_USE_GPU(engineId); }; return { diff --git a/src/store/audio.ts b/src/store/audio.ts index 406f5ae762..a2c1353dcc 100644 --- a/src/store/audio.ts +++ b/src/store/audio.ts @@ -42,16 +42,9 @@ async function generateUniqueIdAndQuery( audioItem = JSON.parse(JSON.stringify(audioItem)) as AudioItem; const audioQuery = audioItem.query; if (audioQuery != undefined) { - let outputSamplingRate; - if (audioItem.engineId && state.engineIds.length > 1) { - outputSamplingRate = - state.engineSetting[audioItem.engineId].outputSamplingRate; - } else { - outputSamplingRate = "inherit" as const; - } - if (outputSamplingRate === "inherit") { - outputSamplingRate = state.savingSetting.outputSamplingRate; - } + const outputSamplingRate = audioItem.engineId + ? state.engineSetting[audioItem.engineId].outputSamplingRate + : "engineDefault"; audioQuery.outputSamplingRate = outputSamplingRate; audioQuery.outputStereo = state.savingSetting.outputStereo; } diff --git a/src/store/setting.ts b/src/store/setting.ts index 25a4bb93ac..dac6f2303a 100644 --- a/src/store/setting.ts +++ b/src/store/setting.ts @@ -27,7 +27,6 @@ export const settingStoreState: SettingStoreState = { exportLab: false, exportText: false, outputStereo: false, - outputSamplingRate: "engineDefault", audioOutputDevice: "default", }, hotkeySettings: [], @@ -357,33 +356,16 @@ export const settingStore = createPartialStore({ } } - let result; - if (engineId === "global") { - if (useGpu === "inherit") { - throw new Error("useGpu is inherit, but engineId is global"); - } - const engineIdsWithInherit = state.engineIds.filter( - (id) => state.engineSetting[id].useGpu === "inherit" - ); - await dispatch("SET_USE_GPU", { useGpu }); - await dispatch("RESTART_ENGINES", { - engineIds: engineIdsWithInherit, - }); - result = await dispatch("POST_ENGINE_START", { - engineIds: engineIdsWithInherit, - }); - } else { - await dispatch("SET_ENGINE_SETTING", { - engineSetting: { ...state.engineSetting[engineId], useGpu }, - engineId, - }); - await dispatch("RESTART_ENGINES", { - engineIds: [engineId], - }); - result = await dispatch("POST_ENGINE_START", { - engineIds: [engineId], - }); - } + await dispatch("SET_ENGINE_SETTING", { + engineSetting: { ...state.engineSetting[engineId], useGpu }, + engineId, + }); + await dispatch("RESTART_ENGINES", { + engineIds: [engineId], + }); + const result = await dispatch("POST_ENGINE_START", { + engineIds: [engineId], + }); // GPUモードに変更できなかった場合はCPUモードに戻す // FIXME: useGpu設定を保存してからエンジン起動を試すのではなく、逆にしたい diff --git a/src/store/type.ts b/src/store/type.ts index 504373c12f..ef9a1c9575 100644 --- a/src/store/type.ts +++ b/src/store/type.ts @@ -1049,10 +1049,7 @@ export type SettingStoreTypes = { }; CHANGE_USE_GPU: { - action(payload: { - useGpu: boolean | "inherit"; - engineId: "global" | string; - }): Promise; + action(payload: { useGpu: boolean; engineId: string }): Promise; }; }; @@ -1063,7 +1060,6 @@ export type SettingStoreTypes = { export type UiStoreState = { uiLockCount: number; dialogLockCount: number; - useGpu: boolean; inheritAudioInfo: boolean; activePointScrollMode: ActivePointScrollMode; isHelpDialogOpen: boolean; @@ -1158,11 +1154,6 @@ export type UiStoreTypes = { action(): void; }; - SET_USE_GPU: { - mutation: { useGpu: boolean }; - action(payload: { useGpu: boolean }): void; - }; - SET_INHERIT_AUDIOINFO: { mutation: { inheritAudioInfo: boolean }; action(payload: { inheritAudioInfo: boolean }): void; diff --git a/src/store/ui.ts b/src/store/ui.ts index c1870b42ea..6bbcc81176 100644 --- a/src/store/ui.ts +++ b/src/store/ui.ts @@ -36,7 +36,6 @@ export function withProgress( export const uiStoreState: UiStoreState = { uiLockCount: 0, dialogLockCount: 0, - useGpu: false, inheritAudioInfo: true, activePointScrollMode: "OFF", isHelpDialogOpen: false, @@ -173,10 +172,6 @@ export const uiStore = createPartialStore({ HYDRATE_UI_STORE: { async action({ commit }) { - commit("SET_USE_GPU", { - useGpu: await window.electron.getSetting("useGpu"), - }); - commit("SET_INHERIT_AUDIOINFO", { inheritAudioInfo: await window.electron.getSetting("inheritAudioInfo"), }); @@ -201,17 +196,6 @@ export const uiStore = createPartialStore({ }, }, - SET_USE_GPU: { - mutation(state, { useGpu }: { useGpu: boolean }) { - state.useGpu = useGpu; - }, - async action({ commit }, { useGpu }: { useGpu: boolean }) { - commit("SET_USE_GPU", { - useGpu: await window.electron.setSetting("useGpu", useGpu), - }); - }, - }, - SET_INHERIT_AUDIOINFO: { mutation(state, { inheritAudioInfo }: { inheritAudioInfo: boolean }) { state.inheritAudioInfo = inheritAudioInfo; diff --git a/src/type/preload.ts b/src/type/preload.ts index 6435c0c563..53c6adbc0b 100644 --- a/src/type/preload.ts +++ b/src/type/preload.ts @@ -255,17 +255,16 @@ export type SavingSetting = { avoidOverwrite: boolean; exportText: boolean; outputStereo: boolean; - outputSamplingRate: number | "engineDefault"; audioOutputDevice: string; }; export type EngineSetting = Record; export const engineSettingRecord = z.object({ - useGpu: z.union([z.boolean(), z.literal("inherit")]).default("inherit"), + useGpu: z.boolean().default(false), outputSamplingRate: z - .union([z.number(), z.literal("inherit"), z.literal("engineDefault")]) - .default("inherit"), + .union([z.number(), z.literal("engineDefault")]) + .default("engineDefault"), }); export type EngineSettingRecord = z.infer; @@ -443,7 +442,6 @@ export type ConfirmedTips = { }; export const electronStoreSchema = z .object({ - useGpu: z.boolean().default(false), inheritAudioInfo: z.boolean().default(true), activePointScrollMode: z .enum(["CONTINUOUSLY", "PAGE", "OFF"]) @@ -458,9 +456,6 @@ export const electronStoreSchema = z exportLab: z.boolean().default(false), exportText: z.boolean().default(false), outputStereo: z.boolean().default(false), - outputSamplingRate: z - .union([z.number(), z.literal("engineDefault")]) - .default("engineDefault"), audioOutputDevice: z.string().default(""), }) .passthrough() // 別のブランチでの開発中の設定項目があるコンフィグで死ぬのを防ぐ diff --git a/tests/unit/store/Vuex.spec.ts b/tests/unit/store/Vuex.spec.ts index 84aba896ae..291d8b482a 100644 --- a/tests/unit/store/Vuex.spec.ts +++ b/tests/unit/store/Vuex.spec.ts @@ -36,7 +36,6 @@ describe("store/vuex.js test", () => { nowPlayingContinuously: false, undoCommands: [], redoCommands: [], - useGpu: false, inheritAudioInfo: true, activePointScrollMode: "OFF", isHelpDialogOpen: false, @@ -61,13 +60,12 @@ describe("store/vuex.js test", () => { exportLab: false, exportText: false, outputStereo: false, - outputSamplingRate: 24000, audioOutputDevice: "default", }, engineSetting: { "88022f86-c823-436e-85a3-500c629749c4": { - outputSamplingRate: "inherit", - useGpu: "inherit", + outputSamplingRate: "engineDefault", + useGpu: false, }, }, themeSetting: {