comparison intercom/gsm/gsm.h @ 2:13be24d74cd2

import intercom-0.4.1
author Peter Meerwald <pmeerw@cosy.sbg.ac.at>
date Fri, 25 Jun 2010 09:57:52 +0200
parents
children
comparison
equal deleted inserted replaced
1:9cadc470e3da 2:13be24d74cd2
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: /home/kbs/jutta/src/gsm/gsm-1.0/inc/RCS/gsm.h,v 1.5 1994/01/25 22:20:48 jutta Exp $*/
8
9 #ifndef GSM_H
10 #define GSM_H
11
12 #ifndef NeedFunctionPrototypes
13 #if defined(__cplusplus) || defined(__STDC__) || defined(VMS)
14 # define NeedFunctionPrototypes 1
15 #endif
16 #endif
17
18 /* The above 5 lines used to be several #if ... it was changed to avoid
19 * silly warnings and sintax errors of some compilers and to automate
20 * symbol definition for VMS!
21 * #ifdef __cplusplus
22 * # define NeedFunctionPrototypes 1
23 * #endif
24 *
25 * #if __STDC__
26 * # define NeedFunctionPrototypes 1
27 * #endif
28 */
29
30 #ifdef _NO_PROTO
31 # undef NeedFunctionPrototypes
32 #endif
33
34 #ifdef GSM_P
35 #undef GSM_P /* somewhere else may have defined this... */
36 #endif
37
38 #ifdef NeedFunctionPrototypes
39 # define GSM_P( protos ) protos
40 #else
41 # define GSM_P( protos ) ( /* protos */ )
42 #endif
43
44 #ifdef NeedFunctionPrototypes
45 # include <stdio.h> /* for FILE * */
46 #endif
47
48 /*
49 * Interface
50 */
51
52 typedef struct gsm_state *gsm;
53 typedef short gsm_signal; /* signed 16 bit */
54 typedef unsigned char gsm_byte;
55 typedef gsm_byte gsm_frame[33]; /* 33 * 8 bits */
56
57 #define GSM_MAGIC 0xD /* 13 kbit/s RPE-LTP */
58
59 #define GSM_PATCHLEVEL 3
60 #define GSM_MINOR 0
61 #define GSM_MAJOR 1
62
63 #define GSM_OPT_VERBOSE 1
64 #define GSM_OPT_FAST 2
65
66
67 /*
68 * Prototypes generated automatically by cproto ...
69 */
70
71 /* Prototypes for functions defined in file add.c */
72 extern word gsm_add GSM_P((word a, word b));
73 word gsm_sub GSM_P((word a, word b));
74 word gsm_mult GSM_P((word a, word b));
75 word gsm_mult_r GSM_P((word a, word b));
76 word gsm_abs GSM_P((word a));
77 longword gsm_L_mult GSM_P((word a, word b));
78 longword gsm_L_add GSM_P((longword a, longword b));
79 longword gsm_L_sub GSM_P((longword a, longword b));
80 word gsm_norm GSM_P((longword a));
81 longword gsm_L_asl GSM_P((longword a, int n));
82 word gsm_asl GSM_P((word a, int n));
83 longword gsm_L_asr GSM_P((longword a, int n));
84 word gsm_asr GSM_P((word a, int n));
85 word gsm_div GSM_P((word num, word denum));
86
87 /* Prototypes for functions defined in file code.c */
88 void Gsm_Coder GSM_P((struct gsm_state * S, word * s, word * LARc,
89 word * Nc, word * bc, word * Mc, word * xmaxc, word * xMc));
90
91 /* Prototypes for functions defined in file decode.c */
92 void Gsm_Decoder GSM_P((struct gsm_state * S, word * LARcr, word * Ncr,
93 word * bcr, word * Mcr, word * xmaxcr, word * xMcr, word * s));
94
95 /* Prototypes for functions defined in file long_term.c */
96 void Gsm_Long_Term_Predictor GSM_P((struct gsm_state * S, word * d,
97 word * dp, word * e, word * dpp, word * Nc, word * bc));
98 void Gsm_Long_Term_Synthesis_Filtering GSM_P((struct gsm_state * S,
99 word Ncr, word bcr, register word * erp, register word * drp));
100
101 /* Prototypes for functions defined in file lpc.c */
102 void Gsm_LPC_Analysis GSM_P((struct gsm_state * S, word * s,
103 word * LARc));
104
105 /* Prototypes for functions defined in file preprocess.c */
106 void Gsm_Preprocess GSM_P((struct gsm_state * S, word * s, word * so));
107
108 /* Prototypes for functions defined in file rpe.c */
109 void Gsm_RPE_Encoding GSM_P((struct gsm_state * S, word * e,
110 word * xmaxc, word * Mc, word * xMc));
111 void Gsm_RPE_Decoding GSM_P((struct gsm_state * S, word xmaxcr,
112 word Mcr, word * xMcr, word * erp));
113
114 /* Prototypes for functions defined in file gsm_destroy.c */
115 void gsm_destroy GSM_P((gsm S));
116
117 /* Prototypes for functions defined in file gsm_decode.c */
118 int gsm_decode GSM_P((gsm s, gsm_byte * c, gsm_signal * target));
119
120 /* Prototypes for functions defined in file gsm_encode.c */
121 void gsm_encode GSM_P((gsm s, gsm_signal * source, gsm_byte * c));
122
123 /* Prototypes for functions defined in file gsm_explode.c */
124 int gsm_explode GSM_P((gsm s, gsm_byte * c, gsm_signal * target));
125
126 /* Prototypes for functions defined in file gsm_implode.c */
127 void gsm_implode GSM_P((gsm s, gsm_signal * source, gsm_byte * c));
128
129 /* Prototypes for functions defined in file gsm_create.c */
130 gsm gsm_create GSM_P((void));
131
132 /* Prototypes for functions defined in file gsm_print.c */
133 int gsm_print GSM_P((FILE * f, gsm s, gsm_byte * c));
134
135 /* Prototypes for functions defined in file gsm_option.c */
136 int gsm_option GSM_P((gsm r, int opt, int *val));
137
138 /* Prototypes for functions defined in file short_term.c */
139 void Gsm_Short_Term_Analysis_Filter GSM_P((struct gsm_state * S,
140 word * LARc, word * s));
141 void Gsm_Short_Term_Synthesis_Filter GSM_P((struct gsm_state * S,
142 word * LARcr, word * wt, word * s));
143
144 /* These prototypes only when debugging is enabled! */
145 #ifndef NDEBUG
146 void gsm_debug_words GSM_P((char *name, int from, int to, word * ptr));
147 void gsm_debug_longwords GSM_P((char *name, int from, int to,
148 longword * ptr));
149 void gsm_debug_longword GSM_P((char *name, longword value));
150 void gsm_debug_word GSM_P((char *name, word value));
151 #endif
152
153 #undef GSM_P
154
155 #endif /* GSM_H */

Repositories maintained by Peter Meerwald, pmeerw@pmeerw.net.