windows-nt/Source/XPSP1/NT/base/mvdm/wow32/wmmstruc.h
2020-09-26 16:20:57 +08:00

147 lines
5.3 KiB
C

/*++ BUILD Version: 0001
*
* WOW v1.0
*
* Copyright (c) 1991, Microsoft Corporation
*
* WMMSTRUC.H
* WOW32 16-bit MultiMedia structure conversion support
*
* History:
* Created 13-Feb-1992 by Mike Tricker (miketri) after jeffpar
*
--*/
/*++
Hack to make the code work with current MIPS compiler, whereby the compiler
can't work out the correct size of a MMTIME16 structure.
--*/
#define MIPS_COMPILER_PACKING_BUG
/**********************************************************************\
*
* The following macros are used to set or clear the done bit in a
* 16 bit wave|midi header structure.
*
\**********************************************************************/
#define COPY_WAVEOUTHDR16_FLAGS( x, y ) \
{ \
PWAVEHDR16 pWavHdr; \
DWORD dw; \
\
pWavHdr = (x); \
dw = (y).dwFlags; \
STOREDWORD( pWavHdr->dwFlags, dw ); \
}
#define COPY_MIDIOUTHDR16_FLAGS( x, y ) \
{ \
PMIDIHDR16 pMidHdr; \
DWORD dw; \
\
pMidHdr = (x); \
dw = (y).dwFlags; \
STOREDWORD( pMidHdr->dwFlags, dw ); \
}
#define COPY_WAVEINHDR16_FLAGS( x, y ) \
{ \
PWAVEHDR16 pWavHdr; \
DWORD dw; \
\
pWavHdr = (x); \
dw = (y).dwFlags; \
STOREDWORD( pWavHdr->dwFlags, dw ); \
dw = (y).dwBytesRecorded; \
STOREDWORD( pWavHdr->dwBytesRecorded, dw ); \
}
#define COPY_MIDIINHDR16_FLAGS( x, y ) \
{ \
PMIDIHDR16 pMidHdr; \
DWORD dw; \
\
pMidHdr = (x); \
dw = (y).dwFlags; \
STOREDWORD( pMidHdr->dwFlags, dw ); \
dw = (y).dwBytesRecorded; \
STOREDWORD( pMidHdr->dwBytesRecorded, dw ); \
}
/*++
Call definitions
--*/
#define GETMMTIME16(vp,lp) getmmtime16(FETCHDWORD(vp),lp)
#define GETWAVEHDR16(vp,lp) getwavehdr16(FETCHDWORD(vp), lp)
#define GETMIDIHDR16(vp,lp) getmidihdr16(FETCHDWORD(vp), lp)
#define PUTMMTIME16(vp,lp) putmmtime16(FETCHDWORD(vp),lp)
#define PUTWAVEHDR16(vp,lp) putwavehdr16(FETCHDWORD(vp), lp)
#define PUTWAVEFORMAT16(vp,lp) putwaveformat16(FETCHDWORD(vp), lp)
#define PUTWAVEOUTCAPS16(vp,lp,c) putwaveoutcaps16(FETCHDWORD(vp), lp, c)
#define PUTWAVEINCAPS16(vp,lp,c) putwaveincaps16(FETCHDWORD(vp), lp, c)
#define PUTMIDIHDR16(vp,lp) putmidihdr16(FETCHDWORD(vp), lp)
#define PUTAUXCAPS16(vp,lp,c) putauxcaps16(FETCHDWORD(vp), lp, c)
#define PUTTIMECAPS16(vp,lp,c) puttimecaps16(FETCHDWORD(vp), lp, c)
#define PUTMIDIINCAPS16(vp,lp,c) putmidiincaps16(FETCHDWORD(vp), lp, c)
#define PUTMIDIOUTCAPS16(vp,lp,c) putmidioutcaps16(FETCHDWORD(vp), lp, c)
#define PUTJOYCAPS16(vp,lp,c) putjoycaps16(FETCHDWORD(vp), lp, c)
#define PUTJOYINFO16(vp,lp) putjoyinfo16(FETCHDWORD(vp), lp)
#ifndef DEBUG
#define FREEMMTIME(p)
#define FREEWAVEHDR(p)
#define FREEWAVEOUTCAPS(p)
#define FREEWAVEINCAPS(p)
#define FREEMIDIHDR(p)
#define FREEAUXCAPS(p)
#define FREETIMECAPS(p)
#define FREEMIDIINCAPS(p)
#define FREEMIDIOUTCAPS(p)
#define FREEJOYCAPS(p)
#define FREEJOYINFO(p)
#else
#define FREEMMTIME(p) p=NULL
#define FREEWAVEHDR(p) p=NULL
#define FREEWAVEOUTCAPS(p) p=NULL
#define FREEWAVEINCAPS(p) p=NULL
#define FREEMIDIHDR(p) p=NULL
#define FREEAUXCAPS(p) p=NULL
#define FREETIMECAPS(p) p=NULL
#define FREEMIDIINCAPS(p) p=NULL
#define FREEMIDIOUTCAPS(p) p=NULL
#define FREEJOYCAPS(p) p=NULL
#define FREEJOYINFO(p) p=NULL
#endif
/*++
Function prototypes
--*/
PWAVEHDR16 getwavehdr16(VPWAVEHDR16 vpwhdr, LPWAVEHDR lpwhdr);
VOID putwavehdr16(VPWAVEHDR16 vpwhdr, LPWAVEHDR lpwhdr);
PMIDIHDR16 getmidihdr16(VPMIDIHDR16 vpmhdr, LPMIDIHDR lpmhdr);
VOID putmidihdr16(VPMIDIHDR16 vpmhdr, LPMIDIHDR lpmhdr);
ULONG getmmtime16 (VPMMTIME16 vpmmt, LPMMTIME lpmmt);
ULONG putmmtime16 (VPMMTIME16 vpmmt, LPMMTIME lpmmt);
ULONG putwaveoutcaps16 (VPWAVEOUTCAPS16 vpwoc, LPWAVEOUTCAPS lpwoc, UINT uSize);
ULONG putwaveincaps16 (VPWAVEINCAPS16 vpwic, LPWAVEINCAPS lpwic, UINT uSize);
ULONG putauxcaps16 (VPAUXCAPS16 vpauxc, LPAUXCAPS lpauxc, UINT uSize);
ULONG puttimecaps16 (VPTIMECAPS16 vptimec, LPTIMECAPS lptimec, UINT uSize);
ULONG putmidiincaps16 (VPMIDIINCAPS16 vpmic, LPMIDIINCAPS lpmic, UINT uSize);
ULONG putmidioutcaps16 (VPMIDIOUTCAPS16 vpmoc, LPMIDIOUTCAPS lpmoc, UINT uSize);
ULONG putjoycaps16 (VPJOYCAPS16 vpjoyc, LPJOYCAPS lpjoyc, UINT uSize);
ULONG putjoyinfo16 (VPJOYINFO16 vpjoyi, LPJOYINFO lpjoyi);