#ifndef _OSWALD_MAIN_H
#define _OSWALD_MAIN_H

#include "oswald.h"

extern clock_state OswaldClk;
extern alarm_clk OswaldAlarm;
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(u8t hour, u8t minute, u8t second, boolean clk24hr);
void oswald_set_date(u8t day, u8t month, u16t year, boolean day_first);

void oswald_handle_button_press(watch_button button);
void oswald_handle_accel_event(u8t x, u8t y, u8t z);
void oswald_handle_ambientlight_event(u8t 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