新增: 音频可视化壁纸主题(WASAPI+FFT+Canvas)

This commit is contained in:
2026-05-30 22:29:19 +08:00
parent cd7247d880
commit 1f892fc390
13 changed files with 839 additions and 15 deletions

View File

@@ -81,6 +81,7 @@ var themeNames = []struct {
{ThemeParticle, "粒子"},
{ThemeFractal, "极光流体"},
{ThemeText, "文字"},
{ThemeAudioViz, "音频可视化"},
}
func refreshVisibleCards(cfg, oldCfg *Config) {
@@ -198,6 +199,10 @@ func openSettingsWindow() {
"photoCard": !cfg.HidePhoto,
"photoFrameMode": cfg.PhotoFrameMode,
"autoStart": isAutoStartEnabled(),
"audioVizStyle": cfg.AudioVizStyle,
"audioSensitivity": cfg.AudioSensitivity,
"audioSmoothing": cfg.AudioSmoothing,
"audioColorScheme": cfg.AudioColorScheme,
})
return string(data)
})
@@ -492,6 +497,43 @@ func openSettingsWindow() {
return ""
})
w.Bind("saveAudioVizStyle", func(style string) string {
cfg := loadConfig()
cfg.AudioVizStyle = style
saveConfig(cfg)
if cfg.Theme == ThemeAudioViz {
evalJS(fmt.Sprintf(`window.__audioVizStyle=%q; if(window.setAudioVizStyle) setAudioVizStyle(%q)`, style, style))
}
return ""
})
w.Bind("saveAudioSensitivity", func(val float64) string {
cfg := loadConfig()
cfg.AudioSensitivity = val
saveConfig(cfg)
if cfg.Theme == ThemeAudioViz {
evalJS(fmt.Sprintf(`window.__audioVizSensitivity=%f; if(window.setAudioSensitivity) setAudioSensitivity(%f)`, val, val))
}
return ""
})
w.Bind("saveAudioSmoothing", func(val float64) string {
cfg := loadConfig()
cfg.AudioSmoothing = val
saveConfig(cfg)
return ""
})
w.Bind("saveAudioColorScheme", func(scheme string) string {
cfg := loadConfig()
cfg.AudioColorScheme = scheme
saveConfig(cfg)
if cfg.Theme == ThemeAudioViz {
evalJS(fmt.Sprintf(`window.__audioVizColors=%q; if(window.setAudioColorScheme) setAudioColorScheme(%q)`, scheme, scheme))
}
return ""
})
w.SetHtml(settingsHTML)
hwnd := uintptr(w.Window())