Release 980517
[wine] / include / multimedia.h
1 /*****************************************************************************
2  * Copyright 1998, Luiz Otavio L. Zorzella
3  *
4  * File:      multimedia.h
5  * Purpose:   multimedia declarations
6  *
7  *****************************************************************************
8  */
9 #ifndef __WINE_MULTIMEDIA_H 
10 #define __WINE_MULTIMEDIA_H
11
12 #include "mmsystem.h"
13
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.
19  */
20 #define MAX_MIDIOUTDRV  (16)
21 #define MAX_MCIMIDIDRV  (1)
22
23 #ifdef HAVE_SYS_SOUNDCARD_H
24 # include <sys/soundcard.h>
25 #endif
26 #ifdef HAVE_MACHINE_SOUNDCARD_H
27 # include <machine/soundcard.h>
28 #endif
29
30 #include <sys/errno.h>
31
32 #define MIDI_DEV "/dev/midi"
33
34 #ifdef SOUND_VERSION
35 #define IOCTL(a,b,c)            ioctl(a,b,&c)
36 #else
37 #define IOCTL(a,b,c)            (c = ioctl(a,b,c) )
38 #endif
39
40 typedef struct {
41         int             unixdev;
42         int             state;
43         DWORD           bufsize;
44         MIDIOPENDESC    midiDesc;
45         WORD            wFlags;
46         LPMIDIHDR       lpQueueHdr;
47         DWORD           dwTotalPlayed;
48 } LINUX_MIDIIN;
49
50 typedef struct {
51         int             unixdev;
52         int             state;
53         DWORD           bufsize;
54         MIDIOPENDESC    midiDesc;
55         WORD            wFlags;
56         LPMIDIHDR       lpQueueHdr;
57         DWORD           dwTotalPlayed;
58 } LINUX_MIDIOUT;
59
60 typedef struct {
61         int     nUseCount;          /* Incremented for each shared open */
62         BOOL16  fShareable;         /* TRUE if first open was shareable */
63         WORD    wNotifyDeviceID;    /* MCI device ID with a pending notification */
64         HANDLE16 hCallback;         /* Callback handle for pending notification */
65         HMMIO16 hFile;              /* mmio file handle open as Element         */
66         DWORD   dwBeginData;
67         DWORD   dwTotalLen;
68         WORD    wFormat;
69         WORD    nTracks;
70         WORD    nTempo;
71         MCI_OPEN_PARMS16 openParms;
72 /*      MIDIHDR MidiHdr; */
73         HLOCAL16        hMidiHdr;
74         WORD    dwStatus;
75 } LINUX_MCIMIDI;
76 #endif /* __WINE_MULTIMEDIA_H */