diff options
Diffstat (limited to 'cmt/swlogic.h')
-rw-r--r-- | cmt/swlogic.h | 197 |
1 files changed, 197 insertions, 0 deletions
diff --git a/cmt/swlogic.h b/cmt/swlogic.h new file mode 100644 index 0000000..e09bd6c --- /dev/null +++ b/cmt/swlogic.h @@ -0,0 +1,197 @@ +/******************************************************************** +* swlogic.h - switch logic, loaded from various versions of switch.h +* +* Copyright 1989 Carnegie Mellon University +* +*********************************************************************/ + +/* + * When included, one of the following should be defined: + * AZTEC (manx compiler, implies AMIGA) + * THINK_C (Think C compiler, implies Macintosh) + * __MWERKS__ (Metrowerks C compiler, implies Macintosh) + * LATTICE & DOS (Lattice compiler for IBM PC/AT/XT/CLONES) + * MICROSOFT & DOS (Microsoft compiler, implies IBM PC/AT/XT/CLONES) + * UNIX (emulator for UNIX) + * UNIX_ITC (ITC code for RS6000) + * UNIX_MACH (MACH ukernel system) + */ + +/*------------------------------------------*/ +/* Other switches that might be defined in switches.h are as follows: */ +/* APPLICATION, SPACE_FOR_PLAY, MAX_CHANNELS */ +/*------------------------------------------*/ + +/* We're moving toward the elimination of switches.h, so try to map + * predefined constants into our standard constants shown above: + */ + +/* CHANGE LOG + * -------------------------------------------------------------------- + * 28Apr03 dm new conditional compilation structure + * 28Apr03 rbd remove macro redefinitions: MICROSOFT + */ + + + +/* Microsoft C compiler: */ +#ifdef _MSC_VER +#endif +#ifdef _MSDOS +#define DOS +#endif + +/* Quick C compiler: */ +#ifndef DOS +#ifdef MICROSOFT +#define DOS +#endif +#endif + +/* Borland C compiler: */ +#ifdef __BORLANDC__ +#define BORLAND +#define DOS +#endif + +/* Borland Turbo C compiler: */ +#ifdef __TURBOC__ +#define BORLAND] +#define DOS +#endif + +/* SGI systems */ +#ifdef sgi +#ifndef UNIX +#define UNIX +#endif +#define UNIX_IRIX +#define MAX_CHANNELS 32 +#endif + +/* APPLICATION -- define APPLICATION if you want to disable + * looking for command line switches in the midi interface. + * I think this feature is here for the Piano Tutor project + * and you should not define APPLICATION for CMU Midi Toolkit + * projects (APPLICATION is a poor choice of terms): + */ + + +/* memory space management (system dependent): + * SPACE_FOR_PLAY must be enough space to allow + * seq to play a score. This may include space for + * note-off events, I/O buffers, etc. + */ +#ifndef SPACE_FOR_PLAY +#define SPACE_FOR_PLAY 10000L +#endif + + +/* How many MIDI channels are there? MACINTOSH can use 2 ports, + * so it supports 32 channels. Others have one port, 16 channels. + * On the other hand, if you don't have all the MIDI ports plugged + * into MIDI interfaces, CMT will just hang, so I'll compile with + * just 16 channels. The 32 channel option for the Mac is untested. + */ +#ifndef MAX_CHANNELS +#define MAX_CHANNELS 16 +#endif + + +/*------------------------------------------*/ +/* Now we get to the "logic": define things as a function of what + * was defined in switches.h + */ + +#ifdef THINK_C +#define MACINTOSH +#endif + +#ifdef __MWERKS__ +#define MACINTOSH +#endif + +#ifdef MACINTOSH +#define MACINTOSH_OR_DOS +#define MACINTOSH_OR_UNIX +/* I don't know if THINK_C defines this and we need it for a few prototypes... */ +#ifndef __STDC__ +#define __STDC__ +#endif +#ifndef TAB_WIDTH +#define TAB_WIDTH 4 +#endif +#endif + +#ifndef TAB_WIDTH +#define TAB_WIDTH 8 +#endif + +/* + * If MIDIMGR is defined, compile for the Apple MIDI Manager + * (Non MIDI manager code is no longer supported) + */ +#ifdef MACINTOSH +/* under Nyquist, the MidiMgr is not used, so you can't + * receive or send Midi as in CMU MIDI Toolkit; however, + * much of CMU MIDI Toolkit is used for Midi file IO + */ +#ifndef NYQUIST +#define MIDIMGR +#endif +#define USE_VSPRINTF +#endif + +#ifdef BORLAND +#define DOS +#endif + +#ifdef LATTICE322 +#define DOS +#define OLD_PROTOTYPES +#endif + +#ifdef UNIX_ITC +#define UNIX +#define ITC +#endif + +#ifdef UNIX_MACH +#define UNIX +#define ITC +#endif + +/* USE_VSPRINTF says vsprintf() is defined */ +#ifdef ITC +#define USE_VSPRINTF +#endif +#ifdef AZTEC +#define USE_VSPRINTF +#endif + + +/* DOTS_FOR_ARGS says ANSI "..." notation is recognized */ +#ifdef __STDC__ +#define DOTS_FOR_ARGS +#endif +#ifdef UNIX_ITC +#define DOTS_FOR_ARGS +#endif +#ifdef BORLAND +#define DOTS_FOR_ARGS +#endif +#ifdef MICROSOFT +#define DOTS_FOR_ARGS +#endif + +#ifdef DOS +#define MACINTOSH_OR_DOS +#else +#define huge +#endif + +#ifdef UNIX +#define MACINTOSH_OR_UNIX +#endif + +#define SWITCHES |