Mercurial > audlegacy-plugins
view src/shnplug/shorten.h @ 2284:d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
PLAYBACK. if somebody is more experienced with it and wants to restore
the other formats, go ahead (maybe change the name of the plugin too?).
author | mf0102 <0102@gmx.at> |
---|---|
date | Wed, 09 Jan 2008 15:41:22 +0100 |
parents | fa9f85cebade |
children |
line wrap: on
line source
/****************************************************************************** * * * Copyright (C) 1992-1995 Tony Robinson * * * * See the file doc/LICENSE.shorten for conditions on distribution and usage * * * ******************************************************************************/ /* * $Id: shorten.h,v 1.4 2001/12/30 05:12:04 jason Exp $ */ #ifndef _SHORTEN_H #define _SHORTEN_H #include "config.h" #include <stdlib.h> #include <pthread.h> #ifdef HAVE_INTTYPES_H # include <inttypes.h> #else # if SIZEOF_UNSIGNED_LONG == 4 # define uint32_t unsigned long # define int32_t long # else # define uint32_t unsigned int # define int32_t int # endif # define uint16_t unsigned short # define uint8_t unsigned char # define int16_t short # define int8_t char #endif #undef ulong #undef ushort #undef uchar #undef slong #undef sshort #undef schar #define ulong uint32_t #define ushort uint16_t #define uchar uint8_t #define slong int32_t #define sshort int16_t #define schar int8_t #include "shn.h" extern shn_file *shnfile; #define MAGIC "ajkg" #define FORMAT_VERSION 2 #define MIN_SUPPORTED_VERSION 1 #define MAX_SUPPORTED_VERSION 3 #define MAX_VERSION 7 #define UNDEFINED_UINT -1 #define DEFAULT_BLOCK_SIZE 256 #define DEFAULT_V0NMEAN 0 #define DEFAULT_V2NMEAN 4 #define DEFAULT_MAXNLPC 0 #define DEFAULT_NCHAN 1 #define DEFAULT_NSKIP 0 #define DEFAULT_NDISCARD 0 #define NBITPERLONG 32 #define DEFAULT_MINSNR 256 #define DEFAULT_MAXRESNSTR "32.0" #define DEFAULT_QUANTERROR 0 #define MINBITRATE 2.5 #define MAX_LPC_ORDER 64 #define CHANSIZE 0 #define ENERGYSIZE 3 #define BITSHIFTSIZE 2 #define NWRAP 3 #define FNSIZE 2 #define FN_DIFF0 0 #define FN_DIFF1 1 #define FN_DIFF2 2 #define FN_DIFF3 3 #define FN_QUIT 4 #define FN_BLOCKSIZE 5 #define FN_BITSHIFT 6 #define FN_QLPC 7 #define FN_ZERO 8 #define FN_VERBATIM 9 #define VERBATIM_CKSIZE_SIZE 5 /* a var_put code size */ #define VERBATIM_BYTE_SIZE 8 /* code size 8 on single bytes means * no compression at all */ #define VERBATIM_CHUNK_MAX 256 /* max. size of a FN_VERBATIM chunk */ #define ULONGSIZE 2 #define NSKIPSIZE 1 #define LPCQSIZE 2 #define LPCQUANT 5 #define XBYTESIZE 7 #define TYPESIZE 4 #define TYPE_AU1 0 /* original lossless ulaw */ #define TYPE_S8 1 /* signed 8 bit characters */ #define TYPE_U8 2 /* unsigned 8 bit characters */ #define TYPE_S16HL 3 /* signed 16 bit shorts: high-low */ #define TYPE_U16HL 4 /* unsigned 16 bit shorts: high-low */ #define TYPE_S16LH 5 /* signed 16 bit shorts: low-high */ #define TYPE_U16LH 6 /* unsigned 16 bit shorts: low-high */ #define TYPE_ULAW 7 /* lossy ulaw: internal conversion to linear */ #define TYPE_AU2 8 /* new ulaw with zero mapping */ #define TYPE_AU3 9 /* lossless alaw */ #define TYPE_ALAW 10 /* lossy alaw: internal conversion to linear */ #define TYPE_RIFF_WAVE 11 /* Microsoft .WAV files */ #define TYPE_EOF 12 #define TYPE_GENERIC_ULAW 128 #define TYPE_GENERIC_ALAW 129 #define POSITIVE_ULAW_ZERO 0xff #define NEGATIVE_ULAW_ZERO 0x7f #ifndef MAX_PATH #define MAX_PATH 2048 #endif #ifndef MIN #define MIN(a,b) (((a)<(b))?(a):(b)) #endif #ifndef MAX #define MAX(a,b) (((a)>(b))?(a):(b)) #endif #if defined(unix) && !defined(linux) #define labs abs #endif #define ROUNDEDSHIFTDOWN(x, n) (((n) == 0) ? (x) : ((x) >> ((n) - 1)) >> 1) #ifndef M_LN2 #define M_LN2 0.69314718055994530942 #endif #ifndef M_PI #define M_PI 3.14159265358979323846 #endif /* BUFSIZ must be a multiple of four to contain a whole number of words */ #ifdef BUFSIZ #undef BUFSIZ #endif #define BUFSIZ 512 #define V2LPCQOFFSET (1 << LPCQUANT); #define UINT_GET(nbit, shnfile) \ ((version == 0) ? uvar_get(nbit, shnfile) : ulong_get(shnfile)) #define putc_exit(val, stream)\ { char rval;\ if((rval = putc((val), (stream))) != (char) (val))\ complain("FATALERROR: write failed: putc returns EOF");\ } extern int getc_exit_val; #define getc_exit(stream)\ (((getc_exit_val = aud_vfs_getc(stream)) == EOF) ? \ complain("FATALERROR: read failed: getc returns EOF"), 0: getc_exit_val) /************************/ /* defined in shorten.c */ extern void init_offset(slong**, int, int, int); extern int shorten(FILE*, FILE*, int, char**); /**************************/ /* defined in Sulawalaw.c */ extern int Sulaw2lineartab[]; #define Sulaw2linear(i) (Sulaw2lineartab[i]) #ifndef Sulaw2linear extern int Sulaw2linear(uchar); #endif extern uchar Slinear2ulaw(int); extern int Salaw2lineartab[]; #define Salaw2linear(i) (Salaw2lineartab[i]) #ifndef Salaw2linear extern int Salaw2linear(uchar); #endif extern uchar Slinear2alaw(int); /**********************/ /* defined in fixio.c */ extern void init_sizeof_sample(void); extern void fwrite_type_init(shn_file*); extern void fwrite_type(slong**,int,int,int,shn_file*); extern void fwrite_type_quit(shn_file*); extern void fix_bitshift(slong*, int, int, int); /**********************/ /* defined in vario.c */ extern void var_get_init(shn_file*); extern slong uvar_get(int, shn_file*); extern slong var_get(int, shn_file*); extern ulong ulong_get(shn_file*); extern void var_get_quit(shn_file*); extern int sizeof_uvar(ulong, int); extern int sizeof_var(slong, int); extern void mkmasktab(void); extern ulong word_get(shn_file*); /**********************/ /* defined in array.c */ extern void* pmalloc(ulong, shn_file*); extern slong** long2d(ulong, ulong, shn_file*); #endif