342 lines
11 KiB
PHP
342 lines
11 KiB
PHP
;==========================================================================;
|
|
;
|
|
; mmddk.inc -- Include file for Multimedia Device Development
|
|
;
|
|
; Version 4.00
|
|
;
|
|
; Copyright (C) 1992-1994 Microsoft Corporation. All Rights Reserved.
|
|
;
|
|
;--------------------------------------------------------------------------;
|
|
;
|
|
; Define: Prevent inclusion of:
|
|
; -------------- --------------------------------------------------------
|
|
; MMNOMIDIDEV MIDI support
|
|
; MMNOWAVEDEV Waveform support
|
|
; MMNOAUXDEV Auxiliary output support
|
|
; MMNOTIMERDEV Timer support
|
|
; MMNOJOYDEV Joystick support
|
|
; MMNOMCIDEV MCI support
|
|
; MMNOTASKDEV Task support
|
|
;
|
|
;==========================================================================;
|
|
|
|
OFFSEL STRUC
|
|
Off dw ?
|
|
Sel dw ?
|
|
OFFSEL ENDS
|
|
|
|
LOHI STRUC
|
|
Lo dw ?
|
|
Hi dw ?
|
|
LOHI ENDS
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;
|
|
; Helper functions for drivers
|
|
;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
DCB_TYPEMASK equ 0007h ; callback type mask
|
|
DCB_NULL equ 0000h ; unknown callback type
|
|
|
|
; flags for wFlags parameter of DriverCallback()
|
|
DCB_WINDOW equ 0001h ; dwCallback is a HWND
|
|
DCB_TASK equ 0002h ; dwCallback is a HTASK
|
|
DCB_FUNCTION equ 0003h ; dwCallback is a FARPROC
|
|
DCB_WINDOW32 equ 0004h ; dwCallback is a WINDOW ; Internal
|
|
|
|
; message sent by mmsystem to wodMessage(), widMessage(), modMessage(),
|
|
; and midMessage() when it initializes the wave and midi drivers
|
|
|
|
DRVM_INIT equ 100
|
|
|
|
; message base for driver specific messages
|
|
;
|
|
DRVM_USER equ 4000h
|
|
|
|
ifndef MMNOWAVEDEV
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;
|
|
; Waveform device driver support
|
|
;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
; maximum number of wave device drivers loaded
|
|
MAXWAVEDRIVERS equ 10
|
|
|
|
|
|
; waveform input and output device open information structure
|
|
WAVEOPENDESC struc
|
|
wod_hWave dw ? ; handle
|
|
wod_lpFormat dd ? ; format of wave data
|
|
wod_dwCallback dd ? ; callback
|
|
wod_dwInstance dd ? ; app's private instance information
|
|
WAVEOPENDESC ends
|
|
|
|
WODM_INIT equ DRVM_INIT
|
|
WIDM_INIT equ DRVM_INIT
|
|
WODM_USER equ DRVM_USER
|
|
WIDM_USER equ DRVM_USER
|
|
|
|
; messages sent to wodMessage() entry-point function
|
|
WODM_GETNUMDEVS equ 3
|
|
WODM_GETDEVCAPS equ 4
|
|
WODM_OPEN equ 5
|
|
WODM_CLOSE equ 6
|
|
WODM_PREPARE equ 7
|
|
WODM_UNPREPARE equ 8
|
|
WODM_WRITE equ 9
|
|
WODM_PAUSE equ 10
|
|
WODM_RESTART equ 11
|
|
WODM_RESET equ 12
|
|
WODM_GETPOS equ 13
|
|
WODM_GETPITCH equ 14
|
|
WODM_SETPITCH equ 15
|
|
WODM_GETVOLUME equ 16
|
|
WODM_SETVOLUME equ 17
|
|
WODM_GETPLAYBACKRATE equ 18
|
|
WODM_SETPLAYBACKRATE equ 19
|
|
WODM_BREAKLOOP equ 20
|
|
|
|
; messages sent to widMessage() entry-point function
|
|
WIDM_GETNUMDEVS equ 50
|
|
WIDM_GETDEVCAPS equ 51
|
|
WIDM_OPEN equ 52
|
|
WIDM_CLOSE equ 53
|
|
WIDM_PREPARE equ 54
|
|
WIDM_UNPREPARE equ 55
|
|
WIDM_ADDBUFFER equ 56
|
|
WIDM_START equ 57
|
|
WIDM_STOP equ 58
|
|
WIDM_RESET equ 59
|
|
WIDM_GETPOS equ 60
|
|
|
|
endif ;ifndef MMNOWAVEDEV
|
|
|
|
|
|
ifndef MMNOMIDIDEV
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;
|
|
; MIDI device driver support
|
|
;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
; maximum number of MIDI device drivers loaded
|
|
MAXMIDIDRIVERS equ 10
|
|
|
|
MODM_INIT equ DRVM_INIT
|
|
MIDM_INIT equ DRVM_INIT
|
|
MODM_USER equ DRVM_USER
|
|
MIDM_USER equ DRVM_USER
|
|
|
|
; MIDI input and output device open information structure
|
|
MIDIOPENDESC struc
|
|
mod_hMidi dw ? ; handle
|
|
mod_dwCallback dd ? ; callback
|
|
mod_dwInstance dd ? ; app's private instance information
|
|
MIDIOPENDESC ends
|
|
|
|
; messages sent to modMessage() entry-point function
|
|
MODM_GETNUMDEVS equ 1
|
|
MODM_GETDEVCAPS equ 2
|
|
MODM_OPEN equ 3
|
|
MODM_CLOSE equ 4
|
|
MODM_PREPARE equ 5
|
|
MODM_UNPREPARE equ 6
|
|
MODM_DATA equ 7
|
|
MODM_LONGDATA equ 8
|
|
MODM_RESET equ 9
|
|
MODM_GETVOLUME equ 10
|
|
MODM_SETVOLUME equ 11
|
|
MODM_CACHEPATCHES equ 12
|
|
MODM_CACHEDRUMPATCHES equ 13
|
|
|
|
|
|
; messages sent to midMessage() entry-point function
|
|
MIDM_GETNUMDEVS equ 53
|
|
MIDM_GETDEVCAPS equ 54
|
|
MIDM_OPEN equ 55
|
|
MIDM_CLOSE equ 56
|
|
MIDM_PREPARE equ 57
|
|
MIDM_UNPREPARE equ 58
|
|
MIDM_ADDBUFFER equ 59
|
|
MIDM_START equ 60
|
|
MIDM_STOP equ 61
|
|
MIDM_RESET equ 62
|
|
|
|
endif ;ifndef MMNOMIDIDEV
|
|
|
|
|
|
ifndef MMNOAUXDEV
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;
|
|
; Auxiliary audio device driver support
|
|
;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
; maximum number of auxiliary device drivers loaded
|
|
MAXAUXDRIVERS equ 10
|
|
|
|
AUXM_INIT equ DRVM_INIT
|
|
AUXM_USER equ DRVM_USER
|
|
|
|
; messages sent to auxMessage() entry-point function
|
|
AUXDM_GETNUMDEVS equ 3
|
|
AUXDM_GETDEVCAPS equ 4
|
|
AUXDM_GETVOLUME equ 5
|
|
AUXDM_SETVOLUME equ 6
|
|
|
|
endif ;ifndef MMNOAUXDEV
|
|
|
|
|
|
ifndef MMNOTIMERDEV
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;
|
|
; Timer device driver support
|
|
;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
TIMEREVENT struc
|
|
te_wDelay dw ? ; delay required
|
|
te_wResolution dw ? ; resolution required
|
|
te_lpFunction dd ? ; ptr to callback function
|
|
te_dwUser dd ? ; user DWORD
|
|
te_wFlags dw ? ; defines how to program event
|
|
TIMEREVENT ends
|
|
|
|
; messages sent to tddMessage() function
|
|
TDD_KILLTIMEREVENT equ (DRV_RESERVED + 0) ; indices into a table of
|
|
TDD_SETTIMEREVENT equ (DRV_RESERVED + 4) ; functions; thus offset by
|
|
TDD_GETSYSTEMTIME equ (DRV_RESERVED + 8) ; four each time...
|
|
TDD_GETDEVCAPS equ (DRV_RESERVED + 12) ; room for future expansion
|
|
TDD_BEGINMINPERIOD equ (DRV_RESERVED + 16) ; room for future expansion
|
|
TDD_ENDMINPERIOD equ (DRV_RESERVED + 20) ; room for future expansion
|
|
|
|
endif ;ifndef MMNOTIMERDEV
|
|
|
|
|
|
ifndef MMNOJOYDEV
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;
|
|
; Joystick device driver support
|
|
;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
; joystick calibration info structure
|
|
JOYCALIBRATE struc
|
|
jcal_wXbase dw ?
|
|
jcal_wXdelta dw ?
|
|
jcal_wYbase dw ?
|
|
jcal_wYdelta dw ?
|
|
jcal_wZbase dw ?
|
|
jcal_wZdelta dw ?
|
|
JOYCALIBRATE ends
|
|
|
|
; messages sent to joystick driver's DriverProc() function
|
|
JDD_GETNUMDEVS equ (DRV_RESERVED + 0001h)
|
|
JDD_GETDEVCAPS equ (DRV_RESERVED + 0002h)
|
|
JDD_GETPOS equ (DRV_RESERVED + 0101h)
|
|
JDD_SETCALIBRATION equ (DRV_RESERVED + 0102h)
|
|
|
|
endif ;ifndef MMNOJOYDEV
|
|
|
|
|
|
ifndef MMNOMCIDEV
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;
|
|
; MCI device driver support
|
|
;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
; internal MCI messages
|
|
MCI_OPEN_DRIVER equ 0801h
|
|
MCI_CLOSE_DRIVER equ 0802h
|
|
|
|
MAKEMCIRESOURCE MACRO a,b
|
|
mov ax,a
|
|
mov dx,b
|
|
ENDM
|
|
|
|
; string return values only used with MAKEMCIRESOURCE
|
|
MCI_FALSE equ (MCI_STRING_OFFSET + 19)
|
|
MCI_TRUE equ (MCI_STRING_OFFSET + 20)
|
|
|
|
; resource string return values
|
|
MCI_FORMAT_RETURN_BASE equ MCI_FORMAT_MILLISECONDS_S
|
|
MCI_FORMAT_MILLISECONDS_S equ (MCI_STRING_OFFSET + 21)
|
|
MCI_FORMAT_HMS_S equ (MCI_STRING_OFFSET + 22)
|
|
MCI_FORMAT_MSF_S equ (MCI_STRING_OFFSET + 23)
|
|
MCI_FORMAT_FRAMES_S equ (MCI_STRING_OFFSET + 24)
|
|
MCI_FORMAT_SMPTE_24_S equ (MCI_STRING_OFFSET + 25)
|
|
MCI_FORMAT_SMPTE_25_S equ (MCI_STRING_OFFSET + 26)
|
|
MCI_FORMAT_SMPTE_30_S equ (MCI_STRING_OFFSET + 27)
|
|
MCI_FORMAT_SMPTE_30DROP_S equ (MCI_STRING_OFFSET + 28)
|
|
MCI_FORMAT_BYTES_S equ (MCI_STRING_OFFSET + 29)
|
|
MCI_FORMAT_SAMPLES_S equ (MCI_STRING_OFFSET + 30)
|
|
MCI_FORMAT_TMSF_S equ (MCI_STRING_OFFSET + 31)
|
|
|
|
MCI_VD_FORMAT_TRACK_S equ (MCI_VD_OFFSET + 5)
|
|
|
|
WAVE_FORMAT_PCM_S equ (MCI_WAVE_OFFSET + 0)
|
|
WAVE_MAPPER_S equ (MCI_WAVE_OFFSET + 1)
|
|
|
|
MCI_SEQ_MAPPER_S equ (MCI_SEQ_OFFSET + 5)
|
|
MCI_SEQ_FILE_S equ (MCI_SEQ_OFFSET + 6)
|
|
MCI_SEQ_MIDI_S equ (MCI_SEQ_OFFSET + 7)
|
|
MCI_SEQ_SMPTE_S equ (MCI_SEQ_OFFSET + 8)
|
|
MCI_SEQ_FORMAT_SONGPTR_S equ (MCI_SEQ_OFFSET + 9)
|
|
MCI_SEQ_NONE_S equ (MCI_SEQ_OFFSET + 10)
|
|
MIDIMAPPER_S equ (MCI_SEQ_OFFSET + 11)
|
|
|
|
; parameters for internal version of MCI_OPEN message sent from
|
|
; mciOpenDevice() to the driver
|
|
MCI_OPEN_DRIVER_PARMS struc
|
|
mciodrv_wDeviceID dw ? ; device ID
|
|
mciodrv_lpstrParams dw ? ; parameter string for entry in SYSTEM.INI
|
|
mciodrv_wCustomCommandTable dw ? ; custom command table (0FFFFh if none)
|
|
; filled in by the driver
|
|
mciodrv_wType dw ? ; driver type filled in by the driver
|
|
MCI_OPEN_DRIVER_PARMS ends
|
|
|
|
; maximum length of an MCI device type
|
|
MCI_MAX_DEVICE_TYPE_LENGTH equ 80
|
|
|
|
; flags for mciSendCommandInternal() which direct mciSendString() how to
|
|
; interpret the return value
|
|
MCI_RESOURCE_RETURNED equ 00010000h ; resource ID
|
|
MCI_COLONIZED3_RETURN equ 00020000h ; colonized ID, 3 bytes data
|
|
MCI_COLONIZED4_RETURN equ 00040000h ; colonized ID, 4 bytes data
|
|
MCI_INTEGER_RETURNED equ 00080000h ; integer conversion needed
|
|
MCI_RESOURCE_DRIVER equ 00100000h ; driver owns returned resource
|
|
|
|
; invalid command table ID
|
|
MCI_NO_COMMAND_TABLE equ 0FFFFh
|
|
|
|
; command table information type tags
|
|
MCI_COMMAND_HEAD equ 0
|
|
MCI_STRING equ 1
|
|
MCI_INTEGER equ 2
|
|
MCI_END_COMMAND equ 3
|
|
MCI_RETURN equ 4
|
|
MCI_FLAG equ 5
|
|
MCI_END_COMMAND_LIST equ 6
|
|
MCI_RECT equ 7
|
|
MCI_CONSTANT equ 8
|
|
MCI_END_CONSTANT equ 9
|
|
|
|
endif ;ifndef MMNOMCIDEV
|
|
|
|
|
|
ifndef MMNOTASKDEV
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;
|
|
; Task support
|
|
;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
; error return values
|
|
TASKERR_NOTASKSUPPORT equ 1
|
|
TASKERR_OUTOFMEMORY equ 2
|
|
|
|
endif ;ifndef MMNOTASKDEV
|