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