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. |
