merge tizen 2.4
[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  * @see EVENT_VAL_BATTERY_CHARGER_DISCHARGING
83  */
84 #define EVENT_KEY_BATTERY_CHARGER_STATUS "battery_charger_status"
85
86 /**
87  * @brief Definition for value of EVENT_KEY_BATTERY_CHARGER_STATUS.
88  * @since_tizen 2.4
89  * @remarks charger disconnected
90  */
91 #define EVENT_VAL_BATTERY_CHARGER_DISCONNECTED "disconnected"
92
93 /**
94  * @brief Definition for value of EVENT_KEY_BATTERY_CHARGER_STATUS.
95  * @since_tizen 2.4
96  * @remarks charger connected
97  */
98 #define EVENT_VAL_BATTERY_CHARGER_CONNECTED "connected"
99
100 /**
101  * @brief Definition for value of EVENT_KEY_BATTERY_CHARGER_STATUS.
102  * @since_tizen 2.4
103  * @remarks charging is enabled
104  */
105 #define EVENT_VAL_BATTERY_CHARGER_CHARGING "charging"
106
107 /**
108  * @brief Definition for value of EVENT_KEY_BATTERY_CHARGER_STATUS.
109  * @since_tizen 2.4
110  * @remarks charging is disabled
111  */
112 #define EVENT_VAL_BATTERY_CHARGER_DISCHARGING "discharging"
113
114 /**
115  * @brief Definition for system-event of battery : level status.
116  * @since_tizen 2.4
117  * @see EVENT_KEY_BATTERY_LEVEL_STATUS
118  */
119 #define SYSTEM_EVENT_BATTERY_LEVEL_STATUS "tizen.system.event.battery_level_status"
120
121 /**
122  * @brief Definition for key of SYSTEM_EVENT_BATTERY_LEVEL_STATUS.
123  * @since_tizen 2.4
124  * @see EVENT_VAL_BATTERY_LEVEL_EMPTY
125  * @see EVENT_VAL_BATTERY_LEVEL_CRITICAL
126  * @see EVENT_VAL_BATTERY_LEVEL_LOW
127  * @see EVENT_VAL_BATTERY_LEVEL_HIGH
128  * @see EVENT_VAL_BATTERY_LEVEL_FULL
129  */
130 #define EVENT_KEY_BATTERY_LEVEL_STATUS "battery_level_status"
131
132 /**
133  * @brief Definition for value of EVENT_KEY_BATTERY_LEVEL_STATUS.
134  * @since_tizen 2.4
135  */
136 #define EVENT_VAL_BATTERY_LEVEL_EMPTY "empty"
137
138 /**
139  * @brief Definition for value of EVENT_KEY_BATTERY_LEVEL_STATUS.
140  * @since_tizen 2.4
141  */
142 #define EVENT_VAL_BATTERY_LEVEL_CRITICAL "critical"
143
144 /**
145  * @brief Definition for value of EVENT_KEY_BATTERY_LEVEL_STATUS.
146  * @since_tizen 2.4
147  */
148 #define EVENT_VAL_BATTERY_LEVEL_LOW "low"
149
150 /**
151  * @brief Definition for value of EVENT_KEY_BATTERY_LEVEL_STATUS.
152  * @since_tizen 2.4
153  */
154 #define EVENT_VAL_BATTERY_LEVEL_HIGH "high"
155
156 /**
157  * @brief Definition for value of EVENT_KEY_BATTERY_LEVEL_STATUS.
158  * @since_tizen 2.4
159  */
160 #define EVENT_VAL_BATTERY_LEVEL_FULL "full"
161
162 /**
163  * @brief Definition for system-event of usb : status of usb connection.
164  * @since_tizen 2.4
165  * @see EVENT_KEY_USB_STATUS
166  */
167 #define SYSTEM_EVENT_USB_STATUS "tizen.system.event.usb_status"
168
169 /**
170  * @brief Definition for key of SYSTEM_EVENT_USB_STATUS.
171  * @since_tizen 2.4
172  * @see EVENT_VAL_USB_DISCONNECTED
173  * @see EVENT_VAL_USB_CONNECTED
174  * @see EVENT_VAL_USB_AVAILABLE
175  */
176 #define EVENT_KEY_USB_STATUS "usb_status"
177
178 /**
179  * @brief Definition for value of EVENT_KEY_USB_STATUS.
180  * @since_tizen 2.4
181  */
182 #define EVENT_VAL_USB_DISCONNECTED "disconnected"
183
184 /**
185  * @brief Definition for value of EVENT_KEY_USB_STATUS.
186  * @since_tizen 2.4
187  * @remarks Connected but not-available.
188  */
189 #define EVENT_VAL_USB_CONNECTED "connected"
190
191 /**
192  * @brief Definition for value of EVENT_KEY_USB_STATUS.
193  * @since_tizen 2.4
194  */
195 #define EVENT_VAL_USB_AVAILABLE "available"
196
197 /**
198  * @brief Definition for system-event of ear-jack : status of ear-jack connection.
199  * @since_tizen 2.4
200  * @see EVENT_KEY_EARJACK_STATUS
201  */
202 #define SYSTEM_EVENT_EARJACK_STATUS "tizen.system.event.earjack_status"
203
204 /**
205  * @brief Definition for key of SYSTEM_EVENT_EARJACK_STATUS.
206  * @since_tizen 2.4
207  * @see EVENT_VAL_EARJACK_DISCONNECTED
208  * @see EVENT_VAL_EARJACK_CONNECTED
209  */
210 #define EVENT_KEY_EARJACK_STATUS "earjack_status"
211
212 /**
213  * @brief Definition for value of EVENT_KEY_EARJACK_STATUS.
214  * @since_tizen 2.4
215  */
216 #define EVENT_VAL_EARJACK_DISCONNECTED "disconnected"
217
218 /**
219  * @brief Definition for value of EVENT_KEY_EARJACK_STATUS.
220  * @since_tizen 2.4
221  */
222 #define EVENT_VAL_EARJACK_CONNECTED "connected"
223
224 /**
225  * @brief Definition for system-event of display : state of display.
226  * @since_tizen 2.4
227  * @privilege %http://tizen.org/privilege/display
228  * @remarks If you want to receive this event, you must declare this privilege.
229  * @see EVENT_KEY_DISPLAY_STATE
230  */
231 #define SYSTEM_EVENT_DISPLAY_STATE "tizen.system.event.display_state"
232
233 /**
234  * @brief Definition for key of SYSTEM_EVENT_DISPLAY_STATE.
235  * @since_tizen 2.4
236  * @see EVENT_VAL_DISPLAY_NORMAL
237  * @see EVENT_VAL_DISPLAY_DIM
238  * @see EVENT_VAL_DISPLAY_OFF
239  */
240 #define EVENT_KEY_DISPLAY_STATE "display_state"
241
242 /**
243  * @brief Definition for value of EVENT_KEY_DISPLAY_STATE.
244  * @since_tizen 2.4
245  */
246 #define EVENT_VAL_DISPLAY_NORMAL "normal"
247
248 /**
249  * @brief Definition for value of EVENT_KEY_DISPLAY_STATE.
250  * @since_tizen 2.4
251  */
252 #define EVENT_VAL_DISPLAY_DIM "dim"
253
254 /**
255  * @brief Definition for value of EVENT_KEY_DISPLAY_STATE.
256  * @since_tizen 2.4
257  */
258 #define EVENT_VAL_DISPLAY_OFF "off"
259
260 /**
261  * @brief Definition for system-event of system : boot completion.
262  * @since_tizen 2.4
263  * @remarks There is no corresponding key/value.
264  * @remarks You can treat the initial value as "false" before you receive this event.
265  * @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.
266  */
267 #define SYSTEM_EVENT_BOOT_COMPLETED "tizen.system.event.boot_completed"
268
269 /**
270  * @brief Definition for system-event of system : shutdown.
271  * @since_tizen 2.4
272  * @remarks There is no corresponding key/value.
273  * @remarks You can treat the inital value as "false" before you receive this event.
274  * @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.
275 */
276 #define SYSTEM_EVENT_SYSTEM_SHUTDOWN "tizen.system.event.system_shutdown"
277
278 /**
279  * @brief Definition for system-event of system : low memory.
280  * @since_tizen 2.4
281  * @see EVENT_KEY_LOW_MEMORY
282  */
283 #define SYSTEM_EVENT_LOW_MEMORY "tizen.system.event.low_memory"
284
285 /**
286  * @brief Definition for key of SYSTEM_EVENT_LOW_MEMORY.
287  * @since_tizen 2.4
288  * @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.
289  * @see EVENT_VAL_MEMORY_NORMAL
290  * @see EVENT_VAL_MEMORY_SOFT_WARNING
291  * @see EVENT_VAL_MEMORY_HARD_WARNING
292  */
293 #define EVENT_KEY_LOW_MEMORY "low_memory"
294
295 /**
296  * @brief Definition for value of EVENT_KEY_LOW_MEMORY.
297  * @since_tizen 2.4
298  */
299 #define EVENT_VAL_MEMORY_NORMAL "normal"
300
301 /**
302  * @brief Definition for value of EVENT_KEY_LOW_MEMORY.
303  * @since_tizen 2.4
304  */
305 #define EVENT_VAL_MEMORY_SOFT_WARNING "soft_warning"
306
307 /**
308  * @brief Definition for value of EVENT_KEY_LOW_MEMORY.
309  * @since_tizen 2.4
310  */
311 #define EVENT_VAL_MEMORY_HARD_WARNING "hard_warning"
312
313 /**
314  * @brief Definition for system-event of wifi : state of wifi.
315  * @since_tizen 2.4
316  * @privilege %http://tizen.org/privilege/network.get
317  * @remarks If you want to receive this event, you must declare this privilege.
318  * @see EVENT_KEY_WIFI_STATE
319  */
320 #define SYSTEM_EVENT_WIFI_STATE "tizen.system.event.wifi_state"
321
322 /**
323  * @brief Definition for key of SYSTEM_EVENT_WIFI_STATE.
324  * @since_tizen 2.4
325  * @see EVENT_VAL_WIFI_OFF
326  * @see EVENT_VAL_WIFI_ON
327  * @see EVENT_VAL_WIFI_CONNECTED
328  */
329 #define EVENT_KEY_WIFI_STATE "wifi_state"
330
331 /**
332  * @brief Definition for value of EVENT_KEY_WIFI_STATE.
333  * @since_tizen 2.4
334  */
335 #define EVENT_VAL_WIFI_OFF "off"
336
337 /**
338  * @brief Definition for value of EVENT_KEY_WIFI_STATE.
339  * @since_tizen 2.4
340  */
341 #define EVENT_VAL_WIFI_ON "on"
342
343 /**
344  * @brief Definition for value of EVENT_KEY_WIFI_STATE.
345  * @since_tizen 2.4
346  */
347 #define EVENT_VAL_WIFI_CONNECTED "connected"
348
349 /**
350  * @brief Definition for system-event of bluetooth : status of bluetooth.
351  * @since_tizen 2.4
352  * @see EVENT_KEY_BT_STATE
353  * @see EVENT_KEY_BT_LE_STATE
354  * @see EVENT_KEY_BT_TRANSFERING_STATE
355  */
356 #define SYSTEM_EVENT_BT_STATE "tizen.system.event.bt_state"
357
358 /**
359  * @brief Definition for key of SYSTEM_EVENT_BT_STATE.
360  * @since_tizen 2.4
361  * @see EVENT_VAL_BT_STATE_OFF
362  * @see EVENT_VAL_BT_STATE_ON
363  */
364 #define EVENT_KEY_BT_STATE "bt_state"
365
366 /**
367  * @brief Definition for value of EVENT_KEY_BT_STATE.
368  * @since_tizen 2.4
369  */
370 #define EVENT_VAL_BT_OFF "off"
371
372 /**
373  * @brief Definition for value of EVENT_KEY_BT_STATE.
374  * @since_tizen 2.4
375  */
376 #define EVENT_VAL_BT_ON "on"
377
378 /**
379  * @brief Definition for key of SYSTEM_EVENT_BT_STATE.
380  * @since_tizen 2.4
381  * @see EVENT_VAL_BT_LE_STATE_OFF
382  * @see EVENT_VAL_BT_LE_STATE_ON
383  */
384 #define EVENT_KEY_BT_LE_STATE "bt_le_state"
385
386 /**
387  * @brief Definition for value of EVENT_KEY_BT_LE_STATE.
388  * @since_tizen 2.4
389  */
390 #define EVENT_VAL_BT_LE_OFF "off"
391
392 /**
393  * @brief Definition for value of EVENT_KEY_BT_LE_STATE.
394  * @since_tizen 2.4
395  */
396 #define EVENT_VAL_BT_LE_ON "on"
397
398 /**
399  * @brief Definition for key of SYSTEM_EVENT_BT_STATE.
400  * @since_tizen 2.4
401  * @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.
402  * @see EVENT_VAL_BT_NON_TRANSFERING
403  * @see EVENT_VAL_BT_TRANSFERING
404  */
405 #define EVENT_KEY_BT_TRANSFERING_STATE "bt_transfering_state"
406
407 /**
408  * @brief Definition for value of EVENT_KEY_BT_TRANSFERING_STATE.
409  * @since_tizen 2.4
410  */
411 #define EVENT_VAL_BT_NON_TRANSFERING "non_transfering"
412
413 /**
414  * @brief Definition for value of EVENT_KEY_BT_TRANSFERING_STATE.
415  * @since_tizen 2.4
416  */
417 #define EVENT_VAL_BT_TRANSFERING "transfering"
418
419 /**
420  * @brief Definition for system-event of location : enable state of location.
421  * @since_tizen 2.4
422  * @see EVENT_KEY_LOCATION_ENABLE_STATE
423  */
424 #define SYSTEM_EVENT_LOCATION_ENABLE_STATE "tizen.system.event.location_enable_state"
425
426 /**
427  * @brief Definition for key of SYSTEM_EVENT_LOCATION_ENABLE_STATE.
428  * @since_tizen 2.4
429  * @see EVENT_VAL_LOCATION_DISABLED
430  * @see EVENT_VAL_LOCATION_ENABLED
431  */
432 #define EVENT_KEY_LOCATION_ENABLE_STATE "location_enable_state"
433
434 /**
435  * @brief Definition for value of EVENT_KEY_LOCATION_ENABLE_STATE.
436  * @since_tizen 2.4
437  */
438 #define EVENT_VAL_LOCATION_DISABLED "disabled"
439
440 /**
441  * @brief Definition for value of EVENT_KEY_LOCATION_ENABLE_STATE.
442  * @since_tizen 2.4
443  */
444 #define EVENT_VAL_LOCATION_ENABLED "enabled"
445
446 /**
447  * @brief Definition for system-event of location : enable state of gps.
448  * @since_tizen 2.4
449  * @see EVENT_KEY_GPS_ENABLE_STATE
450  */
451 #define SYSTEM_EVENT_GPS_ENABLE_STATE "tizen.system.event.gps_enable_state"
452
453 /**
454  * @brief Definition for key of SYSTEM_EVENT_GPS_ENABLE_STATE.
455  * @since_tizen 2.4
456  * @see EVENT_VAL_GPS_DISABLED
457  * @see EVENT_VAL_GPS_ENABLED
458  */
459 #define EVENT_KEY_GPS_ENABLE_STATE "gps_enable_state"
460
461 /**
462  * @brief Definition for value of EVENT_KEY_GPS_ENABLE_STATE.
463  * @since_tizen 2.4
464  */
465 #define EVENT_VAL_GPS_DISABLED "disabled"
466
467 /**
468  * @brief Definition for value of EVENT_KEY_GPS_ENABLE_STATE.
469  * @since_tizen 2.4
470  */
471 #define EVENT_VAL_GPS_ENABLED "enabled"
472
473 /**
474  * @brief Definition for system-event of location : enable state of nps.
475  * @since_tizen 2.4
476  * @see EVENT_KEY_NPS_ENABLE_STATE
477  */
478 #define SYSTEM_EVENT_NPS_ENABLE_STATE "tizen.system.event.nps_enable_state"
479
480 /**
481  * @brief Definition for key of SYSTEM_EVENT_NPS_ENABLE_STATE.
482  * @since_tizen 2.4
483  * @see EVENT_VAL_NPS_DISABLED
484  * @see EVENT_VAL_NPS_ENABLED
485  */
486 #define EVENT_KEY_NPS_ENABLE_STATE "nps_enable_state"
487
488 /**
489  * @brief Definition for value of EVENT_KEY_NPS_ENABLE_STATE.
490  * @since_tizen 2.4
491  */
492 #define EVENT_VAL_NPS_DISABLED "disabled"
493
494 /**
495  * @brief Definition for value of EVENT_KEY_NPS_ENABLE_STATE.
496  * @since_tizen 2.4
497  */
498 #define EVENT_VAL_NPS_ENABLED "enabled"
499
500 /**
501  * @brief Definition for system-event of message : incoming msg.
502  * @since_tizen 2.4
503  * @privilege %http://tizen.org/privilege/message.read
504  * @remarks If you want to receive this event, you must declare this privilege.
505  * @see EVENT_KEY_MSG_TYPE
506  * @see EVENT_KEY_MSG_ID
507  */
508 #define SYSTEM_EVENT_INCOMMING_MSG "tizen.system.event.incoming_msg"
509
510 /**
511  * @brief Definition for key of SYSTEM_EVENT_INCOMMING_MSG.
512  * @since_tizen 2.4
513  * @see EVENT_VAL_SMS
514  * @see EVENT_VAL_PUSH
515  * @see EVENT_VAL_CB
516  */
517 #define EVENT_KEY_MSG_TYPE "msg_type"
518
519 /**
520  * @brief Definition for value of EVENT_KEY_MSG_TYPE.
521  * @since_tizen 2.4
522  */
523 #define EVENT_VAL_SMS "sms"
524
525 /**
526  * @brief Definition for value of EVENT_KEY_MSG_TYPE.
527  * @since_tizen 2.4
528  */
529 #define EVENT_VAL_PUSH "push"
530
531 /**
532  * @brief Definition for value of EVENT_KEY_MSG_TYPE.
533  * @since_tizen 2.4
534  */
535 #define EVENT_VAL_CB "cb"
536
537 /**
538  * @brief Definition for key of SYSTEM_EVENT_INCOMMING_MSG.
539  * @since_tizen 2.4
540  * @remarks The value of this key is a string of unsigned int value : new message id.
541  */
542 #define EVENT_KEY_MSG_ID "msg_id"
543
544 /**
545  * @brief Definition for system-event of setting : time changed.
546  * @since_tizen 2.4
547  * @remarks There is no corresponding key/value.
548  * @remarks You can use a @a alarm_get_current_time() API for checking new time after receiving this event.
549  */
550 #define SYSTEM_EVENT_TIME_CHANGED "tizen.system.event.time_changed"
551
552 /**
553  * @brief Definition for system-event of setting : timezone setting.
554  * @since_tizen 2.4
555  * @see EVENT_KEY_TIME_ZONE
556  */
557 #define SYSTEM_EVENT_TIME_ZONE "tizen.system.event.time_zone"
558
559 /**
560  * @brief Definition for key of SYSTEM_EVENT_TIME_ZONE.
561  * @since_tizen 2.4
562  * @remarks The value of this key is timezone value of tz database,
563  *      for example, "Asia/Seoul", "America/New_York",
564  *      refer to the Time Zone Database of IANA.
565  */
566 #define EVENT_KEY_TIME_ZONE "time_zone"
567
568 /**
569  * @brief Definition for system-event of setting : hour format.
570  * @since_tizen 2.4
571  * @see EVENT_KEY_HOUR_FORMAT
572  */
573 #define SYSTEM_EVENT_HOUR_FORMAT "tizen.system.event.hour_format"
574
575 /**
576  * @brief Definition for key of SYSTEM_EVENT_HOUR_FORMAT.
577  * @since_tizen 2.4
578  * @see EVENT_VAL_HOURFORMAT_12
579  * @see EVENT_VAL_HOURFORMAT_24
580  */
581 #define EVENT_KEY_HOUR_FORMAT "hour_format"
582
583 /**
584  * @brief Definition for value of EVENT_KEY_HOUR_FORMAT.
585  * @since_tizen 2.4
586  */
587 #define EVENT_VAL_HOURFORMAT_12 "12"
588
589 /**
590  * @brief Definition for value of EVENT_KEY_HOUR_FORMAT.
591  * @since_tizen 2.4
592  */
593 #define EVENT_VAL_HOURFORMAT_24 "24"
594
595 /**
596  * @brief Definition for system-event of setting : language setting.
597  * @since_tizen 2.4
598  * @see EVENT_KEY_LANGUAGE_SET
599  */
600 #define SYSTEM_EVENT_LANGUAGE_SET "tizen.system.event.language_set"
601
602 /**
603  * @brief Definition for key of SYSTEM_EVENT_LANGUAGE_SET.
604  * @since_tizen 2.4
605  * @remarks The value of this key is full name of locale, for example,
606  *      "ko_KR.UTF8" : in case of Korean language
607  *      "en_US.UTF8" : in case of USA language,
608  *      refer to linux locale info.
609  */
610 #define EVENT_KEY_LANGUAGE_SET "language_set"
611
612 /**
613  * @brief Definition for system-event of setting : region format.
614  * @since_tizen 2.4
615  * @see EVENT_KEY_REGION_FORMAT
616  */
617 #define SYSTEM_EVENT_REGION_FORMAT "tizen.system.event.region_format"
618
619 /**
620  * @brief Definition for key of SYSTEM_EVENT_REGION_FORMAT.
621  * @since_tizen 2.4
622  * @remarks The value of this key is full name of locale, for example,
623  *      "ko_KR.UTF8" : in case of Korean region format
624  *      "en_US.UTF8" : in case of USA region format,
625  *      refer to linux locale info.
626  */
627 #define EVENT_KEY_REGION_FORMAT "region_format"
628
629 /**
630  * @brief Definition for system-event of setting : silent_mode.
631  * @since_tizen 2.4
632  * @see EVENT_KEY_SILENT_MODE
633  */
634 #define SYSTEM_EVENT_SILENT_MODE "tizen.system.event.silent_mode"
635
636 /**
637  * @brief Definition for key of SYSTEM_EVENT_SILENT_MODE.
638  * @since_tizen 2.4
639  * @see EVENT_VAL_SILENTMODE_ON
640  * @see EVENT_VAL_SILENTMODE_OFF
641  */
642 #define EVENT_KEY_SILENT_MODE "silent_mode"
643
644 /**
645  * @brief Definition for value of EVENT_KEY_SILENT_MODE.
646  * @since_tizen 2.4
647  */
648 #define EVENT_VAL_SILENTMODE_ON "on"
649
650 /**
651  * @brief Definition for value of EVENT_KEY_SILENT_MODE.
652  * @since_tizen 2.4
653  */
654 #define EVENT_VAL_SILENTMODE_OFF "off"
655
656 /**
657  * @brief Definition for system-event of setting : state of vibration.
658  * @since_tizen 2.4
659  * @see EVENT_KEY_VIBRATION_STATE
660  */
661 #define SYSTEM_EVENT_VIBRATION_STATE "tizen.system.event.vibration_state"
662
663 /**
664  * @brief Definition for key of SYSTEM_EVENT_VIBRATION_STATE.
665  * @since_tizen 2.4
666  * @see EVENT_VAL_VIBRATION_ON
667  * @see EVENT_VAL_VIBRATION_OFF
668  */
669 #define EVENT_KEY_VIBRATION_STATE "vibration_state"
670
671 /**
672  * @brief Definition for value of EVENT_KEY_VIBRATION_STATE.
673  * @since_tizen 2.4
674  */
675 #define EVENT_VAL_VIBRATION_ON "on"
676
677 /**
678  * @brief Definition for value of EVENT_KEY_VIBRATION_STATE.
679  * @since_tizen 2.4
680  */
681 #define EVENT_VAL_VIBRATION_OFF "off"
682
683 /**
684  * @brief Definition for system-event of setting : state of screen's auto-rotation.
685  * @since_tizen 2.4
686  * @see EVENT_KEY_SCREEN_AUTOROTATE_STATE
687  */
688 #define SYSTEM_EVENT_SCREEN_AUTOROTATE_STATE "tizen.system.event.screen_autorotate_state"
689
690 /**
691  * @brief Definition for key of SYSTEM_EVENT_SCREEN_AUTOROTATE_STATE.
692  * @since_tizen 2.4
693  * @see EVENT_VAL_SCREEN_AUTOROTATE_ON
694  * @see EVENT_VAL_SCREEN_AUTOROTATE_OFF
695  */
696 #define EVENT_KEY_SCREEN_AUTOROTATE_STATE "screen_autorotate_state"
697
698 /**
699  * @brief Definition for value of EVENT_KEY_SCREEN_AUTOROTATE_STATE.
700  * @since_tizen 2.4
701  */
702 #define EVENT_VAL_SCREEN_AUTOROTATE_ON "on"
703
704 /**
705  * @brief Definition for value of EVENT_KEY_SCREEN_AUTOROTATE_STATE.
706  * @since_tizen 2.4
707  */
708 #define EVENT_VAL_SCREEN_AUTOROTATE_OFF "off"
709
710 /**
711  * @brief Definition for system-event of setting : state of mobile data.
712  * @since_tizen 2.4
713  * @see EVENT_KEY_MOBILE_DATA_STATE
714  */
715 #define SYSTEM_EVENT_MOBILE_DATA_STATE "tizen.system.event.mobile_data_state"
716
717 /**
718  * @brief Definition for key of SYSTEM_EVENT_MOBILE_DATA_STATE.
719  * @since_tizen 2.4
720  * @see EVENT_VAL_MOBILE_DATA_OFF
721  * @see EVENT_VAL_MOBILE_DATA_ON
722  */
723 #define EVENT_KEY_MOBILE_DATA_STATE "mobile_data_state"
724
725 /**
726  * @brief Definition for value of EVENT_KEY_MOBILE_DATA_STATE.
727  * @since_tizen 2.4
728  */
729 #define EVENT_VAL_MOBILE_DATA_OFF "off"
730
731 /**
732  * @brief Definition for value of EVENT_KEY_MOBILE_DATA_STATE.
733  * @since_tizen 2.4
734  */
735 #define EVENT_VAL_MOBILE_DATA_ON "on"
736
737 /**
738  * @brief Definition for system-event of setting : state of data roaming.
739  * @since_tizen 2.4
740  * @see EVENT_KEY_DATA_ROAMING_STATE
741  */
742 #define SYSTEM_EVENT_DATA_ROAMING_STATE "tizen.system.event.data_roaming_state"
743
744 /**
745  * @brief Definition for key of SYSTEM_EVENT_DATA_ROAMING_STATE.
746  * @since_tizen 2.4
747  * @see EVENT_VAL_DATA_ROAMING_OFF
748  * @see EVENT_VAL_DATA_ROAMING_ON
749  */
750 #define EVENT_KEY_DATA_ROAMING_STATE "data_roaming_state"
751
752 /**
753  * @brief Definition for value of EVENT_KEY_DATA_ROAMING_STATE.
754  * @since_tizen 2.4
755  */
756 #define EVENT_VAL_DATA_ROAMING_OFF "off"
757
758 /**
759  * @brief Definition for value of EVENT_KEY_DATA_ROAMING_STATE.
760  * @since_tizen 2.4
761  */
762 #define EVENT_VAL_DATA_ROAMING_ON "on"
763
764 /**
765  * @brief Definition for system-event of setting : font setting.
766  * @since_tizen 2.4
767  * @see EVENT_KEY_FONT_SET
768  */
769 #define SYSTEM_EVENT_FONT_SET "tizen.system.event.font_set"
770
771 /**
772  * @brief Definition for key of SYSTEM_EVENT_FONT_SET.
773  * @since_tizen 2.4
774  * @remarks The value of this key is font name of string type by font-config.
775  */
776 #define EVENT_KEY_FONT_SET "font_set"
777
778 /**
779  * @brief Adds the event handler for receiving event-data of interested events.
780  *
781  * @since_tizen 2.4
782  * @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.
783  * @param[in] event_name The interested event name
784  * @param[in] callback The event callback called when the event occurs
785  * @param[in] user_data The user data for passing to callback
786  * @param[out] event_handler The event handler
787  * @return 0 on success, otherwise a negative error value
788  * @retval #EVENT_ERROR_NONE Successful
789  * @retval #EVENT_ERROR_INVALID_PARAMETER Invalid parameter
790  * @retval #EVENT_ERROR_PERMISSION_DENIED Permission denied
791  * @retval #EVENT_ERROR_IO_ERROR Adding handler failed
792  * @retval #EVENT_ERROR_OUT_OF_MEMORY Out of memory
793  */
794 int event_add_event_handler(const char *event_name, event_cb callback, void *user_data,
795         event_handler_h *event_handler);
796
797 /**
798  * @brief Removes the registered event handler.
799  *
800  * @since_tizen 2.4
801  * @param[in] event_handler The event handler
802  * @return 0 on success, otherwise a negative error value
803  * @retval #EVENT_ERROR_NONE Successful
804  * @retval #EVENT_ERROR_INVALID_PARAMETER Invalid parameter
805  */
806 int event_remove_event_handler(event_handler_h event_handler);
807
808 /**
809  * @brief Sends the User-Event to receiver applications.
810  *
811  * @since_tizen 2.4
812  * @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.
813  * @param[in] event_name The event's name to send
814  * @param[in] event_data The event's data to send
815  * @return 0 on success, otherwise a negative error value
816  * @retval #EVENT_ERROR_NONE Successful
817  * @retval #EVENT_ERROR_INVALID_PARAMETER Invalid parameter
818  * @retval #EVENT_ERROR_IO_ERROR Sending operation failed
819  */
820 int event_publish_app_event(const char *event_name, bundle *event_data);
821
822 /**
823  * @brief Sends the User-Event to trusted receiver-applications.
824  *
825  * @since_tizen 2.4
826  * @remarks The application which has same certification with sender can receive the event.
827  * @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.
828  * @param[in] event_name The event's name to send
829  * @param[in] event_data The event's data to send
830  * @return 0 on success, otherwise a negative error value
831  * @retval #EVENT_ERROR_NONE Successful
832  * @retval #EVENT_ERROR_INVALID_PARAMETER Invalid parameter
833  * @retval #EVENT_ERROR_IO_ERROR Sending operation failed
834  */
835 int event_publish_trusted_app_event(const char *event_name, bundle *event_data);
836
837 /**
838  * @}
839  */
840
841 #ifdef __cplusplus
842 }
843 #endif
844
845 #endif /* __TIZEN_APPFW_EVENT_H__ */