winmm 16/32 split (#13)
Eric Pouech
eric.pouech at wanadoo.fr
Tue Oct 29 09:29:30 CST 2002
ChangeLog:
- let all time related functions make use of low level drivers 16 bit
functions
- some renaming (prefixing internal time functions with TIME)
Note:
- the time interface should in fact be handled by the lolvldrv part, but
this is not implemented yet
- we could in fact provide our own timer provider
A+
-------------- next part --------------
--- winmm_12/mmsystem.c Tue Oct 29 14:20:31 2002
+++ winmm_13/mmsystem.c Tue Oct 29 14:20:42 2002
@@ -2461,8 +2461,8 @@
if (wFlags & WINE_TIMER_IS32)
WARN("Unknown windows flag... wine internally used.. ooch\n");
- return timeSetEventInternal(wDelay, wResol, (FARPROC16)lpFunc,
- dwUser, wFlags & ~WINE_TIMER_IS32);
+ return TIME_SetEventInternal(wDelay, wResol, (FARPROC16)lpFunc,
+ dwUser, wFlags & ~WINE_TIMER_IS32);
}
/**************************************************************************
--- winmm_12/time.c Sat Oct 26 15:06:40 2002
+++ winmm_13/time.c Tue Oct 29 14:11:58 2002
@@ -52,10 +52,6 @@
#define MMSYSTIME_STDINTERVAL (10) /* reasonable value? */
-/* ### start build ### */
-extern WORD CALLBACK TIME_CallTo16_word_wwlll(FARPROC16,WORD,WORD,LONG,LONG,LONG);
-/* ### stop build ### */
-
static void TIME_TriggerCallBack(LPWINE_TIMERENTRY lpTimer)
{
TRACE("before CallBack => lpFunc=%p wTimerID=%04X dwUser=%08lX !\n",
@@ -70,9 +66,9 @@
case TIME_CALLBACK_FUNCTION:
if (lpTimer->wFlags & WINE_TIMER_IS32)
((LPTIMECALLBACK)lpTimer->lpFunc)(lpTimer->wTimerID, 0, lpTimer->dwUser, 0, 0);
- else
- TIME_CallTo16_word_wwlll(lpTimer->lpFunc, lpTimer->wTimerID, 0,
- lpTimer->dwUser, 0, 0);
+ else if (pFnCallMMDrvFunc16)
+ pFnCallMMDrvFunc16(lpTimer->lpFunc, lpTimer->wTimerID, 0,
+ lpTimer->dwUser, 0, 0);
break;
case TIME_CALLBACK_EVENT_SET:
SetEvent((HANDLE)lpTimer->lpFunc);
@@ -178,10 +174,6 @@
*/
void TIME_MMTimeStart(void)
{
- if (IsBadWritePtr(WINMM_IData, sizeof(WINE_MM_IDATA))) {
- ERR("iData is not correctly set, please report. Expect failure.\n");
- return;
- }
/* one could think it's possible to stop the service thread activity when no more
* mm timers are active, but this would require to keep mmSysTimeMS up-to-date
* without being incremented within the service thread callback.
@@ -191,7 +183,6 @@
WINMM_IData->lpTimerList = NULL;
WINMM_IData->hMMTimer = CreateThread(NULL, 0, TIME_MMSysTimeThread, WINMM_IData, 0, NULL);
}
-
}
/**************************************************************************
@@ -199,10 +190,6 @@
*/
void TIME_MMTimeStop(void)
{
- if (IsBadWritePtr(WINMM_IData, sizeof(WINE_MM_IDATA))) {
- ERR("WINMM_IData is not correctly set, please report. Expect failure.\n");
- return;
- }
if (WINMM_IData->hMMTimer) {
HANDLE hMMTimer = WINMM_IData->hMMTimer;
WINMM_IData->hMMTimer = 0;
@@ -230,10 +217,10 @@
}
/**************************************************************************
- * timeSetEventInternal [internal]
+ * TIME_SetEventInternal [internal]
*/
-WORD timeSetEventInternal(UINT wDelay, UINT wResol,
- FARPROC16 lpFunc, DWORD dwUser, UINT wFlags)
+WORD TIME_SetEventInternal(UINT wDelay, UINT wResol,
+ FARPROC16 lpFunc, DWORD dwUser, UINT wFlags)
{
WORD wNewID = 0;
LPWINE_TIMERENTRY lpNewTimer;
@@ -283,8 +270,8 @@
if (wFlags & WINE_TIMER_IS32)
WARN("Unknown windows flag... wine internally used.. ooch\n");
- return timeSetEventInternal(wDelay, wResol, (FARPROC16)lpFunc,
- dwUser, wFlags|WINE_TIMER_IS32);
+ return TIME_SetEventInternal(wDelay, wResol, (FARPROC16)lpFunc,
+ dwUser, wFlags|WINE_TIMER_IS32);
}
/**************************************************************************
--- winmm_12/winemm.h Tue Oct 29 16:09:41 2002
+++ winmm_13/winemm.h Tue Oct 29 16:09:45 2002
@@ -275,9 +275,6 @@
const LPWAVEFORMATEX lpFormat, DWORD dwCallback,
DWORD dwInstance, DWORD dwFlags, BOOL bFrom32);
-WORD timeSetEventInternal(UINT wDelay, UINT wResol,
- FARPROC16 lpFunc, DWORD dwUser, UINT wFlags);
-
HMMIO MMIO_Open(LPSTR szFileName, MMIOINFO* refmminfo,
DWORD dwOpenFlags, enum mmioProcType type);
LPMMIOPROC MMIO_InstallIOProc(FOURCC fccIOProc, LPMMIOPROC pIOProc,
@@ -288,6 +285,8 @@
BOOL MULTIMEDIA_PlaySound(const void* pszSound, HMODULE hmod, DWORD fdwSound, BOOL bUnicode);
+WORD TIME_SetEventInternal(UINT wDelay, UINT wResol,
+ FARPROC16 lpFunc, DWORD dwUser, UINT wFlags);
void TIME_MMTimeStart(void);
void TIME_MMTimeStop(void);
More information about the wine-patches
mailing list