9 #define dbg_out( args... ) fprintf(stderr, args)
11 #define dbg_out( args... ) do {} while (0)
14 typedef uint8_t boolean;
32 uint8_t wday; // day in week, 0=sunday, 1=monday,...
39 #define WDAY_SUNDAY (1 << 0)
40 #define WDAY_MONDAY (1 << 1)
41 #define WDAY_TUESDAY (1 << 2)
42 #define WDAY_WEDNESDAY (1 << 3)
43 #define WDAY_THURSDAY (1 << 4)
44 #define WDAY_FRIDAY (1 << 5)
45 #define WDAY_SATURDAY (1 << 6)
49 uint8_t wday; // bitfield 0 to 6, 1=sunday, 2=monday, 4=tuesday...
59 // APPLICATION_SCREEN,
60 LAST_SCREEN, // a marker for the last (not valid) screen)
61 DATETIME_SETTING_SCREEN,
75 #define EVENT_SCREEN_VISIBLE (1<<0) // screen just became visible
76 #define EVENT_SCREEN_DESTROY (1<<1) // screen is destroyed
77 #define EVENT_ONE_SEC_TIMER (1<<2) // one second timer for reguler clock
78 #define EVENT_HALF_SEC_TIMER (1<<3) // half second timer for blinking displays
79 #define EVENT_CS_TIMER (1<<4) // centisecond timer, e.g. for stop watch
80 #define EVENT_USER_BUTTONS (1<<5) // button presses
81 #define EVENT_ACCEL_UPDATE (1<<6) // accelerometer updates
82 #define EVENT_AMBIENTLIGHT_UPDATE (1<<7) // ambient light sensor updates
83 #define EVENT_POWER_CHANGE (1<<8) // power source status change
84 #define EVENT_COMMS (1<<9) // communication, like Bluetooth I/O
85 #define EVENT_POWER_STATE (1<<10) // power source changed or similar
88 EVENT_RET_UNHANDLED = 0,
94 uint16_t event_mask; // the event the screen wants to receive
95 event_ret_t (*event_func)(uint16_t event, void *data); // callback for events
100 screen_number screen_id;
101 watch_screen *screen; // the current screen
102 boolean pending_idle;
111 #define POWER_SOURCE_BATTERY 0
112 #define POWER_SOURCE_EXTERNAL 1
114 #define POWER_CHARGER_DONE 0
115 #define POWER_CHARGER_PRECHARGE 1
116 #define POWER_CHARGER_CHARGING 2
117 #define POWER_CHARGER_UNK 3
121 uint8_t charge_state;