--- /dev/null
+#ifndef _CLOCK_ALARM_H_
+#define _CLOCK_ALARM_H_
+
+#include <string>
+
+#include "WeekFlags.h"
+
+namespace clock {
+ namespace model {
+ class Alarm {
+ public:
+ Alarm();
+ ~Alarm();
+ void Activate();
+ void Deactivate();
+ void Snooze();
+ std::string GetName();
+ void SetName(std::string name);
+ time_t GetTime();
+ void SetTime(time_t time);
+ std::string GetMelody();
+ void SetMelody(std::string path);
+ std::string GetVibration();
+ void SetVibration(std::string pattern);
+ WeekFlags GetWeekFlags();
+ void SetWeekFlags(WeekFlags flags);
+ private:
+ int alarm_id;
+ std::string name;
+ std::string melody;
+ std::string vibration;
+ WeekFlags flags;
+ bool activated;
+ };
+ } /* model */
+} /* clock */
+
+#endif
--- /dev/null
+#ifndef _CLOCK_ALARM_PROVIDER_H
+#define _CLOCK_ALARM_PROVIDER_H
+
+#include "Model/Alarm.h"
+
+#include <vector.h>
+#include <functional.h>
+
+namespace clock {
+ namespace model {
+ class AlarmProvider {
+ public:
+ static AlarmProvider& GetInstance();
+
+ void std::vector<std::reference_wrapper<Alarm>> GetAlarms();
+
+ void Sync(Alarm& alarm);
+ void SyncAll();
+ void Add(Alarm& alarm);
+ void Remove(Alarm& alarm);
+
+ private:
+ std::vector<Alarm> alarms;
+ };
+ } /* model */
+} /* clock */
+
+#endif
--- /dev/null
+#ifndef _CLOCK_LOCATION_H_
+#define _CLOCK_LOCATION_H_
+
+namespace clock {
+ namespace model {
+ struct Location {
+ std::string Name;
+ std::string Country;
+ std::string Timezone;
+ std::string TzPath;
+ };
+ } /* model */
+} /* clock */
+#endif
--- /dev/null
+#ifndef _CLOCK_STOPWATCH_H_
+#define _CLOCK_STOPWATCH_H_
+
+namespace clock {
+ namespace model {
+ class StopWatch {
+ public:
+ void Start();
+ void Stop();
+ void EndLap();
+ void Reset();
+ time_t ElapsedTime();
+ std::vector<StopWatchLap> GetLaps();
+ private:
+ time_t start_time;
+ std::vector<StopWatchLap> laps;
+ };
+ } /* model */
+} /* clock */
+
+#endif
--- /dev/null
+#ifndef _CLOCK_STOPWATCH_LAP_H_
+#define _CLOCK_STOPWATCH_LA_H_
+
+namespace clock {
+ namespace model {
+ class StopWatchLap {
+ public:
+ StopWatchLap(time_t start, time_t duration);
+ ~StopWatchLap();
+ time_t LapDuration();
+ time_t LapStartTime();
+ };
+ } /* model */
+} /* clock */
+
+#endif
--- /dev/null
+#ifndef _CLOCK_TIMER_H_
+#define _CLOCK_TIMER_H_
+
+namespace clock {
+ namespace model {
+ class Timer {
+ public:
+ Start(time_t delay);
+ time_t StartTime();
+ time_t RemainingTime();
+ };
+ } /* model */
+} /* clock */
+
+#endif
--- /dev/null
+#ifndef _CLOCK_ALARM_WEEK_FLAGS_H
+#define _CLOCK_ALARM_WEEK_FLAGS_H
+
+namespace clock {
+ namespace model {
+ enum WeekFlag {
+ MONDAY = (1 << 0),
+ TUESDAY = (1 << 1),
+ WENSDAY = (1 << 2),
+ THURSDAY = (1 << 3),
+ FRIDAY = (1 << 4),
+ SATURDAY = (1 << 5),
+ SUNDAY = (1 << 6),
+ };
+ class WeekFlags {
+ public:
+ WeekFlags();
+ AddDay(WeekFlag day);
+ RemoveDay(WeekFlag day);
+ bool IsOn(WeekFlag day);
+ private:
+ int raw_flags;
+ };
+ } /* model */
+} /* clock */
+
+#endif
--- /dev/null
+#ifndef _CLOCK_WORLDCLOCK_H_
+#define _CLOCK_WORLDCLOCK_H_
+
+#include <vector>
+
+namespace clock {
+ namespace model {
+ class WorldClock {
+ public:
+ const std::vector<Location> Locations;
+ const std::vector<Location> UserLocations;
+
+ void AddUserLocation(Location loc);
+ void RemoveUserLocation(Location loc);
+ };
+ } /* model */
+} /* clock */
+#endif
--- /dev/null
+#ifndef _CLOCK_UI_VIEW_H_
+#define _CLOCK_UI_VIEW_H_
+
+#include <Elementary.h>
+
+namespace clock {
+namespace ui {
+ class IView {
+ public:
+ virtual Evas_Object *GetEvasObject() = 0;
+ };
+};
+};
+
+#endif
--- /dev/null
+#ifndef _CLOCK_LOC
+#define _CLOCK_LOC
+
+namespace clock {
+ namespace utils {
+ class Log {
+ };
+ } /* utils */
+} /* clock */
+#endif