#ifndef _OSWALD_MAIN_H
#define _OSWALD_MAIN_H

#include "oswald.h"

#define MAX_ALARM 4

extern clock_state OswaldClk;
extern alarm_clk OswaldAlarm[MAX_ALARM];
extern power_state OswaldPowerState;
extern watch_state OswaldState;
extern watch_screen OswaldScreens[];
extern char MainMessage[];

/* gets triggered by OS timer function */
void oswald_one_second_tick();

/* sets internal 'RTC' time */
void oswald_set_time(uint8_t hour, uint8_t minute, uint8_t second, boolean clk24hr);
void oswald_set_date(uint8_t day, uint8_t month, uint16_t year, boolean day_first);

void oswald_handle_button_press(watch_button button);
void oswald_handle_accel_event(uint8_t x, uint8_t y, uint8_t z);
void oswald_handle_ambientlight_event(uint8_t light_level);
void oswald_handle_idle_event(void);
void oswald_one_second_tick(void);
void oswald_halfsecond_tick(void);
void oswald_centisecond_tick(void);
void oswald_init(void);
void oswald_handle_comm_input(uint16_t mlen, const void *mdat);
#endif