1 /* -*- tab-width: 8; c-basic-offset: 4 -*- */
3 /*****************************************************************************
4 * Copyright 1998, Luiz Otavio L. Zorzella
7 * Purpose: multimedia declarations
9 *****************************************************************************
11 #ifndef __WINE_MULTIMEDIA_H
12 #define __WINE_MULTIMEDIA_H
16 #define MAX_MIDIINDRV (16)
17 /* For now I'm making 16 the maximum number of midi devices one can
18 * have. This should be more than enough for everybody. But as a purist,
19 * I intend to make it unbounded in the future, as soon as I figure
20 * a good way to do so.
22 #define MAX_MIDIOUTDRV (16)
24 #if defined(HAVE_SYS_SOUNDCARD_H)
25 # include <sys/soundcard.h>
26 #elif defined(HAVE_MACHINE_SOUNDCARD_H)
27 # include <machine/soundcard.h>
28 #elif defined(HAVE_SOUNDCARD_H)
29 # include <soundcard.h>
32 #include <sys/errno.h>
35 #define MIDI_SEQ "/dev/sequencer"
37 #define MIDI_DEV "/dev/midi"
41 #define IOCTL(a,b,c) ioctl(a,b,&c)
43 #define IOCTL(a,b,c) (c = ioctl(a,b,c))
46 struct WINE_MCIDRIVER
{
48 DRIVERPROC16 driverProc
;
49 MCI_OPEN_DRIVER_PARMS16 modp
;
52 YIELDPROC lpfnYieldProc
;
58 extern struct WINE_MCIDRIVER mciDrv
[MAXMCIDRIVERS
];
60 #define MCI_GetDrv(wDevID) (&mciDrv[MCI_DevIDToIndex(wDevID)])
61 #define MCI_GetOpenDrv(wDevID) (&(MCI_GetDrv(wDevID)->mop))
63 /* function prototypes */
64 extern BOOL
MULTIMEDIA_Init(void);
66 extern int MCI_DevIDToIndex(UINT16 wDevID
);
67 extern UINT16
MCI_FirstDevID(void);
68 extern UINT16
MCI_NextDevID(UINT16 wDevID
);
69 extern BOOL
MCI_DevIDValid(UINT16 wDevID
);
71 extern int MCI_MapMsg16To32A(WORD uDevType
, WORD wMsg
, DWORD
* lParam
);
72 extern int MCI_UnMapMsg16To32A(WORD uDevTyp
, WORD wMsg
, DWORD lParam
);
74 extern DWORD
MCI_Open(DWORD dwParam
, LPMCI_OPEN_PARMSA lpParms
);
75 extern DWORD
MCI_Close(UINT16 wDevID
, DWORD dwParam
, LPMCI_GENERIC_PARMS lpParms
);
76 extern DWORD
MCI_SysInfo(UINT uDevID
, DWORD dwFlags
, LPMCI_SYSINFO_PARMSA lpParms
);
78 typedef LONG (*MCIPROC16
)(DWORD
, HDRVR16
, WORD
, DWORD
, DWORD
);
79 typedef LONG (*MCIPROC
)(DWORD
, HDRVR16
, DWORD
, DWORD
, DWORD
);
81 extern WORD
MCI_GetDevType(LPCSTR str
);
82 extern DWORD
MCI_WriteString(LPSTR lpDstStr
, DWORD dstSize
, LPCSTR lpSrcStr
);
83 extern const char* MCI_CommandToString(UINT16 wMsg
);
85 extern int mciInstalledCount
;
86 extern int mciInstalledListLen
;
87 extern LPSTR lpmciInstallNames
;
95 extern MCI_WineDesc MCI_InternalDescriptors
[];
97 extern LRESULT
MCI_CleanUp(LRESULT dwRet
, UINT wMsg
, DWORD dwParam2
, BOOL bIs32
);
99 extern DWORD
MCI_SendCommand(UINT wDevID
, UINT16 wMsg
, DWORD dwParam1
, DWORD dwParam2
);
100 extern DWORD
MCI_SendCommandAsync(UINT wDevID
, UINT wMsg
, DWORD dwParam1
, DWORD dwParam2
, UINT size
);
102 LONG
MCIWAVE_DriverProc(DWORD dwDevID
, HDRVR16 hDriv
, DWORD wMsg
,
103 DWORD dwParam1
, DWORD dwParam2
);
104 LONG
MCIMIDI_DriverProc(DWORD dwDevID
, HDRVR16 hDriv
, DWORD wMsg
,
105 DWORD dwParam1
, DWORD dwParam2
);
106 LONG
MCICDAUDIO_DriverProc(DWORD dwDevID
, HDRVR16 hDriv
, DWORD wMsg
,
107 DWORD dwParam1
, DWORD dwParam2
);
108 LONG
MCIANIM_DriverProc(DWORD dwDevID
, HDRVR16 hDriv
, DWORD wMsg
,
109 DWORD dwParam1
, DWORD dwParam2
);
110 LONG
MCIAVI_DriverProc(DWORD dwDevID
, HDRVR16 hDriv
, DWORD wMsg
,
111 DWORD dwParam1
, DWORD dwParam2
);
113 #endif /* __WINE_MULTIMEDIA_H */