From 800074dced288b1f0182355d808728266a8f0a59 Mon Sep 17 00:00:00 2001 From: jeffvli Date: Thu, 25 Dec 2025 13:49:14 -0800 Subject: [PATCH] add ignored presets for butterchurn --- src/i18n/locales/en.json | 1 + .../audiomotionanalyzer/visualizer-settings-form.tsx | 7 +++++++ .../visualizer/components/butternchurn/visualizer.tsx | 9 ++++++++- src/renderer/store/settings.store.ts | 2 ++ 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 58f7b3424..48019f86d 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -1104,6 +1104,7 @@ "cyclePresets": "Cycle Presets", "cycleTime": "Cycle Time (seconds)", "includeAllPresets": "Include All Presets", + "ignoredPresets": "Ignored Presets", "selectedPresets": "Selected Presets", "randomizeNextPreset": "Randomize Next Preset", "blendTime": "Blend Time", diff --git a/src/renderer/features/visualizer/components/audiomotionanalyzer/visualizer-settings-form.tsx b/src/renderer/features/visualizer/components/audiomotionanalyzer/visualizer-settings-form.tsx index a8fe50173..2b89daae9 100644 --- a/src/renderer/features/visualizer/components/audiomotionanalyzer/visualizer-settings-form.tsx +++ b/src/renderer/features/visualizer/components/audiomotionanalyzer/visualizer-settings-form.tsx @@ -2022,6 +2022,13 @@ const ButterChurnCycleSettings = () => { onChange={(values) => updateProperty('selectedPresets', values)} value={visualizer.butterchurn.selectedPresets} /> + updateProperty('ignoredPresets', values)} + value={visualizer.butterchurn.ignoredPresets} + /> { const allPresetNames = Object.keys(presets); // Get the list of presets to cycle through - const presetList = butterchurnSettings.includeAllPresets + let presetList = butterchurnSettings.includeAllPresets ? allPresetNames : butterchurnSettings.selectedPresets.length > 0 ? butterchurnSettings.selectedPresets.filter((name) => presets[name]) : allPresetNames; + // Filter out ignored presets + if (butterchurnSettings.ignoredPresets && butterchurnSettings.ignoredPresets.length > 0) { + presetList = presetList.filter( + (name) => !butterchurnSettings.ignoredPresets.includes(name), + ); + } + if (presetList.length === 0) return; // Reset cycle timer when settings change diff --git a/src/renderer/store/settings.store.ts b/src/renderer/store/settings.store.ts index d751eb938..f5041e011 100644 --- a/src/renderer/store/settings.store.ts +++ b/src/renderer/store/settings.store.ts @@ -320,6 +320,7 @@ const ButterchurnSettingsSchema = z.object({ currentPreset: z.string().optional(), cyclePresets: z.boolean(), cycleTime: z.number().min(1).max(300), + ignoredPresets: z.array(z.string()), includeAllPresets: z.boolean(), maxFPS: z.number().min(0), randomizeNextPreset: z.boolean(), @@ -1480,6 +1481,7 @@ const initialState: SettingsState = { currentPreset: undefined, cyclePresets: true, cycleTime: 30, + ignoredPresets: [], includeAllPresets: true, maxFPS: 0, randomizeNextPreset: true,