📄 mss.h
字号:
//############################################################################
//## ##
//## Miles Sound System ##
//## ##
//## MSS.H: Miles Sound System main header file ##
//## ##
//## Version 1.00 of 15-Feb-95: Initial, derived from AIL.H V3.02 ##
//## 1.01 of 19-Jun-95: Added various functions for V3.03 release ##
//## 1.02 of 22-Nov-95: C++ typedef problem fixed, declspecs added ##
//## 1.03 of 15-Feb-96: Changes for 16 bit callbacks and multiple ##
//## 16 bit DLL loads (JKR) ##
//## 1.04 of 2-Nov-97: Changes made to handle DLS in future ##
//## versions ##
//## 1.05 of 1-Jan-98: Massive changes for version 4.0 ##
//## 1.06 of 17-Sep-98: Massive changes for version 5.0 ##
//## 1.07 of 2-Feb-99: Changes for new input API ##
//## 1.08 of 8-Feb-99: Changes for new filter helper functions ##
//## ##
//## Author: John Miles ##
//## ##
//############################################################################
//## ##
//## Contact RAD Game Tools at 425-893-4300 for technical support. ##
//## ##
//############################################################################
#ifndef MSS_VERSION
#define MSS_VERSION "6.5c"
#define MSS_MAJOR_VERSION 6
#define MSS_MINOR_VERSION 5
#define MSS_SUB_VERSION 2
#define MSS_VERSION_DATE "19-Jul-02"
#define MSS_COPYRIGHT "Copyright (C) 1991-2002, RAD Game Tools, Inc."
#endif
#ifndef MSS_H
#define MSS_H
// IS_DOS for DOS
// IS_WINDOWS for Windows or Win32
// IS_WIN32 for Win32
// IS_WIN16 for Windows
// IS_32 for 32-bit DOS or Win32
// IS_16 for 16-bit Windows
// IS_LE for little endian (PCs)
// IS_BE for big endian (Macs)
// IS_X86 for Intel
// IS_MAC for Mac
// IS_PPC for PPC Mac
// IS_68K for 68K Mac
#ifdef IS_DOS
#undef IS_DOS
#endif
#ifdef IS_WINDOWS
#undef IS_WINDOWS
#endif
#ifdef IS_WIN32
#undef IS_WIN32
#endif
#ifdef IS_WIN16
#undef IS_WIN16
#endif
#ifdef IS_32
#undef IS_32
#endif
#ifdef IS_16
#undef IS_16
#endif
#ifdef IS_LE
#undef IS_LE
#endif
#ifdef IS_BE
#undef IS_BE
#endif
#ifdef IS_X86
#undef IS_X86
#endif
#ifdef IS_MAC
#undef IS_MAC
#endif
#ifdef IS_PPC
#undef IS_PPC
#endif
#ifdef IS_68K
#undef IS_68K
#endif
#ifdef __DOS__
#define IS_DOS
#define IS_32
#define IS_LE
#define IS_X86
#else
#ifdef _WIN32
#define IS_WINDOWS
#define IS_WIN32
#define IS_32
#define IS_LE
#define IS_X86
#else
#ifdef WIN32
#define IS_WINDOWS
#define IS_WIN32
#define IS_32
#define IS_LE
#define IS_X86
#else
#ifdef __NT__
#define IS_WINDOWS
#define IS_WIN32
#define IS_32
#define IS_LE
#define IS_X86
#else
#ifdef __WIN32__
#define IS_WINDOWS
#define IS_WIN32
#define IS_32
#define IS_LE
#define IS_X86
#else
#ifdef _WINDOWS
#define IS_WINDOWS
#define IS_WIN16
#define IS_16
#define IS_LE
#define IS_X86
#else
#ifdef _WINDLL
#define IS_WINDOWS
#define IS_WIN16
#define IS_16
#define IS_LE
#define IS_X86
#else
#ifdef WINDOWS
#define IS_WINDOWS
#define IS_WIN16
#define IS_16
#define IS_LE
#define IS_X86
#else
#ifdef __WINDOWS__
#define IS_WINDOWS
#define IS_WIN16
#define IS_16
#define IS_LE
#define IS_X86
#else
#ifdef _Windows
#define IS_WINDOWS
#define IS_WIN16
#define IS_16
#define IS_LE
#define IS_X86
#else
#if defined(macintosh) || defined(__powerc) || defined(powerc) || defined(__POWERPC__) || defined(__MC68K__)
#define IS_MAC
#ifdef TARGET_API_MAC_CARBON
#define IS_CARBON
#endif
#define IS_32
#define IS_BE
#if defined(__powerc) || defined(powerc) || defined(__POWERPC__)
#define IS_PPC
#else
#if defined(__MC68K__)
#define IS_68K
#endif
#endif
#endif
#endif
#endif
#endif
#endif
#endif
#endif
#endif
#endif
#endif
#endif
#if (!defined(IS_LE) && !defined(IS_BE))
#error MSS.H did not detect your platform. Define __DOS__, _WINDOWS, WIN32, or macintosh.
#endif
#if defined(_PUSHPOP_SUPPORTED) || PRAGMA_STRUCT_PACKPUSH
#pragma pack(push,1)
#else
#pragma pack(1)
#endif
#ifdef __cplusplus
extern "C" {
#endif
#ifdef IS_DOS
#define AILCALLBACK __pascal
#define AILEXPORT cdecl
#define DXDEC extern
#define DXDEF
#define AILCALL cdecl
#define FAR
#define HIWORD(ptr) (((U32)ptr)>>16)
#define LOWORD(ptr) ((U16)((U32)ptr))
#define FOURCC U32
#define MAKEFOURCC(ch0, ch1, ch2, ch3) \
((U32)(U8)(ch0) | ((U32)(U8)(ch1) << 8) | \
((U32)(U8)(ch2) << 16) | ((U32)(U8)(ch3) << 24 ))
#define mmioFOURCC(w,x,y,z) MAKEFOURCC(w,x,y,z)
#define AILLIBCALLBACK __pascal
#define MSS_MAIN_DEF
#define MSS_REDIST_DIR_NAME "DOS"
#define MSS_DIR_SEP "\\"
#define MSS_DIR_UP ".." MSS_DIR_SEP
#define MSS_DIR_UP_TWO MSS_DIR_UP MSS_DIR_UP
#else
#ifdef IS_WINDOWS
#define AILLIBCALLBACK WINAPI
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
#ifndef WIN32_EXTRA_LEAN
#define WIN32_EXTRA_LEAN
#endif
#ifndef STRICT
#define STRICT
#endif
#include <windows.h>
#include <mmsystem.h>
#define MSS_MAIN_DEF __cdecl
//
// If compiling MSS DLL, use __declspec(dllexport) for both
// declarations and definitions
//
// If compiling MSS16 library or application, use "extern" in declarations
// and nothing in definitions
//
#ifdef IS_WIN32
#define AILEXPORT WINAPI
#ifdef BUILD_MSS
#define DXDEC __declspec(dllexport)
#define DXDEF __declspec(dllexport)
#else
#ifdef __BORLANDC__
#define DXDEC extern
#else
#define DXDEC __declspec(dllimport)
#endif
#endif
#define MSSDLLNAME "MSS32.DLL"
#define MSS_REDIST_DIR_NAME "WIN32"
#define MSS_DIR_SEP "\\"
#define MSS_DIR_UP ".." MSS_DIR_SEP
#define MSS_DIR_UP_TWO MSS_DIR_UP MSS_DIR_UP
#else
#define AILEXPORT __export WINAPI
#define DXDEC extern
#define DXDEF
#define MSSDLLNAME "MSS16.DLL"
#define MSS_REDIST_DIR_NAME "WIN16"
#define MSS_DIR_SEP "\\"
#define MSS_DIR_UP ".." MSS_DIR_SEP
#define MSS_DIR_UP_TWO MSS_DIR_UP MSS_DIR_UP
#endif
#define AILCALL WINAPI
#define AILCALLBACK AILEXPORT
typedef LPVOID AILLPDIRECTSOUND;
typedef LPVOID AILLPDIRECTSOUNDBUFFER;
#else
#ifdef IS_MAC
#ifdef IS_CARBON
#include <carbon.h>
#else
#include <Files.h>
#include <Sound.h>
#include <Resources.h> // needed for GetResource, ReleaseResource
#endif
#define FAR
#define AILLIBCALLBACK //pascal
#define AILCALL //pascal
#define AILEXPORT //pascal
#define AILCALLBACK //pascal
#ifdef BUILD_MSS
#define DXDEC __declspec(export)
#define DXDEF
#else
#define DXDEC extern
#define DXDEF
#endif
#ifdef IS_CARBON
#define MSS_REDIST_DIR_NAME "CARBON"
#define MSSDLLNAME "Miles Carbon Library"
#else
#define MSS_REDIST_DIR_NAME "MAC"
#define MSSDLLNAME "Miles Shared Library"
#endif
#define MSS_DIR_SEP ":"
#define MSS_DIR_UP ":" MSS_DIR_SEP
#define MSS_DIR_UP_TWO MSS_DIR_UP MSS_DIR_SEP
#define HIWORD(ptr) (((U32)ptr)>>16)
#define LOWORD(ptr) ((U16)((U32)ptr))
#define FOURCC U32
#ifndef MAKEFOURCC
#define MAKEFOURCC(ch0, ch1, ch2, ch3) \
(((U32)(U8)(ch0) << 24) | ((U32)(U8)(ch1) << 16) | \
((U32)(U8)(ch2) << 8) | ((U32)(U8)(ch3) ))
#endif
#define mmioFOURCC(w,x,y,z) MAKEFOURCC(w,x,y,z)
#define MSS_MAIN_DEF
#endif
#endif
#endif
#ifndef NULL
#define NULL 0
#endif
//
// Misc. constant definitions
//
#define MAX_DRVRS 16 // Max. # of simultaneous drivers
#define MAX_TIMERS 16 // Max. # of simultaneous timers
#define MAX_NOTES 32 // Max # of notes "on"
#define FOR_NEST 4 // # of nested XMIDI FOR loops
#define NUM_CHANS 16 // # of possible MIDI channels
#define MAX_W_VOICES 16 // Max virtual wave synth voice cnt
#define MAX_W_ENTRIES 512 // 512 wave library entries max.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -