Merge "Add event system api." into tizen
[platform/core/api/application.git] / include / app_event.h
1 /*
2  * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16
17
18 #ifndef __TIZEN_APPFW_EVENT_H__
19 #define __TIZEN_APPFW_EVENT_H__
20
21 #include <bundle.h>
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 /**
28  * @file event.h
29  */
30
31 /**
32  * @addtogroup CAPI_EVENT_MODULE
33  * @{
34  */
35
36
37 /**
38  * @brief Event handle.
39  * @since_tizen 2.4
40  */
41 typedef struct event_handler* event_handler_h;
42
43 /**
44  * @brief Event callback.
45  *
46  * @since_tizen 2.4
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
51  */
52 typedef void (*event_cb)(const char *event_name, bundle *event_data, void *user_data);
53
54 /**
55  * @brief Enumeration for Event Error.
56  * @since_tizen 2.4
57  */
58 typedef enum
59 {
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 */
66 } event_error_e;
67
68 /**
69  * @brief Definition for system-event of battery : charger status.
70  * @since_tizen 2.4
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
73  */
74 #define SYSTEM_EVENT_BATTERY_CHARGER_STATUS "tizen.system.event.battery_charger_status"
75
76 /**
77  * @brief Definition for key of SYSTEM_EVENT_BATTERY_CHARGER_STATUS.
78  * @since_tizen 2.4
79  * @see EVENT_VAL_BATTERY_CHARGER_DISCONNECTED
80  * @see EVENT_VAL_BATTERY_CHARGER_CONNECTED
81  * @see EVENT_VAL_BATTERY_CHARGER_CHARGING
82  */
83 #define EVENT_KEY_BATTERY_CHARGER_STATUS "battery_charger_status"
84
85 /**
86  * @brief Definition for value of EVENT_KEY_BATTERY_CHARGER_STATUS.
87  * @since_tizen 2.4
88  */
89 #define EVENT_VAL_BATTERY_CHARGER_DISCONNECTED "disconnected"
90
91 /**
92  * @brief Definition for value of EVENT_KEY_BATTERY_CHARGER_STATUS.
93  * @since_tizen 2.4
94  * @remarks Connected but not-available.
95  */
96 #define EVENT_VAL_BATTERY_CHARGER_CONNECTED "connected"
97
98 /**
99  * @brief Definition for value of EVENT_KEY_BATTERY_CHARGER_STATUS.
100  * @since_tizen 2.4
101  */
102 #define EVENT_VAL_BATTERY_CHARGER_CHARGING "charging"
103
104 /**
105  * @brief Definition for system-event of battery : level status.
106  * @since_tizen 2.4
107  * @see EVENT_KEY_BATTERY_LEVEL_STATUS
108  */
109 #define SYSTEM_EVENT_BATTERY_LEVEL_STATUS "tizen.system.event.battery_level_status"
110
111 /**
112  * @brief Definition for key of SYSTEM_EVENT_BATTERY_LEVEL_STATUS.
113  * @since_tizen 2.4
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
119  */
120 #define EVENT_KEY_BATTERY_LEVEL_STATUS "battery_level_status"
121
122 /**
123  * @brief Definition for value of EVENT_KEY_BATTERY_LEVEL_STATUS.
124  * @since_tizen 2.4
125  */
126 #define EVENT_VAL_BATTERY_LEVEL_EMPTY "empty"
127
128 /**
129  * @brief Definition for value of EVENT_KEY_BATTERY_LEVEL_STATUS.
130  * @since_tizen 2.4
131  */
132 #define EVENT_VAL_BATTERY_LEVEL_CRITICAL "critical"
133
134 /**
135  * @brief Definition for value of EVENT_KEY_BATTERY_LEVEL_STATUS.
136  * @since_tizen 2.4
137  */
138 #define EVENT_VAL_BATTERY_LEVEL_LOW "low"
139
140 /**
141  * @brief Definition for value of EVENT_KEY_BATTERY_LEVEL_STATUS.
142  * @since_tizen 2.4
143  */
144 #define EVENT_VAL_BATTERY_LEVEL_HIGH "high"
145
146 /**
147  * @brief Definition for value of EVENT_KEY_BATTERY_LEVEL_STATUS.
148  * @since_tizen 2.4
149  */
150 #define EVENT_VAL_BATTERY_LEVEL_FULL "full"
151
152 /**
153  * @brief Definition for system-event of usb : status of usb connection.
154  * @since_tizen 2.4
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
157  */
158 #define SYSTEM_EVENT_USB_STATUS "tizen.system.event.usb_status"
159
160 /**
161  * @brief Definition for key of SYSTEM_EVENT_USB_STATUS.
162  * @since_tizen 2.4
163  * @see EVENT_VAL_USB_DISCONNECTED
164  * @see EVENT_VAL_USB_CONNECTED
165  * @see EVENT_VAL_USB_AVAILABLE
166  */
167 #define EVENT_KEY_USB_STATUS "usb_status"
168
169 /**
170  * @brief Definition for value of EVENT_KEY_USB_STATUS.
171  * @since_tizen 2.4
172  */
173 #define EVENT_VAL_USB_DISCONNECTED "disconnected"
174
175 /**
176  * @brief Definition for value of EVENT_KEY_USB_STATUS.
177  * @since_tizen 2.4
178  * @remarks Connected but not-available.
179  */
180 #define EVENT_VAL_USB_CONNECTED "connected"
181
182 /**
183  * @brief Definition for value of EVENT_KEY_USB_STATUS.
184  * @since_tizen 2.4
185  */
186 #define EVENT_VAL_USB_AVAILABLE "available"
187
188 /**
189  * @brief Definition for system-event of ear-jack : status of ear-jack connection.
190  * @since_tizen 2.4
191  * @see EVENT_KEY_EARJACK_STATUS
192  */
193 #define SYSTEM_EVENT_EARJACK_STATUS "tizen.system.event.earjack_status"
194
195 /**
196  * @brief Definition for key of SYSTEM_EVENT_EARJACK_STATUS.
197  * @since_tizen 2.4
198  * @see EVENT_VAL_EARJACK_DISCONNECTED
199  * @see EVENT_VAL_EARJACK_CONNECTED
200  */
201 #define EVENT_KEY_EARJACK_STATUS "earjack_status"
202
203 /**
204  * @brief Definition for value of EVENT_KEY_EARJACK_STATUS.
205  * @since_tizen 2.4
206  */
207 #define EVENT_VAL_EARJACK_DISCONNECTED "disconnected"
208
209 /**
210  * @brief Definition for value of EVENT_KEY_EARJACK_STATUS.
211  * @since_tizen 2.4
212  */
213 #define EVENT_VAL_EARJACK_CONNECTED "connected"
214
215 /**
216  * @brief Definition for system-event of display : state of display.
217  * @since_tizen 2.4
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
221  */
222 #define SYSTEM_EVENT_DISPLAY_STATE "tizen.system.event.display_state"
223
224 /**
225  * @brief Definition for key of SYSTEM_EVENT_DISPLAY_STATE.
226  * @since_tizen 2.4
227  * @see EVENT_VAL_DISPLAY_NORMAL
228  * @see EVENT_VAL_DISPLAY_DIM
229  * @see EVENT_VAL_DISPLAY_OFF
230  */
231 #define EVENT_KEY_DISPLAY_STATE "display_state"
232
233 /**
234  * @brief Definition for value of EVENT_KEY_DISPLAY_STATE.
235  * @since_tizen 2.4
236  */
237 #define EVENT_VAL_DISPLAY_NORMAL "normal"
238
239 /**
240  * @brief Definition for value of EVENT_KEY_DISPLAY_STATE.
241  * @since_tizen 2.4
242  */
243 #define EVENT_VAL_DISPLAY_DIM "dim"
244
245 /**
246  * @brief Definition for value of EVENT_KEY_DISPLAY_STATE.
247  * @since_tizen 2.4
248  */
249 #define EVENT_VAL_DISPLAY_OFF "off"
250
251 /**
252  * @brief Definition for system-event of system : boot completion.
253  * @since_tizen 2.4
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.
257  */
258 #define SYSTEM_EVENT_BOOT_COMPLETED "tizen.system.event.boot_completed"
259
260 /**
261  * @brief Definition for system-event of system : shutdown.
262  * @since_tizen 2.4
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.
266 */
267 #define SYSTEM_EVENT_SYSTEM_SHUTDOWN "tizen.system.event.system_shutdown"
268
269 /**
270  * @brief Definition for system-event of system : low memory.
271  * @since_tizen 2.4
272  * @see EVENT_KEY_LOW_MEMORY
273  */
274 #define SYSTEM_EVENT_LOW_MEMORY "tizen.system.event.low_memory"
275
276 /**
277  * @brief Definition for key of SYSTEM_EVENT_LOW_MEMORY.
278  * @since_tizen 2.4
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
283  */
284 #define EVENT_KEY_LOW_MEMORY "low_memory"
285
286 /**
287  * @brief Definition for value of EVENT_KEY_LOW_MEMORY.
288  * @since_tizen 2.4
289  */
290 #define EVENT_VAL_MEMORY_NORMAL "normal"
291
292 /**
293  * @brief Definition for value of EVENT_KEY_LOW_MEMORY.
294  * @since_tizen 2.4
295  */
296 #define EVENT_VAL_MEMORY_SOFT_WARNING "soft_warning"
297
298 /**
299  * @brief Definition for value of EVENT_KEY_LOW_MEMORY.
300  * @since_tizen 2.4
301  */
302 #define EVENT_VAL_MEMORY_HARD_WARNING "hard_warning"
303
304 /**
305  * @brief Definition for system-event of wifi : state of wifi.
306  * @since_tizen 2.4
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
310  */
311 #define SYSTEM_EVENT_WIFI_STATE "tizen.system.event.wifi_state"
312
313 /**
314  * @brief Definition for key of SYSTEM_EVENT_WIFI_STATE.
315  * @since_tizen 2.4
316  * @see EVENT_VAL_WIFI_OFF
317  * @see EVENT_VAL_WIFI_ON
318  * @see EVENT_VAL_WIFI_CONNECTED
319  */
320 #define EVENT_KEY_WIFI_STATE "wifi_state"
321
322 /**
323  * @brief Definition for value of EVENT_KEY_WIFI_STATE.
324  * @since_tizen 2.4
325  */
326 #define EVENT_VAL_WIFI_OFF "off"
327
328 /**
329  * @brief Definition for value of EVENT_KEY_WIFI_STATE.
330  * @since_tizen 2.4
331  */
332 #define EVENT_VAL_WIFI_ON "on"
333
334 /**
335  * @brief Definition for value of EVENT_KEY_WIFI_STATE.
336  * @since_tizen 2.4
337  */
338 #define EVENT_VAL_WIFI_CONNECTED "connected"
339
340 /**
341  * @brief Definition for system-event of bluetooth : status of bluetooth.
342  * @since_tizen 2.4
343  * @see EVENT_KEY_BT_STATE
344  * @see EVENT_KEY_BT_LE_STATE
345  * @see EVENT_KEY_BT_TRANSFERING_STATE
346  */
347 #define SYSTEM_EVENT_BT_STATE "tizen.system.event.bt_state"
348
349 /**
350  * @brief Definition for key of SYSTEM_EVENT_BT_STATE.
351  * @since_tizen 2.4
352  * @see EVENT_VAL_BT_STATE_OFF
353  * @see EVENT_VAL_BT_STATE_ON
354  */
355 #define EVENT_KEY_BT_STATE "bt_state"
356
357 /**
358  * @brief Definition for value of EVENT_KEY_BT_STATE.
359  * @since_tizen 2.4
360  */
361 #define EVENT_VAL_BT_OFF "off"
362
363 /**
364  * @brief Definition for value of EVENT_KEY_BT_STATE.
365  * @since_tizen 2.4
366  */
367 #define EVENT_VAL_BT_ON "on"
368
369 /**
370  * @brief Definition for key of SYSTEM_EVENT_BT_STATE.
371  * @since_tizen 2.4
372  * @see EVENT_VAL_BT_LE_STATE_OFF
373  * @see EVENT_VAL_BT_LE_STATE_ON
374  */
375 #define EVENT_KEY_BT_LE_STATE "bt_le_state"
376
377 /**
378  * @brief Definition for value of EVENT_KEY_BT_LE_STATE.
379  * @since_tizen 2.4
380  */
381 #define EVENT_VAL_BT_LE_OFF "off"
382
383 /**
384  * @brief Definition for value of EVENT_KEY_BT_LE_STATE.
385  * @since_tizen 2.4
386  */
387 #define EVENT_VAL_BT_LE_ON "on"
388
389 /**
390  * @brief Definition for key of SYSTEM_EVENT_BT_STATE.
391  * @since_tizen 2.4
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
395  */
396 #define EVENT_KEY_BT_TRANSFERING_STATE "bt_transfering_state"
397
398 /**
399  * @brief Definition for value of EVENT_KEY_BT_TRANSFERING_STATE.
400  * @since_tizen 2.4
401  */
402 #define EVENT_VAL_BT_NON_TRANSFERING "non_transfering"
403
404 /**
405  * @brief Definition for value of EVENT_KEY_BT_TRANSFERING_STATE.
406  * @since_tizen 2.4
407  */
408 #define EVENT_VAL_BT_TRANSFERING "transfering"
409
410 /**
411  * @brief Definition for system-event of location : enable state of location.
412  * @since_tizen 2.4
413  * @see EVENT_KEY_LOCATION_ENABLE_STATE
414  */
415 #define SYSTEM_EVENT_LOCATION_ENABLE_STATE "tizen.system.event.location_enable_state"
416
417 /**
418  * @brief Definition for key of SYSTEM_EVENT_LOCATION_ENABLE_STATE.
419  * @since_tizen 2.4
420  * @see EVENT_VAL_LOCATION_DISABLED
421  * @see EVENT_VAL_LOCATION_ENABLED
422  */
423 #define EVENT_KEY_LOCATION_ENABLE_STATE "location_enable_state"
424
425 /**
426  * @brief Definition for value of EVENT_KEY_LOCATION_ENABLE_STATE.
427  * @since_tizen 2.4
428  */
429 #define EVENT_VAL_LOCATION_DISABLED "disabled"
430
431 /**
432  * @brief Definition for value of EVENT_KEY_LOCATION_ENABLE_STATE.
433  * @since_tizen 2.4
434  */
435 #define EVENT_VAL_LOCATION_ENABLED "enabled"
436
437 /**
438  * @brief Definition for system-event of location : enable state of gps.
439  * @since_tizen 2.4
440  * @see EVENT_KEY_GPS_ENABLE_STATE
441  */
442 #define SYSTEM_EVENT_GPS_ENABLE_STATE "tizen.system.event.gps_enable_state"
443
444 /**
445  * @brief Definition for key of SYSTEM_EVENT_GPS_ENABLE_STATE.
446  * @since_tizen 2.4
447  * @see EVENT_VAL_GPS_DISABLED
448  * @see EVENT_VAL_GPS_ENABLED
449  */
450 #define EVENT_KEY_GPS_ENABLE_STATE "gps_enable_state"
451
452 /**
453  * @brief Definition for value of EVENT_KEY_GPS_ENABLE_STATE.
454  * @since_tizen 2.4
455  */
456 #define EVENT_VAL_GPS_DISABLED "disabled"
457
458 /**
459  * @brief Definition for value of EVENT_KEY_GPS_ENABLE_STATE.
460  * @since_tizen 2.4
461  */
462 #define EVENT_VAL_GPS_ENABLED "enabled"
463
464 /**
465  * @brief Definition for system-event of location : enable state of nps.
466  * @since_tizen 2.4
467  * @see EVENT_KEY_NPS_ENABLE_STATE
468  */
469 #define SYSTEM_EVENT_NPS_ENABLE_STATE "tizen.system.event.nps_enable_state"
470
471 /**
472  * @brief Definition for key of SYSTEM_EVENT_NPS_ENABLE_STATE.
473  * @since_tizen 2.4
474  * @see EVENT_VAL_NPS_DISABLED
475  * @see EVENT_VAL_NPS_ENABLED
476  */
477 #define EVENT_KEY_NPS_ENABLE_STATE "nps_enable_state"
478
479 /**
480  * @brief Definition for value of EVENT_KEY_NPS_ENABLE_STATE.
481  * @since_tizen 2.4
482  */
483 #define EVENT_VAL_NPS_DISABLED "disabled"
484
485 /**
486  * @brief Definition for value of EVENT_KEY_NPS_ENABLE_STATE.
487  * @since_tizen 2.4
488  */
489 #define EVENT_VAL_NPS_ENABLED "enabled"
490
491 /**
492  * @brief Definition for system-event of message : incoming msg.
493  * @since_tizen 2.4
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
498  */
499 #define SYSTEM_EVENT_INCOMMING_MSG "tizen.system.event.incoming_msg"
500
501 /**
502  * @brief Definition for key of SYSTEM_EVENT_INCOMMING_MSG.
503  * @since_tizen 2.4
504  * @see EVENT_VAL_SMS
505  * @see EVENT_VAL_PUSH
506  * @see EVENT_VAL_CB
507  */
508 #define EVENT_KEY_MSG_TYPE "msg_type"
509
510 /**
511  * @brief Definition for value of EVENT_KEY_MSG_TYPE.
512  * @since_tizen 2.4
513  */
514 #define EVENT_VAL_SMS "sms"
515
516 /**
517  * @brief Definition for value of EVENT_KEY_MSG_TYPE.
518  * @since_tizen 2.4
519  */
520 #define EVENT_VAL_PUSH "push"
521
522 /**
523  * @brief Definition for value of EVENT_KEY_MSG_TYPE.
524  * @since_tizen 2.4
525  */
526 #define EVENT_VAL_CB "cb"
527
528 /**
529  * @brief Definition for key of SYSTEM_EVENT_INCOMMING_MSG.
530  * @since_tizen 2.4
531  * @remarks The value of this key is a string of unsigned int value : new message id.
532  */
533 #define EVENT_KEY_MSG_ID "msg_id"
534
535 /**
536  * @brief Definition for system-event of setting : time changed.
537  * @since_tizen 2.4
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.
540  */
541 #define SYSTEM_EVENT_TIME_CHANGED "tizen.system.event.time_changed"
542
543 /**
544  * @brief Definition for system-event of setting : timezone setting.
545  * @since_tizen 2.4
546  * @see EVENT_KEY_TIME_ZONE
547  */
548 #define SYSTEM_EVENT_TIME_ZONE "tizen.system.event.time_zone"
549
550 /**
551  * @brief Definition for key of SYSTEM_EVENT_TIME_ZONE.
552  * @since_tizen 2.4
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.
556  */
557 #define EVENT_KEY_TIME_ZONE "time_zone"
558
559 /**
560  * @brief Definition for system-event of setting : hour format.
561  * @since_tizen 2.4
562  * @see EVENT_KEY_HOUR_FORMAT
563  */
564 #define SYSTEM_EVENT_HOUR_FORMAT "tizen.system.event.hour_format"
565
566 /**
567  * @brief Definition for key of SYSTEM_EVENT_HOUR_FORMAT.
568  * @since_tizen 2.4
569  * @see EVENT_VAL_HOURFORMAT_12
570  * @see EVENT_VAL_HOURFORMAT_24
571  */
572 #define EVENT_KEY_HOUR_FORMAT "hour_format"
573
574 /**
575  * @brief Definition for value of EVENT_KEY_HOUR_FORMAT.
576  * @since_tizen 2.4
577  */
578 #define EVENT_VAL_HOURFORMAT_12 "12"
579
580 /**
581  * @brief Definition for value of EVENT_KEY_HOUR_FORMAT.
582  * @since_tizen 2.4
583  */
584 #define EVENT_VAL_HOURFORMAT_24 "24"
585
586 /**
587  * @brief Definition for system-event of setting : language setting.
588  * @since_tizen 2.4
589  * @see EVENT_KEY_LANGUAGE_SET
590  */
591 #define SYSTEM_EVENT_LANGUAGE_SET "tizen.system.event.language_set"
592
593 /**
594  * @brief Definition for key of SYSTEM_EVENT_LANGUAGE_SET.
595  * @since_tizen 2.4
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.
600  */
601 #define EVENT_KEY_LANGUAGE_SET "language_set"
602
603 /**
604  * @brief Definition for system-event of setting : region format.
605  * @since_tizen 2.4
606  * @see EVENT_KEY_REGION_FORMAT
607  */
608 #define SYSTEM_EVENT_REGION_FORMAT "tizen.system.event.region_format"
609
610 /**
611  * @brief Definition for key of SYSTEM_EVENT_REGION_FORMAT.
612  * @since_tizen 2.4
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.
617  */
618 #define EVENT_KEY_REGION_FORMAT "region_format"
619
620 /**
621  * @brief Definition for system-event of setting : silent_mode.
622  * @since_tizen 2.4
623  * @see EVENT_KEY_SILENT_MODE
624  */
625 #define SYSTEM_EVENT_SILENT_MODE "tizen.system.event.silent_mode"
626
627 /**
628  * @brief Definition for key of SYSTEM_EVENT_SILENT_MODE.
629  * @since_tizen 2.4
630  * @see EVENT_VAL_SILENTMODE_ON
631  * @see EVENT_VAL_SILENTMODE_OFF
632  */
633 #define EVENT_KEY_SILENT_MODE "silent_mode"
634
635 /**
636  * @brief Definition for value of EVENT_KEY_SILENT_MODE.
637  * @since_tizen 2.4
638  */
639 #define EVENT_VAL_SILENTMODE_ON "on"
640
641 /**
642  * @brief Definition for value of EVENT_KEY_SILENT_MODE.
643  * @since_tizen 2.4
644  */
645 #define EVENT_VAL_SILENTMODE_OFF "off"
646
647 /**
648  * @brief Definition for system-event of setting : state of vibration.
649  * @since_tizen 2.4
650  * @see EVENT_KEY_VIBRATION_STATE
651  */
652 #define SYSTEM_EVENT_VIBRATION_STATE "tizen.system.event.vibration_state"
653
654 /**
655  * @brief Definition for key of SYSTEM_EVENT_VIBRATION_STATE.
656  * @since_tizen 2.4
657  * @see EVENT_VAL_VIBRATION_ON
658  * @see EVENT_VAL_VIBRATION_OFF
659  */
660 #define EVENT_KEY_VIBRATION_STATE "vibration_state"
661
662 /**
663  * @brief Definition for value of EVENT_KEY_VIBRATION_STATE.
664  * @since_tizen 2.4
665  */
666 #define EVENT_VAL_VIBRATION_ON "on"
667
668 /**
669  * @brief Definition for value of EVENT_KEY_VIBRATION_STATE.
670  * @since_tizen 2.4
671  */
672 #define EVENT_VAL_VIBRATION_OFF "off"
673
674 /**
675  * @brief Definition for system-event of setting : state of screen's auto-rotation.
676  * @since_tizen 2.4
677  * @see EVENT_KEY_SCREEN_AUTOROTATE_STATE
678  */
679 #define SYSTEM_EVENT_SCREEN_AUTOROTATE_STATE "tizen.system.event.screen_autorotate_state"
680
681 /**
682  * @brief Definition for key of SYSTEM_EVENT_SCREEN_AUTOROTATE_STATE.
683  * @since_tizen 2.4
684  * @see EVENT_VAL_SCREEN_AUTOROTATE_ON
685  * @see EVENT_VAL_SCREEN_AUTOROTATE_OFF
686  */
687 #define EVENT_KEY_SCREEN_AUTOROTATE_STATE "screen_autorotate_state"
688
689 /**
690  * @brief Definition for value of EVENT_KEY_SCREEN_AUTOROTATE_STATE.
691  * @since_tizen 2.4
692  */
693 #define EVENT_VAL_SCREEN_AUTOROTATE_ON "on"
694
695 /**
696  * @brief Definition for value of EVENT_KEY_SCREEN_AUTOROTATE_STATE.
697  * @since_tizen 2.4
698  */
699 #define EVENT_VAL_SCREEN_AUTOROTATE_OFF "off"
700
701 /**
702  * @brief Definition for system-event of setting : state of mobile data.
703  * @since_tizen 2.4
704  * @see EVENT_KEY_MOBILE_DATA_STATE
705  */
706 #define SYSTEM_EVENT_MOBILE_DATA_STATE "tizen.system.event.mobile_data_state"
707
708 /**
709  * @brief Definition for key of SYSTEM_EVENT_MOBILE_DATA_STATE.
710  * @since_tizen 2.4
711  * @see EVENT_VAL_MOBILE_DATA_OFF
712  * @see EVENT_VAL_MOBILE_DATA_ON
713  */
714 #define EVENT_KEY_MOBILE_DATA_STATE "mobile_data_state"
715
716 /**
717  * @brief Definition for value of EVENT_KEY_MOBILE_DATA_STATE.
718  * @since_tizen 2.4
719  */
720 #define EVENT_VAL_MOBILE_DATA_OFF "off"
721
722 /**
723  * @brief Definition for value of EVENT_KEY_MOBILE_DATA_STATE.
724  * @since_tizen 2.4
725  */
726 #define EVENT_VAL_MOBILE_DATA_ON "on"
727
728 /**
729  * @brief Definition for system-event of setting : state of data roaming.
730  * @since_tizen 2.4
731  * @see EVENT_KEY_DATA_ROAMING_STATE
732  */
733 #define SYSTEM_EVENT_DATA_ROAMING_STATE "tizen.system.event.data_roaming_state"
734
735 /**
736  * @brief Definition for key of SYSTEM_EVENT_DATA_ROAMING_STATE.
737  * @since_tizen 2.4
738  * @see EVENT_VAL_DATA_ROAMING_OFF
739  * @see EVENT_VAL_DATA_ROAMING_ON
740  */
741 #define EVENT_KEY_DATA_ROAMING_STATE "data_roaming_state"
742
743 /**
744  * @brief Definition for value of EVENT_KEY_DATA_ROAMING_STATE.
745  * @since_tizen 2.4
746  */
747 #define EVENT_VAL_DATA_ROAMING_OFF "off"
748
749 /**
750  * @brief Definition for value of EVENT_KEY_DATA_ROAMING_STATE.
751  * @since_tizen 2.4
752  */
753 #define EVENT_VAL_DATA_ROAMING_ON "on"
754
755 /**
756  * @brief Definition for system-event of setting : font setting.
757  * @since_tizen 2.4
758  * @see EVENT_KEY_FONT_SET
759  */
760 #define SYSTEM_EVENT_FONT_SET "tizen.system.event.font_set"
761
762 /**
763  * @brief Definition for key of SYSTEM_EVENT_FONT_SET.
764  * @since_tizen 2.4
765  * @remarks The value of this key is font name of string type by font-config.
766  */
767 #define EVENT_KEY_FONT_SET "font_set"
768
769 /**
770  * @brief Adds the event handler for receiving event-data of interested events.
771  *
772  * @since_tizen 2.4
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
782  */
783 int event_add_event_handler(const char *event_name, event_cb callback, void *user_data,
784         event_handler_h *event_handler);
785
786 /**
787  * @brief Removes the registered event handler.
788  *
789  * @since_tizen 2.4
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
794  */
795 int event_remove_event_handler(event_handler_h event_handler);
796
797 /**
798  * @brief Sends the User-Event to receiver applications.
799  *
800  * @since_tizen 2.4
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
808  */
809 int event_publish_app_event(const char *event_name, bundle *event_data);
810
811 /**
812  * @brief Sends the User-Event to trusted receiver-applications.
813  *
814  * @since_tizen 2.4
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
823  */
824 int event_publish_trusted_app_event(const char *event_name, bundle *event_data);
825
826 /**
827  * @}
828  */
829
830 #ifdef __cplusplus
831 }
832 #endif
833
834 #endif /* __TIZEN_APPFW_EVENT_H__ */