2 * Copyright (c) 2013, TOYOTA MOTOR CORPORATION.
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
10 * @brief header file of Apprication Framework (Resource Control)
15 #include "ico_uxf_sysdef.h"
17 #ifndef __ICO_APF_RESOURCE_CONTROL_H__
18 #define __ICO_APF_RESOURCE_CONTROL_H__
28 ICO_APF_RESID_BASIC_SCREEN = 1, /* basic screen */
29 ICO_APF_RESID_INT_SCREEN = 2, /* interrupt screen */
30 ICO_APF_RESID_ON_SCREEN = 3, /* onscreeen */
31 ICO_APF_RESID_BASIC_SOUND = 4, /* basic sound */
32 ICO_APF_RESID_INT_SOUND = 5, /* interrupt sound */
33 ICO_APF_RESID_INPUT_DEV = 6, /* input device */
35 #define ICO_APF_RESOURCE_RESID_MIN ((int)(ICO_APF_RESID_BASIC_SCREEN))
36 #define ICO_APF_RESOURCE_RESID_MAX ((int)(ICO_APF_RESID_INPUT_DEV))
41 typedef enum _resource_state {
42 ICO_APF_RESOURCE_STATE_ACQUIRED = 1, /* acquired */
43 ICO_APF_RESOURCE_STATE_DEPRIVED = 2, /* deprived */
44 ICO_APF_RESOURCE_STATE_WAITTING = 3, /* waitting */
45 ICO_APF_RESOURCE_STATE_RELEASED = 4, /* released */
47 ICO_APF_RESOURCE_COMMAND_GET = 5, /* get command */
48 ICO_APF_RESOURCE_COMMAND_RELEASE = 6, /* release command */
49 ICO_APF_RESOURCE_COMMAND_ADD = 7, /* add command */
50 ICO_APF_RESOURCE_COMMAND_CHANGE = 8, /* change command */
51 ICO_APF_RESOURCE_COMMAND_DELETE = 9, /* delete command */
53 ICO_APF_RESOURCE_REPLY_OK = 10, /* OK reply */
54 ICO_APF_RESOURCE_REPLY_NG = 11, /* NG reply */
55 ICO_APF_RESOURCE_STATE_CONNECTED = 12, /* connected */
56 ICO_APF_RESOURCE_STATE_DISCONNECTED = 13, /* disconnected */
57 } ico_apf_resource_state_e;
58 #define ICO_APF_RESOURCE_COMMAND_MIN ((int)(ICO_APF_RESOURCE_STATE_ACQUIRED))
59 #define ICO_APF_RESOURCE_COMMAND_MAX ((int)(ICO_APF_RESOURCE_STATE_DISCONNECTED))
64 typedef enum _sound_resource {
65 ICO_APF_SOUND_COMMAND_MUTEON = 21, /* mute on */
66 ICO_APF_SOUND_COMMAND_MUTEOFF = 22, /* mute off */
67 ICO_APF_SOUND_COMMAND_CANCEL = 23, /* cancel */
68 ICO_APF_SOUND_COMMAND_GETLIST = 24, /* get stream list */
69 ICO_APF_SOUND_COMMAND_FRESH = 25, /* fresh */
70 ICO_APF_SOUND_COMMAND_ALLMUTEON = 26, /* mute on all streams*/
71 ICO_APF_SOUND_COMMAND_ALLMUTEOFF = 27, /* mute off all streams*/
73 ICO_APF_SOUND_EVENT_NEW = 28, /* created new stream*/
74 ICO_APF_SOUND_EVENT_FREE = 29, /* destoryed stream */
76 ICO_APF_SOUND_REPLY_LIST = 30 /* reply on stream list*/
77 } ico_apf_sound_state_e;
78 #define ICO_APF_SOUND_COMMAND_MIN ((int)(ICO_APF_SOUND_COMMAND_MUTEON))
79 #define ICO_APF_SOUND_COMMAND_CMD ((int)(ICO_APF_SOUND_COMMAND_ALLMUTEOFF))
80 #define ICO_APF_SOUND_COMMAND_MAX ((int)(ICO_APF_SOUND_REPLY_LIST))
83 * notify callback information
85 typedef struct _resmgr_notify_info {
86 ico_apf_resid_e resid;
90 char appid[ICO_UXF_MAX_PROCESS_NAME+1];
91 ico_apf_resource_state_e state;
92 char device[ICO_UXF_MAX_DEVICE_NAME+1];
93 } ico_apf_resource_notify_info_t;
95 typedef void (*ico_apf_resource_notify_cb_t)(ico_apf_resource_notify_info_t* info,
98 /*--------------------------------------------------------------------------*/
100 * @brief Initialize resouce manager component for client Application
102 * @param[in] uri server URI
103 * @return result status
104 * @retval ICO_APF_RESOURCE_E_NONE success
105 * @retval ICO_APF_RESOURCE_E_INIT_COM_FAILD can not create connection
106 * @retval ICO_APF_RESOURCE_E_INIT_COMMUNICATION initialize communication error
108 /*--------------------------------------------------------------------------*/
109 int ico_apf_resource_init_client(const char *uri);
111 /*--------------------------------------------------------------------------*/
113 * @brief Terminame resouce manager component
118 /*--------------------------------------------------------------------------*/
119 void ico_apf_resource_term_client(void);
121 /*--------------------------------------------------------------------------*/
123 * @brief Initialize resouce manager component for sever(AppsController)
125 * @param[in] uri my URI
126 * @return result status
127 * @retval ICO_APF_RESOURCE_E_NONE success
128 * @retval ICO_APF_RESOURCE_E_INIT_COM_FAILD can not create connection
129 * @retval ICO_APF_RESOURCE_E_INIT_COMMUNICATION initialize communication error
130 * @retval ICO_APF_RESOURCE_E_INVALID_PARAMETER appid is null
132 /*--------------------------------------------------------------------------*/
133 int ico_apf_resource_init_server(const char *uri);
135 /*--------------------------------------------------------------------------*/
137 * @brief Terminame resouce manager component for server(AppsController)
142 /*--------------------------------------------------------------------------*/
143 void ico_apf_resource_term_server(void);
145 /*--------------------------------------------------------------------------*/
147 * @brief Set event callback function
149 * @param[in] callbacks callback functions
150 * @param[in] user_data passed data on called callback function
151 * @return result status
152 * @retval ICO_APF_RESOURCE_E_NONE success
153 * @retval ICO_APF_RESOURCE_E_INVAL callbacks is null
155 /*--------------------------------------------------------------------------*/
156 int ico_apf_resource_set_event_cb(ico_apf_resource_notify_cb_t callbacks,
159 /*--------------------------------------------------------------------------*/
161 * @brief Unset event callback function
164 * @return result status
165 * @retval ICO_APF_RESOURCE_E_NONE success(At present, always give back this)
167 /*--------------------------------------------------------------------------*/
168 int ico_apf_resource_unset_event_cb(void);
170 /*--------------------------------------------------------------------------*/
172 * @brief Get the rights of basic screen
174 * @param[in] disp_dev display device uri
175 * @param[in] src_id id of basic screen
176 * @return result status
177 * @retval ICO_APF_RESOURCE_E_NONE success
178 * @retval ICO_APF_RESOURCE_E_NOT_INITIALIZED not initialized
179 * @retval ICO_APF_RESOURCE_E_COMMUNICATION communication error
181 /*--------------------------------------------------------------------------*/
182 int ico_apf_resource_get_screen_mode(const char* disp_dev, int scr_id);
184 /*--------------------------------------------------------------------------*/
186 * @brief Release the rights of basic screen
188 * @param[in] disp_dev display device uri
189 * @param[in] src_id id of basic screen
190 * @return result status
191 * @retval ICO_APF_RESOURCE_E_NONE success
192 * @retval ICO_APF_RESOURCE_E_NOT_INITIALIZED not initialized
193 * @retval ICO_APF_RESOURCE_E_COMMUNICATION communication error
195 /*--------------------------------------------------------------------------*/
196 int ico_apf_resource_release_screen_mode(const char* disp_dev, int scr_id);
198 /*--------------------------------------------------------------------------*/
200 * @brief Reply the basic screen status change event
202 * @param[in] disp_dev display device uri
203 * @param[in] src_id id of basic screen
204 * @param[in] ok OK(1) or NG(0)
205 * @return result status
206 * @retval ICO_APF_RESOURCE_E_NONE success
207 * @retval ICO_APF_RESOURCE_E_NOT_INITIALIZED not initialized
208 * @retval ICO_APF_RESOURCE_E_COMMUNICATION communication error
210 /*--------------------------------------------------------------------------*/
211 int ico_apf_resource_reply_screen_mode(const char* disp_dev, int scr_id, const int ok);
213 /*--------------------------------------------------------------------------*/
215 * @brief Release the rights of interrupt screen
217 * @param[in] disp_dev display device uri
218 * @param[in] src_id id of basic screen
219 * @param[in] int_src_id id of interrupt screen
220 * @return result status
221 * @retval ICO_APF_RESOURCE_E_NONE success
222 * @retval ICO_APF_RESOURCE_E_NOT_INITIALIZED not initialized
223 * @retval ICO_APF_RESOURCE_E_COMMUNICATION communication error
225 /*--------------------------------------------------------------------------*/
226 int ico_apf_resource_get_int_screen_mode(const char* disp_dev,
227 int scr_id, int int_scr_id);
229 /*--------------------------------------------------------------------------*/
231 * @brief Release the rights of interrupt screen on basic screen
233 * @param[in] disp_dev display device uri
234 * @param[in] src_id id of basic screen
235 * @param[in] int_scr_id id of interrupt screen
236 * @return result status
237 * @retval ICO_APF_RESOURCE_E_NONE success
238 * @retval ICO_APF_RESOURCE_E_NOT_INITIALIZED not initialized
239 * @retval ICO_APF_RESOURCE_E_COMMUNICATION communication error
241 /*--------------------------------------------------------------------------*/
242 int ico_apf_resource_release_int_screen_mode(const char* disp_dev,
243 int scr_id, int int_scr_id);
245 /*--------------------------------------------------------------------------*/
247 * @brief Reply the rights of interrupt screen on basic screen
249 * @param[in] disp_dev display device uri
250 * @param[in] src_id id of basic screen
251 * @param[in] int_src_id id of interrupt screen
252 * @param[in] ok OK(1) or NG(0)
253 * @return result status
254 * @retval ICO_APF_RESOURCE_E_NONE success
255 * @retval ICO_APF_RESOURCE_E_NOT_INITIALIZED not initialized
256 * @retval ICO_APF_RESOURCE_E_COMMUNICATION communication error
258 /*--------------------------------------------------------------------------*/
259 int ico_apf_resource_reply_int_screen_mode(const char* disp_dev,
260 int scr_id, int int_scr_id, const int ok);
262 /*--------------------------------------------------------------------------*/
264 * @brief Get the rights of interrupt screen on display
266 * @param[in] disp_dev display device uri
267 * @param[in] int_scr_id id of interrupt screen
268 * @return result status
269 * @retval ICO_APF_RESOURCE_E_NONE success
270 * @retval ICO_APF_RESOURCE_E_NOT_INITIALIZED not initialized
271 * @retval ICO_APF_RESOURCE_E_COMMUNICATION communication error
273 /*--------------------------------------------------------------------------*/
274 int ico_apf_resource_get_int_screen_mode_disp(const char* disp_dev,
277 /*--------------------------------------------------------------------------*/
279 * @brief Release the rights of interrupt screen on display
281 * @param[in] disp_dev display device uri
282 * @param[in] int_scr_id id of interrupt screen
283 * @return result status
284 * @retval ICO_APF_RESOURCE_E_NONE success
285 * @retval ICO_APF_RESOURCE_E_NOT_INITIALIZED not initialized
286 * @retval ICO_APF_RESOURCE_E_COMMUNICATION communication error
288 /*--------------------------------------------------------------------------*/
289 int ico_apf_resource_release_int_screen_mode_disp(const char* disp_dev,
292 /*--------------------------------------------------------------------------*/
294 * @brief Reply the rights of interrupt screen on display
296 * @param[in] disp_dev display device uri
297 * @param[in] int_scr_id id of interrupt screen
298 * @param[in] ok OK(1) or NG(0)
299 * @return result status
300 * @retval ICO_APF_RESOURCE_E_NONE success
301 * @retval ICO_APF_RESOURCE_E_NOT_INITIALIZED not initialized
302 * @retval ICO_APF_RESOURCE_E_COMMUNICATION communication error
304 /*--------------------------------------------------------------------------*/
305 int ico_apf_resource_reply_int_screen_mode_disp(const char* disp_dev,
306 int int_scr_id, const int ok);
308 /*--------------------------------------------------------------------------*/
310 * @brief Get the rights of basic sound on zone
312 * @param[in] zone sound device uri
313 * @param[in] snd_id id of basic sound
314 * @param[in] adjust adjust acction
315 * @return result status
316 * @retval ICO_APF_RESOURCE_E_NONE success
317 * @retval ICO_APF_RESOURCE_E_NOT_INITIALIZED not initialized
318 * @retval ICO_APF_RESOURCE_E_COMMUNICATION communication error
320 /*--------------------------------------------------------------------------*/
321 int ico_apf_resource_get_sound_mode(const char* zone, int snd_id, int adjust);
323 /*--------------------------------------------------------------------------*/
325 * @brief Release the rights of basic sound on zone
327 * @param[in] zone sound device uri
328 * @param[in] snd_id id of basic sound
329 * @return result status
330 * @retval ICO_APF_RESOURCE_E_NONE success
331 * @retval ICO_APF_RESOURCE_E_NOT_INITIALIZED not initialized
332 * @retval ICO_APF_RESOURCE_E_COMMUNICATION communication error
334 /*--------------------------------------------------------------------------*/
335 int ico_apf_resource_release_sound_mode(const char* zone, int snd_id);
337 /*--------------------------------------------------------------------------*/
339 * @brief Reply the rights of basic sound on zone
341 * @param[in] zone sound device uri
342 * @param[in] snd_id id of basic sound
343 * @param[in] ok OK(1) or NG(0)
344 * @return result status
345 * @retval ICO_APF_RESOURCE_E_NONE success
346 * @retval ICO_APF_RESOURCE_E_NOT_INITIALIZED not initialized
347 * @retval ICO_APF_RESOURCE_E_COMMUNICATION communication error
349 /*--------------------------------------------------------------------------*/
350 int ico_apf_resource_reply_sound_mode(const char* zone, int snd_id, const int ok);
352 /*--------------------------------------------------------------------------*/
354 * @brief Get the rights of interrupt sound on zone
356 * @param[in] zone sound device uri
357 * @param[in] int_snd_id id of basic sound
358 * @param[in] adjust adjust action
359 * @return result status
360 * @retval ICO_APF_RESOURCE_E_NONE success
361 * @retval ICO_APF_RESOURCE_E_NOT_INITIALIZED not initialized
362 * @retval ICO_APF_RESOURCE_E_COMMUNICATION communication error
364 /*--------------------------------------------------------------------------*/
365 int ico_apf_resource_get_int_sound_mode(const char* zone,
366 int int_snd_id, int adjust);
368 /*--------------------------------------------------------------------------*/
370 * @brief Release the rights of interrupt sound on zone
372 * @param[in] zone sound device uri
373 * @param[in] int_snd_id id of interrupt sound
374 * @return result status
375 * @retval ICO_APF_RESOURCE_E_NONE success
376 * @retval ICO_APF_RESOURCE_E_NOT_INITIALIZED not initialized
377 * @retval ICO_APF_RESOURCE_E_COMMUNICATION communication error
379 /*--------------------------------------------------------------------------*/
380 int ico_apf_resource_release_int_sound_mode(const char* zone, int int_snd_id);
382 /*--------------------------------------------------------------------------*/
384 * @brief Reply the rights of interrupt sound on zone
386 * @param[in] zone sound device uri
387 * @param[in] int_snd_id id of interrupt sound
388 * @param[in] ok OK(1) or NG(0)
389 * @return result status
390 * @retval ICO_APF_RESOURCE_E_NONE success
391 * @retval ICO_APF_RESOURCE_E_NOT_INITIALIZED not initialized
392 * @retval ICO_APF_RESOURCE_E_COMMUNICATION communication error
394 /*--------------------------------------------------------------------------*/
395 int ico_apf_resource_reply_int_sound_mode(const char* zone,
396 int int_snd_id, const int ok);
398 /*--------------------------------------------------------------------------*/
400 * @brief Add the input event notification from input device
402 * @param[in] input_dev input device uri
403 * @param[in] events notify input events
404 * @return result status
405 * @retval ICO_APF_RESOURCE_E_NONE success
406 * @retval ICO_APF_RESOURCE_E_NOT_INITIALIZED not initialized
407 * @retval ICO_APF_RESOURCE_E_COMMUNICATION communication error
409 /*--------------------------------------------------------------------------*/
410 int ico_apf_resource_add_input_event(const char* input_dev, int events);
412 /*--------------------------------------------------------------------------*/
414 * @brief Change the input event notification from input device
416 * @param[in] input_dev input device uri
417 * @param[in] events notify input events
418 * @return result status
419 * @retval ICO_APF_RESOURCE_E_NONE success
420 * @retval ICO_APF_RESOURCE_E_NOT_INITIALIZED not initialized
421 * @retval ICO_APF_RESOURCE_E_COMMUNICATION communication error
423 /*--------------------------------------------------------------------------*/
424 int ico_apf_resource_change_input_event(const char* input_dev, int events);
426 /*--------------------------------------------------------------------------*/
428 * @brief Delete the input event notification from input device
430 * @param[in] input_dev input device uri
431 * @param[in] events notify input events
432 * @return result status
433 * @retval ICO_APF_RESOURCE_E_NONE success
434 * @retval ICO_APF_RESOURCE_E_NOT_INITIALIZED not initialized
435 * @retval ICO_APF_RESOURCE_E_COMMUNICATION communication error
437 /*--------------------------------------------------------------------------*/
438 int ico_apf_resource_delete_input_event(const char* input_dev, int events);
440 /*--------------------------------------------------------------------------*/
442 * @brief Send responce form server(AppsController) to client application
444 * @param[in] appid client application id
445 * @param[in] event event
446 * @param[in] resource target resource
447 * @param[in] device display device / sound zone
448 * @param[in] id application defined object id
449 * @return result status
450 * @retval ICO_APF_RESOURCE_E_NONE success
451 * @retval ICO_APF_RESOURCE_E_NOT_INITIALIZED not initialized
452 * @retval ICO_APF_RESOURCE_E_COMMUNICATION communication error
453 * @retval ICO_APF_RESOURCE_E_INVAL illegal appid or event code
455 /*--------------------------------------------------------------------------*/
456 int ico_apf_resource_send_to_client(const char *appid, const int event,
457 const int resource, const char *device, const int id);
459 /*--------------------------------------------------------------------------*/
461 * @brief Send request to Multi Input Manager
463 * @param[in] cmd send command
464 * @param[in] pid target pid
465 * @return result status
466 * @retval ICO_APF_RESOURCE_E_NONE success
467 * @retval ICO_APF_RESOURCE_E_NOT_INITIALIZED not initialized
468 * @retval ICO_APF_RESOURCE_E_COMMUNICATION communication error
470 /*--------------------------------------------------------------------------*/
471 int ico_apf_resource_send_to_soundctl(const ico_apf_sound_state_e cmd, const int pid);
473 /*--------------------------------------------------------------------------*/
475 * @brief Get aplication Id
477 * @param[in] pid process id (if 0, current process id)
478 * @param[out] appid client application id
479 * @return result status
480 * @retval ICO_APP_CTL_E_NONE success
481 * @retval ICO_APP_CTL_E_INVALID_PARAM error(pid dose not exist)
483 /*--------------------------------------------------------------------------*/
484 /* Applicaton Manager */
485 int ico_apf_get_app_id(const int pid, char *appid);
491 #endif /*__ICO_APF_RESOURCE_CONTROL_H__*/