Added tracking support and fixed loading of resource strings.
[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   (16)
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 #ifdef HAVE_OSS
33 #define MIDI_SEQ "/dev/sequencer"
34 #else
35 #define MIDI_DEV "/dev/midi"
36 #endif
37
38 #ifdef SOUND_VERSION
39 #define IOCTL(a,b,c)            ioctl(a,b,&c)
40 #else
41 #define IOCTL(a,b,c)            (c = ioctl(a,b,c) )
42 #endif
43
44 typedef struct {
45 #ifndef HAVE_OSS
46         int             unixdev;
47 #endif
48         int             state;
49         DWORD           bufsize;
50         LPMIDIOPENDESC  midiDesc;
51         WORD            wFlags;
52         LPMIDIHDR       lpQueueHdr;
53         DWORD           dwTotalPlayed;
54 #ifdef HAVE_OSS
55         unsigned char   incoming[3];
56         unsigned char   incPrev;
57         char            incLen;
58         DWORD           startTime;
59 #endif
60 } LINUX_MIDIIN;
61
62 typedef struct {
63 #ifndef HAVE_OSS
64         int             unixdev;
65 #endif
66         int             state;
67         DWORD           bufsize;
68         LPMIDIOPENDESC  midiDesc;
69         WORD            wFlags;
70         LPMIDIHDR       lpQueueHdr;
71         DWORD           dwTotalPlayed;
72 #ifdef HAVE_OSS
73         void*           lpExtra;                /* according to port type (MIDI, FM...), extra data when needed */
74 #endif
75 } LINUX_MIDIOUT;
76
77 typedef struct {
78         int             nUseCount;              /* Incremented for each shared open */
79         BOOL16          fShareable;             /* TRUE if first open was shareable */
80         WORD            wNotifyDeviceID;        /* MCI device ID with a pending notification */
81         HANDLE16        hCallback;              /* Callback handle for pending notification */
82         HMMIO16         hFile;                  /* mmio file handle open as Element             */
83         DWORD           dwBeginData;
84         DWORD           dwTotalLen;
85         WORD            wFormat;
86         WORD            nTracks;
87         WORD            nTempo;
88         MCI_OPEN_PARMS16 openParms;
89 /*      MIDIHDR MidiHdr; */
90         HLOCAL16        hMidiHdr;
91         WORD            dwStatus;
92 } LINUX_MCIMIDI;
93
94 /* function prototypes */
95 extern BOOL32 MULTIMEDIA_Init( void );
96
97 #endif /* __WINE_MULTIMEDIA_H */