From 5c95c5346f71856deef7fd82acdef7bb125665bb Mon Sep 17 00:00:00 2001 From: filifa Date: Mon, 2 Sep 2024 23:10:46 -0500 Subject: [PATCH] handle single presets --- cmd/root.go | 6 +++++- cmd/window.go | 23 ++++++++++++++--------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/cmd/root.go b/cmd/root.go index f407e81..2830b18 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -79,7 +79,11 @@ func milkbucket(cmd *cobra.Command, args []string) { } defer m.destroy() - m.loadPreset(preset) + if preset != "" { + m.setupPresets([]string{preset}) + } + + m.loadPreset(false) running := true for running { diff --git a/cmd/window.go b/cmd/window.go index 512384e..80661eb 100644 --- a/cmd/window.go +++ b/cmd/window.go @@ -67,23 +67,27 @@ func (m *milkDropWindow) loadScript(scriptPath string) error { return err } - m.preset = ring.New(len(s.Presets)) - for _, preset := range s.Presets { - m.preset.Value = preset - m.preset = m.preset.Next() - } + m.setupPresets(s.Presets) return nil } +func (m *milkDropWindow) setupPresets(presets []string) { + m.preset = ring.New(len(presets)) + for _, preset := range presets { + m.preset.Value = preset + m.preset = m.preset.Next() + } +} + func (m *milkDropWindow) nextPreset() { m.preset = m.preset.Next() - m.loadPreset(m.preset.Value.(string)) + m.loadPreset(true) } func (m *milkDropWindow) prevPreset() { m.preset = m.preset.Prev() - m.loadPreset(m.preset.Value.(string)) + m.loadPreset(true) } func newMilkDropWindow(width, height int32, scriptPath string) (*milkDropWindow, error) { @@ -123,10 +127,11 @@ func (m *milkDropWindow) destroy() { m.window.Destroy() } -func (m *milkDropWindow) loadPreset(preset string) { +func (m *milkDropWindow) loadPreset(smooth bool) { + preset := m.preset.Value.(string) cPreset := C.CString(preset) defer C.free(unsafe.Pointer(cPreset)) - C.projectm_load_preset_file(m.handle, cPreset, true) + C.projectm_load_preset_file(m.handle, cPreset, C.bool(smooth)) } func (m *milkDropWindow) render() (bool, error) {