FreeCalypso > hg > freecalypso-docs
comparison FC-handset-spec @ 56:a39269dddca4
FC-handset-spec: firmware approach to audio routing and ringing
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 13 Jun 2021 01:51:24 +0000 |
parents | df6c61d0e817 |
children | 020e6428c248 |
comparison
equal
deleted
inserted
replaced
55:df6c61d0e817 | 56:a39269dddca4 |
---|---|
1129 being made of these extra keys (primarily on text and number entry screens, aka | 1129 being made of these extra keys (primarily on text and number entry screens, aka |
1130 the editor), and our use of all available keys in the UI will keep growing. As | 1130 the editor), and our use of all available keys in the UI will keep growing. As |
1131 a matter of project scope, we are NOT supporting backward compatibility with | 1131 a matter of project scope, we are NOT supporting backward compatibility with |
1132 18-button keypads, given that the lowest-end Mot C1xx family already has | 1132 18-button keypads, given that the lowest-end Mot C1xx family already has |
1133 21-button keypads. | 1133 21-button keypads. |
1134 | |
1135 2.3. Audio routing | |
1136 | |
1137 TI's demo/prototype/PoC UI code from TCS211 does not use the audio mode facility | |
1138 of the RiViera Audio Service: ABB configuration remains the default set in L1 | |
1139 initialization, volume control is done by calling audio_SetAmplf() in the Condat | |
1140 abstraction layer, which in turn calls ABB_DlVolume(). This design will need to | |
1141 change in FreeCalypso: we will start using the RiViera Audio Service audio mode | |
1142 facility, and the use of this facility (including correct audio mode | |
1143 configuration files under /aud in FFS) will become mandatory on all targets. | |
1144 | |
1145 The following 3 audio modes are defined for call audio routing and idle | |
1146 operation (keyclicks etc), as opposed to Melody E1 ringing covered in section | |
1147 2.4.2: | |
1148 | |
1149 Mode name Used for | |
1150 ------------------------ | |
1151 handheld Default handheld operation and idle state | |
1152 handfree Calls in hands-free loudspeaker mode | |
1153 headset When a wired analog headset is plugged in | |
1154 | |
1155 At the minimum, valid /aud/handheld.{cfg,vol} files will need to be created in | |
1156 FFS on every supported target; other modes can be omitted if they can't be | |
1157 entered. /aud/*.vol files maintained by RiViera Audio Service will serve as the | |
1158 non-volatile volume setting store for each mode. | |
1159 | |
1160 2.3.1. Loudspeaker inclusion or omission | |
1161 | |
1162 The Mother's plan is to use a long press of the right side button as the command | |
1163 for entering or exiting hands-free loudspeaker mode; by this design, if this | |
1164 right side button does not exist on a given target, then loudspeaker mode cannot | |
1165 be entered. Furthermore, our code supporting hands-free loudspeaker mode can be | |
1166 limited to just bigcolor configuration (conditionalize on LSCREEN preprocessor | |
1167 symbol), further excluding this mode from ports to alien targets like Mot C1xx | |
1168 and Pirelli DP-L10. | |
1169 | |
1170 2.3.2. Headset inclusion or omission | |
1171 | |
1172 The code supporting wired headset mode will always be included in the firmware, | |
1173 however, there will be a hardware driver function call to inquire if a headset | |
1174 is inserted or not. If the wired headset jack does not exist on a given target, | |
1175 or more practically if it exists but we don't support it, this headset status | |
1176 function will always return "no headset" indication, and the headset mode will | |
1177 never be entered. | |
1178 | |
1179 2.4. Ringtone generation | |
1180 | |
1181 See section 1.8 for an overview of possible ways in which ringtone generation | |
1182 may be accomplished. The only ring sound generation method supported by TI's | |
1183 TCS211 version of their demo/prototype/PoC phone UI (the version for Calypso, | |
1184 as opposed to other chipsets) is the original Calypso buzzer, i.e., Calypso | |
1185 digital waveform output intended for switching a magnetic buzzer. The code that | |
1186 rings this buzzer will execute successfully on every Calypso target, regardless | |
1187 of whether it actually has a magnetic buzzer or not: if there is no buzzer and | |
1188 Calypso BU/PWT output is left unconnected, like it is on our Luna platform, the | |
1189 code will still run and emit the intended tone waveform on BU, but this output | |
1190 will go nowhere and no audible sound will be made. | |
1191 | |
1192 As a matter of project scope, in our FreeCalypso handset firmware we shall | |
1193 support two configurations with regard to ringing: | |
1194 | |
1195 1) TI's original buzzer configuration will be retained for lorekeeping and to | |
1196 keep the door open for the possibility of a minimally usable FreeCalypso Lite | |
1197 aftermarket firmware for Motorola C139. | |
1198 | |
1199 2) For our own FC Libre Dumbphone handset, we will need to implement ringing by | |
1200 way of the same loudspeaker that will be used for hands-free calls, using the | |
1201 Melody E1 feature of Calypso DSP for ringtone melody generation. | |
1202 | |
1203 2.4.1. Scope limitation on buzzer melodies | |
1204 | |
1205 Because the option of ringing via Calypso buzzer output is retained only for | |
1206 lorekeeping and for minimal-support alien targets, no effort will be expended | |
1207 toward playing more musical melodies via the buzzer. Our current code (bugfixed | |
1208 from TI's original) implements just one buzzer ringing sound, consisting of | |
1209 alternating 800 Hz and 900 Hz tones, using BU mode rather than PWT, and the | |
1210 Mother currently has no plans to implement anything more for the buzzer | |
1211 configuration. | |
1212 | |
1213 2.4.2. Melody E1 ringer | |
1214 | |
1215 Our Melody E1 ringer implementation will require melody files in FFS, and we | |
1216 will also have a separate audio mode (in the RiViera Audio Service sense) that | |
1217 will be loaded during ringing. Even though the same physical loudspeaker will | |
1218 be used for both hands-free calls and ringing, logically the two are separate | |
1219 modes, and they will be treated as separate for the Audio Service. Separate | |
1220 logical modes will provide separate volume files, which is the correct approach: | |
1221 loudspeaker volume and ringing volume should be separate, just like how ringing | |
1222 volume is entirely separate when a buzzer is used. |