summaryrefslogtreecommitdiff
path: root/arm9/lib/NitroSDK/include/RTC_api.h
diff options
context:
space:
mode:
authorred031000 <rubenru09@aol.com>2021-07-23 01:11:15 +0100
committerred031000 <rubenru09@aol.com>2021-07-23 01:12:27 +0100
commit5bf13c7f48fe91c7902ce50250bc1a5a2398a2ae (patch)
tree2e91e60bdb7a9174b16d8ca1b532809d4ae2e5b6 /arm9/lib/NitroSDK/include/RTC_api.h
parentc2d91a2d997afd01fa4f40e1e16d5ee85557c9a8 (diff)
separate out libs to libc, libnns and NitroSDK
Diffstat (limited to 'arm9/lib/NitroSDK/include/RTC_api.h')
-rw-r--r--arm9/lib/NitroSDK/include/RTC_api.h111
1 files changed, 111 insertions, 0 deletions
diff --git a/arm9/lib/NitroSDK/include/RTC_api.h b/arm9/lib/NitroSDK/include/RTC_api.h
new file mode 100644
index 00000000..09efde7e
--- /dev/null
+++ b/arm9/lib/NitroSDK/include/RTC_api.h
@@ -0,0 +1,111 @@
+#ifndef NITRO_RTC_API_H_
+#define NITRO_RTC_API_H_
+
+typedef enum RTCAlarmChan
+{
+ RTC_ALARM_CHAN_1 = 0,
+ RTC_ALARM_CHAN_2,
+ RTC_ALARM_CHAN_MAX
+}
+RTCAlarmChan;
+
+// Alarm status definitions
+typedef enum RTCAlarmStatus
+{
+ RTC_ALARM_STATUS_OFF = 0,
+ RTC_ALARM_STATUS_ON,
+ RTC_ALARM_STATUS_MAX
+}
+RTCAlarmStatus;
+
+#define RTC_ALARM_ENABLE_NONE 0x0000
+#define RTC_ALARM_ENABLE_WEEK 0x0001
+#define RTC_ALARM_ENABLE_HOUR 0x0002
+#define RTC_ALARM_ENABLE_MINUTE 0x0004
+#define RTC_ALARM_ENABLE_ALL ( RTC_ALARM_ENABLE_WEEK | RTC_ALARM_ENABLE_HOUR | RTC_ALARM_ENABLE_MINUTE )
+
+typedef enum RTCWeek
+{
+ RTC_WEEK_SUNDAY = 0,
+ RTC_WEEK_MONDAY,
+ RTC_WEEK_TUESDAY,
+ RTC_WEEK_WEDNESDAY,
+ RTC_WEEK_THURSDAY,
+ RTC_WEEK_FRIDAY,
+ RTC_WEEK_SATURDAY,
+ RTC_WEEK_MAX
+}
+RTCWeek;
+
+typedef struct RTCDate
+{
+ u32 year;
+ u32 month;
+ u32 day;
+ RTCWeek week;
+}
+RTCDate;
+
+typedef struct RTCTime
+{
+ u32 hour;
+ u32 minute;
+ u32 second;
+}
+RTCTime;
+
+typedef struct RTCAlarmParam
+{
+ RTCWeek week; // Day of the week
+ u32 hour; // Hour ( 0 ~ 23 )
+ u32 minute; // Minute ( 0 ~ 59 )
+ u32 enable; // Alarm enable flag ( RTC_ALARM_ENABLE_* )
+
+}
+RTCAlarmParam;
+
+typedef enum RTCResult
+{
+ RTC_RESULT_SUCCESS = 0,
+ RTC_RESULT_BUSY,
+ RTC_RESULT_ILLEGAL_PARAMETER,
+ RTC_RESULT_SEND_ERROR,
+ RTC_RESULT_INVALID_COMMAND,
+ RTC_RESULT_ILLEGAL_STATUS,
+ RTC_RESULT_FATAL_ERROR,
+ RTC_RESULT_MAX
+}
+RTCResult;
+
+typedef void (*RTCCallback) (RTCResult result, void *arg);
+typedef void (*RTCInterrupt) (void);
+
+void RTC_Init(void);
+RTCResult RTC_GetDate(RTCDate *date);
+RTCResult RTC_GetTime(RTCTime *time);
+RTCResult RTC_GetDateTime(RTCDate *date, RTCTime *time);
+RTCResult RTC_SetDate(const RTCDate *date);
+RTCResult RTC_SetTime(const RTCTime *time);
+RTCResult RTC_SetDateTime(const RTCDate *date, const RTCTime *time);
+RTCResult RTC_GetAlarmStatus(RTCAlarmChan chan, RTCAlarmStatus *status);
+RTCResult RTC_GetAlarmParam(RTCAlarmChan chan, RTCAlarmParam *param);
+RTCResult RTC_SetAlarmStatus(RTCAlarmChan chan, const RTCAlarmStatus *status);
+RTCResult RTC_SetAlarmParam(RTCAlarmChan chan, const RTCAlarmParam *param);
+RTCResult RTC_GetDateAsync(RTCDate *date, RTCCallback callback, void *arg);
+RTCResult RTC_GetTimeAsync(RTCTime *time, RTCCallback callback, void *arg);
+RTCResult RTC_GetDateTimeAsync(RTCDate *date, RTCTime *time, RTCCallback callback, void *arg);
+RTCResult RTC_SetDateAsync(const RTCDate *date, RTCCallback callback, void *arg);
+RTCResult RTC_SetTimeAsync(const RTCTime *time, RTCCallback callback, void *arg);
+RTCResult RTC_SetDateTimeAsync(const RTCDate *date, const RTCTime *time, RTCCallback callback,
+ void *arg);
+RTCResult RTC_GetAlarmStatusAsync(RTCAlarmChan chan, RTCAlarmStatus *status, RTCCallback callback,
+ void *arg);
+RTCResult RTC_GetAlarmParamAsync(RTCAlarmChan chan, RTCAlarmParam *param, RTCCallback callback,
+ void *arg);
+void RTC_SetAlarmInterrupt(RTCInterrupt interrupt);
+RTCResult RTC_SetAlarmStatusAsync(RTCAlarmChan chan, const RTCAlarmStatus *status,
+ RTCCallback callback, void *arg);
+RTCResult RTC_SetAlarmParamAsync(RTCAlarmChan chan, const RTCAlarmParam *param,
+ RTCCallback callback, void *arg);
+
+#endif //NITRO_RTC_API_H_