summaryrefslogtreecommitdiffstats
path: root/private/mvdm/wow32/wmmstruc.h
blob: 58d6f35335a4518004f10d163cfca288ae785c96 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
/*++ 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);