FreeCalypso > hg > fc-magnetite
comparison src/g23m-aci/aci/ati_audio.c @ 563:d648cafa30cf
aci3: implemented AT@E1STOP and AT@E2STOP commands
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 06 Jan 2019 23:37:13 +0000 |
parents | 8473cabf491d |
children | ade27cd84b97 |
comparison
equal
deleted
inserted
replaced
562:adae731ae50d | 563:d648cafa30cf |
---|---|
212 | 212 |
213 return (ATI_CMPL); | 213 return (ATI_CMPL); |
214 } | 214 } |
215 #endif | 215 #endif |
216 | 216 |
217 static char melody_E1_name[AUDIO_PATH_NAME_MAX_SIZE]; | |
218 | |
217 /* AT@E1 - play an E1 format melody */ | 219 /* AT@E1 - play an E1 format melody */ |
218 GLOBAL T_ATI_RSLT atAtE1 ( char *cl, UBYTE srcId ) | 220 GLOBAL T_ATI_RSLT atAtE1 ( char *cl, UBYTE srcId ) |
219 { | 221 { |
220 T_AUDIO_MELODY_E1_PARAMETER e1_param; | 222 T_AUDIO_MELODY_E1_PARAMETER e1_param; |
221 T_RV_RETURN return_path; | 223 T_RV_RETURN return_path; |
227 e1_param.loopback = AUDIO_MELODY_NO_LOOPBACK; | 229 e1_param.loopback = AUDIO_MELODY_NO_LOOPBACK; |
228 e1_param.melody_mode = AUDIO_MELODY_NORMAL_MODE; | 230 e1_param.melody_mode = AUDIO_MELODY_NORMAL_MODE; |
229 | 231 |
230 return_path.addr_id = NULL; | 232 return_path.addr_id = NULL; |
231 return_path.callback_func = audio_callback; | 233 return_path.callback_func = audio_callback; |
232 if (audio_melody_E1_start(&e1_param, return_path) == AUDIO_OK) | 234 if (audio_melody_E1_start(&e1_param, return_path) == AUDIO_OK) { |
233 return (ATI_CMPL); | 235 strcpy(melody_E1_name, e1_param.melody_name); |
234 else | 236 return (ATI_CMPL); |
235 return (ATI_FAIL); | 237 } else |
236 } | 238 return (ATI_FAIL); |
239 } | |
240 | |
241 /* AT@E1STOP - stop melody started with AT@E1 */ | |
242 GLOBAL T_ATI_RSLT atAtE1STOP ( char *cl, UBYTE srcId ) | |
243 { | |
244 T_AUDIO_MELODY_E1_STOP_PARAMETER e1stop_param; | |
245 T_RV_RETURN return_path; | |
246 | |
247 if (!melody_E1_name[0]) | |
248 return (ATI_FAIL); | |
249 strcpy(e1stop_param.melody_name, melody_E1_name); | |
250 | |
251 return_path.addr_id = NULL; | |
252 return_path.callback_func = audio_callback; | |
253 if (audio_melody_E1_stop(&e1stop_param, return_path) == AUDIO_OK) | |
254 return (ATI_CMPL); | |
255 else | |
256 return (ATI_FAIL); | |
257 } | |
258 | |
259 static char melody_E2_name[AUDIO_PATH_NAME_MAX_SIZE]; | |
237 | 260 |
238 /* AT@E2 - play an E2 format melody */ | 261 /* AT@E2 - play an E2 format melody */ |
239 GLOBAL T_ATI_RSLT atAtE2 ( char *cl, UBYTE srcId ) | 262 GLOBAL T_ATI_RSLT atAtE2 ( char *cl, UBYTE srcId ) |
240 { | 263 { |
241 T_AUDIO_MELODY_E2_PARAMETER e2_param; | 264 T_AUDIO_MELODY_E2_PARAMETER e2_param; |
248 e2_param.E2_loopback = AUDIO_MELODY_NO_LOOPBACK; | 271 e2_param.E2_loopback = AUDIO_MELODY_NO_LOOPBACK; |
249 e2_param.melody_E2_mode = AUDIO_MELODY_NORMAL_MODE; | 272 e2_param.melody_E2_mode = AUDIO_MELODY_NORMAL_MODE; |
250 | 273 |
251 return_path.addr_id = NULL; | 274 return_path.addr_id = NULL; |
252 return_path.callback_func = audio_callback; | 275 return_path.callback_func = audio_callback; |
253 if (audio_melody_E2_start(&e2_param, return_path) == AUDIO_OK) | 276 if (audio_melody_E2_start(&e2_param, return_path) == AUDIO_OK) { |
254 return (ATI_CMPL); | 277 strcpy(melody_E2_name, e2_param.melody_E2_name); |
255 else | 278 return (ATI_CMPL); |
279 } else | |
256 return (ATI_FAIL); | 280 return (ATI_FAIL); |
257 } | 281 } |
258 | 282 |
259 /* AT@E2LSI - load melody E2 instrument list file */ | 283 /* AT@E2LSI - load melody E2 instrument list file */ |
260 GLOBAL T_ATI_RSLT atAtE2LSI ( char *cl, UBYTE srcId ) | 284 GLOBAL T_ATI_RSLT atAtE2LSI ( char *cl, UBYTE srcId ) |
265 e2_lsi_param.melody_E2_file_name); | 289 e2_lsi_param.melody_E2_file_name); |
266 if (!cl || !e2_lsi_param.melody_E2_file_name[0]) | 290 if (!cl || !e2_lsi_param.melody_E2_file_name[0]) |
267 return (ATI_FAIL); | 291 return (ATI_FAIL); |
268 | 292 |
269 if (audio_melody_E2_load_file_instruments(&e2_lsi_param) == AUDIO_OK) | 293 if (audio_melody_E2_load_file_instruments(&e2_lsi_param) == AUDIO_OK) |
294 return (ATI_CMPL); | |
295 else | |
296 return (ATI_FAIL); | |
297 } | |
298 | |
299 /* AT@E2STOP - stop melody started with AT@E2 */ | |
300 GLOBAL T_ATI_RSLT atAtE2STOP ( char *cl, UBYTE srcId ) | |
301 { | |
302 T_AUDIO_MELODY_E2_STOP_PARAMETER e2stop_param; | |
303 T_RV_RETURN return_path; | |
304 | |
305 if (!melody_E2_name[0]) | |
306 return (ATI_FAIL); | |
307 strcpy(e2stop_param.melody_E2_name, melody_E2_name); | |
308 | |
309 return_path.addr_id = NULL; | |
310 return_path.callback_func = audio_callback; | |
311 if (audio_melody_E2_stop(&e2stop_param, return_path) == AUDIO_OK) | |
270 return (ATI_CMPL); | 312 return (ATI_CMPL); |
271 else | 313 else |
272 return (ATI_FAIL); | 314 return (ATI_FAIL); |
273 } | 315 } |
274 | 316 |