Release 980329
[wine/multimedia.git] / include / multimedia.h
blob8c6207044066850f290cee2b14d24411de28477f
1 /*****************************************************************************
2 * Copyright 1998, Luiz Otavio L. Zorzella
4 * File: multimedia.h
5 * Purpose: multimedia declarations
7 *****************************************************************************
8 */
9 #ifndef __WINE_MULTIMEDIA_H
10 #define __WINE_MULTIMEDIA_H
12 #include "mmsystem.h"
14 #define MAX_MIDIINDRV (1)
15 /* For now I'm making 16 the maximum number of midi devices one can
16 * have. This should be more than enough for everybody. But as a purist,
17 * I intend to make it unbounded in the future, as soon as I figure
18 * a good way to do so.
20 #define MAX_MIDIOUTDRV (16)
21 #define MAX_MCIMIDIDRV (1)
23 #if defined (linux)
24 #define __HAS_SOUNDCARD_H__
25 #include <sys/soundcard.h>
26 #elif defined (__FreeBSD__)
27 #define __HAS_SOUNDCARD_H__
28 #include <machine/soundcard.h>
29 #include <sys/errno.h>
30 #endif
32 #if defined (__HAS_SOUNDCARD_H__)
34 #define MIDI_DEV "/dev/sequencer"
36 #ifdef SOUND_VERSION
37 #define IOCTL(a,b,c) ioctl(a,b,&c)
38 #else
39 #define IOCTL(a,b,c) (c = ioctl(a,b,c) )
40 #endif
42 typedef struct {
43 int unixdev;
44 int state;
45 DWORD bufsize;
46 MIDIOPENDESC midiDesc;
47 WORD wFlags;
48 LPMIDIHDR lpQueueHdr;
49 DWORD dwTotalPlayed;
50 } LINUX_MIDIIN;
52 typedef struct {
53 int unixdev;
54 int state;
55 DWORD bufsize;
56 MIDIOPENDESC midiDesc;
57 WORD wFlags;
58 LPMIDIHDR lpQueueHdr;
59 DWORD dwTotalPlayed;
60 } LINUX_MIDIOUT;
62 typedef struct {
63 int nUseCount; /* Incremented for each shared open */
64 BOOL16 fShareable; /* TRUE if first open was shareable */
65 WORD wNotifyDeviceID; /* MCI device ID with a pending notification */
66 HANDLE16 hCallback; /* Callback handle for pending notification */
67 HMMIO16 hFile; /* mmio file handle open as Element */
68 DWORD dwBeginData;
69 DWORD dwTotalLen;
70 WORD wFormat;
71 WORD nTracks;
72 WORD nTempo;
73 MCI_OPEN_PARMS16 openParms;
74 /* MIDIHDR MidiHdr; */
75 HLOCAL16 hMidiHdr;
76 WORD dwStatus;
77 } LINUX_MCIMIDI;
79 #endif
81 #endif /* __WINE_MULTIMEDIA_H */