annotate src/condat/com/include/cl_user_spver.h @ 301:4bb5772a05a3

AT%SPVER: new command for setting custom speech version lists The speech version list in the Bearer Capability IE tells the network which speech codecs are supported by the MS, and in which order of preference. The standard behaviour is to list all codecs that are supported by the hw+fw platform, and the standard preference order is newer over older, FR over HR. But sometimes it is desirable (for network testing) to artificially restrict which codecs the test MS will declare as supported, and/or to list them in some peculiar non-standard order of preference. Add a new private AT command, AT%SPVER, allowing the user to set and clear custom speech version lists for the Bearer Capability IE composer in CC.
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 21 May 2023 21:43:10 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
301
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * This header file is a FreeCalypso addition; it is part of the mechanism
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 * for setting a user-defined list of accepted speech versions in the Bearer
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 * Capability IE for speech calls, with a user-defined order of preference,
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 * overriding the standard SV list based on hw+fw platform capabilities
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 * and the standard order of preference.
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 */
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 #ifndef CL_USER_SPVER_H
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 #define CL_USER_SPVER_H
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 /*
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 * This function sets (establishes for use) a user-defined SV list.
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 * The input is an array of 5 bytes, giving the list of speech versions
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 * in the user-preferred order; if fewer than all 5 possible SVs are listed,
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 * the remaining array elements shall be filled with 0xFF. At least FRv1
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 * (GSM full rate speech version 1) must always be included in the list;
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 * a corollary of this requirement is that an empty list is not a valid input.
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 */
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 extern UBYTE cl_user_spver_set(const UBYTE *spver_list);
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 /* cl_user_spver_set() return codes */
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 #define CL_USER_SPVER_SET_OK 0
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 #define CL_USER_SPVER_SET_ERROR 1
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 /*
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 * This function resets (clears) the user-defined SV list, returning to
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 * standard operation of accepting all speech versions supported by the
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 * platform with the standard order of preference.
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 */
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 extern void cl_user_spver_reset(void);
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 /*
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 * This function checks to see if a user-defined speech version list is set.
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 * If no such list is set, the function returns CL_USER_SPVER_IS_NOT_SET
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 * and leaves *spver_list and *rad_chan_req untouched. If a user-defined
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 * SV list is set, the function returns CL_USER_SPVER_IS_SET, writes the list
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 * into the *spver_list output array (all 5 bytes are always written,
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 * with 0xFF padding as needed), and writes the corresponding radio channel
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 * requirement code into *rad_chan_req.
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 */
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 extern UBYTE cl_user_spver_get(UBYTE *spver_list, UBYTE *rad_chan_req);
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 /* cl_user_spver_get() return codes */
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 #define CL_USER_SPVER_IS_NOT_SET 0
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 #define CL_USER_SPVER_IS_SET 1
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47
4bb5772a05a3 AT%SPVER: new command for setting custom speech version lists
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 #endif /* include guard */