FreeCalypso > hg > fc-magnetite
annotate src/aci2/aci/ati_audio.c @ 516:1ed9de6c90bd
src/g23m-gsm/sms/sms_for.c: bogus malloc removed
The new error handling code that was not present in TCS211 blob version
contains a malloc call that is bogus for 3 reasons:
1) The memory allocation in question is not needed in the first place;
2) libc malloc is used instead of one of the firmware's proper ways;
3) The memory allocation is made inside a function and then never freed,
i.e., a memory leak.
This bug was caught in gcc-built FreeCalypso fw projects (Citrine
and Selenite) because our gcc environment does not allow any use of
libc malloc (any reference to malloc produces a link failure),
but this code from TCS3.2 is wrong even for Magnetite: if this code
path is executed repeatedly over a long time, the many small allocations
made by this malloc call without a subsequent free will eventually
exhaust the malloc heap provided by the TMS470 environment, malloc will
start returning NULL, and the bogus code will treat it as an error.
Because the memory allocation in question is not needed at all,
the fix entails simply removing it.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 22 Jul 2018 06:04:49 +0000 |
parents | bc1654e1e80d |
children | 96c1d047b3c6 |
rev | line source |
---|---|
226
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * This ATI module and the AT commands implemented therein are a FreeCalypso |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * addition. The purpose of these AT commands is to exercise the audio |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 * capabilities of the firmware - by using these commands, you should be |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 * able to emit sounds from the speaker or record voice from the microphone |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 * without needing to be in a call, and without bringing up GSM at all. |
245
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
7 * |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
8 * Our corrected implementation of the AT@AUL command (originally added |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
9 * by Openmoko) has been moved into this module as well. |
226
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 */ |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 #ifndef ATI_AUDIO_C |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 #define ATI_AUDIO_C |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 #include "aci_all.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 #include <ctype.h> |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 #include <string.h> |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 #include "aci_cmh.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 #include "ati_cmd.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 #include "aci_cmd.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 #include "aci_io.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 #include "aci_cmd.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 #include "l4_tim.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 #include "line_edit.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 #include "aci_lst.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 #include "pcm.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 #include "audio.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 #include "aci.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 #include "rx.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 #include "pwr.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 #include "l4_tim.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 #ifdef GPRS |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 #ifdef DTI |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 #include "dti.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 #include "dti_conn_mng.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 #include "dti_cntrl_mng.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 #endif /* DTI */ |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 #include "gaci.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 #include "gaci_cmh.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 #include "gaci_cmd.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 #endif /* GPRS */ |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 #include "aci_mem.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 #include "aci_prs.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 #include "ati_int.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 #ifndef _SIMULATION_ |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 #include "ffs/ffs.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 #endif |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 #ifdef FF_ATI_BAT |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 #include "typedefs.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 #include "gdd.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 #include "bat.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 #include "ati_bat.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 #endif /*FF_ATI_BAT*/ |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 #include "audio/audio_api.h" |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 #include "audio.h" /* Condat */ |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 |
264
3edeadec6804
aci2: AT@SPKR command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
245
diff
changeset
|
69 #include "fc-target.cfg" |
3edeadec6804
aci2: AT@SPKR command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
245
diff
changeset
|
70 #include "armio.h" |
3edeadec6804
aci2: AT@SPKR command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
245
diff
changeset
|
71 |
410
bc1654e1e80d
AT@SPKR command in aci2 enabled for the D-Sample target
Mychaela Falconia <falcon@freecalypso.org>
parents:
289
diff
changeset
|
72 #if defined(CONFIG_TARGET_DSAMPLE) || defined(CONFIG_TARGET_FCDEV3B) |
264
3edeadec6804
aci2: AT@SPKR command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
245
diff
changeset
|
73 /* AT@SPKR - turn loudspeaker amplifier on or off */ |
3edeadec6804
aci2: AT@SPKR command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
245
diff
changeset
|
74 GLOBAL T_ATI_RSLT atAtSPKR ( char *cl, UBYTE srcId ) |
3edeadec6804
aci2: AT@SPKR command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
245
diff
changeset
|
75 { |
3edeadec6804
aci2: AT@SPKR command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
245
diff
changeset
|
76 int state; |
3edeadec6804
aci2: AT@SPKR command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
245
diff
changeset
|
77 |
287
d85305a74518
aci2 AT@SPKR command: added query operation
Mychaela Falconia <falcon@freecalypso.org>
parents:
264
diff
changeset
|
78 TRACE_FUNCTION("atAtSPKR()"); |
d85305a74518
aci2 AT@SPKR command: added query operation
Mychaela Falconia <falcon@freecalypso.org>
parents:
264
diff
changeset
|
79 |
264
3edeadec6804
aci2: AT@SPKR command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
245
diff
changeset
|
80 cl = parse(cl, "D", &state); |
3edeadec6804
aci2: AT@SPKR command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
245
diff
changeset
|
81 if (!cl) |
3edeadec6804
aci2: AT@SPKR command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
245
diff
changeset
|
82 return (ATI_FAIL); |
3edeadec6804
aci2: AT@SPKR command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
245
diff
changeset
|
83 if (state) |
3edeadec6804
aci2: AT@SPKR command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
245
diff
changeset
|
84 AI_SetBit(1); |
3edeadec6804
aci2: AT@SPKR command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
245
diff
changeset
|
85 else |
3edeadec6804
aci2: AT@SPKR command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
245
diff
changeset
|
86 AI_ResetBit(1); |
3edeadec6804
aci2: AT@SPKR command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
245
diff
changeset
|
87 return (ATI_CMPL); |
3edeadec6804
aci2: AT@SPKR command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
245
diff
changeset
|
88 } |
287
d85305a74518
aci2 AT@SPKR command: added query operation
Mychaela Falconia <falcon@freecalypso.org>
parents:
264
diff
changeset
|
89 |
d85305a74518
aci2 AT@SPKR command: added query operation
Mychaela Falconia <falcon@freecalypso.org>
parents:
264
diff
changeset
|
90 GLOBAL T_ATI_RSLT queatAtSPKR (char *cl, UBYTE srcId) |
d85305a74518
aci2 AT@SPKR command: added query operation
Mychaela Falconia <falcon@freecalypso.org>
parents:
264
diff
changeset
|
91 { |
d85305a74518
aci2 AT@SPKR command: added query operation
Mychaela Falconia <falcon@freecalypso.org>
parents:
264
diff
changeset
|
92 char *me="@SPKR: "; |
d85305a74518
aci2 AT@SPKR command: added query operation
Mychaela Falconia <falcon@freecalypso.org>
parents:
264
diff
changeset
|
93 int state; |
d85305a74518
aci2 AT@SPKR command: added query operation
Mychaela Falconia <falcon@freecalypso.org>
parents:
264
diff
changeset
|
94 |
d85305a74518
aci2 AT@SPKR command: added query operation
Mychaela Falconia <falcon@freecalypso.org>
parents:
264
diff
changeset
|
95 TRACE_FUNCTION("queatAtSPKR()"); |
d85305a74518
aci2 AT@SPKR command: added query operation
Mychaela Falconia <falcon@freecalypso.org>
parents:
264
diff
changeset
|
96 |
d85305a74518
aci2 AT@SPKR command: added query operation
Mychaela Falconia <falcon@freecalypso.org>
parents:
264
diff
changeset
|
97 state = AI_ReadBit(1); |
d85305a74518
aci2 AT@SPKR command: added query operation
Mychaela Falconia <falcon@freecalypso.org>
parents:
264
diff
changeset
|
98 sprintf(g_sa, "%s%d", me, state); |
d85305a74518
aci2 AT@SPKR command: added query operation
Mychaela Falconia <falcon@freecalypso.org>
parents:
264
diff
changeset
|
99 |
d85305a74518
aci2 AT@SPKR command: added query operation
Mychaela Falconia <falcon@freecalypso.org>
parents:
264
diff
changeset
|
100 io_sendMessage(srcId, g_sa, ATI_NORMAL_OUTPUT); |
d85305a74518
aci2 AT@SPKR command: added query operation
Mychaela Falconia <falcon@freecalypso.org>
parents:
264
diff
changeset
|
101 |
d85305a74518
aci2 AT@SPKR command: added query operation
Mychaela Falconia <falcon@freecalypso.org>
parents:
264
diff
changeset
|
102 return (ATI_CMPL); |
d85305a74518
aci2 AT@SPKR command: added query operation
Mychaela Falconia <falcon@freecalypso.org>
parents:
264
diff
changeset
|
103 } |
264
3edeadec6804
aci2: AT@SPKR command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
245
diff
changeset
|
104 #endif |
3edeadec6804
aci2: AT@SPKR command implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
245
diff
changeset
|
105 |
226
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 /* AT@SND - emit sound through Condat API */ |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 GLOBAL T_ATI_RSLT atAtSND ( char *cl, UBYTE srcId ) |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 { |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 UBYTE sound_id = TONES_KEYBEEP; |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 cl = parse(cl, "x", &sound_id); |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 audio_PlaySoundID(AUDIO_SPEAKER, sound_id, 0, AUDIO_PLAY_ONCE); |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 return (ATI_CMPL); |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 } |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 static void audio_callback(void *event_from_audio) |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 { |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 /* do nothing at this time */ |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 } |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 |
245
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
121 /* |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
122 * PURPOSE : @AUL command (Audio table load) |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
123 */ |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
124 |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
125 static char aul_name[AUDIO_MODE_FILENAME_MAX_SIZE]; |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
126 |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
127 GLOBAL T_ATI_RSLT atAtAUL (char *cl, UBYTE srcId) |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
128 { |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
129 T_AUDIO_MODE_LOAD aul_param; |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
130 T_RV_RETURN return_path; |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
131 |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
132 TRACE_FUNCTION("atAtAUL()"); |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
133 |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
134 cl = parse(cl, "S", (LONG)(sizeof(aul_param.audio_mode_filename)), |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
135 aul_param.audio_mode_filename); |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
136 if (!cl || !aul_param.audio_mode_filename[0]) |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
137 return (ATI_FAIL); |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
138 |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
139 /* Openmoko backward compatibility */ |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
140 if (isdigit(aul_param.audio_mode_filename[0]) && |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
141 !aul_param.audio_mode_filename[1]) |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
142 sprintf(aul_param.audio_mode_filename, "para%c", |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
143 aul_param.audio_mode_filename[0]); |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
144 |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
145 return_path.addr_id = NULL; |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
146 return_path.callback_func = audio_callback; |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
147 if (audio_mode_load(&aul_param, return_path) == AUDIO_OK) { |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
148 strcpy(aul_name, aul_param.audio_mode_filename); |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
149 return (ATI_CMPL); |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
150 } else |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
151 return (ATI_FAIL); |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
152 } |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
153 |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
154 GLOBAL T_ATI_RSLT queatAtAUL (char *cl, UBYTE srcId) |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
155 { |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
156 char *me="@AUL: "; |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
157 |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
158 TRACE_FUNCTION("queatAtAUL()"); |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
159 |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
160 if (aul_name[0]) |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
161 sprintf(g_sa, "%s/aud/%s.cfg", me, aul_name); |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
162 else |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
163 sprintf(g_sa, "%s", me); |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
164 |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
165 io_sendMessage(srcId, g_sa, ATI_NORMAL_OUTPUT); |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
166 |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
167 return (ATI_CMPL); |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
168 } |
3b8d291ed45a
aci2: AT@AUL reimplemented in the new FreeCalypso way
Mychaela Falconia <falcon@freecalypso.org>
parents:
244
diff
changeset
|
169 |
288
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
170 #ifdef CONFIG_TARGET_FCDEV3B |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
171 /* AT@VPATH - configure digital voice path */ |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
172 GLOBAL T_ATI_RSLT atAtVPATH ( char *cl, UBYTE srcId ) |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
173 { |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
174 int vpath_int; |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
175 T_AUDIO_VOICE_PATH_SETTING vpath; |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
176 T_AUDIO_FULL_ACCESS_WRITE audio_param; |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
177 T_RV_RETURN return_path; |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
178 |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
179 TRACE_FUNCTION("atAtVPATH()"); |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
180 |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
181 cl = parse(cl, "D", &vpath_int); |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
182 if (!cl) |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
183 return (ATI_FAIL); |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
184 vpath = vpath_int; |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
185 audio_param.variable_indentifier = AUDIO_PATH_USED; |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
186 audio_param.data = &vpath; |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
187 |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
188 return_path.addr_id = NULL; |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
189 return_path.callback_func = audio_callback; |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
190 if (audio_full_access_write(&audio_param, return_path) == AUDIO_OK) |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
191 return (ATI_CMPL); |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
192 else |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
193 return (ATI_FAIL); |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
194 } |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
195 |
289
8dd51b740701
AT@VPATH query implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
288
diff
changeset
|
196 GLOBAL T_ATI_RSLT queatAtVPATH (char *cl, UBYTE srcId) |
8dd51b740701
AT@VPATH query implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
288
diff
changeset
|
197 { |
8dd51b740701
AT@VPATH query implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
288
diff
changeset
|
198 char *me="@VPATH: "; |
8dd51b740701
AT@VPATH query implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
288
diff
changeset
|
199 T_AUDIO_VOICE_PATH_SETTING vpath; |
8dd51b740701
AT@VPATH query implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
288
diff
changeset
|
200 T_AUDIO_FULL_ACCESS_READ audio_param; |
8dd51b740701
AT@VPATH query implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
288
diff
changeset
|
201 |
8dd51b740701
AT@VPATH query implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
288
diff
changeset
|
202 TRACE_FUNCTION("queatAtVPATH()"); |
8dd51b740701
AT@VPATH query implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
288
diff
changeset
|
203 |
8dd51b740701
AT@VPATH query implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
288
diff
changeset
|
204 audio_param.variable_indentifier = AUDIO_PATH_USED; |
8dd51b740701
AT@VPATH query implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
288
diff
changeset
|
205 audio_param.data = &vpath; |
8dd51b740701
AT@VPATH query implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
288
diff
changeset
|
206 if (audio_full_access_read(&audio_param) != AUDIO_OK) |
8dd51b740701
AT@VPATH query implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
288
diff
changeset
|
207 return (ATI_FAIL); |
8dd51b740701
AT@VPATH query implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
288
diff
changeset
|
208 |
8dd51b740701
AT@VPATH query implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
288
diff
changeset
|
209 sprintf(g_sa, "%s%d", me, vpath); |
8dd51b740701
AT@VPATH query implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
288
diff
changeset
|
210 |
8dd51b740701
AT@VPATH query implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
288
diff
changeset
|
211 io_sendMessage(srcId, g_sa, ATI_NORMAL_OUTPUT); |
8dd51b740701
AT@VPATH query implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
288
diff
changeset
|
212 |
8dd51b740701
AT@VPATH query implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
288
diff
changeset
|
213 return (ATI_CMPL); |
8dd51b740701
AT@VPATH query implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
288
diff
changeset
|
214 } |
288
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
215 #endif |
dd3374eac8a3
AT@VPATH setting implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
287
diff
changeset
|
216 |
226
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 /* AT@E1 - play an E1 format melody */ |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218 GLOBAL T_ATI_RSLT atAtE1 ( char *cl, UBYTE srcId ) |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219 { |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220 T_AUDIO_MELODY_E1_PARAMETER e1_param; |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221 T_RV_RETURN return_path; |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222 |
244
bec9198fc306
aci2 ati_audio.c: my understanding of the 's' parser type was incorrect
Mychaela Falconia <falcon@freecalypso.org>
parents:
240
diff
changeset
|
223 cl = parse(cl, "S", (LONG)(sizeof(e1_param.melody_name)), |
226
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
224 e1_param.melody_name); |
244
bec9198fc306
aci2 ati_audio.c: my understanding of the 's' parser type was incorrect
Mychaela Falconia <falcon@freecalypso.org>
parents:
240
diff
changeset
|
225 if (!cl || !e1_param.melody_name[0]) |
226
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226 return (ATI_FAIL); |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227 e1_param.loopback = AUDIO_MELODY_NO_LOOPBACK; |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
228 e1_param.melody_mode = AUDIO_MELODY_NORMAL_MODE; |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
229 |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
230 return_path.addr_id = NULL; |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
231 return_path.callback_func = audio_callback; |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
232 if (audio_melody_E1_start(&e1_param, return_path) == AUDIO_OK) |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
233 return (ATI_CMPL); |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
234 else |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235 return (ATI_FAIL); |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236 } |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237 |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
238 /* AT@E2 - play an E2 format melody */ |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
239 GLOBAL T_ATI_RSLT atAtE2 ( char *cl, UBYTE srcId ) |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
240 { |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
241 T_AUDIO_MELODY_E2_PARAMETER e2_param; |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
242 T_RV_RETURN return_path; |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
243 |
244
bec9198fc306
aci2 ati_audio.c: my understanding of the 's' parser type was incorrect
Mychaela Falconia <falcon@freecalypso.org>
parents:
240
diff
changeset
|
244 cl = parse(cl, "S", (LONG)(sizeof(e2_param.melody_E2_name)), |
226
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
245 e2_param.melody_E2_name); |
244
bec9198fc306
aci2 ati_audio.c: my understanding of the 's' parser type was incorrect
Mychaela Falconia <falcon@freecalypso.org>
parents:
240
diff
changeset
|
246 if (!cl || !e2_param.melody_E2_name[0]) |
226
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
247 return (ATI_FAIL); |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
248 e2_param.E2_loopback = AUDIO_MELODY_NO_LOOPBACK; |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
249 e2_param.melody_E2_mode = AUDIO_MELODY_NORMAL_MODE; |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
250 |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
251 return_path.addr_id = NULL; |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
252 return_path.callback_func = audio_callback; |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
253 if (audio_melody_E2_start(&e2_param, return_path) == AUDIO_OK) |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
254 return (ATI_CMPL); |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
255 else |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
256 return (ATI_FAIL); |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
257 } |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
258 |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
259 /* AT@E2LSI - load melody E2 instrument list file */ |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
260 GLOBAL T_ATI_RSLT atAtE2LSI ( char *cl, UBYTE srcId ) |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
261 { |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
262 T_AUDIO_MELODY_E2_LOAD_FILE_INSTR_PARAMETER e2_lsi_param; |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
263 |
244
bec9198fc306
aci2 ati_audio.c: my understanding of the 's' parser type was incorrect
Mychaela Falconia <falcon@freecalypso.org>
parents:
240
diff
changeset
|
264 cl = parse(cl, "S", (LONG)(sizeof(e2_lsi_param.melody_E2_file_name)), |
226
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
265 e2_lsi_param.melody_E2_file_name); |
244
bec9198fc306
aci2 ati_audio.c: my understanding of the 's' parser type was incorrect
Mychaela Falconia <falcon@freecalypso.org>
parents:
240
diff
changeset
|
266 if (!cl || !e2_lsi_param.melody_E2_file_name[0]) |
226
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
267 return (ATI_FAIL); |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
268 |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
269 if (audio_melody_E2_load_file_instruments(&e2_lsi_param) == AUDIO_OK) |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
270 return (ATI_CMPL); |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
271 else |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
272 return (ATI_FAIL); |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
273 } |
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
274 |
239
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
275 /* AT@TONE - exercise TONES through RiViera Audio Service API */ |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
276 GLOBAL T_ATI_RSLT atAtTONE ( char *cl, UBYTE srcId ) |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
277 { |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
278 int tone_start[3], tone_stop[3], tone_freq[3], tone_ampl[3]; |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
279 int frame_dur, sequence_dur, period_dur, repetition; |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
280 int i; |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
281 T_AUDIO_TONES_PARAMETER t; |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
282 T_RV_RETURN return_path; |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
283 |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
284 cl = parse(cl, "DDDDDDDDDDDDDDDD", |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
285 &tone_start[0], &tone_stop[0], &tone_freq[0], &tone_ampl[0], |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
286 &tone_start[1], &tone_stop[1], &tone_freq[1], &tone_ampl[1], |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
287 &tone_start[2], &tone_stop[2], &tone_freq[2], &tone_ampl[2], |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
288 &frame_dur, &sequence_dur, &period_dur, &repetition); |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
289 if (!cl) |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
290 return (ATI_FAIL); |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
291 for (i = 0; i < 3; i++) { |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
292 t.tones[i].start_tone = tone_start[i]; |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
293 t.tones[i].stop_tone = tone_stop[i]; |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
294 t.tones[i].frequency_tone = tone_freq[i]; |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
295 t.tones[i].amplitude_tone = -tone_ampl[i]; |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
296 } |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
297 t.frame_duration = frame_dur; |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
298 t.sequence_duration = sequence_dur; |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
299 t.period_duration = period_dur; |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
300 t.repetition = repetition; |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
301 |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
302 return_path.addr_id = NULL; |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
303 return_path.callback_func = audio_callback; |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
304 if (audio_tones_start(&t, return_path) == AUDIO_OK) |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
305 return (ATI_CMPL); |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
306 else |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
307 return (ATI_FAIL); |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
308 } |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
309 |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
310 /* AT@TSTOP - stop tones started with AT@TONE */ |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
311 GLOBAL T_ATI_RSLT atAtTSTOP ( char *cl, UBYTE srcId ) |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
312 { |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
313 T_RV_RETURN return_path; |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
314 |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
315 return_path.addr_id = NULL; |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
316 return_path.callback_func = audio_callback; |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
317 if (audio_tones_stop(return_path) == AUDIO_OK) |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
318 return (ATI_CMPL); |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
319 else |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
320 return (ATI_FAIL); |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
321 } |
e0b9c21d7908
AT@TONE and AT@TSTOP audio test commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
226
diff
changeset
|
322 |
240
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
323 /* AT@VMP - play back a voice memo recording */ |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
324 GLOBAL T_ATI_RSLT atAtVMP ( char *cl, UBYTE srcId ) |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
325 { |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
326 T_AUDIO_VM_PLAY_PARAMETER play_param; |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
327 T_RV_RETURN return_path; |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
328 |
244
bec9198fc306
aci2 ati_audio.c: my understanding of the 's' parser type was incorrect
Mychaela Falconia <falcon@freecalypso.org>
parents:
240
diff
changeset
|
329 cl = parse(cl, "S", (LONG)(sizeof(play_param.memo_name)), |
240
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
330 play_param.memo_name); |
244
bec9198fc306
aci2 ati_audio.c: my understanding of the 's' parser type was incorrect
Mychaela Falconia <falcon@freecalypso.org>
parents:
240
diff
changeset
|
331 if (!cl || !play_param.memo_name[0]) |
240
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
332 return (ATI_FAIL); |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
333 |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
334 return_path.addr_id = NULL; |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
335 return_path.callback_func = audio_callback; |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
336 if (audio_vm_play_start(&play_param, return_path) == AUDIO_OK) |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
337 return (ATI_CMPL); |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
338 else |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
339 return (ATI_FAIL); |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
340 } |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
341 |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
342 /* AT@VMPS - stop VM play started with AT@VMP */ |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
343 GLOBAL T_ATI_RSLT atAtVMPS ( char *cl, UBYTE srcId ) |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
344 { |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
345 T_RV_RETURN return_path; |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
346 |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
347 return_path.addr_id = NULL; |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
348 return_path.callback_func = audio_callback; |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
349 if (audio_vm_play_stop(return_path) == AUDIO_OK) |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
350 return (ATI_CMPL); |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
351 else |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
352 return (ATI_FAIL); |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
353 } |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
354 |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
355 static const T_AUDIO_TONES_PARAMETER recorder_warning_tone = { |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
356 0, 500, 1400, -5, |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
357 0, 500, 0, 0, |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
358 0, 500, 0, 0, |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
359 500, 500, 15000, TONE_INFINITE |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
360 }; |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
361 |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
362 /* AT@VMR - record a voice memo */ |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
363 GLOBAL T_ATI_RSLT atAtVMR ( char *cl, UBYTE srcId ) |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
364 { |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
365 T_AUDIO_VM_RECORD_PARAMETER record_param; |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
366 int duration = 0, compression = 0; |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
367 LONG mic_gain = 0x100, network_gain = 0x100; |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
368 T_RV_RETURN return_path; |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
369 |
244
bec9198fc306
aci2 ati_audio.c: my understanding of the 's' parser type was incorrect
Mychaela Falconia <falcon@freecalypso.org>
parents:
240
diff
changeset
|
370 cl = parse(cl, "Sddyy", (LONG)(sizeof(record_param.memo_name)), |
240
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
371 record_param.memo_name, &duration, &compression, |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
372 &mic_gain, &network_gain); |
244
bec9198fc306
aci2 ati_audio.c: my understanding of the 's' parser type was incorrect
Mychaela Falconia <falcon@freecalypso.org>
parents:
240
diff
changeset
|
373 if (!cl || !record_param.memo_name[0] || !duration) |
240
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
374 return (ATI_FAIL); |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
375 record_param.memo_duration = duration; |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
376 record_param.compression_mode = compression; |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
377 record_param.microphone_gain = mic_gain; |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
378 record_param.network_gain = network_gain; |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
379 |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
380 return_path.addr_id = NULL; |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
381 return_path.callback_func = audio_callback; |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
382 if (audio_vm_record_start(&record_param, |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
383 (T_AUDIO_TONES_PARAMETER *) |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
384 &recorder_warning_tone, |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
385 return_path) == AUDIO_OK) |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
386 return (ATI_CMPL); |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
387 else |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
388 return (ATI_FAIL); |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
389 } |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
390 |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
391 /* AT@VMRS - stop VM recording started with AT@VMR */ |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
392 GLOBAL T_ATI_RSLT atAtVMRS ( char *cl, UBYTE srcId ) |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
393 { |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
394 T_RV_RETURN return_path; |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
395 |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
396 return_path.addr_id = NULL; |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
397 return_path.callback_func = audio_callback; |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
398 if (audio_vm_record_stop(return_path) == AUDIO_OK) |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
399 return (ATI_CMPL); |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
400 else |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
401 return (ATI_FAIL); |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
402 } |
9034c3a7267e
Voice memo recording and playback test AT commands implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
239
diff
changeset
|
403 |
226
67fe1b3f4bd7
aci2: added some AT commands for exercising audio functions
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
404 #endif /* ATI_AUDIO_C */ |