Skip to content

Commit

Permalink
文脈コメントと型を追加
Browse files Browse the repository at this point in the history
  • Loading branch information
Hiroshiba committed May 6, 2024
1 parent 89c78dd commit d517397
Showing 1 changed file with 32 additions and 31 deletions.
63 changes: 32 additions & 31 deletions src/backend/common/ConfigManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -183,45 +183,46 @@ const migrations: [string, (store: Record<string, unknown>) => unknown][] = [
});
config.hotkeySettings = newHotkeySettings;

return config;
},
],
[
">=0.21",
(config) => {
const defaultPresetKeys = config.defaultPresetKeys as
| ConfigType["defaultPresetKeys"]
| undefined;
// unit testの0.13からマイグレーションできるかどうかに引っかかるので回避するためのundefinedチェック
if (defaultPresetKeys == undefined) return;
if (Object.keys(defaultPresetKeys).length < 1) return;
// バグで追加されたソング・ハミングスタイルのデフォルトプリセットを削除する
(() => {
const defaultPresetKeys = config.defaultPresetKeys as
| ConfigType["defaultPresetKeys"]
| undefined;
if (
defaultPresetKeys == undefined ||
Object.keys(defaultPresetKeys).length == 0
)
return;

const filteredVoiceIdOnlySinger = Object.keys(defaultPresetKeys).filter(
(voiceId) => {
const singStyleVoiceId: VoiceId[] = Object.keys(
defaultPresetKeys,
).filter((voiceId) => {
// VoiceIdの3番目はスタイルIDなので、それが3000以上3085以下または6000のものをソング・ハミングスタイルとみなす
const splited = voiceId.split(":");
if (splited.length < 3) return false;

const styleId = parseInt(splited[2]);
return (styleId >= 3000 && styleId <= 3085) || styleId === 6000;
},
);
}) as VoiceId[];

const presets = config.presets as ConfigType["presets"];
const singerPresetKeys: string[] = [];
for (const voiceId of filteredVoiceIdOnlySinger) {
const defaultPresetKey = defaultPresetKeys[
voiceId as VoiceId
] as PresetKey;
singerPresetKeys.push(defaultPresetKey);
delete presets.items[defaultPresetKey];
delete defaultPresetKeys[voiceId as VoiceId];
}
const presets = config.presets as ConfigType["presets"];
const singerPresetKeys: PresetKey[] = [];
for (const voiceId of singStyleVoiceId) {
const defaultPresetKey = defaultPresetKeys[voiceId];
if (defaultPresetKey == undefined) continue;
singerPresetKeys.push(defaultPresetKey);
delete presets.items[defaultPresetKey];
delete defaultPresetKeys[voiceId];
}

if (singerPresetKeys.length === 0) return;
const newPresetKeys = presets.keys.filter(
(key) => !singerPresetKeys.includes(key),
);
presets.keys = newPresetKeys;
if (singerPresetKeys.length === 0) return;
const newPresetKeys = presets.keys.filter(
(key) => !singerPresetKeys.includes(key),
);
presets.keys = newPresetKeys;
})();

return config;
},
],
];
Expand Down

0 comments on commit d517397

Please sign in to comment.