1 | //alaw.c: |
---|
2 | |
---|
3 | /* |
---|
4 | * Copyright (C) Philipp 'ph3-der-loewe' Schafft - August 2008 |
---|
5 | * |
---|
6 | * This file is part of libroardsp a part of RoarAudio, |
---|
7 | * a cross-platform sound system for both, home and professional use. |
---|
8 | * See README for details. |
---|
9 | * |
---|
10 | * This file is free software; you can redistribute it and/or modify |
---|
11 | * it under the terms of the GNU General Public License version 3 |
---|
12 | * as published by the Free Software Foundation. |
---|
13 | * |
---|
14 | * libroardsp is distributed in the hope that it will be useful, |
---|
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
---|
17 | * GNU General Public License for more details. |
---|
18 | * |
---|
19 | * You should have received a copy of the GNU General Public License |
---|
20 | * along with this software; see the file COPYING. If not, write to |
---|
21 | * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. |
---|
22 | * |
---|
23 | */ |
---|
24 | |
---|
25 | #include "libroardsp.h" |
---|
26 | |
---|
27 | int16_t _roardsp_alaw2pcm16[] = { |
---|
28 | -5504, -5248, -6016, -5760, -4480, -4224, -4992, |
---|
29 | -4736, -7552, -7296, -8064, -7808, -6528, -6272, |
---|
30 | -7040, -6784, -2752, -2624, -3008, -2880, -2240, |
---|
31 | -2112, -2496, -2368, -3776, -3648, -4032, -3904, |
---|
32 | -3264, -3136, -3520, -3392, -22016, -20992, -24064, |
---|
33 | -23040, -17920, -16896, -19968, -18944, -30208, -29184, |
---|
34 | -32256, -31232, -26112, -25088, -28160, -27136, -11008, |
---|
35 | -10496, -12032, -11520, -8960, -8448, -9984, -9472, |
---|
36 | -15104, -14592, -16128, -15616, -13056, -12544, -14080, |
---|
37 | -13568, -344, -328, -376, -360, -280, -264, |
---|
38 | -312, -296, -472, -456, -504, -488, -408, |
---|
39 | -392, -440, -424, -88, -72, -120, -104, |
---|
40 | -24, -8, -56, -40, -216, -200, -248, |
---|
41 | -232, -152, -136, -184, -168, -1376, -1312, |
---|
42 | -1504, -1440, -1120, -1056, -1248, -1184, -1888, |
---|
43 | -1824, -2016, -1952, -1632, -1568, -1760, -1696, |
---|
44 | -688, -656, -752, -720, -560, -528, -624, |
---|
45 | -592, -944, -912, -1008, -976, -816, -784, |
---|
46 | -880, -848, 5504, 5248, 6016, 5760, 4480, |
---|
47 | 4224, 4992, 4736, 7552, 7296, 8064, 7808, |
---|
48 | 6528, 6272, 7040, 6784, 2752, 2624, 3008, |
---|
49 | 2880, 2240, 2112, 2496, 2368, 3776, 3648, |
---|
50 | 4032, 3904, 3264, 3136, 3520, 3392, 22016, |
---|
51 | 20992, 24064, 23040, 17920, 16896, 19968, 18944, |
---|
52 | 30208, 29184, 32256, 31232, 26112, 25088, 28160, |
---|
53 | 27136, 11008, 10496, 12032, 11520, 8960, 8448, |
---|
54 | 9984, 9472, 15104, 14592, 16128, 15616, 13056, |
---|
55 | 12544, 14080, 13568, 344, 328, 376, 360, |
---|
56 | 280, 264, 312, 296, 472, 456, 504, |
---|
57 | 488, 408, 392, 440, 424, 88, 72, |
---|
58 | 120, 104, 24, 8, 56, 40, 216, |
---|
59 | 200, 248, 232, 152, 136, 184, 168, |
---|
60 | 1376, 1312, 1504, 1440, 1120, 1056, 1248, |
---|
61 | 1184, 1888, 1824, 2016, 1952, 1632, 1568, |
---|
62 | 1760, 1696, 688, 656, 752, 720, 560, |
---|
63 | 528, 624, 592, 944, 912, 1008, 976, |
---|
64 | 816, 784, 880, 848 |
---|
65 | }; |
---|
66 | |
---|
67 | int roardsp_conv_alaw2pcm16 (int16_t * out, char * in, size_t len) { |
---|
68 | unsigned char * inp = (unsigned char *) in; |
---|
69 | ssize_t i; |
---|
70 | |
---|
71 | for (i = len-1; i > -1; i--) { |
---|
72 | out[i] = _roardsp_alaw2pcm16[inp[i]]; |
---|
73 | } |
---|
74 | |
---|
75 | return 0; |
---|
76 | } |
---|
77 | |
---|
78 | //ll |
---|