diff options
Diffstat (limited to 'launcher/launcher.h')
-rw-r--r-- | launcher/launcher.h | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/launcher/launcher.h b/launcher/launcher.h index 888d1adb..bc8d9191 100644 --- a/launcher/launcher.h +++ b/launcher/launcher.h @@ -6,16 +6,16 @@ // TODO: none of this is implemented typedef union { struct { - uint32_t reserved : 1; - uint32_t clock_mode_24h : 1; // determines whether display should use 12 or 24 hour mode. + uint32_t clock_mode_24h : 1; // determines whether clock should use 12 or 24 hour mode. uint32_t signal_should_sound : 1; // if true, a double beep is played at the top of each hour. - uint32_t alarm_should_sound : 1; // if true, the alarm interrupt plays a song. - uint32_t note_index : 7; // the index of the tone to play, or 0x7F for no tone. - uint32_t snapback_enabled : 1; // if true, snaps back to the main screen after 5 minutes - uint32_t sleep_interval : 3; // 0 to disable sleep, or a number of days to sleep after. - uint32_t sleep_blanks_screen : 1; // blank screen or display "SLEEP" when asleep - uint32_t led_red_color : 8; // for general purpose illumination, the red LED value - uint32_t led_green_color : 8; // for general purpose illumination, the green LED value + uint32_t alarm_should_sound : 1; // if true, the alarm interrupt can match a time and play a song. + uint32_t alarm_minute : 6; // the minute of the alarm we want to match + uint32_t alarm_hour : 5; // the second of the alarm we want to match + uint32_t note_index : 4; // the index of the tone to play on button press, or 0xF for no tone. + uint32_t screensaver_interval : 3; // 0 to disable screensaver, or a screensaver activation interval. + uint32_t led_duration : 3; // how many seconds to shine the LED for, or 0 to disable it. + uint32_t led_red_color : 4; // for general purpose illumination, the red LED value (0-15) + uint32_t led_green_color : 4; // for general purpose illumination, the green LED value (0-15) } bit; uint32_t value; } LauncherSettings; @@ -24,7 +24,6 @@ typedef enum LauncherEvent { EVENT_NONE = 0, // There is no event to report. EVENT_ACTIVATE, // Your widget is entering the foreground. EVENT_TICK, // Most common event type. Your widget is being called from the tick callback. - EVENT_LOOP, // The app did not sleep, and is going into another invocation of the run loop. EVENT_LIGHT_BUTTON_DOWN, // The light button has been pressed, but not yet released. EVENT_LIGHT_BUTTON_UP, // The light button was pressed and released. EVENT_LIGHT_LONG_PRESS, // The light button was held for >2 seconds, and released. @@ -37,20 +36,22 @@ typedef enum LauncherEvent { } LauncherEvent; typedef void (*launcher_widget_setup)(LauncherSettings *settings, void ** context_ptr); -typedef void (*launcher_widget_enter_foreground)(LauncherSettings *settings, void *context); -typedef bool (*launcher_widget_loop)(LauncherEvent event, LauncherSettings *settings, void *context); -typedef void (*launcher_widget_enter_background)(LauncherSettings *settings, void *context); +typedef void (*launcher_widget_activate)(LauncherSettings *settings, void *context); +typedef void (*launcher_widget_loop)(LauncherEvent event, LauncherSettings *settings, void *context); +typedef void (*launcher_widget_resign)(LauncherSettings *settings, void *context); typedef struct WatchWidget { + char widget_name[11]; + bool snapback_enabled; launcher_widget_setup setup; - launcher_widget_enter_foreground enter_foreground; + launcher_widget_activate activate; launcher_widget_loop loop; - launcher_widget_enter_background enter_background; + launcher_widget_resign resign; } WatchWidget; typedef struct LauncherState { // properties stored in BACKUP register - LauncherSettings launcherSettings; + LauncherSettings launcher_settings; // transient properties int16_t current_widget; |