238 lines
6.2 KiB
C
238 lines
6.2 KiB
C
/******************************************************************************
|
|
* *
|
|
* Copyright (C) 1992-1995 Tony Robinson *
|
|
* *
|
|
* See the file doc/LICENSE.shorten for conditions on distribution and usage *
|
|
* *
|
|
******************************************************************************/
|
|
|
|
/*
|
|
* $Id: mkbshift.h 19 2005-06-07 04:16:15Z vspader $
|
|
*/
|
|
|
|
#ifndef _MKBSHIFT_H
|
|
#define _MKBSHIFT_H
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
#include "config.h"
|
|
#endif
|
|
|
|
#ifndef HAVE_STRERROR
|
|
extern char *sys_errlist[];
|
|
#define strerror(x) sys_errlist[x]
|
|
#endif
|
|
|
|
#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
|
|
|
|
#undef BOOL
|
|
#undef TRUE
|
|
#undef FALSE
|
|
#define BOOL int
|
|
#define TRUE 1
|
|
#define FALSE 0
|
|
|
|
#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 putc_exit(val, stream)\
|
|
{ char rval;\
|
|
if((rval = putc((val), (stream))) != (char) (val))\
|
|
update_exit(1, "write failed: putc returns EOF\n");\
|
|
}
|
|
|
|
extern int getc_exit_val;
|
|
#define getc_exit(stream)\
|
|
(((getc_exit_val = getc(stream)) == EOF) ? \
|
|
update_exit(1, "read failed: getc returns EOF\n"), 0: getc_exit_val)
|
|
|
|
#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
|
|
|
|
#if defined(__STDC__) || defined(__GNUC__) || defined(sgi) || !defined(unix)
|
|
#define PROTO(ARGS) ARGS
|
|
#else
|
|
#define PROTO(ARGS) ()
|
|
#endif
|
|
|
|
#ifdef NEED_OLD_PROTOTYPES
|
|
/*******************************************/
|
|
/* this should be in string.h or strings.h */
|
|
extern int strcmp PROTO ((const char*, const char*));
|
|
extern char* strcpy PROTO ((char*, const char*));
|
|
extern char* strcat PROTO ((char*, const char*));
|
|
extern int strlen PROTO ((const char*));
|
|
|
|
/**************************************/
|
|
/* defined in stdlib.h if you have it */
|
|
extern void* malloc PROTO ((unsigned long));
|
|
extern void free PROTO ((void*));
|
|
extern int atoi PROTO ((const char*));
|
|
extern void swab PROTO ((char*, char*, int));
|
|
extern int fseek PROTO ((FILE*, long, int));
|
|
|
|
/***************************/
|
|
/* other misc system calls */
|
|
extern int unlink PROTO ((const char*));
|
|
extern void exit PROTO ((int));
|
|
#endif
|
|
|
|
/**************************/
|
|
/* defined in Sulawalaw.c */
|
|
extern int Sulaw2lineartab[];
|
|
#define Sulaw2linear(i) (Sulaw2lineartab[i])
|
|
#ifndef Sulaw2linear
|
|
extern int Sulaw2linear PROTO((uchar));
|
|
#endif
|
|
extern uchar Slinear2ulaw PROTO((int));
|
|
|
|
extern int Salaw2lineartab[];
|
|
#define Salaw2linear(i) (Salaw2lineartab[i])
|
|
#ifndef Salaw2linear
|
|
extern int Salaw2linear PROTO((uchar));
|
|
#endif
|
|
extern uchar Slinear2alaw PROTO((int));
|
|
|
|
/*********************/
|
|
/* defined in exit.c */
|
|
extern void basic_exit PROTO ((int));
|
|
#ifdef HAVE_STDARG_H
|
|
extern void error_exit PROTO ((char*,...));
|
|
extern void perror_exit PROTO ((char*,...));
|
|
extern void usage_exit PROTO ((int, char*,...));
|
|
extern void update_exit PROTO ((int, char*,...));
|
|
#else
|
|
extern void error_exit PROTO (());
|
|
extern void perror_exit PROTO (());
|
|
extern void usage_exit PROTO (());
|
|
extern void update_exit PROTO (());
|
|
#endif
|
|
|
|
/**********************/
|
|
/* defined in array.c */
|
|
extern void* pmalloc PROTO ((ulong));
|
|
extern slong** long2d PROTO ((ulong, ulong));
|
|
|
|
#endif
|