UNIT RTMIDI;

{**************************************************************************=
*
*                 UNIT for RTMIDI.DLL                                      =
*
*                 Module Name: MIDIDLL.H                                   =
*
*                                                                          =
*
*  OS/2 Warp. Multimedia Extensions - MIDI                                 =
*
*                                                                          =
*
*  Copyright (c) International Business Machines Corporation 1995          =
*
*                         All Rights Reserved                              =
*
*                                                                          =
*
*  Ported to SPEEDPASCAL by Peter Krawies, Germany, Europe                 =
*
*                                                                          =
*
*                         Created: 1.1.97                                  =
*
*                         Latest changes: 29.1.97                          =
*
***************************************************************************=
}

INTERFACE


USES OS2DEF, BseDos, MMIO, MIDI; { MMIO is in the Update 1.51 of SP }
                                 { MIDI is the translated MIDI.H    }

{ CONSTs and VARs originally from MIDISAMP.PAS: }
CONST  MIDIVER_MAJOR  =3D $C000;  // used for MIDIQueryVersion
CONST  MIDIVER_MINOR  =3D $3C00;
CONST  MIDIVER_BUGFIX =3D $03C0;
CONST  MIDIVER_PHASE  =3D $0030;
CONST  MIDIVER_BUILD  =3D $000F;


type MINSTANCE   =3D ULONG;
type PMINSTANCE  =3D^MINSTANCE;
type TIMEHANDLE  =3D PVOID;
type PTIMEHANDLE =3D^TIMEHANDLE;
type PPULONG     =3D^PULONG;

CONST MIDI_NAME_LENGTH =3D 32;
CONST MIDI_SUCCESS     =3D  0;
CONST TIMER_SUCCESS    =3D  0; // return code of high-resolution timer

// used with MIDIEnableInstance and MIDIDisableInstance:
CONST MIDI_ENABLE_RECEIVE  =3D 1;  // enables hdw to receive messages
CONST MIDI_ENABLE_SEND     =3D 2;  // enables hdw to send messages
CONST MIDI_DISABLE_RECEIVE =3D 1;  // disables hdw from receiving messages
CONST MIDI_DISABLE_SEND    =3D 2;  // disables hdw from sending messages

// used with MIDITimer:
// MIDI_START_TIMER and MIDI_STOP_TIMER flag are mutually exclusive:
CONST MIDI_START_TIMER    =3D  1;  // starts MIDI Timer
CONST MIDI_STOP_TIMER     =3D  2;  // stops MIDI Timer

type aMESSAGE=3DRECORD
                ulSourceInstance:ULONG; // inst # of the instance which gen=
erated the msg
                ulTime:ULONG;           // time the message is to be (or wa=
s) sent
                ulTrack:ULONG;
                ulMessage:ULONG;
