Imported Upstream version 3.0
[debian/gnuradio] / gr-gsm-fr-vocoder / src / lib / gsm / gsm.h
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 #ifndef GSM_H
10 #define GSM_H
11
12 #ifdef __cplusplus
13 #       define  NeedFunctionPrototypes  1
14 #endif
15
16 #if __STDC__
17 #       define  NeedFunctionPrototypes  1
18 #endif
19
20 #ifdef _NO_PROTO
21 #       undef   NeedFunctionPrototypes
22 #endif
23
24 #ifdef NeedFunctionPrototypes
25 #   include     <stdio.h>               /* for FILE *   */
26 #endif
27
28 #undef GSM_P
29 #if NeedFunctionPrototypes
30 #       define  GSM_P( protos ) protos
31 #else
32 #       define  GSM_P( protos ) ( /* protos */ )
33 #endif
34
35 /*
36  *      Interface
37  */
38
39 typedef struct gsm_state *      gsm;
40 typedef short                   gsm_signal;             /* signed 16 bit */
41 typedef unsigned char           gsm_byte;
42 typedef gsm_byte                gsm_frame[33];          /* 33 * 8 bits   */
43
44 #define GSM_MAGIC               0xD                     /* 13 kbit/s RPE-LTP */
45
46 #define GSM_PATCHLEVEL          10
47 #define GSM_MINOR               0
48 #define GSM_MAJOR               1
49
50 #define GSM_OPT_VERBOSE         1
51 #define GSM_OPT_FAST            2
52 #define GSM_OPT_LTP_CUT         3
53 #define GSM_OPT_WAV49           4
54 #define GSM_OPT_FRAME_INDEX     5
55 #define GSM_OPT_FRAME_CHAIN     6
56
57 #define GSM_SAMPLES_PER_FRAME   160
58
59 extern gsm  gsm_create  GSM_P((void));
60 extern void gsm_destroy GSM_P((gsm));   
61
62 extern int  gsm_print   GSM_P((FILE *, gsm, gsm_byte  *));
63 extern int  gsm_option  GSM_P((gsm, int, int *));
64
65 extern void gsm_encode  GSM_P((gsm, gsm_signal *, gsm_byte  *));
66 extern int  gsm_decode  GSM_P((gsm, gsm_byte   *, gsm_signal *));
67
68 extern int  gsm_explode GSM_P((gsm, gsm_byte   *, gsm_signal *));
69 extern void gsm_implode GSM_P((gsm, gsm_signal *, gsm_byte   *));
70
71 #undef  GSM_P
72
73 #endif  /* GSM_H */