diff options
Diffstat (limited to '1.4.23-rc4/codecs/lpc10/lpc10.h')
-rw-r--r-- | 1.4.23-rc4/codecs/lpc10/lpc10.h | 256 |
1 files changed, 0 insertions, 256 deletions
diff --git a/1.4.23-rc4/codecs/lpc10/lpc10.h b/1.4.23-rc4/codecs/lpc10/lpc10.h deleted file mode 100644 index a57f84f3f..000000000 --- a/1.4.23-rc4/codecs/lpc10/lpc10.h +++ /dev/null @@ -1,256 +0,0 @@ -/* - -$Log$ -Revision 1.18 2004/08/31 13:32:11 markster -Merge NetBSD and Courtesty tone with modifications (bug #2329) - -Revision 1.17 2003/10/26 18:50:49 markster -Make it build and run on MacOS X - -Revision 1.3 2003/10/26 18:50:49 markster -Make it build and run on MacOS X - -Revision 1.2 2003/04/23 19:13:35 markster -More OpenBSD patches - -Revision 1.1.1.2 2003/03/16 22:37:30 matteo -dom mar 16 23:37:23 CET 2003 - -Revision 1.2 2003/03/16 16:09:48 markster -Mere James's cleanups for fewer build warnings - -Revision 1.1 2000/01/05 00:20:06 markster -Add broken lpc10 code... It's not too far from working I don't think... - - * Revision 1.1 1996/08/19 22:47:31 jaf - * Initial revision - * - -*/ - -#ifndef __LPC10_H__ -#define __LPC10_H__ - -#define P_R_O_T_O_T_Y_P_E_S - -#define LPC10_SAMPLES_PER_FRAME 180 -#define LPC10_BITS_IN_COMPRESSED_FRAME 54 - - -/* - - The "#if defined"'s in this file are by no means intended to be - complete. They are what Nautilus uses, which has been successfully - compiled under DOS with the Microsoft C compiler, and under a few - versions of Unix with the GNU C compiler. - - */ - -#if defined(unix) || defined(__unix__) || defined(__NetBSD__) -typedef short INT16; -typedef int INT32; -#endif - - -#if defined(__MSDOS__) || defined(MSDOS) -typedef int INT16; -typedef long INT32; -#endif - -#if defined(__APPLE__) -typedef short INT16; -typedef int INT32; -#endif - -#if defined(WIN32) && defined(_MSC_VER) -typedef __int16 INT16; -typedef __int32 INT32; -#pragma warning(disable: 4005) -#endif - - -/* The initial values for every member of this structure is 0, except - where noted in comments. */ - -/* These two lines are copied from f2c.h. There should be a more - elegant way of doing this than having the same declarations in two - files. */ - -typedef float real; -typedef INT32 integer; -typedef INT32 logical; -typedef INT16 shortint; - -struct lpc10_encoder_state { - /* State used only by function hp100 */ - real z11; - real z21; - real z12; - real z22; - - /* State used by function analys */ - real inbuf[540], pebuf[540]; - real lpbuf[696], ivbuf[312]; - real bias; - integer osbuf[10]; /* no initial value necessary */ - integer osptr; /* initial value 1 */ - integer obound[3]; - integer vwin[6] /* was [2][3] */; /* initial value vwin[4] = 307; vwin[5] = 462; */ - integer awin[6] /* was [2][3] */; /* initial value awin[4] = 307; awin[5] = 462; */ - integer voibuf[8] /* was [2][4] */; - real rmsbuf[3]; - real rcbuf[30] /* was [10][3] */; - real zpre; - - - /* State used by function onset */ - real n; - real d__; /* initial value 1.f */ - real fpc; /* no initial value necessary */ - real l2buf[16]; - real l2sum1; - integer l2ptr1; /* initial value 1 */ - integer l2ptr2; /* initial value 9 */ - integer lasti; /* no initial value necessary */ - logical hyst; /* initial value FALSE_ */ - - /* State used by function voicin */ - real dither; /* initial value 20.f */ - real snr; - real maxmin; - real voice[6] /* was [2][3] */; /* initial value is probably unnecessary */ - integer lbve, lbue, fbve, fbue; - integer ofbue, sfbue; - integer olbue, slbue; - /* Initial values: - lbve = 3000; - fbve = 3000; - fbue = 187; - ofbue = 187; - sfbue = 187; - lbue = 93; - olbue = 93; - slbue = 93; - snr = (real) (fbve / fbue << 6); - */ - - /* State used by function dyptrk */ - real s[60]; - integer p[120] /* was [60][2] */; - integer ipoint; - real alphax; - - /* State used by function chanwr */ - integer isync; - -}; - - -struct lpc10_decoder_state { - - /* State used by function decode */ - integer iptold; /* initial value 60 */ - logical first; /* initial value TRUE_ */ - integer ivp2h; - integer iovoic; - integer iavgp; /* initial value 60 */ - integer erate; - integer drc[30] /* was [3][10] */; - integer dpit[3]; - integer drms[3]; - - /* State used by function synths */ - real buf[360]; - integer buflen; /* initial value 180 */ - - /* State used by function pitsyn */ - integer ivoico; /* no initial value necessary as long as first_pitsyn is initially TRUE_ */ - integer ipito; /* no initial value necessary as long as first_pitsyn is initially TRUE_ */ - real rmso; /* initial value 1.f */ - real rco[10]; /* no initial value necessary as long as first_pitsyn is initially TRUE_ */ - integer jsamp; /* no initial value necessary as long as first_pitsyn is initially TRUE_ */ - logical first_pitsyn; /* initial value TRUE_ */ - - /* State used by function bsynz */ - integer ipo; - real exc[166]; - real exc2[166]; - real lpi1; - real lpi2; - real lpi3; - real hpi1; - real hpi2; - real hpi3; - real rmso_bsynz; - - /* State used by function random */ - integer j; /* initial value 2 */ - integer k; /* initial value 5 */ - shortint y[5]; /* initial value { -21161,-8478,30892,-10216,16950 } */ - - /* State used by function deemp */ - real dei1; - real dei2; - real deo1; - real deo2; - real deo3; - -}; - - - -/* - - Calling sequence: - - Call create_lpc10_encoder_state(), which returns a pointer to an - already initialized lpc10_encoder_state structure. - - lpc10_encode reads indices 0 through (LPC10_SAMPLES_PER_FRAME-1) of - array speech[], and writes indices 0 through - (LPC10_BITS_IN_COMPRESSED_FRAME-1) of array bits[], and both reads - and writes the lpc10_encoder_state structure contents. The - lpc10_encoder_state structure should *not* be initialized for every - frame of encoded speech. Once at the beginning of execution, done - automatically for you by create_lpc10_encoder_state(), is enough. - - init_lpc10_encoder_state() reinitializes the lpc10_encoder_state - structure. This might be useful if you are finished processing one - sound sample, and want to reuse the same lpc10_encoder_state - structure to process another sound sample. There might be other - uses as well. - - Note that the comments in the lpc10/lpcenc.c file imply that indices - 1 through 180 of array speech[] are read. These comments were - written for the Fortran version of the code, before it was - automatically converted to C by the conversion program f2c. f2c - seems to use the convention that the pointers to arrays passed as - function arguments point to the first index used in the Fortran - code, whatever index that might be (usually 1), and then it modifies - the pointer inside of the function, like so: - - if (speech) { - --speech; - } - - So that the code can access the first value at index 1 and the last - at index 180. This makes the translated C code "closer" to the - original Fortran code. - - The calling sequence for the decoder is similar to the encoder. The - only significant difference is that the array bits[] is read - (indices 0 through (LPC10_BITS_IN_COMPRESSED_FRAME-1)), and the - array speech[] is written (indices 0 through - (LPC10_SAMPLES_PER_FRAME-1)). - - */ - -struct lpc10_encoder_state * create_lpc10_encoder_state (void); -void init_lpc10_encoder_state (struct lpc10_encoder_state *st); -int lpc10_encode (real *speech, INT32 *bits, struct lpc10_encoder_state *st); - -struct lpc10_decoder_state * create_lpc10_decoder_state (void); -void init_lpc10_decoder_state (struct lpc10_decoder_state *st); -int lpc10_decode (INT32 *bits, real *speech, struct lpc10_decoder_state *st); - -#endif /* __LPC10_H__ */ |