From 3cb218a9200008d32814865b0536793958c0ccc3 Mon Sep 17 00:00:00 2001 From: Jan Grewe <jan@faked.org> Date: Tue, 11 Jun 2013 00:55:45 +0200 Subject: [PATCH] add trigger for Taps recording/playback --- wolpertinger/wolpertinger.ino | 57 +++++++++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 3 deletions(-) diff --git a/wolpertinger/wolpertinger.ino b/wolpertinger/wolpertinger.ino index 65d315c..2139a92 100644 --- a/wolpertinger/wolpertinger.ino +++ b/wolpertinger/wolpertinger.ino @@ -12,6 +12,9 @@ #define MODE_BLINKING 6 #define MODE_STROBE 7 #define MODE_DAZZLE 8 +#define MODE_TAPS_PREVIEW 9 +#define MODE_TAPS_RECORD 10 +#define MODE_TAPS_PLAYBACK 11 // State byte mode; @@ -69,10 +72,12 @@ void loop() } break; case MODE_OFF: - if (button_pressed && button_pressed_time > HOLD_SHORT) { + if (button_pressed && button_pressed_time > HOLD_LONG) { + newMode = MODE_TAPS_PREVIEW; + } else if (button_just_released && button_pressed_time > HOLD_SHORT) { newMode = MODE_DYNAMIC_PREVIEW; - } else if (button_pressed) { - newMode = MODE_STATIC_PREVIEW; + } else if (button_just_released) { + newMode = MODE_STATIC; } break; case MODE_STATIC_PREVIEW: @@ -146,6 +151,25 @@ void loop() newMode = MODE_FADE; } break; + case MODE_TAPS_PREVIEW: + if (button_just_released) { + newMode = MODE_TAPS_RECORD; + } + break; + case MODE_TAPS_RECORD: + if (button_pressed && button_pressed_time > HOLD_LONG) { + newMode = MODE_OFF_PREVIEW; + } else if (button_just_released) { + newMode = MODE_TAPS_PLAYBACK; + } + break; + case MODE_TAPS_PLAYBACK: + if (button_pressed && button_pressed_time > HOLD_LONG) { + newMode = MODE_OFF_PREVIEW; + } else if (button_just_released) { + newMode = MODE_TAPS_RECORD; + } + break; } // Do the mode transitions @@ -190,6 +214,15 @@ void loop() case MODE_DAZZLE: Serial.println("Mode = dazzle"); break; + case MODE_TAPS_PREVIEW: + Serial.println("Mode = taps_preview"); + break; + case MODE_TAPS_RECORD: + Serial.println("Mode = taps_record"); + break; + case MODE_TAPS_PLAYBACK: + Serial.println("Mode = taps_playback"); + break; } mode = newMode; } @@ -238,6 +271,24 @@ void loop() } } + if (mode == MODE_TAPS_PREVIEW) { + if (hb.get_led_state(GLED) == LED_OFF) { + hb.set_led(GLED, 50, 100, 255); + } + } + + if (mode == MODE_TAPS_RECORD) { + if (hb.get_led_state(RLED) == LED_OFF) { + hb.set_led(RLED, 50, 250, 255); + } + } + + if (mode == MODE_TAPS_PLAYBACK) { + if (hb.get_led_state(GLED) == LED_OFF) { + hb.set_led(GLED, 50, 250, 255); + } + } + } void cycleBrightness() { -- GitLab