summaryrefslogtreecommitdiff
path: root/alarm
diff options
context:
space:
mode:
authorJiwoong Im <jiwoong.im@samsung.com>2015-05-27 11:06:55 +0900
committerJiwoong Im <jiwoong.im@samsung.com>2015-05-29 11:38:47 +0900
commit92347d23b966073f61e210b2ea6ba35bb596df91 (patch)
tree95d4e980ea8ed8bc47047ca16d1ae602ffd187b2 /alarm
parent30092aebab638aeeef491a92801f71f658f66e6a (diff)
downloadapplication-92347d23b966073f61e210b2ea6ba35bb596df91.tar.gz
application-92347d23b966073f61e210b2ea6ba35bb596df91.tar.bz2
application-92347d23b966073f61e210b2ea6ba35bb596df91.zip
add the new APIS for alarm
- alarm_schedule_once_after_delay - alarm_schedule_once_at_date Change-Id: Iab54567af28aa11a8b5cb88da80f98ab2fe97c42 Signed-off-by: Jiwoong Im <jiwoong.im@samsung.com>
Diffstat (limited to 'alarm')
-rwxr-xr-xalarm/alarm.c82
1 files changed, 82 insertions, 0 deletions
diff --git a/alarm/alarm.c b/alarm/alarm.c
index 374fd04..6ef1f17 100755
--- a/alarm/alarm.c
+++ b/alarm/alarm.c
@@ -281,6 +281,88 @@ int alarm_schedule_at_date(app_control_h app_control, struct tm *date, int perio
alarmmgr_free_alarm(alarm_info);
return ALARM_ERROR_NONE;
}
+int alarm_schedule_once_after_delay(app_control_h app_control, int delay, int *alarm_id)
+{
+ bundle *bundle_data;
+ int result = 0;
+
+ if (app_control == NULL) {
+ LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
+ return ALARM_ERROR_INVALID_PARAMETER;
+ }
+
+ if (app_control_to_bundle(app_control, &bundle_data) != APP_CONTROL_ERROR_NONE) {
+ LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
+ return ALARM_ERROR_INVALID_PARAMETER;
+ }
+
+ result = alarmmgr_add_alarm_appsvc(ALARM_TYPE_DEFAULT, delay, 0, bundle_data, alarm_id);
+
+ return convert_error_code_to_alarm(__FUNCTION__, result);
+}
+
+int alarm_schedule_once_at_date(app_control_h app_control, struct tm *date, int *alarm_id)
+{
+ alarm_date_t internal_time;
+ alarm_entry_t* alarm_info;
+ bundle *bundle_data;
+ int result;
+
+ if (app_control == NULL || date == NULL) {
+ LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
+ return ALARM_ERROR_INVALID_PARAMETER;
+ }
+
+ if (app_control_to_bundle(app_control, &bundle_data) != APP_CONTROL_ERROR_NONE) {
+ LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
+ return ALARM_ERROR_INVALID_PARAMETER;
+ }
+
+ alarm_info = alarmmgr_create_alarm();
+ if (alarm_info == NULL) {
+ LOGE("OUT_OF_MEMORY(0x%08x)", ALARM_ERROR_OUT_OF_MEMORY);
+ return ALARM_ERROR_OUT_OF_MEMORY;
+ }
+
+ internal_time.year = date->tm_year + 1900;
+ internal_time.month = date->tm_mon + 1;
+ internal_time.day = date->tm_mday;
+
+ internal_time.hour = date->tm_hour;
+ internal_time.min = date->tm_min;
+ internal_time.sec = date->tm_sec;
+
+ result = alarmmgr_set_time(alarm_info, internal_time);
+
+ if (result < 0) {
+ alarmmgr_free_alarm(alarm_info);
+ return convert_error_code_to_alarm(__FUNCTION__, result);
+ }
+
+ result = alarmmgr_set_repeat_mode(alarm_info, ALARM_REPEAT_MODE_ONCE, 0);
+
+ if (result < 0) {
+ alarmmgr_free_alarm(alarm_info);
+ return convert_error_code_to_alarm(__FUNCTION__, result);
+ }
+
+ result = alarmmgr_set_type(alarm_info, ALARM_TYPE_DEFAULT);
+
+ if (result < 0) {
+ alarmmgr_free_alarm(alarm_info);
+ return convert_error_code_to_alarm(__FUNCTION__, result);
+ }
+
+ result = alarmmgr_add_alarm_appsvc_with_localtime(alarm_info, bundle_data, alarm_id);
+
+ if (result < 0) {
+ alarmmgr_free_alarm(alarm_info);
+ return convert_error_code_to_alarm(__FUNCTION__, result);
+ }
+
+ alarmmgr_free_alarm(alarm_info);
+ return ALARM_ERROR_NONE;
+}
int alarm_cancel(int alarm_id)
{