FreeCalypso > hg > leo2moko-debug
comparison chipsetsw/services/Audio/Audio_bgd/audio_bgd_env.c @ 0:509db1a7b7b8
initial import: leo2moko-r1
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Mon, 01 Jun 2015 03:24:05 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:509db1a7b7b8 |
---|---|
1 /****************************************************************************/ | |
2 /* */ | |
3 /* File Name: audio_env_bgd.c */ | |
4 /* */ | |
5 /* Purpose: This file contains routines that will be called in order to: */ | |
6 /* Memory Banks requirements, */ | |
7 /* - set AUDIO BACKGROUND task and memory banks IDs */ | |
8 /* - initialize all the AUDIO BACKGROUND data structures, */ | |
9 /* - start the task */ | |
10 /* - stop the task */ | |
11 /* - kill the task */ | |
12 /* */ | |
13 /* Version 1 */ | |
14 /* */ | |
15 /* Date Modification */ | |
16 /* ------------------------------------ */ | |
17 /* 19 June 2003 Create */ | |
18 /* */ | |
19 /* Author Frederic Turgis */ | |
20 /* */ | |
21 /* (C) Copyright 2001 by Texas Instruments Incorporated, All Rights Reserved*/ | |
22 /****************************************************************************/ | |
23 | |
24 #include "rv/rv_defined_swe.h" | |
25 | |
26 // DO NOT REMOVE: ensures library is not created empty to avoid issue at linking | |
27 void audio_bgd_dummy(void) | |
28 { | |
29 } | |
30 | |
31 #ifdef RVM_AUDIO_BGD_SWE | |
32 | |
33 #include "rvm/rvm_use_id_list.h" | |
34 #include "rvm/rvm_priorities.h" | |
35 #include "rvf/rvf_pool_size.h" | |
36 #include "audio/audio_bgd/audio_bgd_structs_i.h" | |
37 #include "audio/audio_bgd/audio_bgd_macro_i.h" | |
38 #include "audio/audio_pool_size.h" | |
39 | |
40 #include <string.h> | |
41 | |
42 T_RVM_RETURN audio_bgd_get_info (T_RVM_INFO_SWE *infoSWEnt); | |
43 T_RVM_RETURN audio_bgd_set_info(T_RVF_ADDR_ID addrId, | |
44 T_RV_RETURN return_path[], | |
45 T_RVF_MB_ID mbId[], | |
46 T_RVM_RETURN (*callBackFct) ( T_RVM_NAME SWEntName, | |
47 T_RVM_RETURN errorCause, | |
48 T_RVM_ERROR_TYPE errorType, | |
49 T_RVM_STRING errorMsg) ); | |
50 T_RVM_RETURN audio_bgd_init (void); | |
51 T_RVM_RETURN audio_bgd_stop (void); | |
52 T_RVM_RETURN audio_bgd_kill (void); | |
53 | |
54 extern T_RV_RET audio_bgd_core(void); | |
55 | |
56 /* Initialisation of the pointer to the Global Environment Control block */ | |
57 T_AUDIO_BGD_ENV_CTRL_BLK *p_audio_bgd_gbl_var = NULL; | |
58 | |
59 | |
60 /********************************************************************************/ | |
61 /* Function : audio_bgd_get_info */ | |
62 /* */ | |
63 /* Description : This function is called by the Bt Environment to learn */ | |
64 /* audio background requirements in terms of memory, SWEs... */ | |
65 /* */ | |
66 /* Parameters : T_RVM_INFO_SWE * swe_info: pointer to the structure to fill */ | |
67 /* containing infos related to the Audio SWE. */ | |
68 /* */ | |
69 /* Return : T_BTE_RETURN */ | |
70 /* */ | |
71 /* History : 0.1 (11-May-2001) */ | |
72 /* */ | |
73 /* */ | |
74 /********************************************************************************/ | |
75 T_RVM_RETURN audio_bgd_get_info(T_RVM_INFO_SWE *infoSWEnt) | |
76 { | |
77 /* SWE info */ | |
78 infoSWEnt->swe_type = RVM_SWE_TYPE_4; | |
79 infoSWEnt->type_info.type4.swe_use_id = AUDIO_BGD_USE_ID; | |
80 | |
81 memcpy( infoSWEnt->type_info.type4.swe_name, "AUDIO_BGD", sizeof("AUDIO_BGD") ); | |
82 | |
83 infoSWEnt->type_info.type4.stack_size = AUDIO_BGD_STACK_SIZE; | |
84 infoSWEnt->type_info.type4.priority = RVM_AUDIO_BGD_TASK_PRIORITY; | |
85 | |
86 | |
87 /* Set the return path */ | |
88 infoSWEnt->type_info.type4.return_path.callback_func = NULL; | |
89 infoSWEnt->type_info.type4.return_path.addr_id = 0; | |
90 | |
91 | |
92 /* memory bank info */ | |
93 infoSWEnt->type_info.type4.nb_mem_bank = 0x01; | |
94 | |
95 /* Memory bank used to receive/send the message to/from the entity */ | |
96 memcpy ((UINT8 *) ((infoSWEnt->type_info.type4.mem_bank[0]).bank_name), "AUDIO_BGD",sizeof("AUDIO_BGD")); | |
97 ((infoSWEnt->type_info.type4.mem_bank[0]).initial_params).size = AUDIO_BGD_MB1_SIZE; | |
98 ((infoSWEnt->type_info.type4.mem_bank[0]).initial_params).watermark = AUDIO_BGD_MB1_SIZE; | |
99 | |
100 /* linked SWE info */ | |
101 /* this SWE requires no SWE to run in PC environement*/ | |
102 infoSWEnt->type_info.type4.nb_linked_swe = 0x00; | |
103 | |
104 /* generic functions */ | |
105 infoSWEnt->type_info.type4.set_info = audio_bgd_set_info; | |
106 infoSWEnt->type_info.type4.init = audio_bgd_init; | |
107 infoSWEnt->type_info.type4.core = audio_bgd_core; | |
108 infoSWEnt->type_info.type4.stop = audio_bgd_stop; | |
109 infoSWEnt->type_info.type4.kill = audio_bgd_kill; | |
110 | |
111 return (RV_OK); | |
112 } /**************** End of audio_bgd_get_info function ******************************/ | |
113 | |
114 /********************************************************************************/ | |
115 /* Function : audio_bgd_set_info */ | |
116 /* */ | |
117 /* Description : This function is called by the RV Environment to inform */ | |
118 /* the audio SWE about task_id, mb_id and error function. */ | |
119 /* */ | |
120 /* Parameters : - T_RVM_TASK_ID taskId[]: array of task_id. */ | |
121 /* - task_id[0] contains audio task_id. */ | |
122 /* - T_RVF_MB_ID mb_id[]: array of memory bank ids. */ | |
123 /* - callback function to call in case of unrecoverable error. */ | |
124 /* */ | |
125 /* Return : T_RVM_RETURN */ | |
126 /* */ | |
127 /* History : 1 (19-June-2003 ) */ | |
128 /* */ | |
129 /* */ | |
130 /********************************************************************************/ | |
131 T_RVM_RETURN audio_bgd_set_info(T_RVF_ADDR_ID addrId, | |
132 T_RV_RETURN return_path[], | |
133 T_RVF_MB_ID mbId[], | |
134 T_RVM_RETURN (*callBackFct) ( T_RVM_NAME SWEntName, | |
135 T_RVM_RETURN errorCause, | |
136 T_RVM_ERROR_TYPE errorType, | |
137 T_RVM_STRING errorMsg) ) | |
138 { | |
139 | |
140 /* Declare local variable.*/ | |
141 T_RVF_MB_STATUS mb_status = RVF_GREEN; | |
142 | |
143 /* Allocate memory required to store the Global Environment control Block. */ | |
144 mb_status = rvf_get_buf(mbId[1], | |
145 sizeof(T_AUDIO_BGD_ENV_CTRL_BLK), | |
146 (T_RVF_BUFFER **) & p_audio_bgd_gbl_var); | |
147 | |
148 /* If insufficient resources to properly run the AUDIO's task, then abort. */ | |
149 switch (mb_status) | |
150 { | |
151 case RVF_GREEN: | |
152 { | |
153 /* Initialize the Global Environment Control Block */ | |
154 memset((UINT8 *) p_audio_bgd_gbl_var, | |
155 0x00, | |
156 sizeof (T_AUDIO_BGD_ENV_CTRL_BLK)); | |
157 | |
158 /* Store the memory bank IDs assigned to the AUDIO */ | |
159 p_audio_bgd_gbl_var->mb = mbId[0]; | |
160 | |
161 /* Store the address ID assigned to the AUDIO */ | |
162 p_audio_bgd_gbl_var->addrId = addrId; | |
163 | |
164 /* Store the function to be called whenever any unrecoverable */ | |
165 /* error occurs. */ | |
166 p_audio_bgd_gbl_var->callBackFct = callBackFct; | |
167 AUDIO_BGD_SEND_TRACE(" AUDIO BGD (env). information set ", | |
168 RV_TRACE_LEVEL_DEBUG_LOW); | |
169 } | |
170 break; // case RVF_GREEN: | |
171 case RVF_YELLOW: | |
172 { | |
173 rvf_free_buf((T_RVF_BUFFER *) p_audio_bgd_gbl_var); | |
174 AUDIO_BGD_TRACE_WARNING(" AUDIO BGD memory warning (orange memory)"); | |
175 return (RV_MEMORY_ERR); | |
176 } | |
177 break; // case RVF_YELLOW: | |
178 default: | |
179 { | |
180 AUDIO_BGD_TRACE_WARNING(" AUDIO BGD memory warning (red memory)"); | |
181 return (RV_MEMORY_ERR); | |
182 } | |
183 } /* switch (mb_status) */ | |
184 | |
185 return (RV_OK); | |
186 } /*************** End of audio_bgd_set_info function ********************************/ | |
187 | |
188 | |
189 | |
190 /********************************************************************************/ | |
191 /* Function : audio_bgd_init */ | |
192 /* */ | |
193 /* Description : This function is called by the BT Environment to initialize the*/ | |
194 /* audio SWE before creating the task and calling audio_start. */ | |
195 /* */ | |
196 /* Parameters : None */ | |
197 /* */ | |
198 /* Return : T_RVM_RETURN */ | |
199 /* */ | |
200 /* History : 0.1 (20-August-2000) */ | |
201 /* */ | |
202 /* */ | |
203 /********************************************************************************/ | |
204 T_RVM_RETURN audio_bgd_init(void) | |
205 { | |
206 /* Put global audio initialization */ | |
207 | |
208 return RV_OK; | |
209 } | |
210 | |
211 | |
212 /*************************************************************************************/ | |
213 /* Function : audio_bgd_stop */ | |
214 /* */ | |
215 /* Description : This function is called by the BT Environment to stop the audio SWE.*/ | |
216 /* */ | |
217 /* Parameters : None */ | |
218 /* */ | |
219 /* Return : T_RVM_RETURN */ | |
220 /* */ | |
221 /* History : 0.1 (11-May-2001) */ | |
222 /* */ | |
223 /* */ | |
224 /*************************************************************************************/ | |
225 T_RVM_RETURN audio_bgd_stop(void) | |
226 { | |
227 /* other SWEs have not been killed yet, audio can send messages to other SWEs */ | |
228 | |
229 return RV_OK; | |
230 } | |
231 | |
232 | |
233 /*************************************************************************************/ | |
234 /* Function : audio_bgd_kill */ | |
235 /* */ | |
236 /* Description : This function is called by the BT Environment to kill the audio */ | |
237 /* SWE, after the audio_stop function has been called. */ | |
238 /* */ | |
239 /* Parameters : None */ | |
240 /* */ | |
241 /* Return : T_BTE_RETURN */ | |
242 /* */ | |
243 /* History : 0.1 (11-May-2001) */ | |
244 /* */ | |
245 /* */ | |
246 /*************************************************************************************/ | |
247 T_RVM_RETURN audio_bgd_kill (void) | |
248 { | |
249 /* free all memory buffer previously allocated */ | |
250 rvf_free_buf ((T_RVF_BUFFER *) p_audio_bgd_gbl_var); | |
251 return RV_OK; | |
252 } | |
253 | |
254 #endif // #ifdef RVM_AUDIO_BGD_SWE |