// das folgende soll f=81r ulMessage stehen als "variante Struktur":
{   union {
       ulMessage:ULONG;
         struct {
           bStatus : BYTE;     // The 1st byte of the message
           abData  : ARRAY [1..3] OF BYTE;   // the rest of the message
             }// bytes;
{       abData : [1..4] OF BYTE;
{   } //msg;
{ } //;
END;
type PMESSAGE=3D^aMESSAGE;

type MIDICLASSINFO=3DRECORD
                     ulStructLength: ULONG;
                     ulClassNumber : ULONG;
                     szmClassName  : ARRAY [1..MIDI_NAME_LENGTH] OF CHAR;
                     ulNumSlots    : ULONG;
                     ulAttributes  : ULONG;
                   END;
type PMIDICLASSINFO=3D^MIDICLASSINFO;

type MIDIINSTANCEINFO=3DRECORD
                    ulStructLength : ULONG;
                    aMinstance     : MINSTANCE;
                    ulClassNumber  : ULONG;
                    szmInstanceName: ARRAY[1..MIDI_NAME_LENGTH] OF CHAR;
                    ulNumLinks     : ULONG;
                    ulAttributes   : ULONG;
                  END;
type PMIDIINSTANCEINFO=3D^MIDIINSTANCEINFO;

{ MIDIINSTANCEINFO ulAttributes values: }
CONST MIDI_INST_ATTR_CAN_RECV =3D 1;   // instance can accept messages
CONST MIDI_INST_ATTR_CAN_SEND =3D 2;   // instance can send messages
CONST MIDI_INST_ATTR_ENABLE_R =3D 4;   // receive is enabled
CONST MIDI_INST_ATTR_ENABLE_S =3D 8;   // send is enabled

// Callback FUNCTIONs:
{type (*PFNMIDI_NOTIFYCALLBACK) ( ulNotification:ULONG;
                                  ulParam:ULONG);

// type (VOID *PFNMIDI_NOTIFYCALLBACK) ( ulNotification:ULONG;
//                                       ulParam:ULONG);    }

type MIDI_SETUP=3DRECORD
                  ulStructLength     : ULONG;
                  pulMaxRTSysexLength: PULONG;
                  ppulMIDICurrentTime: PPULONG;
                  ulFlags            : ULONG;
                  Ersatzpointer:POINTER;  // vorerst!!!!!!!!!!!!!!!!!
                  //a_pfnMIDI_NotifyCallback : PFNMIDI_NOTIFYCALLBACK;
                  hwndCallback       : HWND;
                  hqueueCallback     : HQUEUE;
                END;
type PMIDI_SETUP=3D^MIDI_SETUP;

{ MIDISETUP ulFlags values: }
CONST MIDICALLBACK_PFN   =3D 1;
CONST MIDICALLBACK_HWND  =3D 2;
CONST MIDICALLBACK_QUEUE =3D 3;

type PMIDIDEVICEINFO=3D^MIDIDEVICEINFO;
     MIDIDEVICEINFO=3DRECORD
          ulStructLength  : ULONG;
          aMinstance      : MINSTANCE;
          szmInstanceName : ARRAY [1..MIDI_NAME_LENGTH] OF CHAR;
          pParentDevice   : PMIDIDEVICEINFO;
          pSiblingDevice  : PMIDIDEVICEINFO;
          pChildDevice    : PMIDIDEVICEINFO;
          szDeviceName    : ARRAY [1..MIDI_NAME_LENGTH] OF CHAR;
          szManufacturer  : ARRAY [1..MIDI_NAME_LENGTH] OF CHAR;
          szModelName     : ARRAY [1..MIDI_NAME_LENGTH] OF CHAR;
          ulFlags         : ULONG;
          ulChannels      : ULONG;
        END;

{ DEVICEINFO ulFlags values: }
CONST   MIDIDEV_IS_PATCHER      =3D 00000001;
CONST   MIDIDEV_IS_CONTROLLER   =3D 00000002;
CONST   MIDIDEV_IS_RECEIVER     =3D 00000004;
CONST   MIDIDEV_IS_MULTITIMBRAL =3D 00000008;
CONST   MIDIDEV_SENDS_MTC       =3D 00000010;
CONST   MIDIDEV_RECEIVES_MTC    =3D 00000020;
CONST   MIDIDEV_SENDS_CLOCK     =3D 00000040;
CONST   MIDIDEV_RECEIVES_CLOCK  =3D 00000080;
CONST   MIDIDEV_SENDS_SYNC      =3D 00000100;
CONST   MIDIDEV_RECEIVES_SYNC   =3D 00000200;
CONST   MIDIDEV_SENDS_MMC       =3D 00000400;
CONST   MIDIDEV_RECEIVES_MMC    =3D 00000800;

type MIDILINKINFO=3DRECORD
                    ulStructLength : ULONG;
                    ulSlotNumber   : ULONG;
                    aMInstance     : MINSTANCE;
                  END;
type PMIDILINKINFO=3D^MIDILINKINFO;


{ Function Prototypes imported from DLL: }
IMPORTS

FUNCTION MIDICreateInstance( ulClassNumber  : ULONG;
                             aPMinstance    : PMINSTANCE;
                             pszInstanceName: PSZ;
                             ulFlag         : ULONG):ULONG;
                  APIENTRY;  RTMIDI NAME 'MIDICreateInstance';


FUNCTION MIDIDeleteInstance( aMInstance:MINSTANCE;
                             ulFlag:ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'MIDIDeleteInstance';

FUNCTION MIDIEnableInstance( aMInstance:MINSTANCE;
                             ulFlag:ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'MIDIEnableInstance';

FUNCTION MIDIDisableInstance( aMInstance:MINSTANCE;
                              ulFlag:ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'MIDIDisableInstance';

FUNCTION MIDIAddLink( minstanceSource:MINSTANCE;
                      minstanceTarget:MINSTANCE;
                      ulSlotNumber:ULONG; ulFlag:ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'MIDIAddLink';

FUNCTION MIDIRemoveLink( minstanceSource:MINSTANCE;
                         minstanceTarget:MINSTANCE;
                         ulSlotNumber:ULONG; ulFlag:ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'MIDIRemoveLink';

FUNCTION MIDISetDefaultHardwareNode( pszmInstanceName:PSZ;
                                     ulFlag:ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'MIDISetDefaultHardwareNode';

FUNCTION MIDISetInstanceConfiguration( aMInstance:MINSTANCE;
                                       pBuffer:PVOID;
                                       ulBufferLength:ULONG;
                                       ulFlag:ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'MIDISetInstanceConfiguration';

FUNCTION MIDISimpleOpen( aPMInstance:PMINSTANCE;
                         ulFlag:ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'MIDISimpleOpen';

FUNCTION MIDISimpleClose( aMInstance:MINSTANCE;
                          ulFlag:ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'MIDISimpleClose';

FUNCTION MIDIQueryClassList( ulNumClasses:ULONG;
                             paClassInfo:PMIDICLASSINFO;
                             ulFlag:ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'MIDIQueryClassList';

FUNCTION MIDIQueryDeviceInformation( ulNumDevices:ULONG;
                                     paDeviceInfo:PMIDIDEVICEINFO;
                                     ulFlag:ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'MIDIQueryDeviceInformation';

FUNCTION MIDIQueryInstanceConfiguration( minstance:ULONG;
                                         pBuffer:PVOID;
                                         ulBufferLength:ULONG;
                                         ulFlag:ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'MIDIQueryInstanceConfiguration';

FUNCTION MIDIQueryInstanceLinks( aMInstance:MINSTANCE;
                                 paLinkInfo:PMIDILINKINFO;
                                 ulNumLinks:ULONG;
                                 ulFlag:ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'MIDIQueryInstanceLinks';

FUNCTION MIDIQueryInstanceList( ulNumInstances:ULONG;
                                paInstanceInfo:PMIDIINSTANCEINFO;
                                ulFlag:ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'MIDIQueryInstanceList';

FUNCTION MIDIQueryInstanceName( aMInstance:MINSTANCE;
                                pszInstanceName:PSZ;
                                ulFlag:ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'MIDIQueryInstanceName';

FUNCTION MIDIQueryNumClasses( pulNumClasses:PULONG;
                              ulFlag:ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'MIDIQueryNumClasses';

FUNCTION MIDIQueryNumDevices( pulNumDevices:PULONG;
                              ulFlag:ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'MIDIQueryNumDevices';

FUNCTION MIDIQueryNumInstances( pulNumInstances:PULONG;
                                ulFlag:ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'MIDIQueryNumInstances';

FUNCTION MIDIQueryVersion( pulVersion : PULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'MIDIQueryVersion';

FUNCTION MIDISetDeviceInformation( aMInstance:MINSTANCE;
                                   pDeviceInfo:PMIDIDEVICEINFO;
                                   ulFlag:ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'MIDISetDeviceInformation';

FUNCTION MIDISendMessages( paMessage     : PMESSAGE;
                           ulNumMessages : ULONG;
                           ulFlag        : ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'MIDISendMessages';

FUNCTION MIDISendSysexMessage( aPMessage      : PMESSAGE;
                               ulBufferLength : ULONG;
                               ulFlag         : ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'MIDISendSysexMessage';

FUNCTION MIDIRetrieveMessages( aMInstance      : MINSTANCE;
                               pBuffer         : PVOID;
                               pulBufferLength : PULONG;
                               ulFlag          : ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'MIDIRetrieveMessages';

FUNCTION MIDISetup( pMidiSetup : PMIDI_SETUP;
                    ulFlag     : ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'MIDISetup';

FUNCTION MIDITimer( ulAction:ULONG;
                    ulFlag:ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'MIDITimer';

FUNCTION TimerSleep( ulDuration:ULONG;
                     ulFlag:ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'TimerSleep';

FUNCTION TimerGetPointer( ppulHRTCurrentTime:PPULONG;
                          ulFlag:ULONG):ULONG;
                  APIENTRY; RTMIDI NAME 'TimerGetPointer';
END; { IMPORTS }



IMPLEMENTATION

BEGIN
END.
=1A
--------------5A5E3F0538C0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="MEERROR.PAS"

UNIT MEERROR;

/****************************************************************************/
/*                                                                          */
/* Module Name: MEERROR.H                                                   */
/*                                                                          */
/* OS/2 2.0 Multimedia Extensions Error Return Codes                        */
/*                                                                          */
/* Copyright= c; International Business Machines Corporation 1991, 1992     */
/*                        All Rights Reserved                               */
/*                                                                          */
/****************************************************************************/

INTERFACE

{ #ifndef _MEERROR_H_  CONST _MEERROR_H_  #endif

#ifndef NO_ERROR  CONST NO_ERROR                          0
#endif  }

/*****************************************/
/* MCI Device Manager Error Return codes */
/*****************************************/

CONST MCIERR_BASE                     = 5000;
CONST MCIERR_SUCCESS                  = 0;
CONST MCIERR_INVALID_DEVICE_ID        = MCIERR_BASE + 1;
CONST MCIERR_NO_MASTER                = MCIERR_BASE + 2;
CONST MCIERR_UNRECOGNIZED_KEYWORD     = MCIERR_BASE + 3;
CONST MCIERR_MASTER_CONFLICT          = MCIERR_BASE + 4;
CONST MCIERR_UNRECOGNIZED_COMMAND     = MCIERR_BASE + 5;
CONST MCIERR_HARDWARE                 = MCIERR_BASE + 6;
CONST MCIERR_INVALID_DEVICE_NAME      = MCIERR_BASE + 7;
CONST MCIERR_OUT_OF_MEMORY            = MCIERR_BASE + 8;
CONST MCIERR_DEVICE_OPEN              = MCIERR_BASE + 9;
CONST MCIERR_CANNOT_LOAD_DRIVER       = MCIERR_BASE + 10;
CONST MCIERR_MISSING_COMMAND_STRING   = MCIERR_BASE + 11;
CONST MCIERR_PARAM_OVERFLOW           = MCIERR_BASE + 12;
CONST MCIERR_MISSING_STRING_ARGUMENT  = MCIERR_BASE + 13;
CONST MCIERR_BAD_INTEGER              = MCIERR_BASE + 14;
CONST MCIERR_PARSER_INTERNAL          = MCIERR_BASE + 15;
CONST MCIERR_DRIVER_INTERNAL          = MCIERR_BASE + 16;
CONST MCIERR_MISSING_PARAMETER        = MCIERR_BASE + 17;
CONST MCIERR_UNSUPPORTED_FUNCTION     = MCIERR_BASE + 18;
CONST MCIERR_FILE_NOT_FOUND           = MCIERR_BASE + 19;
CONST MCIERR_DEVICE_NOT_READY         = MCIERR_BASE + 20;
CONST MCIERR_INTERNAL                 = MCIERR_BASE + 21;
CONST MCIERR_DRIVER                   = MCIERR_BASE + 22;
CONST MCIERR_CANNOT_USE_ALL           = MCIERR_BASE + 23;
CONST MCIERR_MULTIPLE                 = MCIERR_BASE + 24;
CONST MCIERR_EXTENSION_NOT_FOUND      = MCIERR_BASE + 25;
CONST MCIERR_OUTOFRANGE               = MCIERR_BASE + 26;
CONST MCIERR_CANNOT_ADD_ALIAS         = MCIERR_BASE + 27;
CONST MCIERR_FLAGS_NOT_COMPATIBLE     = MCIERR_BASE + 28;
CONST MCIERR_CANNOT_USE_NOUNLOAD      = MCIERR_BASE + 29;
CONST MCIERR_FILE_NOT_SAVED           = MCIERR_BASE + 30;
CONST MCIERR_DEVICE_TYPE_REQUIRED     = MCIERR_BASE + 31;
CONST MCIERR_DEVICE_LOCKED            = MCIERR_BASE + 32;
CONST MCIERR_DUPLICATE_ALIAS          = MCIERR_BASE + 33;
CONST MCIERR_INSTANCE_INACTIVE        = MCIERR_BASE + 34;

CONST MCIERR_COMMAND_TABLE            = MCIERR_BASE + 35;
CONST MCIERR_INI_FILE_LOCKED          = MCIERR_BASE + 37;

CONST MCIERR_NO_AUDIO_SUPPORT         = MCIERR_BASE + 40;
CONST MCIERR_NOT_IN_PM_SESSION        = MCIERR_BASE + 41;
CONST MCIERR_DUPLICATE_KEYWORD        = MCIERR_BASE + 42;
CONST MCIERR_COMMAND_STRING_OVERFLOW  = MCIERR_BASE + 43;
CONST MCIERR_DRIVER_PROC_NOT_FOUND    = MCIERR_BASE + 44;
CONST MCIERR_INVALID_DEVICE_TYPE      = MCIERR_BASE + 45;
CONST MCIERR_INVALID_DEVICE_ORDINAL   = MCIERR_BASE + 46;
CONST MCIERR_HEADPHONES_NOT_SET       = MCIERR_BASE + 47;
CONST MCIERR_SPEAKERS_NOT_SET         = MCIERR_BASE + 48;
CONST MCIERR_SOUND_NOT_SET            = MCIERR_BASE + 49;
CONST MCIERR_INVALID_BUFFER           = MCIERR_BASE + 50;
CONST MCIERR_INVALID_MEDIA_TYPE       = MCIERR_BASE + 51;
CONST MCIERR_INVALID_CONNECTOR_INDEX  = MCIERR_BASE + 52;
CONST MCIERR_NO_CONNECTION            = MCIERR_BASE + 53;
CONST MCIERR_INVALID_FLAG             = MCIERR_BASE + 54;
CONST MCIERR_CANNOT_LOAD_DSP_MOD      = MCIERR_BASE + 55;
CONST MCIERR_ALREADY_CONNECTED        = MCIERR_BASE + 56;
CONST MCIERR_INVALID_CALLBACK_HANDLE  = MCIERR_BASE + 57;
CONST MCIERR_DRIVER_NOT_FOUND         = MCIERR_BASE + 58;
CONST MCIERR_DUPLICATE_DRIVER         = MCIERR_BASE + 59;
CONST MCIERR_INI_FILE                 = MCIERR_BASE + 60;
CONST MCIERR_INVALID_GROUP_ID         = MCIERR_BASE + 61;
CONST MCIERR_ID_ALREADY_IN_GROUP      = MCIERR_BASE + 62;
CONST MCIERR_MEDIA_CHANGED            = MCIERR_BASE + 63;
CONST MCIERR_MISSING_FLAG             = MCIERR_BASE + 64;
CONST MCIERR_UNSUPPORTED_FLAG         = MCIERR_BASE + 65;
CONST MCIERR_DRIVER_NOT_LOADED        = MCIERR_BASE + 66;
CONST MCIERR_INVALID_MODE             = MCIERR_BASE + 67;
CONST MCIERR_INVALID_ITEM_FLAG        = MCIERR_BASE + 68;
CONST MCIERR_INVALID_TIME_FORMAT_FLAG = MCIERR_BASE + 69;
CONST MCIERR_SPEED_FORMAT_FLAG        = MCIERR_BASE + 70;
CONST MCIERR_INVALID_AUDIO_FLAG       = MCIERR_BASE + 71;
CONST MCIERR_NODEFAULT_DEVICE         = MCIERR_BASE + 72;
CONST MCIERR_DUPLICATE_EXTENSION      = MCIERR_BASE + 73;
CONST MCIERR_FILE_ATTRIBUTE           = MCIERR_BASE + 74;
CONST MCIERR_DUPLICATE_CUEPOINT       = MCIERR_BASE + 75;
CONST MCIERR_INVALID_CUEPOINT         = MCIERR_BASE + 76;
CONST MCIERR_CUEPOINT_LIMIT_REACHED   = MCIERR_BASE + 77;
CONST MCIERR_MISSING_ITEM             = MCIERR_BASE + 78;
CONST MCIERR_MISSING_TIME_FORMAT      = MCIERR_BASE + 79;
CONST MCIERR_MISSING_SPEED_FORMAT     = MCIERR_BASE + 80;
CONST MCIERR_INVALID_CONNECTOR_TYPE   = MCIERR_BASE + 81;
CONST MCIERR_TARGET_DEVICE_FULL       = MCIERR_BASE + 82;
CONST MCIERR_UNSUPPORTED_CONN_TYPE    = MCIERR_BASE + 83;
CONST MCIERR_CANNOT_MODIFY_CONNECTOR  = MCIERR_BASE + 84;
CONST MCIERR_RECORD_ABORTED           = MCIERR_BASE + 85;
CONST MCIERR_GROUP_COMMAND            = MCIERR_BASE + 86;
CONST MCIERR_DEVICE_NOT_FOUND         = MCIERR_BASE + 87;
CONST MCIERR_RESOURCE_NOT_AVAILABLE   = MCIERR_BASE + 88;
CONST MCIERR_INVALID_IO_PROC          = MCIERR_BASE + 89;

CONST MCIERR_WAVE_OUTPUTSINUSE        = MCIERR_BASE + 90;
CONST MCIERR_WAVE_SETOUTPUTINUSE      = MCIERR_BASE + 91;
CONST MCIERR_WAVE_INPUTSINUSE         = MCIERR_BASE + 92;
CONST MCIERR_WAVE_SETINPUTINUSE       = MCIERR_BASE + 93;
CONST MCIERR_WAVE_OUTPUTUNSPECIFIED   = MCIERR_BASE + 94;
CONST MCIERR_WAVE_INPUTUNSPECIFIED    = MCIERR_BASE + 95;
CONST MCIERR_WAVE_OUTPUTSUNSUITABLE   = MCIERR_BASE + 96;
CONST MCIERR_WAVE_SETOUTPUTUNSUITABLE = MCIERR_BASE + 97;
CONST MCIERR_WAVE_INPUTSUNSUITABLE    = MCIERR_BASE + 98;
CONST MCIERR_WAVE_SETINPUTUNSUITABLE  = MCIERR_BASE + 99;

CONST MCIERR_SEQ_DIV_INCOMPATIBLE     = MCIERR_BASE + 100;
CONST MCIERR_SEQ_PORT_INUSE           = MCIERR_BASE + 101;
CONST MCIERR_SEQ_PORT_NONEXISTENT     = MCIERR_BASE + 102;
CONST MCIERR_SEQ_PORT_MAPNODEVICE     = MCIERR_BASE + 103;
CONST MCIERR_SEQ_PORT_MISCERROR       = MCIERR_BASE + 104;
CONST MCIERR_SEQ_TIMER                = MCIERR_BASE + 105;

CONST MCIERR_VDP_COMMANDCANCELLED     = MCIERR_BASE + 106;
CONST MCIERR_VDP_COMMANDFAILURE       = MCIERR_BASE + 107;
CONST MCIERR_VDP_NOTSPUNUP            = MCIERR_BASE + 108;
CONST MCIERR_VDP_NOCHAPTER            = MCIERR_BASE + 109;
CONST MCIERR_VDP_NOSIDE               = MCIERR_BASE + 110;
CONST MCIERR_VDP_NOSIZE               = MCIERR_BASE + 111;
CONST MCIERR_VDP_INVALID_TIMEFORMAT   = MCIERR_BASE + 112;

CONST MCIERR_CLIPBOARD_ERROR          = MCIERR_BASE + 114;
CONST MCIERR_CANNOT_CONVERT           = MCIERR_BASE + 115;
CONST MCIERR_CANNOT_REDO              = MCIERR_BASE + 116;
CONST MCIERR_CANNOT_UNDO              = MCIERR_BASE + 117;
CONST MCIERR_CLIPBOARD_EMPTY          = MCIERR_BASE + 118;

CONST MCIERR_INVALID_WORKPATH         = MCIERR_BASE + 119;
CONST MCIERR_INDETERMINATE_LENGTH     = MCIERR_BASE + 120;
CONST MCIERR_DUPLICATE_EA             = MCIERR_BASE + 121;
CONST MCIERR_INVALID_CONNECTION       = MCIERR_BASE + 122;
CONST MCIERR_CHANNEL_OFF              = MCIERR_BASE + 123;
CONST MCIERR_CANNOT_CHANGE_CHANNEL    = MCIERR_BASE + 124;
CONST MCIERR_FILE_IO                  = MCIERR_BASE + 125;
CONST MCIERR_SYSTEM_FILE              = MCIERR_BASE + 126;
CONST MCIERR_DISPLAY_RESOLUTION       = MCIERR_BASE + 127;
CONST MCIERR_NO_ASYNC_PLAY_ACTIVE     = MCIERR_BASE + 128;

CONST MCIERR_UNSUPP_FORMAT_TAG        = MCIERR_BASE + 129;
CONST MCIERR_UNSUPP_SAMPLESPERSEC     = MCIERR_BASE + 130;
CONST MCIERR_UNSUPP_BITSPERSAMPLE     = MCIERR_BASE + 131;
CONST MCIERR_UNSUPP_CHANNELS          = MCIERR_BASE + 132;
CONST MCIERR_UNSUPP_FORMAT_MODE       = MCIERR_BASE + 133;
CONST MCIERR_NO_DEVICE_DRIVER         = MCIERR_BASE + 134;
CONST MCIERR_CODEC_NOT_SUPPORTED      = MCIERR_BASE + 135;

CONST MCIERR_TUNER_NO_HW              = MCIERR_BASE + 136;
CONST MCIERR_TUNER_NO_AFC             = MCIERR_BASE + 137;
CONST MCIERR_TUNER_AFC_ON             = MCIERR_BASE + 138;
CONST MCIERR_TUNER_CHANNEL_SKIPPED    = MCIERR_BASE + 139;
CONST MCIERR_TUNER_CHANNEL_TOO_LOW    = MCIERR_BASE + 140;
CONST MCIERR_TUNER_CHANNEL_TOO_HIGH   = MCIERR_BASE + 141;
CONST MCIERR_AUD_CHANNEL_OUTOFRANGE   = MCIERR_BASE + 142;
CONST MCIERR_TUNER_INVALID_REGION     = MCIERR_BASE + 143;
CONST MCIERR_SIGNAL_INVALID           = MCIERR_BASE + 144;
CONST MCIERR_TUNER_MODE               = MCIERR_BASE + 145;
CONST MCIERR_TUNER_REGION_NOT_SET     = MCIERR_BASE + 146;
CONST MCIERR_TUNER_CHANNEL_NOT_SET    = MCIERR_BASE + 147;
CONST MCIERR_UNSUPP_CLASS             = MCIERR_BASE + 148;
CONST MCIERR_UNSUPPORTED_ATTRIBUTE    = MCIERR_BASE + 149;

CONST MCIERR_CUSTOM_DRIVER_BASE       = MCIERR_BASE + 256;


/******************************************/
/* Sync/Stream Manager Error Return codes */
/******************************************/

{ MCIERR_BASE is  5000   => MEBASE is 5500 }
CONST MEBASE                          = MCIERR_BASE + 500;
CONST ERROR_INVALID_STREAM            = MEBASE + 1;
CONST ERROR_INVALID_HID               = MEBASE + 2;
CONST ERROR_INVALID_NETWORK           = MEBASE + 3;
CONST ERROR_INVALID_OBJTYPE           = MEBASE + 4;
CONST ERROR_INVALID_FLAG              = MEBASE + 5;
CONST ERROR_INVALID_EVCB              = MEBASE + 6;
CONST ERROR_INVALID_EVENT             = MEBASE + 7;
CONST ERROR_INVALID_MMTIME            = MEBASE + 8;
CONST ERROR_INVALID_NUMSLAVES         = MEBASE + 9;
CONST ERROR_INVALID_REQUEST           = MEBASE + 10;
CONST ERROR_INVALID_SPCBKEY           = MEBASE + 11;
CONST ERROR_INVALID_HNDLR_NAME        = MEBASE + 12;
CONST ERROR_INVALID_PROTOCOL          = MEBASE + 13;
CONST ERROR_INVALID_BUFFER_SIZE       = MEBASE + 14;
CONST ERROR_INVALID_BUFFER_RETURNED   = MEBASE + 15;
CONST ERROR_INVALID_ACB               = MEBASE + 16;
CONST ERROR_INVALID_RECORD_RETURNED   = MEBASE + 17;
CONST ERROR_INVALID_MESSAGE           = MEBASE + 18;

CONST ERROR_STREAM_NOT_OWNER          = MEBASE + 99;
CONST ERROR_STREAM_USED               = MEBASE + 100;
CONST ERROR_STREAM_CREATION           = MEBASE + 101;
CONST ERROR_STREAM_NOTMASTER          = MEBASE + 102;
CONST ERROR_STREAM_NOT_STOP           = MEBASE + 103;
CONST ERROR_STREAM_OPERATION          = MEBASE + 104;
CONST ERROR_STREAM_STOP_PENDING       = MEBASE + 105;
CONST ERROR_STREAM_ALREADY_STOP       = MEBASE + 106;
CONST ERROR_STREAM_ALREADY_PAUSE      = MEBASE + 107;
CONST ERROR_STREAM_NOT_STARTED        = MEBASE + 108;
CONST ERROR_STREAM_NOT_ACTIVE         = MEBASE + 109;
CONST ERROR_START_STREAM              = MEBASE + 110;
CONST ERROR_MASTER_USED               = MEBASE + 111;
CONST ERROR_SPCBKEY_MISMATCH          = MEBASE + 112;
CONST ERROR_INSUFF_BUFFER             = MEBASE + 113;
CONST ERROR_ALLOC_RESOURCES           = MEBASE + 114;
CONST ERROR_ACCESS_OBJECT             = MEBASE + 115;
CONST ERROR_HNDLR_REGISTERED          = MEBASE + 116;
CONST ERROR_DATA_ITEM_NOT_SPECIFIED   = MEBASE + 117;
CONST ERROR_INVALID_SEQUENCE          = MEBASE + 118;
CONST ERROR_INITIALIZATION            = MEBASE + 119;
CONST ERROR_READING_INI               = MEBASE + 120;
CONST ERROR_LOADING_HNDLR             = MEBASE + 121;
CONST ERROR_HNDLR_NOT_FOUND           = MEBASE + 122;
CONST ERROR_SPCB_NOT_FOUND            = MEBASE + 123;
CONST ERROR_DEVICE_NOT_FOUND          = MEBASE + 124;
CONST ERROR_TOO_MANY_EVENTS           = MEBASE + 125;
CONST ERROR_DEVICE_OVERRUN            = MEBASE + 126;
CONST ERROR_DEVICE_UNDERRUN           = MEBASE + 127;
CONST ERROR_HNDLR_NOT_IN_INI          = MEBASE + 128;
CONST ERROR_QUERY_STREAM_TIME         = MEBASE + 129;
CONST ERROR_DATA_ITEM_NOT_SEEKABLE    = MEBASE + 130;
CONST ERROR_NOT_SEEKABLE_BY_TIME      = MEBASE + 131;
CONST ERROR_NOT_SEEKABLE_BY_BYTES     = MEBASE + 132;
CONST ERROR_STREAM_NOT_SEEKABLE       = MEBASE + 133;
CONST ERROR_PLAYLIST_STACK_OVERFLOW   = MEBASE + 135;
CONST ERROR_PLAYLIST_STACK_UNDERFLOW  = MEBASE + 136;
CONST ERROR_LOCKING_BUFFER            = MEBASE + 137;
CONST ERROR_UNLOCKING_BUFFER          = MEBASE + 138;
CONST ERROR_SEEK_PAST_END             = MEBASE + 139;
CONST ERROR_SEEK_BACK_NOT_SUPPORTED   = MEBASE + 140;
CONST ERROR_INTERNAL_ERROR            = MEBASE + 141;
CONST ERROR_INTERNAL_CORRUPT          = MEBASE + 142;
CONST ERROR_INSUFF_MEM                = MEBASE + 143;
CONST ERROR_LARGE_SEEK_BY_TIME        = MEBASE + 144;
CONST ERROR_STREAM_PREROLLING         = MEBASE + 145;
CONST ERROR_INI_FILE                  = MEBASE + 146;
CONST ERROR_SEEK_BEFORE_BEGINNING     = MEBASE + 147;
CONST ERROR_TOO_MANY_HANDLERS         = MEBASE + 148;
CONST ERROR_ALLOC_HEAP                = MEBASE + 149;
CONST ERROR_END_OF_PLAYLIST           = MEBASE + 150;
CONST ERROR_TOO_MANY_STREAMS          = MEBASE + 151;
CONST ERROR_FILE_FORMAT_INCORRECT     = MEBASE + 152;
CONST ERROR_DESTROY_STREAM            = MEBASE + 153;
CONST ERROR_INVALID_NUMMASTERS        = MEBASE + 154;
CONST ERROR_MASTER_CONFLICT           = MEBASE + 155;
CONST ERROR_NO_MASTER                 = MEBASE + 156;
CONST ERROR_NO_SYNC                   = MEBASE + 157;
CONST ERROR_STREAM_ALREADY_IN_NETWORK = MEBASE + 158;
CONST ERROR_NO_STREAMS_IN_NETWORK     = MEBASE + 159;
CONST ERROR_MISSING_EVENT_ROUTINE     = MEBASE + 160;
CONST ERROR_CAN_NOT_REMOVE_STREAM     = MEBASE + 161;

CONST ERROR_BUFFER_NOT_AVAILABLE      = MEBASE + 400;
CONST ERROR_TOO_MANY_BUFFERS          = MEBASE + 401;
CONST ERROR_TOO_MANY_RECORDS          = MEBASE + 402;


/*----- ERROR_INVALID_PROTOCOL ulErrorStatus defines -----*/
/*----- Refer to SHC_NEGOTIATE_RESULT api.*/
CONST PROTOCOL_SPCBLENGTH             = 1;
CONST PROTOCOL_SPCBKEY                = 2;
CONST PROTOCOL_DATAFLAG               = 3;
CONST PROTOCOL_NUMRECORDS             = 4;
CONST PROTOCOL_BLOCKSIZE              = 5;
CONST PROTOCOL_BUFFERSIZE             = 6;
CONST PROTOCOL_MINNUMBUFFERS          = 7;
CONST PROTOCOL_MAXNUMBUFFERS          = 8;
CONST PROTOCOL_SOURCESTART            = 9;
CONST PROTOCOL_TARGETSTART            = 10;
CONST PROTOCOL_BUFFERFLAG             = 11;
CONST PROTOCOL_HANDLERFLAG            = 12;
CONST PROTOCOL_SYNCTOLERANCE          = 13;
CONST PROTOCOL_SYNCINTERVAL           = 14;
CONST PROTOCOL_INTERNALERROR          = -1;

/***********************************/
/* MMIO Manager Error Return codes */
/***********************************/

{ MEBASE is 5500   =>  MMIOERR_BASE is  6500}
CONST MMIOERR_BASE                   = MEBASE + 1000;
CONST MMIOERR_UNBUFFERED             = MMIOERR_BASE + 1;
CONST MMIOERR_CANNOTWRITE            = MMIOERR_BASE + 2;
CONST MMIOERR_CHUNKNOTFOUND          = MMIOERR_BASE + 3;

CONST MMIOERR_INVALID_HANDLE         = MMIOERR_BASE + 4;
CONST MMIOERR_INVALID_PARAMETER      = MMIOERR_BASE + 5;
CONST MMIOERR_INTERNAL_SYSTEM        = MMIOERR_BASE + 6;
CONST MMIOERR_NO_CORE                = MMIOERR_BASE + 7;

CONST MMIOERR_INI_OPEN               = MMIOERR_BASE + 8;
CONST MMIOERR_INI_READ               = MMIOERR_BASE + 9;

CONST MMIOERR_INVALID_BUFFER_LENGTH  = MMIOERR_BASE + 10;
CONST MMIOERR_NO_BUFFER_ALLOCATED    = MMIOERR_BASE + 11;
CONST MMIOERR_NO_FLUSH_FOR_MEM_FILE  = MMIOERR_BASE + 12;
CONST MMIOERR_NO_FLUSH_NEEDED        = MMIOERR_BASE + 13;
CONST MMIOERR_READ_ONLY_FILE         = MMIOERR_BASE + 14;
CONST MMIOERR_WRITE_ONLY_FILE        = MMIOERR_BASE + 15;
CONST MMIOERR_INSTALL_PROC_FAILED    = MMIOERR_BASE + 16;
CONST MMIOERR_READ_FAILED            = MMIOERR_BASE + 17;
CONST MMIOERR_WRITE_FAILED           = MMIOERR_BASE + 18;
CONST MMIOERR_SEEK_FAILED            = MMIOERR_BASE + 19;
CONST MMIOERR_CANNOTEXPAND           = MMIOERR_BASE + 20;
CONST MMIOERR_FREE_FAILED            = MMIOERR_BASE + 21;
CONST MMIOERR_EOF_SEEN               = MMIOERR_BASE + 22;
CONST MMIOERR_INVALID_ACCESS_FLAG    = MMIOERR_BASE + 23;
CONST MMIOERR_INVALID_STRUCTURE      = MMIOERR_BASE + 24;
CONST MMIOERR_INVALID_SIZE           = MMIOERR_BASE + 25;
CONST MMIOERR_INVALID_FILENAME       = MMIOERR_BASE + 26;

CONST MMIOERR_CF_DUPLICATE_SEEN      = MMIOERR_BASE + 27;
CONST MMIOERR_CF_ENTRY_NO_CORE       = MMIOERR_BASE + 28;
CONST MMIOERR_CF_WO_UNSUPPORTED      = MMIOERR_BASE + 29;
CONST MMIOERR_CF_ELEMENTS_OPEN       = MMIOERR_BASE + 30;
CONST MMIOERR_CF_NON_BND_FILE        = MMIOERR_BASE + 31;
CONST MMIOERR_CF_ENTRY_NOT_FOUND     = MMIOERR_BASE + 32;

CONST MMIOERR_DELETE_FAILED          = MMIOERR_BASE + 33;
CONST MMIOERR_OUTOFMEMORY            = MMIOERR_BASE + 34;

CONST MMIOERR_INVALID_DLLNAME        = MMIOERR_BASE + 35;
CONST MMIOERR_INVALID_PROCEDURENAME  = MMIOERR_BASE + 36;
CONST MMIOERR_MATCH_NOT_FOUND        = MMIOERR_BASE + 37;

CONST MMIOERR_SEEK_BEFORE_BEGINNING  = MMIOERR_BASE + 38;
CONST MMIOERR_INVALID_FILE           = MMIOERR_BASE + 39;
CONST MMIOERR_QOSUNAVAILABLE         = MMIOERR_BASE + 40;
CONST MMIOERR_MEDIA_NOT_FOUND        = MMIOERR_BASE + 41;

CONST MMIOERR_ERROR_IN_FRAME_DATA    = MMIOERR_BASE + 42;
CONST MMIOERR_INVALID_DIM_ALIGN      = MMIOERR_BASE + 43;
CONST MMIOERR_CODEC_NOT_SUPPORTED    = MMIOERR_BASE + 44;

CONST  MMIOERR_UNSUPPORTED_FUNCTION   = MMIOERR_BASE + 45;
CONST  MMIOERR_CLIPBRD_ERROR          = MMIOERR_BASE + 46;
CONST  MMIOERR_CLIPBRD_ACTIVE         = MMIOERR_BASE + 47;
CONST  MMIOERR_CLIPBRD_EMPTY          = MMIOERR_BASE + 48;
CONST  MMIOERR_NEED_NEW_FILENAME      = MMIOERR_BASE + 49;
CONST  MMIOERR_INVALID_TRACK_OPERATION= MMIOERR_BASE + 50;
CONST  MMIOERR_INCOMPATIBLE_DATA      = MMIOERR_BASE + 51;
CONST  MMIOERR_ACCESS_DENIED          = MMIOERR_BASE + 52;
CONST  MMIOERR_MISSING_FLAG           = MMIOERR_BASE + 53;
CONST  MMIOERR_INVALID_ITEM_FLAG      = MMIOERR_BASE + 54;

/*************************************/
/* Real-Time MIDI Error Return Codes */
/*************************************/

{ MMIOERR_BASE is  6500   => MMIOERR_BASE is 7000 }
CONST MIDIERR_BASE                     = MMIOERR_BASE + 500;

CONST MIDIERR_DUPLICATE_INSTANCE_NAME  = MIDIERR_BASE + 1;
CONST MIDIERR_HARDWARE_FAILED          = MIDIERR_BASE + 2;
CONST MIDIERR_INTERNAL_SYSTEM          = MIDIERR_BASE + 3;
CONST MIDIERR_INVALID_BUFFER_LENGTH    = MIDIERR_BASE + 4;
CONST MIDIERR_INVALID_CLASS_NUMBER     = MIDIERR_BASE + 5;
CONST MIDIERR_INVALID_CONFIG_DATA      = MIDIERR_BASE + 6;
CONST MIDIERR_INVALID_FLAG             = MIDIERR_BASE + 7;
CONST MIDIERR_INVALID_INSTANCE_NAME    = MIDIERR_BASE + 8;
CONST MIDIERR_INVALID_INSTANCE_NUMBER  = MIDIERR_BASE + 9;
CONST MIDIERR_INVALID_PARAMETER        = MIDIERR_BASE + 10;
CONST MIDIERR_INVALID_SETUP            = MIDIERR_BASE + 11;
CONST MIDIERR_NO_DRIVER                = MIDIERR_BASE + 12;
CONST MIDIERR_NO_DEFAULT_HW_NODE       = MIDIERR_BASE + 13;
CONST MIDIERR_NOT_ALLOWED              = MIDIERR_BASE + 14;
CONST MIDIERR_NOTIFY_MISSED            = MIDIERR_BASE + 15;
CONST MIDIERR_RESOURCE_NOT_AVAILABLE   = MIDIERR_BASE + 16;
CONST MIDIERR_SENDONLY                 = MIDIERR_BASE + 17;
CONST MIDIERR_RECEIVEONLY              = MIDIERR_BASE + 18;

CONST TIMERERR_BASE                    = MIDIERR_BASE + 100;

CONST TIMERERR_INVALID_PARAMETER       = TIMERERR_BASE + 1;
CONST TIMERERR_INTERNAL_SYSTEM         = TIMERERR_BASE + 2;


/***********************************/
/* User defined Error Return codes */
/***********************************/
CONST USERERR_BASE                     = MMIOERR_BASE + 1000;


IMPLEMENTATION

BEGIN
END.
