]> git.karo-electronics.de Git - oswald.git/blobdiff - ui/oswald.h
Add version information and info screen, some more work on the accel screen
[oswald.git] / ui / oswald.h
index 31ee5cd33a0aa71a3b6e6371d5850ae560022346..8d16b2e3b01b8f9f6f7c6d67264dd73c564f6324 100644 (file)
@@ -1,7 +1,11 @@
 #ifndef _OSWALD_H
 #define _OSWALD_H
+#include <stdio.h>
+#include <string.h>
 #include <stdint.h>
 
+#define OSWALD_VERSION "v0.3"
+
 //#define DEBUG 1
 #ifdef DEBUG
 #define dbg_out( args... ) fprintf(stderr, args)
@@ -9,11 +13,7 @@
 #define dbg_out( args... ) do {} while (0)
 #endif
 
-typedef signed char s8t;
-typedef unsigned char u8t;
-typedef signed short s16t;
-typedef unsigned short u16t;
-typedef u8t boolean;
+typedef uint8_t boolean;
 #ifdef TRUE
 #undef TRUE
 #endif
@@ -27,13 +27,13 @@ typedef u8t boolean;
 #endif
 
 typedef struct {
-       u8t     hour;
-       u8t     minute;
-       u8t     second;
-       u8t     day;
-       u8t     wday; // day in week, 0=sunday, 1=monday,...
-       u8t     month;
-       u16t    year;
+       uint8_t hour;
+       uint8_t minute;
+       uint8_t second;
+       uint8_t day;
+       uint8_t wday; // day in week, 0=sunday, 1=monday,...
+       uint8_t month;
+       uint16_t        year;
        boolean clk24hr;
        boolean day_first;
 } clock_state;
@@ -46,19 +46,21 @@ typedef struct {
 #define WDAY_FRIDAY    (1 << 5)
 #define WDAY_SATURDAY  (1 << 6)
 typedef struct {
-       u8t     hour;
-       u8t     minute;
-       u8t     wday; // bitfield 0 to 6, 1=sunday, 2=monday, 4=tuesday...
+       uint8_t hour;
+       uint8_t minute;
+       uint8_t wday; // bitfield 0 to 6, 1=sunday, 2=monday, 4=tuesday...
 } alarm_clk;
 
 typedef enum {
        IDLE_SCREEN = 0,
        ALARM_SETUP_SCREEN,
        STOP_WATCH_SCREEN,
+       BLUETOOTH_SCREEN,
        ACCEL_DISPLAY_SCREEN,
-       MENU_TEST_SCREEN,
-//     APPLICATION_SCREEN,
+       INFO_SCREEN,
        LAST_SCREEN,            // a marker for the last (not valid) screen)
+       MENU_TEST_SCREEN,
+       APPLICATION_SCREEN,
        DATETIME_SETTING_SCREEN,
        ALARM_SCREEN,
        SCREENS_END,
@@ -85,10 +87,15 @@ typedef enum {
 #define EVENT_COMMS                    (1<<9)          // communication, like Bluetooth I/O
 #define EVENT_POWER_STATE              (1<<10)         // power source changed or similar
 
+typedef enum {
+       EVENT_RET_UNHANDLED = 0,
+       EVENT_RET_HANDLED,
+       EVENT_RET_ERR
+} event_ret_t;
 
 typedef struct {
-       u16t event_mask;                                // the event the screen wants to receive
-       void (*event_func)(u16t event, void *data);     // callback for events
+       uint16_t event_mask;                            // the event the screen wants to receive
+       event_ret_t (*event_func)(uint16_t event, void *data);  // callback for events
        void *user_data;
 } watch_screen;
 
@@ -99,9 +106,9 @@ typedef struct {
 } watch_state;
 
 typedef struct {
-       u8t     x;
-       u8t     y;
-       u8t     z;
+       int8_t  x;
+       int8_t  y;
+       int8_t  z;
 } accel_data_t;
 
 #define POWER_SOURCE_BATTERY   0
@@ -113,10 +120,10 @@ typedef struct {
 #define POWER_CHARGER_UNK      3
 
 typedef struct {
-       u8t     source;
-       u8t     charge_state;
-       u8t     percent;
-       u16t    level;
+       uint8_t source;
+       uint8_t charge_state;
+       uint8_t percent;
+       uint16_t        level;
 } power_state;
 
 typedef enum {