00001 #ifndef __LPC10_H
00002 #define __LPC10_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #include "tdef.h"
00035
00036
00037
00038 #ifdef __cplusplus
00039 extern "C" {
00040 #endif
00041
00042
00043
00044 #define LPC10_LFRAME 180
00045 #define LPC10_ORDER 10
00046
00047 #define LPC10_DOUTMAX 320
00048
00049
00050
00051 typedef struct {
00052 VOID *dummy;
00053 } CLPC10_2400;
00054
00055 typedef struct {
00056 VOID *dummy;
00057 } DLPC10_2400;
00058
00059 typedef struct {
00060 VOID *dummy;
00061 } CLPC10_DGRAM;
00062
00063 typedef struct {
00064 VOID *dummy;
00065 } DLPC10_DGRAM;
00066
00067 typedef struct {
00068 VOID *dummy;
00069 } PTHL10;
00070
00071 typedef INT LPC10_2400_idata[54];
00072 typedef BYTE LPC10_2400_data[7];
00073 typedef BYTE LPC10_dgram_data[7];
00074
00075
00076
00077 CLPC10_2400 *clpc10_2400_construct( VOID );
00078 VOID clpc10_2400_destruct( CLPC10_2400 *l );
00079 VOID clpc10_2400_reset( CLPC10_2400 *l );
00080 LPC10_2400_idata *clpc10_2400_icode( CLPC10_2400 *l, FLOAT speech[LPC10_LFRAME] );
00081 LPC10_2400_idata *clpc10_2400_icode_i16( CLPC10_2400 *l, INT16 speech[LPC10_LFRAME] );
00082 VOID clpc10_2400_pack( LPC10_2400_idata *in, LPC10_2400_data *o);
00083
00084
00085
00086 DLPC10_2400 *dlpc10_2400_construct( VOID );
00087 VOID dlpc10_2400_destruct( DLPC10_2400 *d );
00088 VOID dlpc10_2400_reset( DLPC10_2400 *d );
00089 FLOAT *dlpc10_2400_outvec( DLPC10_2400 *d );
00090 INT16 *dlpc10_2400_outvec_i16( DLPC10_2400 *d );
00091 INT dlpc10_2400_idecode( DLPC10_2400 *d, LPC10_2400_idata *bits );
00092 INT dlpc10_2400_idecode_i16( DLPC10_2400 *d, LPC10_2400_idata *bits );
00093 VOID dlpc10_2400_unpack( LPC10_2400_data *in, LPC10_2400_idata *o);
00094
00095
00096
00097 CLPC10_DGRAM *clpc10_dgram_construct( VOID );
00098 VOID clpc10_dgram_destruct( CLPC10_DGRAM *l );
00099 VOID clpc10_dgram_reset( CLPC10_DGRAM *l );
00100 LPC10_dgram_data *clpc10_dgram_code( CLPC10_DGRAM *l, FLOAT speech[LPC10_LFRAME] );
00101 LPC10_dgram_data *clpc10_dgram_code_i16( CLPC10_DGRAM *l, INT16 speech[LPC10_LFRAME] );
00102
00103
00104
00105 DLPC10_DGRAM *dlpc10_dgram_construct( VOID );
00106 VOID dlpc10_dgram_destruct( DLPC10_DGRAM *d );
00107 VOID dlpc10_dgram_reset( DLPC10_DGRAM *d );
00108 FLOAT *dlpc10_dgram_outvec( DLPC10_DGRAM *d );
00109 INT16 *dlpc10_dgram_outvec_i16( DLPC10_DGRAM *d );
00110 INT dlpc10_dgram_decode( DLPC10_DGRAM *d, LPC10_dgram_data *dgram );
00111 INT dlpc10_dgram_decode_i16( DLPC10_DGRAM *d, LPC10_dgram_data *dgram );
00112
00113
00114
00115 PTHL10 *pthl10_construct( VOID );
00116 VOID pthl10_destruct( PTHL10 *p );
00117 VOID pthl10_reset( PTHL10 *p );
00118 INT pthl10_get_i16( PTHL10 *p, INT16 speech[LPC10_LFRAME] );
00119
00120
00121
00122 VOID c_lpc10_ini( VOID );
00123 VOID c_lpc10_code( FLOAT speech[] );
00124 VOID c_lpc10_code_i16( INT16 speech[] );
00125 VOID c_lpc10_peek( BOOL voice[2], INT *pitch,
00126 FLOAT *rms, FLOAT rc[LPC10_ORDER] );
00127
00128 VOID d_lpc10_ini( VOID );
00129 INT d_lpc10_decode( BOOL voice[2], INT pitch, FLOAT rms,
00130 FLOAT rc[LPC10_ORDER], FLOAT speech[] );
00131
00132
00133
00134 #ifdef __cplusplus
00135 }
00136 #endif
00137
00138
00139
00140 #endif