4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Venkatesha Sarpangala <sarpangala.v@samsung.com>, Jayoun Lee <airjany@samsung.com>,
7 * Sewook Park <sewook7.park@samsung.com>, Jaeho Lee <jaeho81.lee@samsung.com>
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
31 * @addtogroup APPLICATION_FRAMEWORK
34 * @defgroup Alarm Alarm
38 * Alarm supports APIs that add, delete, and update an alarm.
39 * @n An application can use alarm APIs by including @c alarm.h. The definitions
40 * of APIs are defined as follows:
42 * @li @c #alarmmgr_init initialize alarm library
43 * @li @c #alarmmgr_set_cb set the callback for an alarm event
44 * @li @c #alarmmgr_create_alarm create an alarm entry
45 * @li @c #alarmmgr_free_alarm free an alarm entry
46 * @li @c #alarmmgr_set_time set a time will be expired
47 * @li @c #alarmmgr_get_time get a time will be expired
48 * @li @c #alarmmgr_set_repeat_mode set repeat mode
49 * @li @c #alarmmgr_get_repeat_mode get repeat mode
50 * @li @c #alarmmgr_set_type set type
51 * @li @c #alarmmgr_get_type get type
52 * @li @c #alarmmgr_add_alarm_with_localtime add an alarm with localtime
53 * @li @c #alarmmgr_add_alarm add an alarm
54 * @li @c #alarmmgr_remove_alarm remove an alarm from alarm server
55 * @li @c #alarmmgr_enum_alarm_ids get the list of alarm ids
56 * @li @c #alarmmgr_get_info get the information of an alarm
59 * The following code shows how to initialize alarm library, how to register the alarm handler, and how to add an alarm. It first calls alarm_init to initialize the alarm library and sets the callback to handle an alarm event it received. In create_test fucnction, the application add an alarm which will be expired in one minute from it execute and will expire everyday at same time.
69 int callback(alarm_id_t alarm_id, void *user_param)
75 printf("Alarm[%d] has expired at %s\n", alarm_id, ctime(¤t_time));
83 alarm_entry_t* alarm_info;
86 alarm_date_t test_time;
90 printf("current time: %s\n", ctime(¤t_time));
91 localtime_r(¤t_time, ¤t_tm);
93 alarm_info = alarmmgr_create_alarm();
95 test_time.year = current_tm.tm_year+1900;
96 test_time.month = current_tm.tm_mon+1;
97 test_time.day = current_tm.tm_mday;
98 test_time.hour = current_tm.tm_hour;
99 test_time.min = current_tm.tm_min+1;
102 alarmmgr_set_time(alarm_info,test_time);
103 alarmmgr_set_repeat_mode(alarm_info,ALARM_REPEAT_MODE_WEEKLY,
105 ALARM_WDAY_TUESDAY|ALARM_WDAY_WEDNESDAY| \
106 ALARM_WDAY_THURSDAY|ALARM_WDAY_FRIDAY );
108 alarmmgr_set_type(alarm_info,ALARM_TYPE_VOLATILE);
109 alarmmgr_add_alarm_with_localtime(alarm_info,NULL,&alarm_id);
111 if(result != ALARMMGR_RESULT_SUCCESS)
112 printf("fail to alarmmgr_create : error_code : %d\n",result);
116 int main(int argc, char** argv)
123 mainloop = g_main_loop_new(NULL, FALSE);
124 result = alarmmgr_init("org.tizen.test");
126 if(result != ALARMMGR_RESULT_SUCCESS) {
127 printf("fail to alarmmgr_init : error_code : %d\n",result);
130 result = alarmmgr_set_cb(callback,NULL);
131 if(result != ALARMMGR_RESULT_SUCCESS) {
132 printf("fail to alarmmgr_set_cb : error_code :
139 g_main_loop_run(mainloop);
151 #include<sys/types.h>
159 * Type of an alarm id
161 typedef int alarm_id_t;
163 * The prototype of alarm handler.
164 * param [in] alarm_id the id of expired alarm
166 typedef int (*alarm_cb_t) (alarm_id_t alarm_id, void *user_param);
168 typedef int (*alarm_enum_fn_t) (alarm_id_t alarm_id, void *user_param);
171 * This enumeration has day of a week of alarm
174 ALARM_WDAY_SUNDAY = 0x01, /**< enalbe alarm on Sunday*/
175 ALARM_WDAY_MONDAY = 0x02, /**< enalbe alarm on Monday*/
176 ALARM_WDAY_TUESDAY = 0x04, /**< enable alarm on Tuesday*/
177 ALARM_WDAY_WEDNESDAY = 0x08, /**< enalbe alarm on Wednesday*/
178 ALARM_WDAY_THURSDAY = 0x10, /**< enable alarm on Thursday*/
179 ALARM_WDAY_FRIDAY = 0x20, /**< enable alarm on Friday*/
180 ALARM_WDAY_SATURDAY = 0x40,/**< enable alarm on Saturday*/
181 } alarm_day_of_week_t;
184 * This enumeration has error codes of alarm
187 ERR_ALARM_INVALID_PARAM = -10,
188 /**<Invalid parameter*/
189 ERR_ALARM_INVALID_ID, /**<Invalid id*/
190 ERR_ALARM_INVALID_REPEAT,
191 /**<Invalid repeat mode*/
192 ERR_ALARM_INVALID_TIME, /**<Invalid time. */
193 ERR_ALARM_INVALID_DATE, /**<Invalid date. */
194 ERR_ALARM_NO_SERVICE_NAME,
195 /**<there is no alarm service
196 for this applicaation. */
197 ERR_ALARM_INVALID_TYPE, /*Invalid type*/
198 ERR_ALARM_NO_PERMISSION, /*No permission*/
199 ERR_ALARM_SYSTEM_FAIL = -1,
200 ALARMMGR_RESULT_SUCCESS = 0,
204 * This enumeration has repeat mode of alarm
207 ALARM_REPEAT_MODE_ONCE = 0, /**<once : the alarm will be expired
209 ALARM_REPEAT_MODE_REPEAT, /**<repeat : the alarm will be expired
211 ALARM_REPEAT_MODE_WEEKLY, /**<weekly*/
212 ALARM_REPEAT_MODE_MONTHLY, /**< monthly*/
213 ALARM_REPEAT_MODE_ANNUALLY, /**< annually*/
214 ALARM_REPEAT_MODE_MAX,
215 } alarm_repeat_mode_t;
218 #define ALARM_TYPE_DEFAULT 0x0 /*< non volatile */
219 #define ALARM_TYPE_VOLATILE 0x02 /*< volatile */
223 * This struct has date information
226 int year; /**< specifies the year */
227 int month; /**< specifies the month */
228 int day; /**< specifies the day */
229 int hour; /**< specifies the hour */
230 int min; /**< specifies the minute*/
231 int sec; /**< specifies the second*/
235 typedef struct alarm_info_t alarm_entry_t;
240 * This function initializes alarm library. It connects to system bus and registers the application's service name.
242 * @param [in] pkg_name a package of application
244 * @return On success, ALARMMGR_RESULT_SUCCESS is returned. On error, a negative number is returned
249 * @remark An application must call this function before using other alarm APIs.
256 int ret_val = ALARMMGR_RESULT_SUCCESS;
257 const char* pkg_name = "org.tizen.test";
261 ret_val =alarmmgr_init(pkg_name) ;
262 if(ret_val == ALARMMGR_RESULT_SUCCESS)
264 //alarmmgr_init() is successful
268 //alarmmgr_init () failed
274 int alarmmgr_init(const char *pkg_name);
276 void alarmmgr_fini();
280 * This function registers handler which handles an alarm event. An application should register the alarm handler
281 * before it enters mainloop.
283 * @param [in] handler Callback function
284 * @param [in] user_param User Parameter
286 * @return This function returns ALARMMGR_RESULT_SUCCESS on success or a negative number on failure.
288 * @pre alarmmgr_init().
291 * @remark An application can have only one alarm handler. If an application
292 * calls this function more than one times, the handler regitered during the
293 * last call of this funiction will be called when an alarm event has occured.
299 // Call back function
300 int callback(alarm_id_t alarm_id,void* user_param)
305 printf("Alarm[%d] has expired at %s\n", alarm_id, ctime(¤t_time));
313 int ret_val = ALARMMGR_RESULT_SUCCESS;
314 void *user_param = NULL;
316 ret_val = alarmmgr_set_cb( callback, user_param);
317 if(ret_val == ALARMMGR_RESULT_SUCCESS)
319 //alarmmgr_set_cb() is successful
323 //alarmmgr_set_cb () failed
330 int alarmmgr_set_cb(alarm_cb_t handler, void *user_param);
334 * This function creates a new alarm entry, will not be known to the server until alarmmgr_add_alarm is called.
336 * @return This function returns the pointer of alarm_entry_t
341 * @remark After an application use this object, an application free this pointer through alarmmgr_free_alarm
349 alarm_entry_t* alarm;
351 alarm = alarmmgr_create_alarm() ;
354 //alarmmgr_create_alarm() is successful
358 //alarmmgr_create_alarm () failed
366 alarm_entry_t *alarmmgr_create_alarm(void);
370 * This function frees an alarm entry.
372 * @param [in] alarm alarm entry
374 * @return This function returns ALARMMGR_RESULT_SUCCESS on success or a negative number on failure.
387 int ret_val = ALARMMGR_RESULT_SUCCESS;
388 alarm_entry_t* alarm;
390 alarm = alarmmgr_create_alarm() ;
393 //alarmmgr_create_alarm () failed
398 ret_val = alarmmgr_free_alarm( alarm) ;
399 if(ret_val == ALARMMGR_RESULT_SUCCESS)
401 //alarmmgr_free_alarm() is successful
405 //alarmmgr_free_alarm() failed
413 int alarmmgr_free_alarm(alarm_entry_t *alarm);
417 * This function sets time that alarm should be expried.
419 * @param [in] alarm alarm entry
420 * @param [in] time time the alarm should first go off
422 * @return This function returns ALARMMGR_RESULT_SUCCESS on success or a negative number on failure.
435 int ret_val = ALARMMGR_RESULT_SUCCESS;
436 alarm_entry_t* alarm;
438 struct tm current_tm;
439 alarm_date_t test_time;
443 localtime_r(¤t_time, ¤t_tm);
445 alarm = alarmmgr_create_alarm();
448 //alarmmgr_create_alarm () failed
451 test_time.year = current_tm.tm_year;
452 test_time.month = current_tm.tm_mon;
453 test_time.day = current_tm.tm_mday;
455 test_time.hour = current_tm.tm_hour;
456 test_time.min = current_tm.tm_min+1;
459 ret_val=alarmmgr_set_time(alarm,test_time);
460 if(ret_val == ALARMMGR_RESULT_SUCCESS)
462 //alarmmgr_set_time() is successful
466 //alarmmgr_set_time() failed
468 alarmmgr_free_alarm( alarm) ;
475 int alarmmgr_set_time(alarm_entry_t *alarm, alarm_date_t time);
478 * This function gives an application time that alarm should be expried.
480 * @param [in] alarm alarm entry
481 * @param [out] time time the alarm should first go off
483 * @return This function returns ALARMMGR_RESULT_SUCCESS on success or a negative number on failure.
488 * @remark But an application does not need to specify year, month, and day field of alarm_info. If an application sets
489 * those fields with zero, the function sets them with proper values.
497 int ret_val = ALARMMGR_RESULT_SUCCESS;
498 alarm_entry_t* alarm;
501 struct tm current_tm;
502 alarm_date_t test_time;
503 alarm_date_t new_time;
507 localtime_r(¤t_time, ¤t_tm);
509 alarm = alarmmgr_create_alarm();
511 //alarmmgr_create_alarm () failed
514 test_time.year = current_tm.tm_year;
515 test_time.month = current_tm.tm_mon;
516 test_time.day = current_tm.tm_mday;
518 test_time.hour = current_tm.tm_hour;
519 test_time.min = current_tm.tm_min+1;
522 ret_val = alarmmgr_set_time(alarm,test_time);
523 if(ret_val == ALARMMGR_RESULT_SUCCESS) {
524 //alarmmgr_set_time() is successful
527 //alarmmgr_set_time() failed
530 ret_val = alarmmgr_get_time(alarm, &new_time);
531 if(ret_val == ALARMMGR_RESULT_SUCCESS) {
532 //alarmmgr_get_time() is successful
535 //alarmmgr_get_time() failed
537 alarmmgr_free_alarm( alarm) ;
544 int alarmmgr_get_time(const alarm_entry_t *alarm, alarm_date_t *time);
547 * This function sets an alarm repeat mode
549 * @param [in] alarm alarm entry
550 * @param [in] repeat_mode one of ALARM_REPEAT_MODE_ONCE, ALARM_REPEAT_MODE_REPEAT,
551 * ALARM_REPEAT_MODE_WEEKLY, ALARM_REPEAT_MODE_MONTHLY or ALARM_REPEAT_MODE_ANNUALLY.
552 * @param [in] repeat_value the ALARM_REPEAT_MODE_REPEAT mode : interval between subsequent repeats of the alarm.
553 * the ALARM_REPEAT_MODE_WEEKLY mode : days of a week
554 * (ALARM_WDAY_SUNDAY, ALARM_WDAY_MONDAY, ALARM_WDAY_TUESDAY, ALARM_WDAY_WEDNESDAY,
555 * ALARM_WDAY_THURSDAY, ALARM_WDAY_FRIDAY, ALARM_WDAY_SATURDAY)
556 * the others : this parameter is ignored.
558 * @return This function returns ALARMMGR_RESULT_SUCCESS on success or a negative number on failure.
571 int ret_val = ALARMMGR_RESULT_SUCCESS;
572 alarm_entry_t* alarm;
573 alarm_repeat_mode_t repeat_mode =ALARM_REPEAT_MODE_WEEKLY;
574 int interval = ALARM_WDAY_MONDAY; //| ALARM_WDAY_TUESDAY|
575 ALARM_WDAY_WEDNESDAY| ALARM_WDAY_THURSDAY|ALARM_WDAY_FRIDAY ;
578 alarm = alarmmgr_create_alarm();
581 //alarmmgr_create_alarm () failed
585 ret_val = alarmmgr_set_repeat_mode
586 (alarm, repeat_mode,interval);
588 if(ret_val == ALARMMGR_RESULT_SUCCESS)
590 //alarmmgr_set_repeat_mode() is successful
594 //alarmmgr_set_repeat_mode() failed
596 alarmmgr_free_alarm( alarm) ;
603 int alarmmgr_set_repeat_mode(alarm_entry_t *alarm,
604 alarm_repeat_mode_t repeat_mode,
608 * This function gives an application an alarm mode
610 * @param [in] alarm alarm entry
611 * @param [out] repeat_mode one of ALARM_REPEAT_MODE_ONCE, ALARM_REPEAT_MODE_REPEAT,
612 * ALARM_REPEAT_MODE_WEEKLY, ALARM_REPEAT_MODE_MONTHLY or ALARM_REPEAT_MODE_ANNUALLY.
613 * @param [out] repeat_value the ALARM_REPEAT_MODE_REPEAT mode : interval between subsequent repeats of the alarm.
614 * the ALARM_REPEAT_MODE_WEEKLY mode : days of a week
615 * (ALARM_WDAY_SUNDAY, ALARM_WDAY_MONDAY, ALARM_WDAY_TUESDAY, ALARM_WDAY_WEDNESDAY,
616 * ALARM_WDAY_THURSDAY, ALARM_WDAY_FRIDAY, ALARM_WDAY_SATURDAY)
617 * the others : this parameter is ignored.
619 * @return This function returns ALARMMGR_RESULT_SUCCESS on success or a negative number on failure.
632 int ret_val = ALARMMGR_RESULT_SUCCESS;
633 alarm_entry_t* alarm;
634 alarm_repeat_mode_t repeat;
637 alarm = alarmmgr_create_alarm();
640 //alarmmgr_create_alarm () failed
643 ret_val =alarmmgr_get_repeat_mode
644 (alarm, &repeat, &interval) ;
645 if(ret_val == ALARMMGR_RESULT_SUCCESS
646 && repeat == ALARM_REPEAT_MODE_ONCE) {
647 //alarmmgr_get_repeat_mode() is successful
650 //alarmmgr_get_repeat_mode() failed
652 alarmmgr_free_alarm(alarm) ;
659 int alarmmgr_get_repeat_mode(const alarm_entry_t *alarm,
660 alarm_repeat_mode_t *repeat_mode,
664 * This function sets an alarm mode
666 * @param [in] alarm alarm entry
667 * @param [in] alarm_type one of ALARM_TYPE_DEFAULT : After the device reboot, the alarm still works.
668 * ALARM_TYPE_VOLATILE : After the device reboot, the alarm does not work.
670 * @return This function returns ALARMMGR_RESULT_SUCCESS on success or a negative number on failure.
683 int ret_val = ALARMMGR_RESULT_SUCCESS;
684 alarm_entry_t* alarm;
685 int alarm_type = ALARM_TYPE_VOLATILE;
687 alarm = alarmmgr_create_alarm();
690 //alarmmgr_create_alarm () failed
694 ret_val = alarmmgr_set_type(alarm, alarm_type);
695 if(ret_val == ALARMMGR_RESULT_SUCCESS)
697 //alarmmgr_set_type() is successful
701 //alarmmgr_set_type() failed
703 alarmmgr_free_alarm( alarm) ;
710 int alarmmgr_set_type(alarm_entry_t *alarm, int alarm_type);
713 * This function gives an application an alarm mode
715 * @param [in] alarm alarm entry
716 * @param [out] alarm_type one of ALARM_TYPE_DEFAULT, ALARM_TYPE_VOLATILE
718 * @return This function returns ALARMMGR_RESULT_SUCCESS on success or a negative number on failure.
731 int ret_val = ALARMMGR_RESULT_SUCCESS;
732 alarm_entry_t* alarm;
735 alarm = alarmmgr_create_alarm();
737 //alarmmgr_create_alarm () failed
740 ret_val = alarmmgr_get_type( alarm, &alarm_type);
741 if(ret_val == ALARMMGR_RESULT_SUCCESS && alarm_type
742 == ALARM_TYPE_DEFAULT ) {
743 //alarmmgr_get_type() is successful
746 //alarmmgr_get_type() failed
748 alarmmgr_free_alarm( alarm) ;
755 int alarmmgr_get_type(const alarm_entry_t *alarm, int *alarm_type);
758 * This function adds an alarm entry to the server.
759 * Server will remember this entry, and generate alarm events for it when necessary.
760 * Server will call app-svc interface to sent notification to destination application. Destination information
761 * should be available in the input bundle.
762 * Alarm entries registered with the server cannot be changed.
763 * Remove from server before changing.
764 * Before the application calls alarmmgr_add_alarm_appsvc_with_localtime(), the application have to call alarmmgr_set_time().
765 * The time set is localtime.
766 * If the application does not call alarmmgr_set_repeat_mode, the default repeat_mode is ALARM_REPEAT_MODE_ONCE.
767 * If the application does not call alarmmgr_set_type, the default alarm_type is ALARM_TYPE_DEFAULT.
768 * The id of the new alarm will be copied to alarm_id if the fuction successes to create an alarm.
770 * @param [in] alarm the entry of an alarm to be created.
771 * @param [in] bundle_data bundle which contains information about the destination.
772 * @param [out] alarm_id the id of the alarm added.
774 * @return This function returns ALARMMGR_RESULT_SUCCESS on success or a negative number on failure.
778 * @see alarmmgr_add_alarm
788 struct tm current_tm;
789 alarm_entry_t* alarm_info;
792 alarm_date_t test_time;
801 printf("Unable to create bundle!!!\n");
805 appsvc_set_operation(b,APPSVC_OPERATION_DEFAULT);
806 appsvc_set_pkgname(b,"org.tizen.alarm-test");
810 printf("current time: %s\n", ctime(¤t_time));
811 localtime_r(¤t_time, ¤t_tm);
813 alarm_info = alarmmgr_create_alarm();
815 test_time.year = current_tm.tm_year;
816 test_time.month = current_tm.tm_mon;
817 test_time.day = current_tm.tm_mday;
819 test_time.hour = current_tm.tm_hour;
820 test_time.min = current_tm.tm_min+1;
824 alarmmgr_set_time(alarm_info,test_time);
825 alarmmgr_set_repeat_mode(alarm_info,ALARM_REPEAT_MODE_WEEKLY,ALARM_WDAY_MONDAY| \
826 ALARM_WDAY_TUESDAY|ALARM_WDAY_WEDNESDAY| \
827 ALARM_WDAY_THURSDAY|ALARM_WDAY_FRIDAY );
829 alarmmgr_set_type(alarm_info, ALARM_TYPE_DEFAULT);
830 //alarmmgr_set_type(alarm_info,ALARM_TYPE_VOLATILE);
831 if ((result = alarmmgr_add_alarm_appsvc_with_localtime(alarm_info,(void *)b,&alarm_id)) < 0)
833 printf("Alarm creation failed!!! Alrmgr error code is %d\n",result);
837 printf("Alarm created succesfully with alarm id %d\n",alarm_id);
844 int alarmmgr_add_alarm_appsvc_with_localtime(alarm_entry_t *alarm,void *bundle_data, alarm_id_t *alarm_id);
847 * This function adds an alarm entry to the server.
848 * Server will remember this entry, and generate alarm events for it when necessary.
849 * Alarm entries registered with the server cannot be changed.
850 * Remove from server before changing.
851 * Before the application calls alarmmgr_add_alarm_with_localtime(), the application have to call alarmmgr_set_time().
852 * The time set is localtime.
853 * If the application does not call alarmmgr_set_repeat_mode, the default repeat_mode is ALARM_REPEAT_MODE_ONCE.
854 * If the application does not call alarmmgr_set_type, the default alarm_type is ALARM_TYPE_DEFAULT.
855 * The id of the new alarm will be copied to alarm_id if the fuction successes to create an alarm.
857 * @param [in] alarm the entry of an alarm to be created.
858 * @param [in] destination the packname of application that the alarm will be expired.
859 * @param [out] alarm_id the id of the alarm added.
861 * @return This function returns ALARMMGR_RESULT_SUCCESS on success or a negative number on failure.
865 * @see alarmmgr_add_alarm
874 int ret_val = ALARMMGR_RESULT_SUCCESS;
875 alarm_entry_t* alarm;
876 const char* destination = NULL;
880 struct tm current_tm;
881 alarm_date_t test_time;
883 const char* pkg_name = "org.tizen.test";
887 ret_val =alarmmgr_init(pkg_name) ;
888 if(ret_val != ALARMMGR_RESULT_SUCCESS) {
889 //alarmmgr_init () failed
895 printf("current time: %s\n", ctime(¤t_time));
896 localtime_r(¤t_time, ¤t_tm);
898 alarm = alarmmgr_create_alarm();
901 test_time.month = 0;test_time.day = 0;
903 test_time.hour = current_tm.tm_hour;
904 test_time.min = current_tm.tm_min+1;
908 alarmmgr_set_time(alarm,test_time);
909 alarmmgr_set_repeat_mode(alarm,ALARM_REPEAT_MODE_WEEKLY, \
911 alarmmgr_set_type(alarm,ALARM_TYPE_VOLATILE);
914 ret_val=alarmmgr_add_alarm_with_localtime(alarm,destination,&alarm_id);
916 if(ret_val == ALARMMGR_RESULT_SUCCESS)
918 //alarmmgr_add_alarm_with_localtime() is successful
922 //alarmmgr_add_alarm_with_localtime() failed
924 alarmmgr_free_alarm( alarm) ;
929 int alarmmgr_add_alarm_with_localtime(alarm_entry_t *alarm,
930 const char *destination,
931 alarm_id_t *alarm_id);
935 * This function adds an alarm entry to the server.
936 * Server will remember this entry, and generate alarm events for it when necessary.
937 * Server will call app-svc interface to sent notification to destination application. Destination information
938 * should be available in the input bundle.
939 * Alarm entries registered with the server cannot be changed.
940 * Remove from server before changing.
941 * After the trigger_at_time seconds from now, the alarm will be expired.
942 * If the interval is zero, the repeat_mode is ALARM_REPEAT_MODE_ONCE.
943 * If the interval is >0, the repeat_mode is ALARM_REPEAT_MODE_REPEAT.
944 * The id of the new alarm will be copied to alarm_id if the fuction successes to create an alarm.
946 * @param [in] alarm_type one of ALARM_TYPE_DEFAULT, ALARM_TYPE_VOLATILE
947 * @param [in] trigger_at_time time interval to be triggered from now(sec). an alarm also will be expired at triggering time.
948 * @param [in] interval Interval between subsequent repeats of the alarm
949 * @param [in] bundle_data bundle which contains information about the destination.
950 * @param [out] alarm_id the id of the alarm added.
952 * @return This function returns ALARMMGR_RESULT_SUCCESS on success or a negative number on failure.
956 * @see alarmmgr_add_alarm_with_localtime alarmmgr_remove_alarm
974 printf("Unable to create bundle!!!\n");
978 appsvc_set_pkgname(b,"org.tizen.alarm-test");
979 //appsvc_set_operation(b,APPSVC_OPERATION_SEND_TEXT);
980 appsvc_set_operation(b,APPSVC_OPERATION_DEFAULT);
982 if ((result = alarmmgr_add_alarm_appsvc(ALARM_TYPE_DEFAULT, 10, 0, (void *)b ,&alarm_id)))
983 printf("Unable to add alarm. Alarmmgr alarm no is %d\n", result);
985 printf("Alarm added successfully. Alarm Id is %d\n", alarm_id);
993 int alarmmgr_add_alarm_appsvc(int alarm_type, time_t trigger_at_time,
994 time_t interval, void *bundle_data,
995 alarm_id_t *alarm_id);
999 * This function adds an alarm entry to the server.
1000 * Server will remember this entry, and generate alarm events for it when necessary.
1001 * Alarm entries registered with the server cannot be changed.
1002 * Remove from server before changing.
1003 * After the trigger_at_time seconds from now, the alarm will be expired.
1004 * If the interval is zero, the repeat_mode is ALARM_REPEAT_MODE_ONCE.
1005 * If the interval is >0, the repeat_mode is ALARM_REPEAT_MODE_REPEAT.
1006 * The id of the new alarm will be copied to alarm_id if the fuction successes to create an alarm.
1008 * @param [in] alarm_type one of ALARM_TYPE_DEFAULT, ALARM_TYPE_VOLATILE
1009 * @param [in] trigger_at_time time interval to be triggered from now(sec). an alarm also will be expired at triggering time.
1010 * @param [in] interval Interval between subsequent repeats of the alarm
1011 * @param [in] destination the packname of application that the alarm will be expired.
1012 * @param [out] alarm_id the id of the alarm added.
1014 * @return This function returns ALARMMGR_RESULT_SUCCESS on success or a negative number on failure.
1018 * @see alarmmgr_add_alarm_with_localtime alarmmgr_remove_alarm
1027 int ret_val = ALARMMGR_RESULT_SUCCESS;
1029 int alarm_type = ALARM_TYPE_VOLATILE;
1030 time_t trigger_at_time = 10;
1031 time_t interval = 10;
1032 const char* destination = NULL;
1033 alarm_id_t alarm_id;
1035 const char* pkg_name = "org.tizen.test";
1039 ret_val =alarmmgr_init(pkg_name) ;
1040 if(ret_val != ALARMMGR_RESULT_SUCCESS)
1042 //alarmmgr_init () failed
1046 ret_val = alarmmgr_add_alarm( alarm_type, trigger_at_time, interval,
1047 destination, &alarm_id);
1048 if(ret_val == ALARMMGR_RESULT_SUCCESS)
1050 //alarmmgr_add_alarm() is successful
1054 //alarmmgr_add_alarm() failed
1056 alarmmgr_remove_alarm( alarm_id) ;
1062 int alarmmgr_add_alarm(int alarm_type, time_t trigger_at_time,
1063 time_t interval, const char *destination,
1064 alarm_id_t *alarm_id);
1067 * This function deletes the alarm associated with the given alarm_id.
1069 * @param [in] alarm_id Specifies the ID of the alarm to be deleted.
1071 * @return This function returns ALARMMGR_RESULT_SUCCESS on success or a negative number on failure.
1075 * @see alarmmgr_add_alarm_with_localtime alarmmgr_add_alarm
1084 int ret_val = ALARMMGR_RESULT_SUCCESS;
1085 int alarm_type = ALARM_TYPE_VOLATILE;
1086 time_t trigger_at_time = 10;
1087 time_t interval = 10;
1088 const char* destination = NULL;
1089 alarm_id_t alarm_id;
1091 const char* pkg_name = "org.tizen.test";
1095 ret_val =alarmmgr_init(pkg_name) ;
1096 if(ret_val != ALARMMGR_RESULT_SUCCESS) {
1097 //alarmmgr_init () failed
1101 alarmmgr_add_alarm( alarm_type, trigger_at_time, interval,
1102 destination, &alarm_id);
1104 ret_val =alarmmgr_remove_alarm( alarm_id) ;
1105 if(ret_val == ALARMMGR_RESULT_SUCCESS) {
1106 /alarmmgr_remove_alarm() is successful
1109 //alarmmgr_remove_alarm() failed
1116 int alarmmgr_remove_alarm(alarm_id_t alarm_id);
1119 * This function gives a list of alarm ids that the application adds to the server.
1121 * @param [in] fn a user callback function
1122 * @param [in] user_param user parameter
1124 * @return This function returns ALARMMGR_RESULT_SUCCESS on success or a negative number on failure.
1128 * @see alarm_get_info
1135 int callback_2(alarm_id_t id, void* user_param)
1137 int* n = (int*)user_param;
1138 printf("[%d]alarm id : %d\n",*n,id);
1145 int ret_val = ALARMMGR_RESULT_SUCCESS;
1148 const char* pkg_name = "org.tizen.test";
1152 ret_val =alarmmgr_init(pkg_name) ;
1153 if(ret_val != ALARMMGR_RESULT_SUCCESS)
1155 //alarmmgr_init() failed
1159 ret_val = alarmmgr_enum_alarm_ids( callback_2, (void*)&n) ;
1160 if(ret_val == ALARMMGR_RESULT_SUCCESS)
1162 //alarmmgr_enum_alarm_ids() is successful
1166 //alarmmgr_enum_alarm_ids() failed
1173 int alarmmgr_enum_alarm_ids(alarm_enum_fn_t fn, void *user_param);
1177 * This function gets the information of the alarm assosiated with alarm_id to alarm_info. The application
1178 * must allocate alarm_info before calling this function.
1180 * @param [in] alarm_id the id of the alarm
1181 * @param [out] alarm the buffer alarm informaiton will be copied to
1183 * @return This function returns ALARMMGR_RESULT_SUCCESS on success or a negative number on failure.
1187 * @see alarmmgr_enum_alarm_ids
1196 int ret_val = ALARMMGR_RESULT_SUCCESS;
1197 int alarm_type = ALARM_TYPE_VOLATILE;
1198 time_t trigger_at_time = 10;
1199 time_t interval = ALARM_WDAY_SUNDAY;
1200 const char* destination = NULL;
1201 alarm_id_t alarm_id;
1203 alarm_entry_t *alarm;
1205 const char* pkg_name = "org.tizen.test_get_info1";
1209 ret_val =alarmmgr_init(pkg_name) ;
1210 if(ret_val != ALARMMGR_RESULT_SUCCESS) {
1211 //alarmmgr_init() failed
1214 ret_val = alarmmgr_add_alarm( alarm_type,trigger_at_time,interval,
1215 destination, &alarm_id);
1217 if(ret_val != ALARMMGR_RESULT_SUCCESS) {
1218 //alarmmgr_add_alarm() failed
1221 ret_val = alarmmgr_get_info(alarm_id, alarm);
1222 if(ret_val == ALARMMGR_RESULT_SUCCESS) {
1223 //alarmmgr_get_info() is successful
1226 //alarmmgr_get_info() failed
1228 alarmmgr_remove_alarm( alarm_id) ;
1233 int alarmmgr_get_info(alarm_id_t alarm_id, alarm_entry_t *alarm);
1237 * This function retrieves bundle associated with alarm.
1238 * Server will remember this entry, and pass the bundle information upon alarm expiry.
1239 * Server will call app-svc interface to sent notification to destination application. Destination information
1240 * should be available in the input bundle.
1241 * @param [in] alarm_id alarm id
1242 * @param [out] ALARMMGR_RESULT_SUCCESS on success or negative number on failure.
1244 * @return This function returns bundle on success or NULL on failure.
1257 alarm_id_t alarm_id;
1266 printf("Unable to create bundle!!!\n");
1270 appsvc_set_pkgname(b,"org.tizen.alarm-test");
1271 appsvc_set_operation(b,APPSVC_OPERATION_DEFAULT);
1273 if ((result = alarmmgr_add_alarm_appsvc(ALARM_TYPE_DEFAULT, 10, 0, (void *)b ,&alarm_id)))
1274 printf("Unable to add alarm. Alarmmgr alarm no is %d\n", result);
1276 printf("Alarm added successfully. Alarm Id is %d\n", alarm_id);
1278 int main(int argc,char **argv {
1281 int return_code = 0;
1283 b = alarmmgr_get_alarm_appsvc_info(alarm_id, &return_code);
1285 const char *pkgname = appsvc_get_pkgname(b);
1287 printf("Package name is %s\n",pkgname);
1297 void *alarmmgr_get_alarm_appsvc_info(alarm_id_t alarm_id, int *return_code);
1302 * This function sets power RTC (which can power on the system).
1303 * @param [in] alarm_date_t time
1305 * @return This function returns the result. On success, ALARMMGR_RESULT_SUCCESS will be returned
1306 * else, appropriate error no will be returned.
1318 alarm_date_t alarm_date={2012,04,05,10,10,00};
1320 int main(int argc,char **argv {
1321 int return_code = 0;
1322 return_code = alarmmgr_set_rtc_time(&alarm_date);
1323 if (return_code != ALARMMGR_RESULT_SUCCESS){
1324 printf("Error returned is %d\n",return_code);
1332 int alarmmgr_set_rtc_time(alarm_date_t *time);
1345 int alarmmgr_power_on(bool on_off);
1352 #endif/* ALARM_LIB_H*/