GNU Radio 3.6.5 C++ API

gsm.h

Go to the documentation of this file.
00001 /*
00002  * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
00003  * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
00004  * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
00005  */
00006 
00007 /*$Header$*/
00008 
00009 #ifndef GSM_H
00010 #define GSM_H
00011 
00012 #ifdef __cplusplus
00013 #       define  NeedFunctionPrototypes  1
00014 #endif
00015 
00016 #if __STDC__
00017 #       define  NeedFunctionPrototypes  1
00018 #endif
00019 
00020 #ifdef _NO_PROTO
00021 #       undef   NeedFunctionPrototypes
00022 #endif
00023 
00024 #ifdef NeedFunctionPrototypes
00025 #   include     <stdio.h>               /* for FILE *   */
00026 #endif
00027 
00028 #undef GSM_P
00029 #if NeedFunctionPrototypes
00030 #       define  GSM_P( protos ) protos
00031 #else
00032 #       define  GSM_P( protos ) ( /* protos */ )
00033 #endif
00034 
00035 /*
00036  *      Interface
00037  */
00038 
00039 typedef struct gsm_state *      gsm;
00040 typedef short                   gsm_signal;             /* signed 16 bit */
00041 typedef unsigned char           gsm_byte;
00042 typedef gsm_byte                gsm_frame[33];          /* 33 * 8 bits   */
00043 
00044 #define GSM_MAGIC               0xD                     /* 13 kbit/s RPE-LTP */
00045 
00046 #define GSM_PATCHLEVEL          10
00047 #define GSM_MINOR               0
00048 #define GSM_MAJOR               1
00049 
00050 #define GSM_OPT_VERBOSE         1
00051 #define GSM_OPT_FAST            2
00052 #define GSM_OPT_LTP_CUT         3
00053 #define GSM_OPT_WAV49           4
00054 #define GSM_OPT_FRAME_INDEX     5
00055 #define GSM_OPT_FRAME_CHAIN     6
00056 
00057 #define GSM_SAMPLES_PER_FRAME   160
00058 
00059 extern gsm  gsm_create  GSM_P((void));
00060 extern void gsm_destroy GSM_P((gsm));
00061 
00062 extern int  gsm_print   GSM_P((FILE *, gsm, gsm_byte  *));
00063 extern int  gsm_option  GSM_P((gsm, int, int *));
00064 
00065 extern void gsm_encode  GSM_P((gsm, gsm_signal *, gsm_byte  *));
00066 extern int  gsm_decode  GSM_P((gsm, gsm_byte   *, gsm_signal *));
00067 
00068 extern int  gsm_explode GSM_P((gsm, gsm_byte   *, gsm_signal *));
00069 extern void gsm_implode GSM_P((gsm, gsm_signal *, gsm_byte   *));
00070 
00071 #undef  GSM_P
00072 
00073 #endif  /* GSM_H */