Changeset 668
- Timestamp:
- Aug 24, 1999, 11:21:11 PM (26 years ago)
- Location:
- trunk/src/winmm
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/src/winmm/dwaveout.cpp ¶
r588 r668 1 /* $Id: dwaveout.cpp,v 1. 5 1999-08-19 18:46:04phaller Exp $ */1 /* $Id: dwaveout.cpp,v 1.6 1999-08-24 21:21:11 phaller Exp $ */ 2 2 3 3 /* … … 16 16 ****************************************************************************/ 17 17 18 19 18 20 #define INCL_BASE 19 21 #define INCL_OS2MM … … 22 24 #include <stdlib.h> 23 25 #include <string.h> 24 25 26 #define OS2_ONLY 26 27 #include "win32type.h" 28 #include <wprocess.h> 27 29 28 30 #include "misc.h" … … 48 50 Init(pwfx); 49 51 50 callback = (LPDRVCALLBACK)nCallback;52 mthdCallback = (LPDRVCALLBACK)nCallback; 51 53 this->dwInstance = dwInstance; 52 54 … … 62 64 63 65 WinPostMsg(hwndCallback, WOM_OPEN, 0, 0); 66 } 67 /******************************************************************************/ 68 /******************************************************************************/ 69 void DartWaveOut::callback(HDRVR h, UINT uMessage, DWORD dwUser, DWORD dw1, DWORD dw2) 70 { 71 USHORT selTIB = SetWin32TIB(); 72 mthdCallback(h,uMessage,dwUser,dw1,dw2); 73 SetFS(selTIB); 64 74 } 65 75 /******************************************************************************/ … … 77 87 wavehdr = NULL; 78 88 curhdr = NULL; 79 callback= NULL;89 mthdCallback = NULL; 80 90 hwndCallback = 0; 81 91 dwInstance = 0; -
TabularUnified trunk/src/winmm/dwaveout.h ¶
r95 r668 1 /* $Id: dwaveout.h,v 1. 3 1999-06-10 16:24:33phaller Exp $ */1 /* $Id: dwaveout.h,v 1.4 1999-08-24 21:21:11 phaller Exp $ */ 2 2 3 3 /* … … 71 71 int curFillPos, curPlayPos; //fillpos == pos in os2 mix buffer, bufpos == pos in win buffer 72 72 73 LPDRVCALLBACK callback; 73 // callback interface 74 LPDRVCALLBACK mthdCallback; 75 void callback(HDRVR h, UINT uMessage, DWORD dwUser, DWORD dw1, DWORD dw2); 76 74 77 HWND hwndCallback; 75 78 DWORD dwInstance; -
TabularUnified trunk/src/winmm/midi.cpp ¶
r588 r668 1 /* $Id: midi.cpp,v 1. 4 1999-08-19 18:46:04phaller Exp $ */1 /* $Id: midi.cpp,v 1.5 1999-08-24 21:21:11 phaller Exp $ */ 2 2 3 3 /* … … 26 26 #include "midi.hpp" 27 27 #include <winos2def.h> 28 28 #include <wprocess.h> 29 29 30 30 ODINDEBUGCHANNEL(WINMM-MIDI) … … 884 884 void Midi::callback( UINT msg, DWORD p1, DWORD p2) 885 885 { 886 USHORT selTIB; 887 888 dprintf(("WINMM: callback %x %lx %lx\n", msg, p1, p2 )); 889 886 890 if ( iCallbackFunction ) 887 891 { 888 dprintf(("WINMM: callback %x %lx %lx\n", msg, p1, p2 )); 889 iCallbackFunction( (ULONG)this, msg, iCallbackInstance, p1, p2 ); 892 selTIB = SetWin32TIB(); 893 iCallbackFunction( (ULONG)this, msg, iCallbackInstance, p1, p2 ); 894 SetFS(selTIB); 890 895 } 891 896 else … … 969 974 // Disable the link 970 975 iHwdInstance->removeLink( iAppInstance ); 971 972 976 callback( MIM_CLOSE, 0, 0 ); 973 977 return MMSYSERR_NOERROR; -
TabularUnified trunk/src/winmm/os2timer.cpp ¶
r663 r668 1 /* $Id: os2timer.cpp,v 1. 6 1999-08-24 16:12:04phaller Exp $ */1 /* $Id: os2timer.cpp,v 1.7 1999-08-24 21:21:11 phaller Exp $ */ 2 2 3 3 /* … … 22 22 #include "win32type.h" 23 23 #include "wintimer.h" 24 #include <wprocess.h> 24 25 #include "os2timer.h" 25 26 #include "misc.h" … … 163 164 void OS2Timer::TimerHandler() 164 165 { 165 ULONG Count = 0; 166 APIRET rc = 0; /* Return code */ 167 168 #ifdef DEBUG 169 WriteLog("TimerHandler thread created\n"); 170 #endif 171 rc = DosSetPriority (PRTYS_THREAD, /* Change a single thread */ 172 PRTYC_TIMECRITICAL, /* Time critical class */ 173 0L, /* Increase by 15 */ 174 0L); /* Assume current thread */ 175 176 rc = DosCreateEventSem(NULL, &TimerSem, DC_SEM_SHARED, 0); 177 178 if(rc != 0) 179 _endthread(); 180 181 #ifdef DEBUG 182 WriteLog("Semaphore created\n"); 183 #endif 184 TimerStatus = Stopped; 185 186 while(!fFatal) { 187 DosWaitEventSem(TimerSem, SEM_INDEFINITE_WAIT); 188 DosResetEventSem(TimerSem, &Count); 189 if(!fFatal) { 190 #ifdef DEBUG 191 //// WriteLog("T"); 192 #endif 166 ULONG Count = 0; 167 APIRET rc = 0; /* Return code */ 168 USHORT selTIB; 169 170 dprintf(("WINMM: TimerHandler thread created\n")); 171 172 rc = DosSetPriority (PRTYS_THREAD, /* Change a single thread */ 173 PRTYC_TIMECRITICAL, /* Time critical class */ 174 0L, /* Increase by 15 */ 175 0L); /* Assume current thread */ 176 177 rc = DosCreateEventSem(NULL, &TimerSem, DC_SEM_SHARED, 0); 178 179 if(rc != 0) 180 _endthread(); 181 182 dprintf(("WINMM: OS2Timer:Semaphore created\n")); 183 184 TimerStatus = Stopped; 185 186 while(!fFatal) 187 { 188 DosWaitEventSem(TimerSem, SEM_INDEFINITE_WAIT); 189 DosResetEventSem(TimerSem, &Count); 190 if(!fFatal) 191 { 193 192 // @@@PH: we're calling the client with PRTYC_TIMECRITICAL !!! 194 193 // It'd be much nicer to call with original priority! … … 196 195 // time event is scheduled (DosSuspendThread()) ? It's 197 196 // much like raising a signal (SIGALARM) 197 198 selTIB = SetWin32TIB(); 198 199 clientCallback((UINT)this, 0, userData, 0, 0); 199 } 200 } 201 DosCloseEventSem(TimerSem); 200 SetFS(selTIB); 201 } 202 } 203 DosCloseEventSem(TimerSem); 202 204 } 203 205 //******************************************************************************
Note:
See TracChangeset
for help on using the changeset viewer.