aboutsummaryrefslogtreecommitdiff
path: root/spaghetti-monster
diff options
context:
space:
mode:
authorSelene ToyKeeper2019-12-04 02:00:16 -0700
committerSelene ToyKeeper2019-12-04 02:00:16 -0700
commitbefe77a863e39b4bae70985bf2bf24449f8521d2 (patch)
treebecb2b94b16f199a07a9a1d566ae2d4df1804dc7 /spaghetti-monster
parentfixed compile errors to handle a couple USE_ flags better: (diff)
downloadanduril-befe77a863e39b4bae70985bf2bf24449f8521d2.tar.gz
anduril-befe77a863e39b4bae70985bf2bf24449f8521d2.tar.bz2
anduril-befe77a863e39b4bae70985bf2bf24449f8521d2.zip
added a compile-time flag to enable/disable momentary mode (suggested by Agro)
Diffstat (limited to 'spaghetti-monster')
-rw-r--r--spaghetti-monster/anduril/anduril.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/spaghetti-monster/anduril/anduril.c b/spaghetti-monster/anduril/anduril.c
index c89e5fe..380e2f9 100644
--- a/spaghetti-monster/anduril/anduril.c
+++ b/spaghetti-monster/anduril/anduril.c
@@ -79,6 +79,9 @@
// enable beacon mode
#define USE_BEACON_MODE
+// enable momentary mode
+#define USE_MOMENTARY_MODE
+
//Muggle mode for easy UI
#define USE_MUGGLE_MODE
@@ -293,10 +296,12 @@ uint8_t sos_state(Event event, uint16_t arg);
// if enabled, 2nd lockout click goes to the other ramp's floor level
#define LOCKOUT_MOON_FANCY
uint8_t lockout_state(Event event, uint16_t arg);
+#ifdef USE_MOMENTARY_MODE
// momentary / signalling mode
uint8_t momentary_state(Event event, uint16_t arg);
uint8_t momentary_mode = 0; // 0 = ramping, 1 = strobe
uint8_t momentary_active = 0; // boolean, true if active *right now*
+#endif
#ifdef USE_MUGGLE_MODE
// muggle mode, super-simple, hard to exit
uint8_t muggle_state(Event event, uint16_t arg);
@@ -630,12 +635,14 @@ uint8_t off_state(Event event, uint16_t arg) {
set_state(lockout_state, 0);
return MISCHIEF_MANAGED;
}
+ #ifdef USE_MOMENTARY_MODE
// 5 clicks: momentary mode
else if (event == EV_5clicks) {
blink_confirm(1);
set_state(momentary_state, 0);
return MISCHIEF_MANAGED;
}
+ #endif
#ifdef USE_MUGGLE_MODE
// 6 clicks: muggle mode
else if (event == EV_6clicks) {
@@ -733,7 +740,9 @@ uint8_t steady_state(Event event, uint16_t arg) {
// turn LED on when we first enter the mode
if ((event == EV_enter_state) || (event == EV_reenter_state)) {
+ #if defined(USE_MOMENTARY_MODE) && defined(USE_STROBE_STATE)
momentary_mode = 0; // 0 = ramping, 1 = strobes
+ #endif
// if we just got back from config mode, go back to memorized level
if (event == EV_reenter_state) {
arg = memorized_level;
@@ -1129,7 +1138,9 @@ uint8_t strobe_state(Event event, uint16_t arg) {
// (maybe I should just make it nonvolatile?)
strobe_mode_te st = strobe_type;
+ #ifdef USE_MOMENTARY_MODE
momentary_mode = 1; // 0 = ramping, 1 = strobes
+ #endif
#ifdef USE_CANDLE_MODE
// pass all events to candle mode, when it's active
@@ -1808,6 +1819,7 @@ uint8_t lockout_state(Event event, uint16_t arg) {
}
+#ifdef USE_MOMENTARY_MODE
uint8_t momentary_state(Event event, uint16_t arg) {
// TODO: momentary strobe here? (for light painting)
@@ -1857,6 +1869,7 @@ uint8_t momentary_state(Event event, uint16_t arg) {
return EVENT_NOT_HANDLED;
}
+#endif
#ifdef USE_MUGGLE_MODE
@@ -2665,7 +2678,11 @@ void loop() {
#ifdef USE_STROBE_STATE
else if ((state == strobe_state)
- || ((state == momentary_state) && (momentary_mode == 1) && (momentary_active)) ) { // also handle momentary strobes
+ #ifdef USE_MOMENTARY_MODE
+ // also handle momentary strobes
+ || ((state == momentary_state) && (momentary_mode == 1) && (momentary_active))
+ #endif
+ ) {
uint8_t st = strobe_type;
switch(st) {