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 */