xref: /aosp_15_r20/external/libgsm/inc/gsm.h (revision 8ec969cea971fe25ff2d3933a5a9f8504f8e86c9)
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