summaryrefslogtreecommitdiffstats
path: root/launcher/launcher.h
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/launcher.h')
-rw-r--r--launcher/launcher.h33
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;