#include "private.h"
#include "gsm.h"
#include "proto.h"
Go to the source code of this file.
◆ P3()
Definition at line 13 of file gsm_encode.c.
14{
16
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106#ifdef WAV49
107
111
113
114 sr = 0;
115 sr = sr >> 6 |
LARc[0] << 10;
116 sr = sr >> 6 |
LARc[1] << 10;
118 sr = sr >> 5 |
LARc[2] << 11;
120 sr = sr >> 5 |
LARc[3] << 11;
121 sr = sr >> 4 |
LARc[4] << 12;
123 sr = sr >> 4 |
LARc[5] << 12;
124 sr = sr >> 3 |
LARc[6] << 13;
126 sr = sr >> 3 |
LARc[7] << 13;
127 sr = sr >> 7 |
Nc[0] << 9;
129 sr = sr >> 2 |
bc[0] << 14;
130 sr = sr >> 2 |
Mc[0] << 14;
131 sr = sr >> 6 |
xmaxc[0] << 10;
133 sr = sr >> 3 |
xmc[0] << 13;
135 sr = sr >> 3 |
xmc[1] << 13;
136 sr = sr >> 3 |
xmc[2] << 13;
137 sr = sr >> 3 |
xmc[3] << 13;
139 sr = sr >> 3 |
xmc[4] << 13;
140 sr = sr >> 3 |
xmc[5] << 13;
141 sr = sr >> 3 |
xmc[6] << 13;
143 sr = sr >> 3 |
xmc[7] << 13;
144 sr = sr >> 3 |
xmc[8] << 13;
146 sr = sr >> 3 |
xmc[9] << 13;
147 sr = sr >> 3 |
xmc[10] << 13;
148 sr = sr >> 3 |
xmc[11] << 13;
150 sr = sr >> 3 |
xmc[12] << 13;
151 sr = sr >> 7 |
Nc[1] << 9;
153 sr = sr >> 2 |
bc[1] << 14;
154 sr = sr >> 2 |
Mc[1] << 14;
155 sr = sr >> 6 |
xmaxc[1] << 10;
157 sr = sr >> 3 |
xmc[13] << 13;
159 sr = sr >> 3 |
xmc[14] << 13;
160 sr = sr >> 3 |
xmc[15] << 13;
161 sr = sr >> 3 |
xmc[16] << 13;
163 sr = sr >> 3 |
xmc[17] << 13;
164 sr = sr >> 3 |
xmc[18] << 13;
165 sr = sr >> 3 |
xmc[19] << 13;
167 sr = sr >> 3 |
xmc[20] << 13;
168 sr = sr >> 3 |
xmc[21] << 13;
170 sr = sr >> 3 |
xmc[22] << 13;
171 sr = sr >> 3 |
xmc[23] << 13;
172 sr = sr >> 3 |
xmc[24] << 13;
174 sr = sr >> 3 |
xmc[25] << 13;
175 sr = sr >> 7 |
Nc[2] << 9;
177 sr = sr >> 2 |
bc[2] << 14;
178 sr = sr >> 2 |
Mc[2] << 14;
179 sr = sr >> 6 |
xmaxc[2] << 10;
181 sr = sr >> 3 |
xmc[26] << 13;
183 sr = sr >> 3 |
xmc[27] << 13;
184 sr = sr >> 3 |
xmc[28] << 13;
185 sr = sr >> 3 |
xmc[29] << 13;
187 sr = sr >> 3 |
xmc[30] << 13;
188 sr = sr >> 3 |
xmc[31] << 13;
189 sr = sr >> 3 |
xmc[32] << 13;
191 sr = sr >> 3 |
xmc[33] << 13;
192 sr = sr >> 3 |
xmc[34] << 13;
194 sr = sr >> 3 |
xmc[35] << 13;
195 sr = sr >> 3 |
xmc[36] << 13;
196 sr = sr >> 3 |
xmc[37] << 13;
198 sr = sr >> 3 |
xmc[38] << 13;
199 sr = sr >> 7 |
Nc[3] << 9;
201 sr = sr >> 2 |
bc[3] << 14;
202 sr = sr >> 2 |
Mc[3] << 14;
203 sr = sr >> 6 |
xmaxc[3] << 10;
205 sr = sr >> 3 |
xmc[39] << 13;
207 sr = sr >> 3 |
xmc[40] << 13;
208 sr = sr >> 3 |
xmc[41] << 13;
209 sr = sr >> 3 |
xmc[42] << 13;
211 sr = sr >> 3 |
xmc[43] << 13;
212 sr = sr >> 3 |
xmc[44] << 13;
213 sr = sr >> 3 |
xmc[45] << 13;
215 sr = sr >> 3 |
xmc[46] << 13;
216 sr = sr >> 3 |
xmc[47] << 13;
218 sr = sr >> 3 |
xmc[48] << 13;
219 sr = sr >> 3 |
xmc[49] << 13;
220 sr = sr >> 3 |
xmc[50] << 13;
222 sr = sr >> 3 |
xmc[51] << 13;
223 sr = sr >> 4;
226 }
227 else {
229
230 sr = 0;
232 sr = sr >> 6 |
LARc[0] << 10;
234 sr = sr >> 6 |
LARc[1] << 10;
236 sr = sr >> 5 |
LARc[2] << 11;
237 sr = sr >> 5 |
LARc[3] << 11;
239 sr = sr >> 4 |
LARc[4] << 12;
240 sr = sr >> 4 |
LARc[5] << 12;
242 sr = sr >> 3 |
LARc[6] << 13;
243 sr = sr >> 3 |
LARc[7] << 13;
245 sr = sr >> 7 |
Nc[0] << 9;
246 sr = sr >> 2 |
bc[0] << 14;
248 sr = sr >> 2 |
Mc[0] << 14;
249 sr = sr >> 6 |
xmaxc[0] << 10;
251 sr = sr >> 3 |
xmc[0] << 13;
252 sr = sr >> 3 |
xmc[1] << 13;
253 sr = sr >> 3 |
xmc[2] << 13;
255 sr = sr >> 3 |
xmc[3] << 13;
256 sr = sr >> 3 |
xmc[4] << 13;
258 sr = sr >> 3 |
xmc[5] << 13;
259 sr = sr >> 3 |
xmc[6] << 13;
260 sr = sr >> 3 |
xmc[7] << 13;
262 sr = sr >> 3 |
xmc[8] << 13;
263 sr = sr >> 3 |
xmc[9] << 13;
264 sr = sr >> 3 |
xmc[10] << 13;
266 sr = sr >> 3 |
xmc[11] << 13;
267 sr = sr >> 3 |
xmc[12] << 13;
269 sr = sr >> 7 |
Nc[1] << 9;
270 sr = sr >> 2 |
bc[1] << 14;
272 sr = sr >> 2 |
Mc[1] << 14;
273 sr = sr >> 6 |
xmaxc[1] << 10;
275 sr = sr >> 3 |
xmc[13] << 13;
276 sr = sr >> 3 |
xmc[14] << 13;
277 sr = sr >> 3 |
xmc[15] << 13;
279 sr = sr >> 3 |
xmc[16] << 13;
280 sr = sr >> 3 |
xmc[17] << 13;
282 sr = sr >> 3 |
xmc[18] << 13;
283 sr = sr >> 3 |
xmc[19] << 13;
284 sr = sr >> 3 |
xmc[20] << 13;
286 sr = sr >> 3 |
xmc[21] << 13;
287 sr = sr >> 3 |
xmc[22] << 13;
288 sr = sr >> 3 |
xmc[23] << 13;
290 sr = sr >> 3 |
xmc[24] << 13;
291 sr = sr >> 3 |
xmc[25] << 13;
293 sr = sr >> 7 |
Nc[2] << 9;
294 sr = sr >> 2 |
bc[2] << 14;
296 sr = sr >> 2 |
Mc[2] << 14;
297 sr = sr >> 6 |
xmaxc[2] << 10;
299 sr = sr >> 3 |
xmc[26] << 13;
300 sr = sr >> 3 |
xmc[27] << 13;
301 sr = sr >> 3 |
xmc[28] << 13;
303 sr = sr >> 3 |
xmc[29] << 13;
304 sr = sr >> 3 |
xmc[30] << 13;
306 sr = sr >> 3 |
xmc[31] << 13;
307 sr = sr >> 3 |
xmc[32] << 13;
308 sr = sr >> 3 |
xmc[33] << 13;
310 sr = sr >> 3 |
xmc[34] << 13;
311 sr = sr >> 3 |
xmc[35] << 13;
312 sr = sr >> 3 |
xmc[36] << 13;
314 sr = sr >> 3 |
xmc[37] << 13;
315 sr = sr >> 3 |
xmc[38] << 13;
317 sr = sr >> 7 |
Nc[3] << 9;
318 sr = sr >> 2 |
bc[3] << 14;
320 sr = sr >> 2 |
Mc[3] << 14;
321 sr = sr >> 6 |
xmaxc[3] << 10;
323 sr = sr >> 3 |
xmc[39] << 13;
324 sr = sr >> 3 |
xmc[40] << 13;
325 sr = sr >> 3 |
xmc[41] << 13;
327 sr = sr >> 3 |
xmc[42] << 13;
328 sr = sr >> 3 |
xmc[43] << 13;
330 sr = sr >> 3 |
xmc[44] << 13;
331 sr = sr >> 3 |
xmc[45] << 13;
332 sr = sr >> 3 |
xmc[46] << 13;
334 sr = sr >> 3 |
xmc[47] << 13;
335 sr = sr >> 3 |
xmc[48] << 13;
336 sr = sr >> 3 |
xmc[49] << 13;
338 sr = sr >> 3 |
xmc[50] << 13;
339 sr = sr >> 3 |
xmc[51] << 13;
341 }
342 }
343
344 else
345
346#endif
347 {
348
350 | ((
LARc[0] >> 2) & 0xF);
351 *
c++ = ((
LARc[0] & 0x3) << 6)
353 *
c++ = ((
LARc[2] & 0x1F) << 3)
354 | ((
LARc[3] >> 2) & 0x7);
355 *
c++ = ((
LARc[3] & 0x3) << 6)
356 | ((
LARc[4] & 0xF) << 2)
357 | ((
LARc[5] >> 2) & 0x3);
358 *
c++ = ((
LARc[5] & 0x3) << 6)
359 | ((
LARc[6] & 0x7) << 3)
361 *
c++ = ((
Nc[0] & 0x7F) << 1)
362 | ((
bc[0] >> 1) & 0x1);
363 *
c++ = ((
bc[0] & 0x1) << 7)
364 | ((
Mc[0] & 0x3) << 5)
365 | ((
xmaxc[0] >> 1) & 0x1F);
366 *
c++ = ((
xmaxc[0] & 0x1) << 7)
367 | ((
xmc[0] & 0x7) << 4)
368 | ((
xmc[1] & 0x7) << 1)
369 | ((
xmc[2] >> 2) & 0x1);
370 *
c++ = ((
xmc[2] & 0x3) << 6)
371 | ((
xmc[3] & 0x7) << 3)
373 *
c++ = ((
xmc[5] & 0x7) << 5)
374 | ((
xmc[6] & 0x7) << 2)
375 | ((
xmc[7] >> 1) & 0x3);
376 *
c++ = ((
xmc[7] & 0x1) << 7)
377 | ((
xmc[8] & 0x7) << 4)
378 | ((
xmc[9] & 0x7) << 1)
379 | ((
xmc[10] >> 2) & 0x1);
380 *
c++ = ((
xmc[10] & 0x3) << 6)
381 | ((
xmc[11] & 0x7) << 3)
383 *
c++ = ((
Nc[1] & 0x7F) << 1)
384 | ((
bc[1] >> 1) & 0x1);
385 *
c++ = ((
bc[1] & 0x1) << 7)
386 | ((
Mc[1] & 0x3) << 5)
387 | ((
xmaxc[1] >> 1) & 0x1F);
388 *
c++ = ((
xmaxc[1] & 0x1) << 7)
389 | ((
xmc[13] & 0x7) << 4)
390 | ((
xmc[14] & 0x7) << 1)
391 | ((
xmc[15] >> 2) & 0x1);
392 *
c++ = ((
xmc[15] & 0x3) << 6)
393 | ((
xmc[16] & 0x7) << 3)
395 *
c++ = ((
xmc[18] & 0x7) << 5)
396 | ((
xmc[19] & 0x7) << 2)
397 | ((
xmc[20] >> 1) & 0x3);
398 *
c++ = ((
xmc[20] & 0x1) << 7)
399 | ((
xmc[21] & 0x7) << 4)
400 | ((
xmc[22] & 0x7) << 1)
401 | ((
xmc[23] >> 2) & 0x1);
402 *
c++ = ((
xmc[23] & 0x3) << 6)
403 | ((
xmc[24] & 0x7) << 3)
405 *
c++ = ((
Nc[2] & 0x7F) << 1)
406 | ((
bc[2] >> 1) & 0x1);
407 *
c++ = ((
bc[2] & 0x1) << 7)
408 | ((
Mc[2] & 0x3) << 5)
409 | ((
xmaxc[2] >> 1) & 0x1F);
410 *
c++ = ((
xmaxc[2] & 0x1) << 7)
411 | ((
xmc[26] & 0x7) << 4)
412 | ((
xmc[27] & 0x7) << 1)
413 | ((
xmc[28] >> 2) & 0x1);
414 *
c++ = ((
xmc[28] & 0x3) << 6)
415 | ((
xmc[29] & 0x7) << 3)
417 *
c++ = ((
xmc[31] & 0x7) << 5)
418 | ((
xmc[32] & 0x7) << 2)
419 | ((
xmc[33] >> 1) & 0x3);
420 *
c++ = ((
xmc[33] & 0x1) << 7)
421 | ((
xmc[34] & 0x7) << 4)
422 | ((
xmc[35] & 0x7) << 1)
423 | ((
xmc[36] >> 2) & 0x1);
424 *
c++ = ((
xmc[36] & 0x3) << 6)
425 | ((
xmc[37] & 0x7) << 3)
427 *
c++ = ((
Nc[3] & 0x7F) << 1)
428 | ((
bc[3] >> 1) & 0x1);
429 *
c++ = ((
bc[3] & 0x1) << 7)
430 | ((
Mc[3] & 0x3) << 5)
431 | ((
xmaxc[3] >> 1) & 0x1F);
432 *
c++ = ((
xmaxc[3] & 0x1) << 7)
433 | ((
xmc[39] & 0x7) << 4)
434 | ((
xmc[40] & 0x7) << 1)
435 | ((
xmc[41] >> 2) & 0x1);
436 *
c++ = ((
xmc[41] & 0x3) << 6)
437 | ((
xmc[42] & 0x7) << 3)
439 *
c++ = ((
xmc[44] & 0x7) << 5)
440 | ((
xmc[45] & 0x7) << 2)
441 | ((
xmc[46] >> 1) & 0x3);
442 *
c++ = ((
xmc[46] & 0x1) << 7)
443 | ((
xmc[47] & 0x7) << 4)
444 | ((
xmc[48] & 0x7) << 1)
445 | ((
xmc[49] >> 2) & 0x1);
446 *
c++ = ((
xmc[49] & 0x3) << 6)
447 | ((
xmc[50] & 0x7) << 3)
449
450 }
451}
unsigned char frame_chain
unsigned char frame_index
References bc, c, gsm_state::frame_chain, gsm_state::frame_index, GSM_MAGIC, LARc, Mc, Nc, gsm_state::wav_fmt, xmaxc, and xmc.