Asterisk - The Open Source Telephony Project
GIT-master-f36a736
codecs
gsm
src
gsm_print.c
Go to the documentation of this file.
1
/*
2
* Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
3
* Universitaet Berlin. See the accompanying file "COPYRIGHT" for
4
* details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
5
*/
6
7
/* $Header$ */
8
9
#include <stdio.h>
10
11
#include "private.h"
12
13
#include "
gsm.h
"
14
#include "
proto.h
"
15
16
int
gsm_print
P3
((f, s,
c
), FILE * f,
gsm
s,
gsm_byte
*
c
)
17
{
18
word
LARc
[8],
Nc
[4],
Mc
[4],
bc
[4],
xmaxc
[4],
xmc
[13*4];
19
20
/* GSM_MAGIC = (*c >> 4) & 0xF; */
21
22
if
(((*
c
>> 4) & 0x0F) !=
GSM_MAGIC
)
return
-1;
23
24
LARc
[0] = (*
c
++ & 0xF) << 2;
/* 1 */
25
LARc
[0] |= (*
c
>> 6) & 0x3;
26
LARc
[1] = *
c
++ & 0x3F;
27
LARc
[2] = (*
c
>> 3) & 0x1F;
28
LARc
[3] = (*
c
++ & 0x7) << 2;
29
LARc
[3] |= (*
c
>> 6) & 0x3;
30
LARc
[4] = (*
c
>> 2) & 0xF;
31
LARc
[5] = (*
c
++ & 0x3) << 2;
32
LARc
[5] |= (*
c
>> 6) & 0x3;
33
LARc
[6] = (*
c
>> 3) & 0x7;
34
LARc
[7] = *
c
++ & 0x7;
35
36
37
Nc
[0] = (*
c
>> 1) & 0x7F;
38
bc
[0] = (*
c
++ & 0x1) << 1;
39
bc
[0] |= (*
c
>> 7) & 0x1;
40
Mc
[0] = (*
c
>> 5) & 0x3;
41
xmaxc
[0] = (*
c
++ & 0x1F) << 1;
42
xmaxc
[0] |= (*
c
>> 7) & 0x1;
43
xmc
[0] = (*
c
>> 4) & 0x7;
44
xmc
[1] = (*
c
>> 1) & 0x7;
45
xmc
[2] = (*
c
++ & 0x1) << 2;
46
xmc
[2] |= (*
c
>> 6) & 0x3;
47
xmc
[3] = (*
c
>> 3) & 0x7;
48
xmc
[4] = *
c
++ & 0x7;
49
xmc
[5] = (*
c
>> 5) & 0x7;
50
xmc
[6] = (*
c
>> 2) & 0x7;
51
xmc
[7] = (*
c
++ & 0x3) << 1;
/* 10 */
52
xmc
[7] |= (*
c
>> 7) & 0x1;
53
xmc
[8] = (*
c
>> 4) & 0x7;
54
xmc
[9] = (*
c
>> 1) & 0x7;
55
xmc
[10] = (*
c
++ & 0x1) << 2;
56
xmc
[10] |= (*
c
>> 6) & 0x3;
57
xmc
[11] = (*
c
>> 3) & 0x7;
58
xmc
[12] = *
c
++ & 0x7;
59
60
Nc
[1] = (*
c
>> 1) & 0x7F;
61
bc
[1] = (*
c
++ & 0x1) << 1;
62
bc
[1] |= (*
c
>> 7) & 0x1;
63
Mc
[1] = (*
c
>> 5) & 0x3;
64
xmaxc
[1] = (*
c
++ & 0x1F) << 1;
65
xmaxc
[1] |= (*
c
>> 7) & 0x1;
66
xmc
[13] = (*
c
>> 4) & 0x7;
67
xmc
[14] = (*
c
>> 1) & 0x7;
68
xmc
[15] = (*
c
++ & 0x1) << 2;
69
xmc
[15] |= (*
c
>> 6) & 0x3;
70
xmc
[16] = (*
c
>> 3) & 0x7;
71
xmc
[17] = *
c
++ & 0x7;
72
xmc
[18] = (*
c
>> 5) & 0x7;
73
xmc
[19] = (*
c
>> 2) & 0x7;
74
xmc
[20] = (*
c
++ & 0x3) << 1;
75
xmc
[20] |= (*
c
>> 7) & 0x1;
76
xmc
[21] = (*
c
>> 4) & 0x7;
77
xmc
[22] = (*
c
>> 1) & 0x7;
78
xmc
[23] = (*
c
++ & 0x1) << 2;
79
xmc
[23] |= (*
c
>> 6) & 0x3;
80
xmc
[24] = (*
c
>> 3) & 0x7;
81
xmc
[25] = *
c
++ & 0x7;
82
83
84
Nc
[2] = (*
c
>> 1) & 0x7F;
85
bc
[2] = (*
c
++ & 0x1) << 1;
/* 20 */
86
bc
[2] |= (*
c
>> 7) & 0x1;
87
Mc
[2] = (*
c
>> 5) & 0x3;
88
xmaxc
[2] = (*
c
++ & 0x1F) << 1;
89
xmaxc
[2] |= (*
c
>> 7) & 0x1;
90
xmc
[26] = (*
c
>> 4) & 0x7;
91
xmc
[27] = (*
c
>> 1) & 0x7;
92
xmc
[28] = (*
c
++ & 0x1) << 2;
93
xmc
[28] |= (*
c
>> 6) & 0x3;
94
xmc
[29] = (*
c
>> 3) & 0x7;
95
xmc
[30] = *
c
++ & 0x7;
96
xmc
[31] = (*
c
>> 5) & 0x7;
97
xmc
[32] = (*
c
>> 2) & 0x7;
98
xmc
[33] = (*
c
++ & 0x3) << 1;
99
xmc
[33] |= (*
c
>> 7) & 0x1;
100
xmc
[34] = (*
c
>> 4) & 0x7;
101
xmc
[35] = (*
c
>> 1) & 0x7;
102
xmc
[36] = (*
c
++ & 0x1) << 2;
103
xmc
[36] |= (*
c
>> 6) & 0x3;
104
xmc
[37] = (*
c
>> 3) & 0x7;
105
xmc
[38] = *
c
++ & 0x7;
106
107
Nc
[3] = (*
c
>> 1) & 0x7F;
108
bc
[3] = (*
c
++ & 0x1) << 1;
109
bc
[3] |= (*
c
>> 7) & 0x1;
110
Mc
[3] = (*
c
>> 5) & 0x3;
111
xmaxc
[3] = (*
c
++ & 0x1F) << 1;
112
xmaxc
[3] |= (*
c
>> 7) & 0x1;
113
114
xmc
[39] = (*
c
>> 4) & 0x7;
115
xmc
[40] = (*
c
>> 1) & 0x7;
116
xmc
[41] = (*
c
++ & 0x1) << 2;
117
xmc
[41] |= (*
c
>> 6) & 0x3;
118
xmc
[42] = (*
c
>> 3) & 0x7;
119
xmc
[43] = *
c
++ & 0x7;
/* 30 */
120
xmc
[44] = (*
c
>> 5) & 0x7;
121
xmc
[45] = (*
c
>> 2) & 0x7;
122
xmc
[46] = (*
c
++ & 0x3) << 1;
123
xmc
[46] |= (*
c
>> 7) & 0x1;
124
xmc
[47] = (*
c
>> 4) & 0x7;
125
xmc
[48] = (*
c
>> 1) & 0x7;
126
xmc
[49] = (*
c
++ & 0x1) << 2;
127
xmc
[49] |= (*
c
>> 6) & 0x3;
128
xmc
[50] = (*
c
>> 3) & 0x7;
129
xmc
[51] = *
c
& 0x7;
/* 33 */
130
131
fprintf(f,
132
"LARc:\t%2.2d %2.2d %2.2d %2.2d %2.2d %2.2d %2.2d %2.2d\n"
,
133
LARc
[0],
LARc
[1],
LARc
[2],
LARc
[3],
LARc
[4],
LARc
[5],
LARc
[6],
LARc
[7]);
134
135
fprintf(f,
"#1: Nc %4.4d bc %d Mc %d xmaxc %d\n"
,
136
Nc
[0],
bc
[0],
Mc
[0],
xmaxc
[0]);
137
fprintf(f,
138
"\t%.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d\n"
,
139
xmc
[0],
xmc
[1],
xmc
[2],
xmc
[3],
xmc
[4],
xmc
[5],
xmc
[6],
140
xmc
[7],
xmc
[8],
xmc
[9],
xmc
[10],
xmc
[11],
xmc
[12] );
141
142
fprintf(f,
"#2: Nc %4.4d bc %d Mc %d xmaxc %d\n"
,
143
Nc
[1],
bc
[1],
Mc
[1],
xmaxc
[1]);
144
fprintf(f,
145
"\t%.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d\n"
,
146
xmc
[13+0],
xmc
[13+1],
xmc
[13+2],
xmc
[13+3],
xmc
[13+4],
xmc
[13+5],
147
xmc
[13+6],
xmc
[13+7],
xmc
[13+8],
xmc
[13+9],
xmc
[13+10],
xmc
[13+11],
148
xmc
[13+12] );
149
150
fprintf(f,
"#3: Nc %4.4d bc %d Mc %d xmaxc %d\n"
,
151
Nc
[2],
bc
[2],
Mc
[2],
xmaxc
[2]);
152
fprintf(f,
153
"\t%.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d\n"
,
154
xmc
[26+0],
xmc
[26+1],
xmc
[26+2],
xmc
[26+3],
xmc
[26+4],
xmc
[26+5],
155
xmc
[26+6],
xmc
[26+7],
xmc
[26+8],
xmc
[26+9],
xmc
[26+10],
xmc
[26+11],
156
xmc
[26+12] );
157
158
fprintf(f,
"#4: Nc %4.4d bc %d Mc %d xmaxc %d\n"
,
159
Nc
[3],
bc
[3],
Mc
[3],
xmaxc
[3]);
160
fprintf(f,
161
"\t%.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d %.2d\n"
,
162
xmc
[39+0],
xmc
[39+1],
xmc
[39+2],
xmc
[39+3],
xmc
[39+4],
xmc
[39+5],
163
xmc
[39+6],
xmc
[39+7],
xmc
[39+8],
xmc
[39+9],
xmc
[39+10],
xmc
[39+11],
164
xmc
[39+12] );
165
166
return
0;
167
}
word
short word
Definition:
codecs/gsm/inc/private.h:12
gsm.h
gsm_byte
unsigned char gsm_byte
Definition:
gsm.h:41
GSM_MAGIC
#define GSM_MAGIC
Definition:
gsm.h:44
Mc
#define Mc
LARc
#define LARc
xmc
#define xmc
xmaxc
#define xmaxc
bc
#define bc
Nc
#define Nc
P3
int gsm_print P3((f, s, c), FILE *f, gsm s, gsm_byte *c)
Definition:
gsm_print.c:16
proto.h
gsm_state
Definition:
codecs/gsm/inc/private.h:18
c
static struct test_val c
Definition:
test_linkedlists.c:48
Generated on Wed Dec 18 2024 20:04:15 for Asterisk - The Open Source Telephony Project by
1.9.4