Bug fix TIVI-839 ,change the design and permit operation of the music player while...
[profile/ivi/ico-uxf-homescreen.git] / include / ico_uxf_conf.h
1 /*
2  * Copyright (c) 2013, TOYOTA MOTOR CORPORATION.
3  *
4  * This program is licensed under the terms and conditions of the
5  * Apache License, version 2.0.  The full text of the Apache License is at
6  * http://www.apache.org/licenses/LICENSE-2.0
7  *
8  */
9 /**
10  * @brief   user experiance library public header file(configuration)
11  *
12  * @date    Feb-28-2013
13  */
14
15 #ifndef ICO_UXF_CONF_H_
16 #define ICO_UXF_CONF_H_
17
18 #include <glib.h>
19 #include "ico_uxf_conf_def.h"
20 #include "ico_uxf_sysdef.h"
21 #include "ico_uxf_def.h"
22 #include "ico_uxf_typedef.h"
23 #include "ico_apf_log.h"
24
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28
29 typedef struct _ico_uxf_conf_misc {
30     char topdir[ICO_UXF_CONF_DIR_MAX+1];
31     char confdir[ICO_UXF_CONF_DIR_MAX+1];
32     short myhostId;
33     short masterhostId;
34     char *myhostName;
35     char *myaddress;
36     char *homescreen;
37     char *masterhostaddress;
38     short default_hostId;
39     short default_kindId;
40     short default_categoryId;
41     short default_displayId;
42     short default_layerId;
43     short default_dispzoneId;
44     short default_soundId;
45     short default_soundzoneId;
46     short default_inputdevId;
47     short default_inputswId;
48     int appscontrollerport;
49     int soundpluginport;
50     int loglevel;
51     int logflush;
52 } Ico_Uxf_conf_misc;
53
54 typedef struct _ico_uxf_conf_host {
55     int id;
56     char *name;
57     char *address;
58     int type;
59     char *homescreen;
60 } Ico_Uxf_conf_host;
61
62 typedef struct _ico_uxf_conf_category {
63     int id;
64     char *name;
65     short view;
66     short type;
67     short sound;
68     short input;
69     short priority;
70     short res;                                  /* (unused)         */
71 } Ico_Uxf_conf_category;
72
73 typedef struct _ico_uxf_conf_kind {
74     int id;
75     char *name;
76     short priv;
77     short priority;
78 } Ico_Uxf_conf_kind;
79
80 typedef struct _ico_uxf_conf_appdisplay {
81     short displayId;
82     short layerId;
83     short zoneId;
84     short res;                                  /* (unused)         */
85 } Ico_Uxf_conf_appdisplay;
86
87 typedef struct _ico_uxf_conf_appsound {
88     short soundId;
89     short zoneId;
90 } Ico_Uxf_conf_appsound;
91
92 typedef struct _ico_uxf_conf_appinput {
93     short inputdevId;
94     short inputswId;
95 } Ico_Uxf_conf_appinput;
96
97 typedef struct _ico_uxf_conf_application {
98     char *appid;
99     char *name;
100     char *group;
101     char *exec;
102     char *type;
103     int hostId;
104     char *location;
105     char *icon_key_name;
106     char autostart;
107     char noicon;
108     unsigned short invisiblecpu;
109     short kindId;
110     short categoryId;
111     short displayzoneNum;
112     short soundzoneNum;
113     short inputdevNum;
114     char res[2];
115     Ico_Uxf_conf_appdisplay display[ICO_UXF_APPDISPLAY_MAX];
116     Ico_Uxf_conf_appsound   sound[ICO_UXF_APPSOUND_MAX];
117     Ico_Uxf_conf_appinput   input[ICO_UXF_APPINPUT_MAX];
118     struct _ico_uxf_conf_application *nextidhash;
119     struct _ico_uxf_conf_application *nextnamehash;
120 } Ico_Uxf_conf_application;
121
122 typedef struct _ico_uxf_conf_display_layer {
123     int id;
124     char *name;
125 } Ico_Uxf_conf_display_layer;
126
127 #define ZONE_MAX_OVERLAP    (ICO_UXF_DISPLAY_ZONE_MAX-1)
128 typedef struct _ico_uxf_conf_display_zone {
129     int id;
130     char *name;
131     short x;
132     short y;
133     short width;
134     short height;
135     short zoneidx;
136     short res;                                  /* (unused)         */
137     struct _ico_uxf_conf_display *display;
138     unsigned char overlapNum;
139     unsigned char overlap[ZONE_MAX_OVERLAP];
140 } Ico_Uxf_conf_display_zone;
141
142 typedef struct _ico_uxf_conf_display {
143     int id;
144     char *name;
145     short hostId;
146     short displayno;
147     short type;
148     short width;
149     short height;
150     short inch;
151     short layerNum;
152     short zoneNum;
153     char *wayland;
154     Ico_Uxf_conf_display_layer *layer;
155     Ico_Uxf_conf_display_zone *zone;
156 } Ico_Uxf_conf_display;
157
158 typedef struct _ico_uxf_conf_sound_zone {
159     int id;
160     char *name;
161     short zoneidx;
162     short res;                                  /* (unused)         */
163     struct _ico_uxf_conf_sound *sound;
164     unsigned char overlapNum;
165     unsigned char overlap[ZONE_MAX_OVERLAP];
166 } Ico_Uxf_conf_sound_zone;
167
168 typedef struct _ico_uxf_conf_sound {
169     int id;
170     char *name;
171     short hostId;
172     short soundno;
173     short type;
174     short zoneNum;
175     Ico_Uxf_conf_sound_zone *zone;
176 } Ico_Uxf_conf_sound;
177
178 typedef struct _ico_uxf_conf_inputsw {
179     struct _ico_uxf_conf_inputdev   *inputdev;
180     char *name;
181     char *appid;
182 } Ico_Uxf_conf_inputsw;
183
184 typedef struct _ico_uxf_conf_inputdev {
185     int id;
186     char *name;
187     short inputswNum;
188     short res;                                  /* (unused)         */
189     Ico_Uxf_conf_inputsw *inputsw;
190 } Ico_Uxf_conf_inputdev;
191
192 typedef struct _ico_uxf_sys_config {
193     Ico_Uxf_conf_misc misc;
194     short hostNum;
195     short categoryNum;
196     short kindNum;
197     short displayNum;
198     short soundNum;
199     short inputdevNum;
200     Ico_Uxf_conf_host *host;
201     Ico_Uxf_conf_category *category;
202     Ico_Uxf_conf_kind *kind;
203     Ico_Uxf_conf_display *display;
204     Ico_Uxf_conf_sound *sound;
205     Ico_Uxf_conf_inputdev *inputdev;
206 } Ico_Uxf_Sys_Config;
207
208 typedef struct _ico_uxf_app_config {
209     int applicationNum;
210         int ailNum;
211     Ico_Uxf_conf_application *application;
212     Ico_Uxf_conf_application *hashidtable[ICO_UXF_MISC_HASHSIZE];
213     Ico_Uxf_conf_application *hashnametable[ICO_UXF_MISC_HASHSIZE];
214 } Ico_Uxf_App_Config;
215
216 typedef void (*Ico_Uxf_AppUpdata_Cb)(const char *appid, int type);
217
218 const Ico_Uxf_Sys_Config* ico_uxf_getSysConfig(void);
219 const Ico_Uxf_Sys_Config* ico_uxf_ifGetSysConfig(void);
220 const Ico_Uxf_App_Config* ico_uxf_getAppConfig(void);
221
222 void ico_uxf_closeSysConfig(void);
223 void ico_uxf_closeAppConfig(void);
224
225 int ico_uxf_getSysKindByName(const char *skind);
226 int ico_uxf_getSysCategoryByName(const char *scategory);
227 int ico_uxf_getSysHostByName(const char *shost);
228 int ico_uxf_getSysHostTypeByName(const char *stype);
229 int ico_uxf_getSysDisplayByName(const char *sdisplay);
230 int ico_uxf_getSysDispTypeByName(const char *stype);
231 int ico_uxf_getSysLayerByName(const int display, const char *slayer);
232 int ico_uxf_getSysDispZoneByName(const int display, const char *sdispzone);
233 int ico_uxf_getSysSoundByName(const char *ssound);
234 int ico_uxf_getSysSoundZoneByName(const int sound, const char *ssoundzone);
235 int ico_uxf_getSysInputdevByName(const char *sinputdev);
236 int ico_uxf_getSysInputswByName(const int inputdev, const char *sinputsw);
237 int ico_uxf_getSysBoolByName(const char *sbool);
238 int ico_uxf_getAppDisplay(const Ico_Uxf_conf_application *app, const int idx,
239                           int *x, int *y, int *width, int *height);
240
241 const Ico_Uxf_conf_host* ico_uxf_getSysHostById(const int hostId);
242 const Ico_Uxf_conf_application* ico_uxf_getAppByAppid(const char *appid);
243 const Ico_Uxf_conf_application* ico_uxf_getAppByName(const char *name);
244 const Ico_Uxf_conf_category* ico_uxf_getAppCategoryById(const int categoryId);
245 const Ico_Uxf_conf_display* ico_uxf_getSysDisplayById(const int displayId);
246 const char *ico_uxf_get_SysLocation( const int hostId );
247
248 int ico_uxf_conf_setAppUpdateCb(Ico_Uxf_AppUpdata_Cb func);
249
250 /* define log macros    */
251 #ifndef uifw_trace
252 #define uifw_debug      ICO_UXF_DEBUG
253 #define uifw_trace      ICO_UXF_DEBUG
254 #define uifw_critical   ICO_UXF_CRITICAL
255 #define uifw_info       ICO_UXF_INFO
256 #define uifw_warn       ICO_UXF_WARN
257 #define uifw_error      ICO_UXF_ERROR
258 #define uifw_logflush   ico_uxf_log_flush
259 #endif  /*uifw_trace*/
260
261 void ico_uxf_closeSysConfig(void);
262
263 #define ICO_UXF_CONF_EVENT_INSTALL      (0)
264 #define ICO_UXF_CONF_EVENT_UNINSTALL    (1)
265
266 #ifdef __cplusplus
267 }
268 #endif
269 #endif /* ICO_UXF_CONF_H_ */
270