1*8ec969ceSTreehugger Robot /* 2*8ec969ceSTreehugger Robot * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische 3*8ec969ceSTreehugger Robot * Universitaet Berlin. See the accompanying file "COPYRIGHT" for 4*8ec969ceSTreehugger Robot * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. 5*8ec969ceSTreehugger Robot */ 6*8ec969ceSTreehugger Robot 7*8ec969ceSTreehugger Robot /*$Header: /home/kbs/jutta/src/gsm/gsm-1.0/inc/RCS/gsm.h,v 1.11 1996/07/05 18:02:56 jutta Exp $*/ 8*8ec969ceSTreehugger Robot 9*8ec969ceSTreehugger Robot #ifndef GSM_H 10*8ec969ceSTreehugger Robot #define GSM_H 11*8ec969ceSTreehugger Robot 12*8ec969ceSTreehugger Robot #ifdef __cplusplus 13*8ec969ceSTreehugger Robot extern "C" { 14*8ec969ceSTreehugger Robot #endif 15*8ec969ceSTreehugger Robot 16*8ec969ceSTreehugger Robot #ifdef __cplusplus 17*8ec969ceSTreehugger Robot # define NeedFunctionPrototypes 1 18*8ec969ceSTreehugger Robot #endif 19*8ec969ceSTreehugger Robot 20*8ec969ceSTreehugger Robot #if __STDC__ 21*8ec969ceSTreehugger Robot # define NeedFunctionPrototypes 1 22*8ec969ceSTreehugger Robot #endif 23*8ec969ceSTreehugger Robot 24*8ec969ceSTreehugger Robot #ifdef _NO_PROTO 25*8ec969ceSTreehugger Robot # undef NeedFunctionPrototypes 26*8ec969ceSTreehugger Robot #endif 27*8ec969ceSTreehugger Robot 28*8ec969ceSTreehugger Robot #ifdef NeedFunctionPrototypes 29*8ec969ceSTreehugger Robot # include <stdio.h> /* for FILE * */ 30*8ec969ceSTreehugger Robot #endif 31*8ec969ceSTreehugger Robot 32*8ec969ceSTreehugger Robot #undef GSM_P 33*8ec969ceSTreehugger Robot #if NeedFunctionPrototypes 34*8ec969ceSTreehugger Robot # define GSM_P( protos ) protos 35*8ec969ceSTreehugger Robot #else 36*8ec969ceSTreehugger Robot # define GSM_P( protos ) ( /* protos */ ) 37*8ec969ceSTreehugger Robot #endif 38*8ec969ceSTreehugger Robot 39*8ec969ceSTreehugger Robot /* 40*8ec969ceSTreehugger Robot * Interface 41*8ec969ceSTreehugger Robot */ 42*8ec969ceSTreehugger Robot 43*8ec969ceSTreehugger Robot typedef struct gsm_state * gsm; 44*8ec969ceSTreehugger Robot typedef short gsm_signal; /* signed 16 bit */ 45*8ec969ceSTreehugger Robot typedef unsigned char gsm_byte; 46*8ec969ceSTreehugger Robot typedef gsm_byte gsm_frame[33]; /* 33 * 8 bits */ 47*8ec969ceSTreehugger Robot 48*8ec969ceSTreehugger Robot #define GSM_MAGIC 0xD /* 13 kbit/s RPE-LTP */ 49*8ec969ceSTreehugger Robot 50*8ec969ceSTreehugger Robot #define GSM_PATCHLEVEL 19 51*8ec969ceSTreehugger Robot #define GSM_MINOR 0 52*8ec969ceSTreehugger Robot #define GSM_MAJOR 1 53*8ec969ceSTreehugger Robot 54*8ec969ceSTreehugger Robot #define GSM_OPT_VERBOSE 1 55*8ec969ceSTreehugger Robot #define GSM_OPT_FAST 2 56*8ec969ceSTreehugger Robot #define GSM_OPT_LTP_CUT 3 57*8ec969ceSTreehugger Robot #define GSM_OPT_WAV49 4 58*8ec969ceSTreehugger Robot #define GSM_OPT_FRAME_INDEX 5 59*8ec969ceSTreehugger Robot #define GSM_OPT_FRAME_CHAIN 6 60*8ec969ceSTreehugger Robot 61*8ec969ceSTreehugger Robot extern gsm gsm_create GSM_P((void)); 62*8ec969ceSTreehugger Robot extern void gsm_destroy GSM_P((gsm)); 63*8ec969ceSTreehugger Robot 64*8ec969ceSTreehugger Robot extern int gsm_print GSM_P((FILE *, gsm, gsm_byte *)); 65*8ec969ceSTreehugger Robot extern int gsm_option GSM_P((gsm, int, int *)); 66*8ec969ceSTreehugger Robot 67*8ec969ceSTreehugger Robot extern void gsm_encode GSM_P((gsm, gsm_signal *, gsm_byte *)); 68*8ec969ceSTreehugger Robot extern int gsm_decode GSM_P((gsm, gsm_byte *, gsm_signal *)); 69*8ec969ceSTreehugger Robot 70*8ec969ceSTreehugger Robot extern int gsm_explode GSM_P((gsm, gsm_byte *, gsm_signal *)); 71*8ec969ceSTreehugger Robot extern void gsm_implode GSM_P((gsm, gsm_signal *, gsm_byte *)); 72*8ec969ceSTreehugger Robot 73*8ec969ceSTreehugger Robot #undef GSM_P 74*8ec969ceSTreehugger Robot 75*8ec969ceSTreehugger Robot #ifdef __cplusplus 76*8ec969ceSTreehugger Robot } // extern "C" 77*8ec969ceSTreehugger Robot #endif 78*8ec969ceSTreehugger Robot 79*8ec969ceSTreehugger Robot #endif /* GSM_H */ 80