summaryrefslogtreecommitdiff
path: root/alarm/alarm.c
diff options
context:
space:
mode:
Diffstat (limited to 'alarm/alarm.c')
-rw-r--r--alarm/alarm.c518
1 files changed, 0 insertions, 518 deletions
diff --git a/alarm/alarm.c b/alarm/alarm.c
deleted file mode 100644
index 743d4f6..0000000
--- a/alarm/alarm.c
+++ /dev/null
@@ -1,518 +0,0 @@
-/*
- * Copyright (c) 2011 - 2016 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <time.h>
-
-#include <bundle.h>
-#include <aul.h>
-#include <alarm.h>
-#include <dlog.h>
-
-#include <app_internal.h>
-#include <app_alarm.h>
-#include <app_control_internal.h>
-
-#ifdef LOG_TAG
-#undef LOG_TAG
-#endif
-
-#define LOG_TAG "CAPI_APPFW_APPLICATION_ALARM"
-
-typedef struct {
- alarm_registered_alarm_cb cb;
- void *user_data;
- bool *foreach_break;
-} alarm_foreach_item_cb_context;
-
-static int alarm_registered_alarm_cb_broker(int alarm_id, void *user_data)
-{
- alarm_foreach_item_cb_context *foreach_cb_context = NULL;
-
- if (user_data == NULL)
- return 0;
-
- foreach_cb_context = (alarm_foreach_item_cb_context *)user_data;
-
- if (foreach_cb_context != NULL && *(foreach_cb_context->foreach_break) == false) {
- if (foreach_cb_context->cb(alarm_id, foreach_cb_context->user_data) == false)
- *(foreach_cb_context->foreach_break) = true;
- }
-
- return 0;
-}
-
-static int convert_error_code_to_alarm(const char *function, alarm_error_t alarm_error)
-{
- switch (alarm_error) {
- case ERR_ALARM_INVALID_PARAM:
- case ERR_ALARM_INVALID_REPEAT:
- LOGE("[%s] INVALID_PARAMETER(0x%08x)", function, ALARM_ERROR_INVALID_PARAMETER);
- return ALARM_ERROR_INVALID_PARAMETER;
- break;
- case ERR_ALARM_INVALID_ID:
- LOGE("[%s] INVALID_PARAMETER(0x%08x)", function, ALARM_ERROR_INVALID_PARAMETER);
- return ALARM_ERROR_INVALID_PARAMETER;
- break;
- case ERR_ALARM_INVALID_TIME:
- LOGE("[%s] INVALID_TIME(0x%08x)", function, ALARM_ERROR_INVALID_TIME);
- return ALARM_ERROR_INVALID_TIME;
- break;
- case ERR_ALARM_INVALID_DATE:
- LOGE("[%s] INVALID_DATE(0x%08x)", function, ALARM_ERROR_INVALID_DATE);
- return ALARM_ERROR_INVALID_DATE;
- break;
- case ERR_ALARM_NO_SERVICE_NAME:
- LOGE("[%s] INVALID_PARAMETER(0x%08x)", function, ALARM_ERROR_INVALID_PARAMETER);
- return ALARM_ERROR_INVALID_PARAMETER;
- break;
- case ERR_ALARM_SYSTEM_FAIL:
- LOGE("[%s] CONNECTION_FAIL(0x%08x)", function, ALARM_ERROR_CONNECTION_FAIL);
- return ALARM_ERROR_CONNECTION_FAIL;
- break;
- case ERR_ALARM_NO_PERMISSION:
- LOGE("[%s] PERMISSION_DENIED(0x%08x)", function, ALARM_ERROR_PERMISSION_DENIED);
- return ALARM_ERROR_PERMISSION_DENIED;
- break;
- case ERR_ALARM_NOT_PERMITTED_APP:
- LOGE("[%s] NOT_PERMITTED_APP(0x%08x)", function, ALARM_ERROR_NOT_PERMITTED_APP);
- return ALARM_ERROR_NOT_PERMITTED_APP;
- break;
- case ALARMMGR_RESULT_SUCCESS:
- return ALARM_ERROR_NONE;
- break;
- default:
- return ALARM_ERROR_INVALID_PARAMETER;
- }
-}
-
-int alarm_get_scheduled_date(int alarm_id, struct tm *date)
-{
- alarm_error_t result;
- time_t due_time = 0;
-
- if (date == NULL) {
- LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
- return ALARM_ERROR_INVALID_PARAMETER;
- }
-
- result = alarmmgr_get_next_duetime(alarm_id, &due_time);
- if (result != ALARMMGR_RESULT_SUCCESS)
- return convert_error_code_to_alarm(__FUNCTION__, result);
-
- localtime_r(&due_time, date);
-
- return ALARM_ERROR_NONE;
-}
-
-int alarm_get_scheduled_period(int alarm_id, int *period)
-{
- alarm_error_t result;
- alarm_entry_t *entry = NULL;
- alarm_repeat_mode_t mode;
- int value;
-
- if (period == NULL) {
- LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
- return ALARM_ERROR_INVALID_PARAMETER;
- }
-
- entry = alarmmgr_create_alarm();
-
- result = alarmmgr_get_info(alarm_id, entry);
- if (result != ALARMMGR_RESULT_SUCCESS) {
- if (entry != NULL)
- alarmmgr_free_alarm(entry);
-
- return convert_error_code_to_alarm(__FUNCTION__, result);
- }
-
- result = alarmmgr_get_repeat_mode(entry, &mode, &value);
- if (result != ALARMMGR_RESULT_SUCCESS) {
- if (entry != NULL)
- alarmmgr_free_alarm(entry);
-
- return convert_error_code_to_alarm(__FUNCTION__, result);
- }
-
- alarmmgr_free_alarm(entry);
-
- (*period) = value;
-
- return ALARM_ERROR_NONE;
-}
-
-int alarm_schedule_after_delay(app_control_h app_control, int delay, int period, 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 | ALARM_TYPE_INEXACT, delay, period, bundle_data, alarm_id);
-
- return convert_error_code_to_alarm(__FUNCTION__, result);
-}
-
-int alarm_schedule_at_date(app_control_h app_control, struct tm *date, int period_in_second, int *alarm_id)
-{
- dlog_print(DLOG_WARN, LOG_TAG, "DEPRECATION WARNING: alarm_schedule_at_date() is deprecated and will be removed from next release. Use alarm_schedule_once_at_date() instead.");
- 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();
-
- 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);
- }
-
-
- if (period_in_second > 0)
- result = alarmmgr_set_repeat_mode(alarm_info, ALARM_REPEAT_MODE_REPEAT, period_in_second);
- else
- result = alarmmgr_set_repeat_mode(alarm_info, ALARM_REPEAT_MODE_ONCE, period_in_second);
-
- 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_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)
-{
- int result;
-
- result = alarmmgr_remove_alarm(alarm_id);
-
- return convert_error_code_to_alarm(__FUNCTION__, result);
-}
-
-int alarm_cancel_all()
-{
- int result;
-
- result = alarmmgr_remove_all();
-
- return convert_error_code_to_alarm(__FUNCTION__, result);
-}
-
-int alarm_foreach_registered_alarm(alarm_registered_alarm_cb callback, void *user_data)
-{
- int result;
- bool foreach_break = false;
-
- if (callback == NULL) {
- LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
- return ALARM_ERROR_INVALID_PARAMETER;
- }
-
- /* alarm_registered_alarm_cb_broker */
- alarm_foreach_item_cb_context foreach_cb_context = {
- .cb = callback,
- .user_data = user_data,
- .foreach_break = &foreach_break
- };
-
- result = alarmmgr_enum_alarm_ids(alarm_registered_alarm_cb_broker, &foreach_cb_context);
-
- return convert_error_code_to_alarm(__FUNCTION__, result);
-}
-
-int alarm_get_current_time(struct tm *date)
-{
- time_t now;
-
- if (date == NULL) {
- LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
- return ALARM_ERROR_INVALID_PARAMETER;
- }
-
- time(&now);
- localtime_r(&now, date);
- return ALARM_ERROR_NONE;
-}
-
-int alarm_schedule_with_recurrence_week_flag(app_control_h app_control, struct tm *date, int week_flag, 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();
-
- 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);
- }
-
- if (week_flag > 0)
- result = alarmmgr_set_repeat_mode(alarm_info, ALARM_REPEAT_MODE_WEEKLY, week_flag);
-
- 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);
- alarmmgr_free_alarm(alarm_info);
-
- return convert_error_code_to_alarm(__FUNCTION__, result);
-}
-
-int alarm_get_scheduled_recurrence_week_flag(int alarm_id, int *week_flag)
-{
- alarm_error_t result;
- alarm_entry_t *entry = NULL;
- alarm_repeat_mode_t mode;
- int value;
-
- if (week_flag == NULL) {
- LOGE("INVALID_PARAMETER(0x%08x)", ALARM_ERROR_INVALID_PARAMETER);
- return ALARM_ERROR_INVALID_PARAMETER;
- }
-
- entry = alarmmgr_create_alarm();
-
- result = alarmmgr_get_info(alarm_id, entry);
- if (result != ALARMMGR_RESULT_SUCCESS) {
- if (entry != NULL)
- alarmmgr_free_alarm(entry);
-
- return convert_error_code_to_alarm(__FUNCTION__, result);
- }
-
- result = alarmmgr_get_repeat_mode(entry, &mode, &value);
-
- if (mode != ALARM_REPEAT_MODE_WEEKLY) {
- if (entry != NULL)
- alarmmgr_free_alarm(entry);
-
- return ALARM_ERROR_INVALID_PARAMETER;
- }
-
- if (result != ALARMMGR_RESULT_SUCCESS) {
- if (entry != NULL)
- alarmmgr_free_alarm(entry);
-
- return convert_error_code_to_alarm(__FUNCTION__, result);
- }
-
- alarmmgr_free_alarm(entry);
-
- (*week_flag) = value;
-
- return ALARM_ERROR_NONE;
-}
-
-int alarm_get_app_control(int alarm_id, app_control_h *app_control)
-{
- bundle *b = NULL;
- int error_code = 0;
-
- if (app_control == NULL)
- return ALARM_ERROR_INVALID_PARAMETER;
-
- b = alarmmgr_get_alarm_appsvc_info(alarm_id, &error_code);
- if (error_code != ALARMMGR_RESULT_SUCCESS)
- return convert_error_code_to_alarm(__FUNCTION__, error_code);
-
- if (b == NULL)
- return ALARM_ERROR_INVALID_PARAMETER;
-
- error_code = app_control_create_request(b, app_control);
- if (error_code != APP_CONTROL_ERROR_NONE) {
- bundle_free(b);
- return ALARM_ERROR_OUT_OF_MEMORY;
- }
-
- bundle_free(b);
-
- return ALARM_ERROR_NONE;
-}
-
-int alarm_set_global(int alarm_id, bool global)
-{
- int ret;
-
- ret = alarmmgr_set_global(alarm_id, global);
-
- return convert_error_code_to_alarm(__FUNCTION__, ret);
-}
-
-int alarm_get_global(int alarm_id, bool *global)
-{
- int ret;
-
- ret = alarmmgr_get_global(alarm_id, global);
-
- return convert_error_code_to_alarm(__FUNCTION__, ret);
-}