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

winmm: Create real 16<>32 thunks for mmio support in MMSystem.

parent f4c56174
......@@ -45,8 +45,6 @@
WINE_DEFAULT_DEBUG_CHANNEL(mmio);
LRESULT (*pFnMmioCallback16)(DWORD,LPMMIOINFO,UINT,LPARAM,LPARAM) /* = NULL */;
static WINE_MMIO *MMIOList;
/**************************************************************************
......@@ -255,8 +253,8 @@ static struct IOProcList* MMIO_FindProcNode(FOURCC fccIOProc)
/****************************************************************
* MMIO_InstallIOProc [INTERNAL]
*/
LPMMIOPROC MMIO_InstallIOProc(FOURCC fccIOProc, LPMMIOPROC pIOProc,
DWORD dwFlags, enum mmioProcType type)
static LPMMIOPROC MMIO_InstallIOProc(FOURCC fccIOProc, LPMMIOPROC pIOProc,
DWORD dwFlags, enum mmioProcType type)
{
LPMMIOPROC lpProc = NULL;
struct IOProcList* pListNode;
......@@ -352,11 +350,6 @@ static LRESULT send_message(struct IOProcList* ioProc, LPMMIOINFO mmioinfo,
}
switch (ioProc->type) {
case MMIO_PROC_16:
if (pFnMmioCallback16)
result = pFnMmioCallback16((DWORD)ioProc->pIOProc,
mmioinfo, wMsg, lp1, lp2);
break;
case MMIO_PROC_32A:
case MMIO_PROC_32W:
if (ioProc->type != type) {
......@@ -438,7 +431,7 @@ static FOURCC MMIO_ParseExtA(LPCSTR szFileName)
*
* Retrieves the mmio object from current process
*/
LPWINE_MMIO MMIO_Get(HMMIO h)
static LPWINE_MMIO MMIO_Get(HMMIO h)
{
LPWINE_MMIO wm = NULL;
......@@ -593,8 +586,8 @@ static MMRESULT MMIO_SetBuffer(WINE_MMIO* wm, void* pchBuffer, LONG cchBuffer,
/**************************************************************************
* MMIO_Open [internal]
*/
HMMIO MMIO_Open(LPSTR szFileName, MMIOINFO* refmminfo, DWORD dwOpenFlags,
enum mmioProcType type)
static HMMIO MMIO_Open(LPSTR szFileName, MMIOINFO* refmminfo, DWORD dwOpenFlags,
enum mmioProcType type)
{
LPWINE_MMIO wm;
MMIOINFO mmioinfo;
......@@ -939,9 +932,6 @@ MMRESULT WINAPI mmioGetInfo(HMMIO hmmio, MMIOINFO* lpmmioinfo, UINT uFlags)
return MMSYSERR_INVALHANDLE;
*lpmmioinfo = wm->info;
/* don't expose 16 bit ioproc:s */
if (wm->ioProc->type != MMIO_PROC_16)
lpmmioinfo->pIOProc = wm->ioProc->pIOProc;
return MMSYSERR_NOERROR;
}
......@@ -1112,7 +1102,7 @@ LPMMIOPROC WINAPI mmioInstallIOProcW(FOURCC fccIOProc,
*
*
*/
LRESULT MMIO_SendMessage(HMMIO hmmio, UINT uMessage, LPARAM lParam1,
static LRESULT MMIO_SendMessage(HMMIO hmmio, UINT uMessage, LPARAM lParam1,
LPARAM lParam2, enum mmioProcType type)
{
LPWINE_MMIO wm;
......
......@@ -50,7 +50,6 @@ static WINE_MMTHREAD* WINMM_GetmmThread(HANDLE16);
static LPWINE_DRIVER DRIVER_OpenDriver16(LPCWSTR, LPCWSTR, LPARAM);
static LRESULT DRIVER_CloseDriver16(HDRVR16, LPARAM, LPARAM);
static LRESULT DRIVER_SendMessage16(HDRVR16, UINT, LPARAM, LPARAM);
extern LRESULT MMIO_Callback16(SEGPTR, LPMMIOINFO, UINT, LPARAM, LPARAM);
/* ###################################################
* # LIBRARY #
......@@ -83,7 +82,6 @@ BOOL WINAPI MMSYSTEM_LibMain(DWORD fdwReason, HINSTANCE hinstDLL, WORD ds,
pFnOpenDriver16 = DRIVER_OpenDriver16;
pFnCloseDriver16 = DRIVER_CloseDriver16;
pFnSendMessage16 = DRIVER_SendMessage16;
pFnMmioCallback16 = MMIO_Callback16;
pFnReleaseThunkLock = ReleaseThunkLock;
pFnRestoreThunkLock = RestoreThunkLock;
MMDRV_Init16();
......@@ -93,7 +91,6 @@ BOOL WINAPI MMSYSTEM_LibMain(DWORD fdwReason, HINSTANCE hinstDLL, WORD ds,
pFnOpenDriver16 = NULL;
pFnCloseDriver16 = NULL;
pFnSendMessage16 = NULL;
pFnMmioCallback16 = NULL;
pFnReleaseThunkLock = NULL;
pFnRestoreThunkLock = NULL;
/* FIXME: add equivalent for MMDRV_Init16() */
......
......@@ -153,7 +153,7 @@ typedef struct tagWINE_MCIDRIVER {
#define WINE_TIMER_IS32 0x80
enum mmioProcType {MMIO_PROC_16,MMIO_PROC_32A,MMIO_PROC_32W};
enum mmioProcType {MMIO_PROC_32A,MMIO_PROC_32W};
struct IOProcList
{
......@@ -170,7 +170,6 @@ typedef struct tagWINE_MMIO {
struct IOProcList* ioProc;
unsigned bTmpIOProc : 1,
bBufferLoaded : 1;
DWORD segBuffer16;
DWORD dwFileSize;
} WINE_MMIO, *LPWINE_MMIO;
......@@ -225,14 +224,6 @@ UINT WAVE_Open(HANDLE* lphndl, UINT uDeviceID, UINT uType,
LPCWAVEFORMATEX lpFormat, DWORD_PTR dwCallback,
DWORD_PTR dwInstance, DWORD dwFlags, BOOL bFrom32);
HMMIO MMIO_Open(LPSTR szFileName, MMIOINFO* refmminfo,
DWORD dwOpenFlags, enum mmioProcType type);
LPMMIOPROC MMIO_InstallIOProc(FOURCC fccIOProc, LPMMIOPROC pIOProc,
DWORD dwFlags, enum mmioProcType type);
LRESULT MMIO_SendMessage(HMMIO hmmio, UINT uMessage, LPARAM lParam1,
LPARAM lParam2, enum mmioProcType type);
LPWINE_MMIO MMIO_Get(HMMIO h);
WORD TIME_SetEventInternal(UINT wDelay, UINT wResol, LPTIMECALLBACK lpFunc,
DWORD_PTR dwUser, UINT wFlags);
void TIME_MMTimeStop(void);
......@@ -256,7 +247,6 @@ extern WINMM_MapType (*pFnMciMapMsg32WTo16)(WORD,WORD,DWORD,DWORD_PTR*);
extern WINMM_MapType (*pFnMciUnMapMsg32WTo16)(WORD,WORD,DWORD,DWORD_PTR);
extern LRESULT (*pFnCallMMDrvFunc16)(DWORD /* in fact FARPROC16 */,WORD,WORD,LONG,LONG,LONG);
extern unsigned (*pFnLoadMMDrvFunc16)(LPCSTR,LPWINE_DRIVER, LPWINE_MM_DRIVER);
extern LRESULT (*pFnMmioCallback16)(DWORD,LPMMIOINFO,UINT,LPARAM,LPARAM);
extern void (WINAPI *pFnReleaseThunkLock)(DWORD*);
extern void (WINAPI *pFnRestoreThunkLock)(DWORD);
......
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