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.