From 2b8eaeee4915051b3234a4c6e6076b1419b0ec42 Mon Sep 17 00:00:00 2001 From: filifa Date: Wed, 4 Sep 2024 20:04:47 -0500 Subject: [PATCH] add flag for smooth transitions --- cmd/root.go | 7 +++++-- cmd/window.go | 8 ++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/cmd/root.go b/cmd/root.go index 8903c0e..ecbb50c 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -27,6 +27,7 @@ import ( var preset string var scriptPath string +var transition bool type script []string @@ -68,9 +69,9 @@ func handleWindowEvent(event *sdl.WindowEvent, m *milkDropWindow) { func handleKeyboardEvent(event *sdl.KeyboardEvent, m *milkDropWindow) { scancode := event.Keysym.Scancode if event.Type == sdl.KEYDOWN && scancode == sdl.SCANCODE_RIGHT && event.Repeat == 0 { - m.nextPreset() + m.nextPreset(transition) } else if event.Type == sdl.KEYDOWN && scancode == sdl.SCANCODE_LEFT && event.Repeat == 0 { - m.prevPreset() + m.prevPreset(transition) } } @@ -167,6 +168,8 @@ func init() { // Cobra also supports local flags, which will only run // when this action is called directly. + rootCmd.Flags().BoolVarP(&transition, "transition", "t", false, "smoothly transition between presets") + rootCmd.Flags().StringVarP(&preset, "preset", "p", "", "preset file to use") rootCmd.Flags().StringVarP(&scriptPath, "script", "s", "", "script file to use") diff --git a/cmd/window.go b/cmd/window.go index 615194f..ab273b6 100644 --- a/cmd/window.go +++ b/cmd/window.go @@ -51,14 +51,14 @@ func (m *milkDropWindow) setupPresets(presets []string) { } } -func (m *milkDropWindow) nextPreset() { +func (m *milkDropWindow) nextPreset(smooth bool) { m.preset = m.preset.Next() - m.loadPreset(true) + m.loadPreset(smooth) } -func (m *milkDropWindow) prevPreset() { +func (m *milkDropWindow) prevPreset(smooth bool) { m.preset = m.preset.Prev() - m.loadPreset(true) + m.loadPreset(smooth) } func newMilkDropWindow(width, height int32, presets []string) (*milkDropWindow, error) {