Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

マルチエンジン:エンジン毎の設定を追加 #1146

Merged
merged 42 commits into from
Jan 28, 2023
Merged
Show file tree
Hide file tree
Changes from 39 commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
14d86b4
[WIP] 複数エンジン対応
raa0121 Sep 28, 2022
89a560d
Merge: main -> setting-multi-engine
sevenc-nanashi Jan 25, 2023
43b62f4
Add: エンジン選択のq-selectを追加
sevenc-nanashi Jan 25, 2023
57300f7
Fix: ツールチップの対象を修正
sevenc-nanashi Jan 25, 2023
9769e18
Add: エンジン毎の設定のUIを追加
sevenc-nanashi Jan 25, 2023
37da0ce
Fix: defaultからinheritに
sevenc-nanashi Jan 25, 2023
4133c1d
Add: GPU・CPUの継承設定を追加
sevenc-nanashi Jan 25, 2023
3c379ff
Merge: main -> setting-multi-engine
sevenc-nanashi Jan 25, 2023
c4f295f
Fix: GPU表記を修正
sevenc-nanashi Jan 26, 2023
e0abdc1
Refactor: 重複を削除
sevenc-nanashi Jan 26, 2023
6866813
Change: セレクターの位置を変更
sevenc-nanashi Jan 26, 2023
4043895
Merge: main -> setting-multi-engine
sevenc-nanashi Jan 26, 2023
019bbad
Change: 単一エンジン時は常に継承するように
sevenc-nanashi Jan 26, 2023
c82b0d0
Add: サンプリングレートのUIだけ実装
sevenc-nanashi Jan 26, 2023
ae0b1e5
Add: サンプリングレートの継承を実装
sevenc-nanashi Jan 26, 2023
97a63b4
Fix: テストが通るように
sevenc-nanashi Jan 26, 2023
4a01f22
Fix: 変更のチェックを修正
sevenc-nanashi Jan 26, 2023
c7e39b5
Refactor: 起動周りをstartに集約
sevenc-nanashi Jan 26, 2023
c8336bd
Code: engineModeからengineUseGpuに
sevenc-nanashi Jan 26, 2023
625fba2
Add: GPU対応・非対応周りを実装
sevenc-nanashi Jan 26, 2023
b69944b
Update src/background.ts
sevenc-nanashi Jan 26, 2023
26eac84
Delete: 全体設定を削除
sevenc-nanashi Jan 27, 2023
880de38
Add: GPUモードでのエンジンクラッシュ時にCPUに切り換えできるように
sevenc-nanashi Jan 27, 2023
1e04234
Merge: 変更をマージ
sevenc-nanashi Jan 27, 2023
0aeadc9
Delete: 不要なコードを削除
sevenc-nanashi Jan 27, 2023
75aafb3
Code: コードの位置を変更
sevenc-nanashi Jan 27, 2023
527760e
Fix: engineDefaultの時は質問をしないようにするロジックを復元
sevenc-nanashi Jan 27, 2023
cbdf7d9
Code: FIXMEを削除
sevenc-nanashi Jan 27, 2023
dfbf4cd
Fix: テストを修正
sevenc-nanashi Jan 27, 2023
1ccbf88
Update src/background.ts
sevenc-nanashi Jan 27, 2023
90de959
Update src/store/setting.ts
sevenc-nanashi Jan 27, 2023
961333b
Delete: 不要なcomputedを削除
sevenc-nanashi Jan 27, 2023
30a305a
Change: engineIdがundefinedの時はエラーを吐くように
sevenc-nanashi Jan 27, 2023
573e6b3
Revert "Add: GPUモードでのエンジンクラッシュ時にCPUに切り換えできるように"
sevenc-nanashi Jan 27, 2023
63d14bd
Change: GPUモードからCPUモードに戻せるように
sevenc-nanashi Jan 27, 2023
19420da
Change: storeから値を取り出すように
sevenc-nanashi Jan 27, 2023
7cde3f4
Fix: 成功判定を修正
sevenc-nanashi Jan 27, 2023
171b361
Change: engineSettingの名前を修正
sevenc-nanashi Jan 27, 2023
9ab494b
Fix: 修正忘れを修正
sevenc-nanashi Jan 27, 2023
04bdfa9
Fix: 修正忘れを修正
sevenc-nanashi Jan 27, 2023
1fafc74
Code: コメントを変更
sevenc-nanashi Jan 27, 2023
d1e29c3
Delete: 未使用の関数を削除
sevenc-nanashi Jan 28, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 32 additions & 5 deletions src/background.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import {
defaultHotkeySettings,
isMac,
defaultToolbarButtonSetting,
engineSetting,
} from "./type/preload";

import log from "electron-log";
Expand Down Expand Up @@ -131,9 +132,6 @@ const store = new Store<ElectronStoreType>({
}
},
">=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;
Expand All @@ -148,6 +146,19 @@ const store = new Store<ElectronStoreType>({
defaultStyleId: defaultStyle.defaultStyleId,
}))
);

const outputSamplingRate: number =
// @ts-expect-error 削除されたパラメータ。
store.get("savingSetting").outputSamplingRate;
store.set(`engineSetting.${engineId}`, {
sevenc-nanashi marked this conversation as resolved.
Show resolved Hide resolved
useGpu: store.get("useGpu"),
outputSamplingRate:
outputSamplingRate === 24000 ? "engineDefault" : outputSamplingRate,
});
sevenc-nanashi marked this conversation as resolved.
Show resolved Hide resolved
// @ts-expect-error 削除されたパラメータ。
store.delete("savingSetting.outputSamplingRate");
// @ts-expect-error 削除されたパラメータ。
store.delete("useGpu");
},
},
});
Expand Down Expand Up @@ -411,6 +422,22 @@ async function createWindow() {
mainWindowState.manage(win);
}

// UI処理を開始。その他の準備が完了した後に呼ばれる。
async function start() {
sevenc-nanashi marked this conversation as resolved.
Show resolved Hide resolved
const engineInfos = engineManager.fetchEngineInfos();
const engineSettings = store.get("engineSettings");
for (const engineInfo of engineInfos) {
if (!engineSettings[engineInfo.uuid]) {
// 空オブジェクトをパースさせることで、デフォルト値を取得する
engineSettings[engineInfo.uuid] = engineSetting.parse({});
}
}
store.set("engineSettings", engineSettings);

await createWindow();
await engineManager.runEngineAll(win);
}

const menuTemplateForMac: Electron.MenuItemConstructorOptions[] = [
{
label: "VOICEVOX",
Expand Down Expand Up @@ -809,7 +836,7 @@ app.on("before-quit", async (event) => {
appState.willRestart = false;
appState.willQuit = false;

createWindow().then(() => engineManager.runEngineAll(win));
start();
} else {
log.info("Post engine kill process done. Now quit app");
}
Expand Down Expand Up @@ -904,7 +931,7 @@ app.on("ready", async () => {
await installVvppEngine(filePath);
}

createWindow().then(() => engineManager.runEngineAll(win));
start();
});

// 他のプロセスが起動したとき、`requestSingleInstanceLock`経由で`rawData`が送信される。
Expand Down
3 changes: 1 addition & 2 deletions src/background/engineManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -233,8 +233,7 @@ export class EngineManager {
const engineProcessContainer = this.engineProcessContainers[engineId];
engineProcessContainer.willQuitEngine = false;

const useGpu = this.store.get("useGpu");

const useGpu = this.store.get("engineSettings")[engineId].useGpu;
log.info(`ENGINE ${engineId} mode: ${useGpu ? "GPU" : "CPU"}`);

// エンジンプロセスの起動
Expand Down
Loading