2 * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #ifndef __TIZEN_APPFW_EVENT_H__
19 #define __TIZEN_APPFW_EVENT_H__
32 * @addtogroup CAPI_EVENT_MODULE
38 * @brief Event handle.
41 typedef struct event_handler* event_handler_h;
44 * @brief Event callback.
47 * @param[in] event_name The interested event name
48 * @param[in] event_data The data of interested event
49 * @param[in] user_data The user data set by event_add_event_handler()
50 * @see event_add_event_handler
52 typedef void (*event_cb)(const char *event_name, bundle *event_data, void *user_data);
55 * @brief Enumeration for Event Error.
60 EVENT_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */
61 EVENT_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */
62 EVENT_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory */
63 EVENT_ERROR_TIMED_OUT = TIZEN_ERROR_TIMED_OUT, /**< Time out */
64 EVENT_ERROR_IO_ERROR = TIZEN_ERROR_IO_ERROR, /**< IO error */
65 EVENT_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED /**< Permisiion denied */
69 * @brief Definition for system-event of battery : charger status.
71 * @remarks If there is earlier occurrence regarding this event, you will receive the event as soon as you register event handler for this event. You can use this earlier event-data as initial value.
72 * @see EVENT_KEY_BATTERY_CHARGER_STATUS
74 #define SYSTEM_EVENT_BATTERY_CHARGER_STATUS "tizen.system.event.battery_charger_status"
77 * @brief Definition for key of SYSTEM_EVENT_BATTERY_CHARGER_STATUS.
79 * @see EVENT_VAL_BATTERY_CHARGER_DISCONNECTED
80 * @see EVENT_VAL_BATTERY_CHARGER_CONNECTED
81 * @see EVENT_VAL_BATTERY_CHARGER_CHARGING
83 #define EVENT_KEY_BATTERY_CHARGER_STATUS "battery_charger_status"
86 * @brief Definition for value of EVENT_KEY_BATTERY_CHARGER_STATUS.
89 #define EVENT_VAL_BATTERY_CHARGER_DISCONNECTED "disconnected"
92 * @brief Definition for value of EVENT_KEY_BATTERY_CHARGER_STATUS.
94 * @remarks Connected but not-available.
96 #define EVENT_VAL_BATTERY_CHARGER_CONNECTED "connected"
99 * @brief Definition for value of EVENT_KEY_BATTERY_CHARGER_STATUS.
102 #define EVENT_VAL_BATTERY_CHARGER_CHARGING "charging"
105 * @brief Definition for system-event of battery : level status.
107 * @see EVENT_KEY_BATTERY_LEVEL_STATUS
109 #define SYSTEM_EVENT_BATTERY_LEVEL_STATUS "tizen.system.event.battery_level_status"
112 * @brief Definition for key of SYSTEM_EVENT_BATTERY_LEVEL_STATUS.
114 * @see EVENT_VAL_BATTERY_LEVEL_EMPTY
115 * @see EVENT_VAL_BATTERY_LEVEL_CRITICAL
116 * @see EVENT_VAL_BATTERY_LEVEL_LOW
117 * @see EVENT_VAL_BATTERY_LEVEL_HIGH
118 * @see EVENT_VAL_BATTERY_LEVEL_FULL
120 #define EVENT_KEY_BATTERY_LEVEL_STATUS "battery_level_status"
123 * @brief Definition for value of EVENT_KEY_BATTERY_LEVEL_STATUS.
126 #define EVENT_VAL_BATTERY_LEVEL_EMPTY "empty"
129 * @brief Definition for value of EVENT_KEY_BATTERY_LEVEL_STATUS.
132 #define EVENT_VAL_BATTERY_LEVEL_CRITICAL "critical"
135 * @brief Definition for value of EVENT_KEY_BATTERY_LEVEL_STATUS.
138 #define EVENT_VAL_BATTERY_LEVEL_LOW "low"
141 * @brief Definition for value of EVENT_KEY_BATTERY_LEVEL_STATUS.
144 #define EVENT_VAL_BATTERY_LEVEL_HIGH "high"
147 * @brief Definition for value of EVENT_KEY_BATTERY_LEVEL_STATUS.
150 #define EVENT_VAL_BATTERY_LEVEL_FULL "full"
153 * @brief Definition for system-event of usb : status of usb connection.
155 * @remarks If there is earlier occurrence regarding this event, you will receive the event as soon as you register event handler for this event. You can use this earlier event-data as initial value.
156 * @see EVENT_KEY_USB_STATUS
158 #define SYSTEM_EVENT_USB_STATUS "tizen.system.event.usb_status"
161 * @brief Definition for key of SYSTEM_EVENT_USB_STATUS.
163 * @see EVENT_VAL_USB_DISCONNECTED
164 * @see EVENT_VAL_USB_CONNECTED
165 * @see EVENT_VAL_USB_AVAILABLE
167 #define EVENT_KEY_USB_STATUS "usb_status"
170 * @brief Definition for value of EVENT_KEY_USB_STATUS.
173 #define EVENT_VAL_USB_DISCONNECTED "disconnected"
176 * @brief Definition for value of EVENT_KEY_USB_STATUS.
178 * @remarks Connected but not-available.
180 #define EVENT_VAL_USB_CONNECTED "connected"
183 * @brief Definition for value of EVENT_KEY_USB_STATUS.
186 #define EVENT_VAL_USB_AVAILABLE "available"
189 * @brief Definition for system-event of ear-jack : status of ear-jack connection.
191 * @see EVENT_KEY_EARJACK_STATUS
193 #define SYSTEM_EVENT_EARJACK_STATUS "tizen.system.event.earjack_status"
196 * @brief Definition for key of SYSTEM_EVENT_EARJACK_STATUS.
198 * @see EVENT_VAL_EARJACK_DISCONNECTED
199 * @see EVENT_VAL_EARJACK_CONNECTED
201 #define EVENT_KEY_EARJACK_STATUS "earjack_status"
204 * @brief Definition for value of EVENT_KEY_EARJACK_STATUS.
207 #define EVENT_VAL_EARJACK_DISCONNECTED "disconnected"
210 * @brief Definition for value of EVENT_KEY_EARJACK_STATUS.
213 #define EVENT_VAL_EARJACK_CONNECTED "connected"
216 * @brief Definition for system-event of display : state of display.
218 * @privilege %http://tizen.org/privilege/display
219 * @remarks If you want to receive this event, you must declare this privilege.
220 * @see EVENT_KEY_DISPLAY_STATE
222 #define SYSTEM_EVENT_DISPLAY_STATE "tizen.system.event.display_state"
225 * @brief Definition for key of SYSTEM_EVENT_DISPLAY_STATE.
227 * @see EVENT_VAL_DISPLAY_NORMAL
228 * @see EVENT_VAL_DISPLAY_DIM
229 * @see EVENT_VAL_DISPLAY_OFF
231 #define EVENT_KEY_DISPLAY_STATE "display_state"
234 * @brief Definition for value of EVENT_KEY_DISPLAY_STATE.
237 #define EVENT_VAL_DISPLAY_NORMAL "normal"
240 * @brief Definition for value of EVENT_KEY_DISPLAY_STATE.
243 #define EVENT_VAL_DISPLAY_DIM "dim"
246 * @brief Definition for value of EVENT_KEY_DISPLAY_STATE.
249 #define EVENT_VAL_DISPLAY_OFF "off"
252 * @brief Definition for system-event of system : boot completion.
254 * @remarks There is no corresponding key/value.
255 * @remarks You can treat the initial value as "false" before you receive this event.
256 * @remarks If it's already boot-completed state before you regiser event handler, you can receive the event as soon as you register the event handler.
258 #define SYSTEM_EVENT_BOOT_COMPLETED "tizen.system.event.boot_completed"
261 * @brief Definition for system-event of system : shutdown.
263 * @remarks There is no corresponding key/value.
264 * @remarks You can treat the inital value as "false" before you receive this event.
265 * @remarks If it's already shutting-down state before you regiser event handler, you can receive the event as soon as you register the event handler.
267 #define SYSTEM_EVENT_SYSTEM_SHUTDOWN "tizen.system.event.system_shutdown"
270 * @brief Definition for system-event of system : low memory.
272 * @see EVENT_KEY_LOW_MEMORY
274 #define SYSTEM_EVENT_LOW_MEMORY "tizen.system.event.low_memory"
277 * @brief Definition for key of SYSTEM_EVENT_LOW_MEMORY.
279 * @remarks If there is earlier occurrence regarding this event, you will receive the event as soon as you register event handler for this event. You can use this earlier event-data as initial value.
280 * @see EVENT_VAL_MEMORY_NORMAL
281 * @see EVENT_VAL_MEMORY_SOFT_WARNING
282 * @see EVENT_VAL_MEMORY_HARD_WARNING
284 #define EVENT_KEY_LOW_MEMORY "low_memory"
287 * @brief Definition for value of EVENT_KEY_LOW_MEMORY.
290 #define EVENT_VAL_MEMORY_NORMAL "normal"
293 * @brief Definition for value of EVENT_KEY_LOW_MEMORY.
296 #define EVENT_VAL_MEMORY_SOFT_WARNING "soft_warning"
299 * @brief Definition for value of EVENT_KEY_LOW_MEMORY.
302 #define EVENT_VAL_MEMORY_HARD_WARNING "hard_warning"
305 * @brief Definition for system-event of wifi : state of wifi.
307 * @privilege %http://tizen.org/privilege/network.get
308 * @remarks If you want to receive this event, you must declare this privilege.
309 * @see EVENT_KEY_WIFI_STATE
311 #define SYSTEM_EVENT_WIFI_STATE "tizen.system.event.wifi_state"
314 * @brief Definition for key of SYSTEM_EVENT_WIFI_STATE.
316 * @see EVENT_VAL_WIFI_OFF
317 * @see EVENT_VAL_WIFI_ON
318 * @see EVENT_VAL_WIFI_CONNECTED
320 #define EVENT_KEY_WIFI_STATE "wifi_state"
323 * @brief Definition for value of EVENT_KEY_WIFI_STATE.
326 #define EVENT_VAL_WIFI_OFF "off"
329 * @brief Definition for value of EVENT_KEY_WIFI_STATE.
332 #define EVENT_VAL_WIFI_ON "on"
335 * @brief Definition for value of EVENT_KEY_WIFI_STATE.
338 #define EVENT_VAL_WIFI_CONNECTED "connected"
341 * @brief Definition for system-event of bluetooth : status of bluetooth.
343 * @see EVENT_KEY_BT_STATE
344 * @see EVENT_KEY_BT_LE_STATE
345 * @see EVENT_KEY_BT_TRANSFERING_STATE
347 #define SYSTEM_EVENT_BT_STATE "tizen.system.event.bt_state"
350 * @brief Definition for key of SYSTEM_EVENT_BT_STATE.
352 * @see EVENT_VAL_BT_STATE_OFF
353 * @see EVENT_VAL_BT_STATE_ON
355 #define EVENT_KEY_BT_STATE "bt_state"
358 * @brief Definition for value of EVENT_KEY_BT_STATE.
361 #define EVENT_VAL_BT_OFF "off"
364 * @brief Definition for value of EVENT_KEY_BT_STATE.
367 #define EVENT_VAL_BT_ON "on"
370 * @brief Definition for key of SYSTEM_EVENT_BT_STATE.
372 * @see EVENT_VAL_BT_LE_STATE_OFF
373 * @see EVENT_VAL_BT_LE_STATE_ON
375 #define EVENT_KEY_BT_LE_STATE "bt_le_state"
378 * @brief Definition for value of EVENT_KEY_BT_LE_STATE.
381 #define EVENT_VAL_BT_LE_OFF "off"
384 * @brief Definition for value of EVENT_KEY_BT_LE_STATE.
387 #define EVENT_VAL_BT_LE_ON "on"
390 * @brief Definition for key of SYSTEM_EVENT_BT_STATE.
392 * @remarks If it's already transfering state before you register this event, you can't receive the event regarding current transfer but you can receive the following transfers.
393 * @see EVENT_VAL_BT_NON_TRANSFERING
394 * @see EVENT_VAL_BT_TRANSFERING
396 #define EVENT_KEY_BT_TRANSFERING_STATE "bt_transfering_state"
399 * @brief Definition for value of EVENT_KEY_BT_TRANSFERING_STATE.
402 #define EVENT_VAL_BT_NON_TRANSFERING "non_transfering"
405 * @brief Definition for value of EVENT_KEY_BT_TRANSFERING_STATE.
408 #define EVENT_VAL_BT_TRANSFERING "transfering"
411 * @brief Definition for system-event of location : enable state of location.
413 * @see EVENT_KEY_LOCATION_ENABLE_STATE
415 #define SYSTEM_EVENT_LOCATION_ENABLE_STATE "tizen.system.event.location_enable_state"
418 * @brief Definition for key of SYSTEM_EVENT_LOCATION_ENABLE_STATE.
420 * @see EVENT_VAL_LOCATION_DISABLED
421 * @see EVENT_VAL_LOCATION_ENABLED
423 #define EVENT_KEY_LOCATION_ENABLE_STATE "location_enable_state"
426 * @brief Definition for value of EVENT_KEY_LOCATION_ENABLE_STATE.
429 #define EVENT_VAL_LOCATION_DISABLED "disabled"
432 * @brief Definition for value of EVENT_KEY_LOCATION_ENABLE_STATE.
435 #define EVENT_VAL_LOCATION_ENABLED "enabled"
438 * @brief Definition for system-event of location : enable state of gps.
440 * @see EVENT_KEY_GPS_ENABLE_STATE
442 #define SYSTEM_EVENT_GPS_ENABLE_STATE "tizen.system.event.gps_enable_state"
445 * @brief Definition for key of SYSTEM_EVENT_GPS_ENABLE_STATE.
447 * @see EVENT_VAL_GPS_DISABLED
448 * @see EVENT_VAL_GPS_ENABLED
450 #define EVENT_KEY_GPS_ENABLE_STATE "gps_enable_state"
453 * @brief Definition for value of EVENT_KEY_GPS_ENABLE_STATE.
456 #define EVENT_VAL_GPS_DISABLED "disabled"
459 * @brief Definition for value of EVENT_KEY_GPS_ENABLE_STATE.
462 #define EVENT_VAL_GPS_ENABLED "enabled"
465 * @brief Definition for system-event of location : enable state of nps.
467 * @see EVENT_KEY_NPS_ENABLE_STATE
469 #define SYSTEM_EVENT_NPS_ENABLE_STATE "tizen.system.event.nps_enable_state"
472 * @brief Definition for key of SYSTEM_EVENT_NPS_ENABLE_STATE.
474 * @see EVENT_VAL_NPS_DISABLED
475 * @see EVENT_VAL_NPS_ENABLED
477 #define EVENT_KEY_NPS_ENABLE_STATE "nps_enable_state"
480 * @brief Definition for value of EVENT_KEY_NPS_ENABLE_STATE.
483 #define EVENT_VAL_NPS_DISABLED "disabled"
486 * @brief Definition for value of EVENT_KEY_NPS_ENABLE_STATE.
489 #define EVENT_VAL_NPS_ENABLED "enabled"
492 * @brief Definition for system-event of message : incoming msg.
494 * @privilege %http://tizen.org/privilege/message.read
495 * @remarks If you want to receive this event, you must declare this privilege.
496 * @see EVENT_KEY_MSG_TYPE
497 * @see EVENT_KEY_MSG_ID
499 #define SYSTEM_EVENT_INCOMMING_MSG "tizen.system.event.incoming_msg"
502 * @brief Definition for key of SYSTEM_EVENT_INCOMMING_MSG.
505 * @see EVENT_VAL_PUSH
508 #define EVENT_KEY_MSG_TYPE "msg_type"
511 * @brief Definition for value of EVENT_KEY_MSG_TYPE.
514 #define EVENT_VAL_SMS "sms"
517 * @brief Definition for value of EVENT_KEY_MSG_TYPE.
520 #define EVENT_VAL_PUSH "push"
523 * @brief Definition for value of EVENT_KEY_MSG_TYPE.
526 #define EVENT_VAL_CB "cb"
529 * @brief Definition for key of SYSTEM_EVENT_INCOMMING_MSG.
531 * @remarks The value of this key is a string of unsigned int value : new message id.
533 #define EVENT_KEY_MSG_ID "msg_id"
536 * @brief Definition for system-event of setting : time changed.
538 * @remarks There is no corresponding key/value.
539 * @remarks You can use a @a alarm_get_current_time() API for checking new time after receiving this event.
541 #define SYSTEM_EVENT_TIME_CHANGED "tizen.system.event.time_changed"
544 * @brief Definition for system-event of setting : timezone setting.
546 * @see EVENT_KEY_TIME_ZONE
548 #define SYSTEM_EVENT_TIME_ZONE "tizen.system.event.time_zone"
551 * @brief Definition for key of SYSTEM_EVENT_TIME_ZONE.
553 * @remarks The value of this key is timezone value of tz database,
554 * for example, "Asia/Seoul", "America/New_York",
555 * refer to the Time Zone Database of IANA.
557 #define EVENT_KEY_TIME_ZONE "time_zone"
560 * @brief Definition for system-event of setting : hour format.
562 * @see EVENT_KEY_HOUR_FORMAT
564 #define SYSTEM_EVENT_HOUR_FORMAT "tizen.system.event.hour_format"
567 * @brief Definition for key of SYSTEM_EVENT_HOUR_FORMAT.
569 * @see EVENT_VAL_HOURFORMAT_12
570 * @see EVENT_VAL_HOURFORMAT_24
572 #define EVENT_KEY_HOUR_FORMAT "hour_format"
575 * @brief Definition for value of EVENT_KEY_HOUR_FORMAT.
578 #define EVENT_VAL_HOURFORMAT_12 "12"
581 * @brief Definition for value of EVENT_KEY_HOUR_FORMAT.
584 #define EVENT_VAL_HOURFORMAT_24 "24"
587 * @brief Definition for system-event of setting : language setting.
589 * @see EVENT_KEY_LANGUAGE_SET
591 #define SYSTEM_EVENT_LANGUAGE_SET "tizen.system.event.language_set"
594 * @brief Definition for key of SYSTEM_EVENT_LANGUAGE_SET.
596 * @remarks The value of this key is full name of locale, for example,
597 * "ko_KR.UTF8" : in case of Korean language
598 * "en_US.UTF8" : in case of USA language,
599 * refer to linux locale info.
601 #define EVENT_KEY_LANGUAGE_SET "language_set"
604 * @brief Definition for system-event of setting : region format.
606 * @see EVENT_KEY_REGION_FORMAT
608 #define SYSTEM_EVENT_REGION_FORMAT "tizen.system.event.region_format"
611 * @brief Definition for key of SYSTEM_EVENT_REGION_FORMAT.
613 * @remarks The value of this key is full name of locale, for example,
614 * "ko_KR.UTF8" : in case of Korean region format
615 * "en_US.UTF8" : in case of USA region format,
616 * refer to linux locale info.
618 #define EVENT_KEY_REGION_FORMAT "region_format"
621 * @brief Definition for system-event of setting : silent_mode.
623 * @see EVENT_KEY_SILENT_MODE
625 #define SYSTEM_EVENT_SILENT_MODE "tizen.system.event.silent_mode"
628 * @brief Definition for key of SYSTEM_EVENT_SILENT_MODE.
630 * @see EVENT_VAL_SILENTMODE_ON
631 * @see EVENT_VAL_SILENTMODE_OFF
633 #define EVENT_KEY_SILENT_MODE "silent_mode"
636 * @brief Definition for value of EVENT_KEY_SILENT_MODE.
639 #define EVENT_VAL_SILENTMODE_ON "on"
642 * @brief Definition for value of EVENT_KEY_SILENT_MODE.
645 #define EVENT_VAL_SILENTMODE_OFF "off"
648 * @brief Definition for system-event of setting : state of vibration.
650 * @see EVENT_KEY_VIBRATION_STATE
652 #define SYSTEM_EVENT_VIBRATION_STATE "tizen.system.event.vibration_state"
655 * @brief Definition for key of SYSTEM_EVENT_VIBRATION_STATE.
657 * @see EVENT_VAL_VIBRATION_ON
658 * @see EVENT_VAL_VIBRATION_OFF
660 #define EVENT_KEY_VIBRATION_STATE "vibration_state"
663 * @brief Definition for value of EVENT_KEY_VIBRATION_STATE.
666 #define EVENT_VAL_VIBRATION_ON "on"
669 * @brief Definition for value of EVENT_KEY_VIBRATION_STATE.
672 #define EVENT_VAL_VIBRATION_OFF "off"
675 * @brief Definition for system-event of setting : state of screen's auto-rotation.
677 * @see EVENT_KEY_SCREEN_AUTOROTATE_STATE
679 #define SYSTEM_EVENT_SCREEN_AUTOROTATE_STATE "tizen.system.event.screen_autorotate_state"
682 * @brief Definition for key of SYSTEM_EVENT_SCREEN_AUTOROTATE_STATE.
684 * @see EVENT_VAL_SCREEN_AUTOROTATE_ON
685 * @see EVENT_VAL_SCREEN_AUTOROTATE_OFF
687 #define EVENT_KEY_SCREEN_AUTOROTATE_STATE "screen_autorotate_state"
690 * @brief Definition for value of EVENT_KEY_SCREEN_AUTOROTATE_STATE.
693 #define EVENT_VAL_SCREEN_AUTOROTATE_ON "on"
696 * @brief Definition for value of EVENT_KEY_SCREEN_AUTOROTATE_STATE.
699 #define EVENT_VAL_SCREEN_AUTOROTATE_OFF "off"
702 * @brief Definition for system-event of setting : state of mobile data.
704 * @see EVENT_KEY_MOBILE_DATA_STATE
706 #define SYSTEM_EVENT_MOBILE_DATA_STATE "tizen.system.event.mobile_data_state"
709 * @brief Definition for key of SYSTEM_EVENT_MOBILE_DATA_STATE.
711 * @see EVENT_VAL_MOBILE_DATA_OFF
712 * @see EVENT_VAL_MOBILE_DATA_ON
714 #define EVENT_KEY_MOBILE_DATA_STATE "mobile_data_state"
717 * @brief Definition for value of EVENT_KEY_MOBILE_DATA_STATE.
720 #define EVENT_VAL_MOBILE_DATA_OFF "off"
723 * @brief Definition for value of EVENT_KEY_MOBILE_DATA_STATE.
726 #define EVENT_VAL_MOBILE_DATA_ON "on"
729 * @brief Definition for system-event of setting : state of data roaming.
731 * @see EVENT_KEY_DATA_ROAMING_STATE
733 #define SYSTEM_EVENT_DATA_ROAMING_STATE "tizen.system.event.data_roaming_state"
736 * @brief Definition for key of SYSTEM_EVENT_DATA_ROAMING_STATE.
738 * @see EVENT_VAL_DATA_ROAMING_OFF
739 * @see EVENT_VAL_DATA_ROAMING_ON
741 #define EVENT_KEY_DATA_ROAMING_STATE "data_roaming_state"
744 * @brief Definition for value of EVENT_KEY_DATA_ROAMING_STATE.
747 #define EVENT_VAL_DATA_ROAMING_OFF "off"
750 * @brief Definition for value of EVENT_KEY_DATA_ROAMING_STATE.
753 #define EVENT_VAL_DATA_ROAMING_ON "on"
756 * @brief Definition for system-event of setting : font setting.
758 * @see EVENT_KEY_FONT_SET
760 #define SYSTEM_EVENT_FONT_SET "tizen.system.event.font_set"
763 * @brief Definition for key of SYSTEM_EVENT_FONT_SET.
765 * @remarks The value of this key is font name of string type by font-config.
767 #define EVENT_KEY_FONT_SET "font_set"
770 * @brief Adds the event handler for receiving event-data of interested events.
773 * @remarks If you want to add the privileged event, you MUST declare right privilge first. Unless that, this function returns #EVENT_ERROR_PERMISSION_DENIED. The privileged events are commented on remarks of it's definitions.
774 * @param[in] event_name The interested event name
775 * @param[in] callback The event callback called when the event occurs
776 * @param[in] user_data The user data for passing to callback
777 * @param[out] event_handler The event handler
778 * @return 0 on success, otherwise a negative error value
779 * @retval #EVENT_ERROR_NONE Successful
780 * @retval #EVENT_ERROR_INVALID_PARAMETER Invalid parameter
781 * @retval #EVENT_ERROR_PERMISSION_DENIED Permission denied
783 int event_add_event_handler(const char *event_name, event_cb callback, void *user_data,
784 event_handler_h *event_handler);
787 * @brief Removes the registered event handler.
790 * @param[in] event_handler The event handler
791 * @return 0 on success, otherwise a negative error value
792 * @retval #EVENT_ERROR_NONE Successful
793 * @retval #EVENT_ERROR_INVALID_PARAMETER Invalid parameter
795 int event_remove_event_handler(event_handler_h event_handler);
798 * @brief Sends the User-Event to receiver applications.
801 * @remarks The format of User-Event's name MUST be "event.{sender's appid}.{user-defined name}", refer to 'The name-format of User-Event' section, If the event_name is invalid, the function returns #EVENT_ERROR_IO_ERROR.
802 * @param[in] event_name The event's name to send
803 * @param[in] event_data The event's data to send
804 * @return 0 on success, otherwise a negative error value
805 * @retval #EVENT_ERROR_NONE Successful
806 * @retval #EVENT_ERROR_INVALID_PARAMETER Invalid parameter
807 * @retval #EVENT_ERROR_IO_ERROR Sending operation failed
809 int event_publish_app_event(const char *event_name, bundle *event_data);
812 * @brief Sends the User-Event to trusted receiver-applications.
815 * @remarks The application which has same certification with sender can receive the event.
816 * @remarks The format of User-Event's name MUST be "event.{sender's appid}.{user-defined name}", refer to 'The name-format of User-Event' section, If the event_name is invalid, the function returns #EVENT_ERROR_IO_ERROR.
817 * @param[in] event_name The event's name to send
818 * @param[in] event_data The event's data to send
819 * @return 0 on success, otherwise a negative error value
820 * @retval #EVENT_ERROR_NONE Successful
821 * @retval #EVENT_ERROR_INVALID_PARAMETER Invalid parameter
822 * @retval #EVENT_ERROR_IO_ERROR Sending operation failed
824 int event_publish_trusted_app_event(const char *event_name, bundle *event_data);
834 #endif /* __TIZEN_APPFW_EVENT_H__ */