Commit f8fe366b authored by Eric Pouech's avatar Eric Pouech Committed by Alexandre Julliard

Fixed segmented/linear buffers manipulation.

Better IO buffering. Added some missing prototypes.
parent 98f86fcd
......@@ -156,13 +156,13 @@ type win16
1214 pascal mmioSeek(word long word) mmioSeek16
1215 pascal mmioGetInfo(word ptr word) mmioGetInfo16
1216 pascal mmioSetInfo(word ptr word) mmioSetInfo16
1217 pascal mmioSetBuffer(word ptr long word) mmioSetBuffer16
1217 pascal mmioSetBuffer(word segptr long word) mmioSetBuffer16
1218 pascal mmioFlush(word word) mmioFlush16
1219 pascal mmioAdvance(word ptr word) mmioAdvance16
1220 pascal mmioStringToFOURCC(str word) mmioStringToFOURCC16
1221 pascal mmioInstallIOProc(long ptr long) mmioInstallIOProc16
1222 pascal mmioSendMessage(word word long long) mmioSendMessage
1223 pascal mmioDescend(word ptr ptr word) mmioDescend
1222 pascal mmioSendMessage(word word long long) mmioSendMessage16
1223 pascal mmioDescend(word ptr ptr word) mmioDescend16
1224 pascal mmioAscend(word ptr word) mmioAscend16
1225 pascal mmioCreateChunk(word ptr word) mmioCreateChunk16
1226 pascal mmioRename(ptr ptr ptr long) mmioRename16
......
......@@ -44,7 +44,7 @@ typedef struct {
extern BOOL MMDRV_Init(void);
extern UINT MMDRV_GetNum(UINT);
extern LPWINE_MLD MMDRV_Alloc(UINT size, UINT type, LPHANDLE hndl, DWORD* dwFlags,
DWORD* dwCallback, DWORD* dwInstance, BOOL bFrom32);
DWORD* dwCallback, DWORD* dwInstance, BOOL bFrom32);
extern void MMDRV_Free(HANDLE hndl, LPWINE_MLD mld);
extern DWORD MMDRV_Open(LPWINE_MLD mld, UINT wMsg, DWORD dwParam1, DWORD dwParam2);
extern DWORD MMDRV_Close(LPWINE_MLD mld, UINT wMsg);
......@@ -99,7 +99,7 @@ typedef struct tagWINE_MCIDRIVER {
#define WINE_TIMER_IS32 0x80
typedef struct tagTIMERENTRY {
typedef struct tagWINE_TIMERENTRY {
UINT wDelay;
UINT wResol;
FARPROC16 lpFunc;
......@@ -107,9 +107,18 @@ typedef struct tagTIMERENTRY {
UINT16 wFlags;
UINT16 wTimerID;
UINT uCurTime;
struct tagTIMERENTRY* lpNext;
struct tagWINE_TIMERENTRY* lpNext;
} WINE_TIMERENTRY, *LPWINE_TIMERENTRY;
typedef struct tagWINE_MMIO {
MMIOINFO info;
struct IOProcList* ioProc;
BOOL bTmpIOProc;
HANDLE hMem;
SEGPTR buffer16;
struct tagWINE_MMIO* lpNext;
} WINE_MMIO, *LPWINE_MMIO;
typedef struct tagWINE_MM_IDATA {
/* iData reference */
DWORD dwThisProcess;
......@@ -131,6 +140,8 @@ typedef struct tagWINE_MM_IDATA {
/* LPWINE_WAVE lpWave; */
/* LPWINE_MIDI lpMidi; */
/* LPWINE_MIXER lpMixer; */
/* mmio part */
LPWINE_MMIO lpMMIO;
} WINE_MM_IDATA, *LPWINE_MM_IDATA;
/* function prototypes */
......
......@@ -126,7 +126,7 @@ rsrc winmm
@ stdcall mmioGetInfo(long ptr long) mmioGetInfo
@ stub mmioInstallIOProc16
@ stdcall mmioInstallIOProcA(long ptr long) mmioInstallIOProcA
@ stub mmioInstallIOProcW
@ stdcall mmioInstallIOProcW(long ptr long) mmioInstallIOProcW
@ stdcall mmioOpenA(str ptr long) mmioOpenA
@ stdcall mmioOpenW(wstr ptr long) mmioOpenW
@ stdcall mmioRead(long ptr long) mmioRead
......
......@@ -1498,7 +1498,7 @@ typedef struct {
FOURCC fccIOProc; /* pointer to I/O procedure */
LPMMIOPROC16 pIOProc; /* pointer to I/O procedure */
UINT16 wErrorRet; /* place for error to be returned */
HTASK16 htask; /* alternate local task */
HTASK16 hTask; /* alternate local task */
/* fields maintained by MMIO functions during buffered I/O */
LONG cchBuffer; /* size of I/O buffer (or 0L) */
HPSTR pchBuffer; /* start of I/O buffer (or NULL) */
......@@ -1520,7 +1520,7 @@ typedef struct {
FOURCC fccIOProc;
LPMMIOPROC pIOProc;
UINT wErrorRet;
HTASK htask;
HTASK hTask;
/* fields maintained by MMIO functions during buffered I/O */
LONG cchBuffer;
HPSTR pchBuffer;
......@@ -1618,8 +1618,8 @@ FOURCC WINAPI mmioStringToFOURCC16(LPCSTR,UINT16);
FOURCC WINAPI mmioStringToFOURCCA(LPCSTR,UINT);
FOURCC WINAPI mmioStringToFOURCCW(LPCWSTR,UINT);
#define mmioStringToFOURCC WINELIB_NAME_AW(mmioStringToFOURCC)
HMMIO16 WINAPI mmioOpen16 (LPSTR ,MMIOINFO16*,DWORD);
HMMIO WINAPI mmioOpenA(LPSTR ,MMIOINFO*,DWORD);
HMMIO16 WINAPI mmioOpen16(LPSTR,MMIOINFO16*,DWORD);
HMMIO WINAPI mmioOpenA(LPSTR,MMIOINFO*,DWORD);
HMMIO WINAPI mmioOpenW(LPWSTR,MMIOINFO*,DWORD);
#define mmioOpen WINELIB_NAME_AW(mmioOpen)
......@@ -1649,9 +1649,10 @@ UINT16 WINAPI mmioFlush16(HMMIO16,UINT16);
UINT WINAPI mmioFlush(HMMIO,UINT);
UINT16 WINAPI mmioAdvance16(HMMIO16,MMIOINFO16*,UINT16);
UINT WINAPI mmioAdvance(HMMIO,MMIOINFO*,UINT);
LONG WINAPI mmioSendMessage(HMMIO16,UINT16,LPARAM,LPARAM);
UINT16 WINAPI mmioDescend(HMMIO16,MMCKINFO*,const MMCKINFO*,UINT16);
LONG WINAPI mmioSendMessage16(HMMIO16,UINT16,LPARAM,LPARAM);
LONG WINAPI mmioSendMessage(HMMIO,UINT,LPARAM,LPARAM);
UINT16 WINAPI mmioDescend16(HMMIO16,MMCKINFO*,const MMCKINFO*,UINT16);
UINT WINAPI mmioDescend(HMMIO,MMCKINFO*,const MMCKINFO*,UINT);
UINT16 WINAPI mmioAscend16(HMMIO16,MMCKINFO*,UINT16);
UINT WINAPI mmioAscend(HMMIO,MMCKINFO*,UINT);
UINT16 WINAPI mmioCreateChunk16(HMMIO16,MMCKINFO*,UINT16);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment