www.pudn.com > bladeenc-0.90.0-src.zip > system.h
/*
(c) Copyright 1998, 1999 - Tord Jansson
=======================================
This file is part of the BladeEnc MP3 Encoder, based on
ISO's reference code for MPEG Layer 3 compression.
This file doesn't contain any of the ISO reference code and
is copyright Tord Jansson (tord.jansson@swipnet.se).
BladeEnc is free software; you can redistribute this file
and/or modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
*/
/*==== High level defines =====================================================*/
#define WIN32_INTEL 0
#define WIN32_ALPHA 1
#define LINUX_I386 2
#define LINUX_PPC 3
#define LINUX_SPARC 4
#define LINUX_ALPHA 5
#define SOLARIS 6
#define IBM_OS2 7
#define IRIX 8
#define ATARI_TOS 9
#define UNIXWARE7 10
#define SCO5 11
#define ULTRIX 12
#define NETBSD 13
#define OPENBSD 14
#define HPUX 15
#define MSDOS_DJGPP 16
#define MAC_OS 17 /* To compile the Mac version you also need Petteri Kamppuri's wrapper */
#define BEOS_PPC 18
#ifndef SYSTEM
# define SYSTEM LINUX_I386 /* Set current system here, select */
#endif /* from list above. */
/*#define PRECISE_TIMER*/ /* Gives more accurate speed calculations, */
/* just for debug purposes. Disable in release version! */
/*==== Low level defines ======================================================*/
/*
LIST OF DEFINES
===============
BYTEORDER [byteorder] Should either be set to BIG_ENDIAN or LITTLE_ENDIAN depending on the processor.
INLINE [prefix] Defines the prefix for inline functions, normally _inline.
Skip this define if your compiler doesn't support inline functions.
DRAG_DROP Set if Drag-n-Drop operations are supported. If defined, the hint for drag and drop
is displayed in the help text.
PRIO Set if priority can be set with the -PRIO switch (UNIX_SYSTEM enables this automatically).
MSWIN Set this for windows systems. Includes "windows.h" etc.
WILDCARDS Set this if the program has to expand wildcards itself on your system.
NO_ZERO_CALLOC Set this to work around a bug when allocation 0 bytes memory with some compilers.
DIRECTORY_SEPARATOR Should either be '\\' or '/'.
WAIT_KEY Set this on systems where we as default want to wait for a keypress before quiting.
UNIX_SYSTEM Set this for UNIX-systems that are posix and (at least to some extent) bsd compliant
to enable stuff like config-file support, priority settings etc.
PAUSE_25_LINES Wait for keypress after 25 lines of output when listing important information.
*/
/* Most systems allready have these two defines, but some doesn't
so we have to put them here, before they are used. */
#ifndef BIG_ENDIAN
# define BIG_ENDIAN 4321
#endif
#ifndef LITTLE_ENDIAN
# define LITTLE_ENDIAN 1234
#endif
/*_____ Windows 95/98/NT Intel defines ________________________________________*/
#if SYSTEM == WIN32_INTEL
# define BYTEORDER LITTLE_ENDIAN
# define INLINE _inline
# define DRAG_DROP
# define PRIO
# define MSWIN
# define WILDCARDS
# define DIRECTORY_SEPARATOR '\\'
# define WAIT_KEY
# define PAUSE_25_LINES
#endif
/*_____ Windows NT DEC Alpha defines __________________________________________*/
#if SYSTEM == WIN32_ALPHA
# define BYTEORDER LITTLE_ENDIAN
# define INLINE _inline
# define DRAG_DROP
# define PRIO
# define MSWIN
# define WILDCARDS
# define DIRECTORY_SEPARATOR '\\'
# define WAIT_KEY
# define PAUSE_25_LINES
#endif
/*____ Linux i386 defines ___________________________________________________*/
#if SYSTEM == LINUX_I386
# define BYTEORDER LITTLE_ENDIAN
# define INLINE inline
# define DIRECTORY_SEPARATOR '/'
# define UNIX_SYSTEM
#endif
/*____ Linux Sparc defines __________________________________________________*/
#if SYSTEM == LINUX_SPARC
# define BYTEORDER BIG_ENDIAN
# define INLINE inline
# define DIRECTORY_SEPARATOR '/'
# define UNIX_SYSTEM
#endif
/*____ LinuxPPC defines _____________________________________________________*/
#if SYSTEM == LINUX_PPC
# define BYTEORDER BIG_ENDIAN
# define INLINE inline
# define DIRECTORY_SEPARATOR '/'
# define UNIX_SYSTEM
#endif
/*____ Linux Alpha defines __________________________________________________*/
#if SYSTEM == LINUX_ALPHA
# define BYTEORDER LITTLE_ENDIAN
# define DIRECTORY_SEPARATOR '/'
# define UNIX_SYSTEM
#endif
/*____ Solaris defines ______________________________________________________*/
#if SYSTEM == SOLARIS
# define BYTEORDER BIG_ENDIAN
# define DIRECTORY_SEPARATOR '/'
# define UNIX_SYSTEM
#endif
/*____ OS/2 _________________________________________________________________*/
#if SYSTEM == IBM_OS2
# define BYTEORDER LITTLE_ENDIAN
# define INLINE inline
# define PRIO
# define WILDCARDS
# define DIRECTORY_SEPARATOR '\\'
# define OS2
# define WAIT_KEY
# define PAUSE_25_LINES
#endif
/*____ IRIX defines _________________________________________________________*/
#if SYSTEM == IRIX
# define BYTEORDER BIG_ENDIAN
# define DIRECTORY_SEPARATOR '/'
# define UNIX_SYSTEM
#endif
/*____ Atari TOS ____________________________________________________________*/
#if SYSTEM == ATARI_TOS
# define BYTEORDER BIG_ENDIAN
# define INLINE inline
# define DIRECTORY_SEPARATOR '\\'
# define TOS
# define PAUSE_25_LINES
#endif
/*____ UNIXWARE7 ____________________________________________________________*/
#if SYSTEM == UNIXWARE7
# define BYTEORDER LITTLE_ENDIAN
# define DIRECTORY_SEPARATOR '/'
# define UNIX_SYSTEM
#endif
/*____ SCO OpenServer 5.x ___________________________________________________*/
#if SYSTEM == SCO5
# define BYTEORDER LITTLE_ENDIAN
# define DIRECTORY_SEPARATOR '/'
# define UNIX_SYSTEM
#endif
/*____ Ultrix defines ________________________________________________________*/
#if SYSTEM == ULTRIX
# define BYTEORDER LITTLE_ENDIAN
# define DIRECTORY_SEPARATOR '/'
# define HAVE_USHORT
# define HAVE_UINT
# include /* for uint and ushort */
# define UNIX_SYSTEM
#endif
/*____ NetBSD defines ________________________________________________________*/
#if SYSTEM == NETBSD
# include
# define BYTEORDER BYTE_ORDER
# define DIRECTORY_SEPARATOR '/'
# define HAVE_USHORT
# define HAVE_UINT
# define UNIX_SYSTEM
#endif
/*____ OpenBSD defines ________________________________________________________*/
#if SYSTEM == OPENBSD
# include
# define BYTEORDER BYTE_ORDER
# define DIRECTORY_SEPARATOR '/'
# define HAVE_USHORT
# define HAVE_UINT
# define UNIX_SYSTEM
#endif
/*____ HP/UX defines ________________________________________________________*/
#if SYSTEM == HPUX
# define BYTEORDER BIG_ENDIAN
# define DIRECTORY_SEPARATOR '/'
# define INLINE
# define UNIX_SYSTEM
#endif
/*____ MSDOS_DJGPP _________________________________________________________*/
#if SYSTEM == MSDOS_DJGPP
# define BYTEORDER LITTLE_ENDIAN
# define INLINE inline
# define DIRECTORY_SEPARATOR '\\'
#endif
/*____ MAC_OS ________________________________________________________________*/
#if SYSTEM == MAC_OS
# define BYTEORDER BIG_ENDIAN
# define INLINE inline
# define DIRECTORY_SEPARATOR ':'
# define NO_ZERO_CALLOC
#endif
/*____ BeOS PowerPC ___________________________________________________*/
#if SYSTEM == BEOS_PPC
# define BYTEORDER BIG_ENDIAN
# define DIRECTORY_SEPARATOR '/'
# define INLINE inline
#endif
/*____ Some defines automatically gives other...*/
#ifdef UNIX_SYSTEM
# ifndef PRIO
# define PRIO
# endif
#endif
/*____ To make sure that certain necessary defines are set... */
#ifndef INLINE
# define INLINE
#endif
/*==== Other Global Definitions, placed here for convenience ==================*/
#ifndef FALSE
# define FALSE 0
#endif
#ifndef TRUE
# define TRUE 1
#endif
typedef unsigned char uchar;
#if !defined(SYS_TYPES_H) && !defined(_SYS_TYPES_H)
# ifndef HAVE_USHORT
typedef unsigned short ushort;
# endif
# ifndef HAVE_UINT
typedef unsigned int uint;
# endif
#endif