Code Refactoring
[profile/tv/apps/native/homescreen.git] / include / engine.h
1 /*
2  * Copyright (c) 2014 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 #ifndef __ENGINE_H__
18 #define __ENGINE_H__
19
20 #include <Eina.h>
21 #include <stdbool.h>
22
23 struct engine;
24 struct engine_bar_item;
25 struct engine_ubar_item;
26 struct engine_dbar_item;
27 struct engine_dbar_item_content;
28
29 enum engine_dbar_item_style {
30         ENGINE_DBAR_ITEM_STYLE_CONTENT,
31         ENGINE_DBAR_ITEM_STYLE_LABEL,
32         ENGINE_DBAR_ITEM_STYLE_ALBUM,
33         ENGINE_DBAR_ITEM_STYLE_MAX
34 };
35
36 enum engine_dbar_content_type {
37         ENGINE_DBAR_CONTENT_TYPE_IMAGE,
38         ENGINE_DBAR_CONTENT_TYPE_VIDEO,
39         ENGINE_DBAR_CONTENT_TYPE_MUSIC,
40         ENGINE_DBAR_CONTENT_TYPE_BROADCAST,
41         ENGINE_DBAR_CONTENT_TYPE_APP,
42         ENGINE_DBAR_CONTENT_TYPE_SOURCE,
43         ENGINE_DBAR_CONTENT_TYPE_NOTIFICATION_NOTI,
44         ENGINE_DBAR_CONTENT_TYPE_NOTIFICATION_ONGOING,
45         ENGINE_DBAR_CONTENT_TYPE_HISTORY,
46         ENGINE_DBAR_CONTENT_TYPE_MAX
47 };
48
49
50 struct engine *engine_init(void);
51 void engine_fini(struct engine *eng);
52 int engine_get_user_info(struct engine *eng, const char **name,
53                 const char **thumb_bg, const char **thumb);
54
55 const Eina_List *engine_get_bar_items(struct engine *eng);
56 const Eina_List *engine_get_ubar_items(struct engine *eng);
57 const Eina_List *engine_get_dbar_items(struct engine_bar_item *it);
58
59 /* bar */
60 const char *engine_bar_item_get_name(struct engine_bar_item *it);
61 const char *engine_bar_item_get_icon(struct engine_bar_item *it);
62 const char *engine_bar_item_get_icon_focus(struct engine_bar_item *it);
63 const char *engine_bar_item_get_dbus_path(struct engine_bar_item *it);
64 const char *engine_bar_item_get_noctnt_title(struct engine_bar_item *it);
65 const char *engine_bar_item_get_noctnt_desc(struct engine_bar_item *it);
66 const char *engine_bar_item_get_in(struct engine_bar_item *it);
67 const char *engine_bar_item_get_svcid(struct engine_bar_item *it);
68 const char *engine_bar_item_get_bus_name(struct engine_bar_item *it);
69 const char *engine_bar_item_get_object_path(struct engine_bar_item *it);
70 int engine_bar_item_get_color(struct engine_bar_item *it,
71                 int *r, int *g, int *b);
72 int engine_bar_item_get_content_column(struct engine_bar_item *it,
73                 int *content_column);
74 int engine_bar_item_launch(struct engine_bar_item *it);
75 int engine_bar_item_del_pin(struct engine *eng, struct engine_bar_item *it);
76 int engine_bar_item_get_pin_count(void);
77 int engine_bar_item_swap_pin(struct engine *eng, struct engine_bar_item *it1,
78                 struct engine_bar_item *it2);
79 Eina_Bool engine_bar_item_get_is_pinned(struct engine_bar_item *it);
80 void engine_bar_item_set_update_cb(struct engine_bar_item *it,
81                 void (*update_cb)(struct engine_bar_item *it, void *data),
82                 void *data);
83 void engine_bar_item_set_pin_update_cb(struct engine *eng,
84                 void (*update_cb)(void *data, bool focus),
85                 void *data);
86
87 /* ubar */
88 int engine_ubar_item_get_info(struct engine_ubar_item *it, const char **name,
89                 const char **thumb_bg, const char **thumb, int *age);
90 bool engine_ubar_item_is_password(struct engine_ubar_item *it,
91                 const char *password);
92 bool engine_ubar_item_delete(struct engine *eng, struct engine_ubar_item *it,
93                 const char *password);
94 bool engine_ubar_item_add(struct engine *eng, const char *name,
95                 const char *password, const char *icon);
96 bool engine_ubar_item_update(struct engine *eng, struct engine_ubar_item *it,
97                 const char *icon, const char *password);
98 bool engine_ubar_item_change_user(struct engine *eng,
99                 struct engine_ubar_item *it, const char *password);
100 bool engine_ubar_item_get_privilege(struct engine *eng);
101
102
103 /* dbar */
104 enum engine_dbar_item_style engine_dbar_item_get_style(
105                 struct engine_dbar_item *it);
106 enum engine_dbar_content_type engine_dbar_item_get_content_type(
107                 struct engine_dbar_item_content *ctnt);
108 const Eina_List *engine_dbar_item_get_contents(struct engine_dbar_item *it);
109 const char *engine_dbar_item_get_name(struct engine_dbar_item *it);
110 const char *engine_dbar_item_get_in(struct engine_dbar_item *it);
111 const char *engine_dbar_item_get_content_subtitle(
112                 struct engine_dbar_item_content *ctnt);
113 const char *engine_dbar_item_get_content_description(
114                 struct engine_dbar_item_content *ctnt);
115 const char *engine_dbar_item_get_content_detail(
116                 struct engine_dbar_item_content *ctnt);
117 const char *engine_dbar_item_get_content_thumbnail(
118                 struct engine_dbar_item_content *ctnt);
119 const char *engine_dbar_item_get_content_icon(
120                 struct engine_dbar_item_content *ctnt);
121 int engine_dbar_item_get_color(struct engine_dbar_item *it,
122                 int *r, int *g, int *b);
123 int engine_dbar_item_launch(struct engine_dbar_item *it);
124 int engine_dbar_item_del(struct engine_dbar_item *it,
125                 enum engine_dbar_content_type type);
126 int engine_dbar_item_del_all(enum engine_dbar_content_type type);
127
128 #endif /* __ErGINE_H__ */