FreeCalypso > hg > fc-magnetite
comparison src/aci2/aci/ati_audio.c @ 240:9034c3a7267e
Voice memo recording and playback test AT commands implemented
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Wed, 22 Mar 2017 07:07:15 +0000 |
parents | e0b9c21d7908 |
children | bec9198fc306 |
comparison
equal
deleted
inserted
replaced
239:e0b9c21d7908 | 240:9034c3a7267e |
---|---|
185 return (ATI_CMPL); | 185 return (ATI_CMPL); |
186 else | 186 else |
187 return (ATI_FAIL); | 187 return (ATI_FAIL); |
188 } | 188 } |
189 | 189 |
190 /* AT@VMP - play back a voice memo recording */ | |
191 GLOBAL T_ATI_RSLT atAtVMP ( char *cl, UBYTE srcId ) | |
192 { | |
193 T_AUDIO_VM_PLAY_PARAMETER play_param; | |
194 T_RV_RETURN return_path; | |
195 | |
196 play_param.memo_name[0] = 0; | |
197 cl = parse(cl, "s", (LONG)(sizeof(play_param.memo_name) - 1), | |
198 play_param.memo_name); | |
199 if (!play_param.memo_name[0]) | |
200 return (ATI_FAIL); | |
201 | |
202 return_path.addr_id = NULL; | |
203 return_path.callback_func = audio_callback; | |
204 if (audio_vm_play_start(&play_param, return_path) == AUDIO_OK) | |
205 return (ATI_CMPL); | |
206 else | |
207 return (ATI_FAIL); | |
208 } | |
209 | |
210 /* AT@VMPS - stop VM play started with AT@VMP */ | |
211 GLOBAL T_ATI_RSLT atAtVMPS ( char *cl, UBYTE srcId ) | |
212 { | |
213 T_RV_RETURN return_path; | |
214 | |
215 return_path.addr_id = NULL; | |
216 return_path.callback_func = audio_callback; | |
217 if (audio_vm_play_stop(return_path) == AUDIO_OK) | |
218 return (ATI_CMPL); | |
219 else | |
220 return (ATI_FAIL); | |
221 } | |
222 | |
223 static const T_AUDIO_TONES_PARAMETER recorder_warning_tone = { | |
224 0, 500, 1400, -5, | |
225 0, 500, 0, 0, | |
226 0, 500, 0, 0, | |
227 500, 500, 15000, TONE_INFINITE | |
228 }; | |
229 | |
230 /* AT@VMR - record a voice memo */ | |
231 GLOBAL T_ATI_RSLT atAtVMR ( char *cl, UBYTE srcId ) | |
232 { | |
233 T_AUDIO_VM_RECORD_PARAMETER record_param; | |
234 int duration = 0, compression = 0; | |
235 LONG mic_gain = 0x100, network_gain = 0x100; | |
236 T_RV_RETURN return_path; | |
237 | |
238 record_param.memo_name[0] = 0; | |
239 cl = parse(cl, "sddyy", (LONG)(sizeof(record_param.memo_name) - 1), | |
240 record_param.memo_name, &duration, &compression, | |
241 &mic_gain, &network_gain); | |
242 if (!record_param.memo_name[0] || !duration) | |
243 return (ATI_FAIL); | |
244 record_param.memo_duration = duration; | |
245 record_param.compression_mode = compression; | |
246 record_param.microphone_gain = mic_gain; | |
247 record_param.network_gain = network_gain; | |
248 | |
249 return_path.addr_id = NULL; | |
250 return_path.callback_func = audio_callback; | |
251 if (audio_vm_record_start(&record_param, | |
252 (T_AUDIO_TONES_PARAMETER *) | |
253 &recorder_warning_tone, | |
254 return_path) == AUDIO_OK) | |
255 return (ATI_CMPL); | |
256 else | |
257 return (ATI_FAIL); | |
258 } | |
259 | |
260 /* AT@VMRS - stop VM recording started with AT@VMR */ | |
261 GLOBAL T_ATI_RSLT atAtVMRS ( char *cl, UBYTE srcId ) | |
262 { | |
263 T_RV_RETURN return_path; | |
264 | |
265 return_path.addr_id = NULL; | |
266 return_path.callback_func = audio_callback; | |
267 if (audio_vm_record_stop(return_path) == AUDIO_OK) | |
268 return (ATI_CMPL); | |
269 else | |
270 return (ATI_FAIL); | |
271 } | |
272 | |
190 #endif /* ATI_AUDIO_C */ | 273 #endif /* ATI_AUDIO_C */ |