Merge "Add function to generate description from nested object hierarchy" into tizen
[profile/tv/apps/native/screen-reader.git] / include / smart_notification.h
1 #ifndef SMART_NOTIFICATION_H_
2 #define SMART_NOTIFICATION_H_
3
4 /**
5  * @brief Type of notification events.
6  *
7  * @FOCUS_CHAIN_END_NOTIFICATION_EVENT emitted when
8  * currnetly focued widget is the last one
9  * in focus chain for application current view.
10  *
11  * @REALIZED_ITEMS_NOTIFICATION_EVENT
12  */
13 enum _Notification_Type {
14      FOCUS_CHAIN_END_NOTIFICATION_EVENT,
15      REALIZED_ITEMS_NOTIFICATION_EVENT,
16 };
17
18 typedef enum _Notification_Type Notification_Type;
19
20 /**
21  * @brief Initializes notification submodule.
22  *
23  * @description
24  * Notification submodule is resposnisle for providing
25  * voice output to end user when on of following events
26  * occur:
27  *
28  * 1. User starts scrolling active application view.
29  * 2. User finished scrolling (and all scrolling related
30  *    animations has stopped) active application view.
31  * 3. When user has navigated to the last widget in focus
32  *    chain.
33  * 4. After scrolling lists, some of item becomes visible
34  *
35  * @nore
36  * 1 and 2 are handled internally by smart navigation submodule.
37  * about events 3 and 4 submodule has to be informed by the developer
38  * by using smart_notification API.
39  */
40 void smart_notification_init(void);
41
42 /**
43  * @brief Notifies smart_notification about UI event.
44  *
45  * @param nt Type of the occured event.
46  * @param start_index Item of the first item that becomes visible
47  * after scrolling list widget.
48  * @param end_index index of the last item that becomes visible
49  * after scrolling list widget.
50  *
51  * @note start_index and end_index are interpreted only
52  * when nt parameter is REALIZED_ITEMS_NOTIFICATION_EVENT
53  * @note initializes haptic module.
54  */
55 void smart_notification(Notification_Type nt, int start_index, int end_index);
56
57 /**
58  * @brief Shutdowns notification subsystem.
59  */
60 void smart_notification_shutdown(void);
61
62 #endif /* end of include guard: SMART_NOTIFICATION_H_ */