blob: 1fe405e3fff77e2e4ebc1308516bfab7a72f9085 [file] [log] [blame]
Roman Khassrafd38206c2015-06-07 16:26:29 +02001/*
Piotr Krysikb9a87a12017-08-23 15:59:28 +02002 * Copyright 2012, 2014 Range Networks, Inc.
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Affero General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU Affero General Public License for more details.
13 *
14 * You should have received a copy of the GNU Affero General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 *
17 * This use of this software may be subject to additional restrictions.
18 * See the LEGAL file in the main directory for details.
19 */
Roman Khassrafd38206c2015-06-07 16:26:29 +020020
21#ifndef GSM503TABLES_H
22#define GSM503TABLES_H
23
24
25
26namespace GSM {
27
28// don't change the positions in this enum
29// (pat) The first 8 values are used as indicies into numerous tables.
30// (pat) Encoder/decoder mode includes 8 modes for AMR + TCH_FS makes 9.
31// TODO: Add AFS_SID type. And why is it not type 8?
32enum AMRMode {TCH_AFS12_2, TCH_AFS10_2, TCH_AFS7_95, TCH_AFS7_4, TCH_AFS6_7, TCH_AFS5_9, TCH_AFS5_15, TCH_AFS4_75, TCH_FS};
33
34/** Tables #7-14 from GSM 05.03 */
35extern const unsigned int gAMRBitOrderTCH_AFS12_2[244];
36extern const unsigned int gAMRBitOrderTCH_AFS10_2[204];
37extern const unsigned int gAMRBitOrderTCH_AFS7_95[159];
38extern const unsigned int gAMRBitOrderTCH_AFS7_4[148];
39extern const unsigned int gAMRBitOrderTCH_AFS6_7[134];
40extern const unsigned int gAMRBitOrderTCH_AFS5_9[118];
41extern const unsigned int gAMRBitOrderTCH_AFS5_15[103];
42extern const unsigned int gAMRBitOrderTCH_AFS4_75[95];
43
44/** GSM 05.03 3.9.4.4 */
45extern const unsigned int gAMRPuncturedTCH_AFS12_2[60];
46extern const unsigned int gAMRPuncturedTCH_AFS10_2[194];
47extern const unsigned int gAMRPuncturedTCH_AFS7_95[65];
48extern const unsigned int gAMRPuncturedTCH_AFS7_4[26];
49extern const unsigned int gAMRPuncturedTCH_AFS6_7[128];
50extern const unsigned int gAMRPuncturedTCH_AFS5_9[72];
51extern const unsigned int gAMRPuncturedTCH_AFS5_15[117];
52extern const unsigned int gAMRPuncturedTCH_AFS4_75[87];
53
54/* GSM 05.03 Tables 7-14 */
55extern const unsigned *gAMRBitOrder[8];
56
57/* GSM 05.03 3.9.4.2 */
58extern const unsigned gAMRKd[9];
59
60/* GSM 05.03 3.9.4.2 */
61extern const unsigned gAMRClass1ALth[8];
62
63/* GSM 05.03 3.9.4.4 */
64extern const unsigned gAMRTCHUCLth[8];
65
66/* GSM 05.03 3.9.4.2 */
67extern const unsigned gAMRPunctureLth[8];
68
69/* GSM 05.03 3.9.4.4 */
70extern const unsigned *gAMRPuncture[8];
71
72}
73
74
75#endif