- Timestamp:
- Apr 7, 2002, 4:38:08 PM (24 years ago)
- Location:
- trunk/src
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gdi32/objhandle.cpp
r7635 r8202 1 /* $Id: objhandle.cpp,v 1.2 0 2001-12-15 18:50:27sandervl Exp $ */1 /* $Id: objhandle.cpp,v 1.21 2002-04-07 14:38:08 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Handle Management Code for OS/2 … … 45 45 static VMutex objTableMutex; 46 46 47 #ifdef DEBUG 48 static DWORD GetObjectTypeNoDbg( HGDIOBJ hObj); 49 #else 50 #define GetObjectTypeNoDbg GetObjectType 51 #endif 52 47 53 //****************************************************************************** 48 54 //****************************************************************************** 49 55 BOOL WIN32API ObjAllocateHandle(HANDLE *hObject, DWORD dwUserData, ObjectType type) 50 56 { 51 objTableMutex.enter( VMUTEX_WAIT_FOREVER);57 objTableMutex.enter(); 52 58 if(lowestFreeIndex == -1) { 53 59 //oops, out of handles … … 85 91 hObject &= OBJHANDLE_MAGIC_MASK; 86 92 if(hObject < MAX_OBJECT_HANDLES) { 87 objTableMutex.enter( VMUTEX_WAIT_FOREVER);93 objTableMutex.enter(); 88 94 objHandleTable[hObject].dwUserData = 0; 89 95 objHandleTable[hObject].type = GDIOBJ_NONE; … … 158 164 if(lpBuffer == NULL) 159 165 { //return required size if buffer pointer == NULL 160 int objtype = GetObjectType (hObject);166 int objtype = GetObjectTypeNoDbg(hObject); 161 167 switch(objtype) 162 168 { … … 219 225 hObject |= GDIOBJ_PREFIX; 220 226 } 221 objtype = GetObjectType (hObject);227 objtype = GetObjectTypeNoDbg(hObject); 222 228 223 229 switch(objtype) … … 253 259 //****************************************************************************** 254 260 //****************************************************************************** 261 #ifdef DEBUG 262 static char *gditypenames[] = { 263 "NULL", 264 "OBJ_PEN", 265 "OBJ_BRUSH", 266 "OBJ_DC", 267 "OBJ_METADC", 268 "OBJ_PAL", 269 "OBJ_FONT", 270 "OBJ_BITMAP", 271 "OBJ_REGION", 272 "OBJ_METAFILE", 273 "OBJ_MEMDC", 274 "OBJ_EXTPEN", 275 "OBJ_ENHMETADC", 276 "OBJ_ENHMETAFILE" 277 }; 278 279 char *DbgGetGDITypeName(DWORD handleType) 280 { 281 if(handleType <= OBJ_ENHMETAFILE) { 282 return gditypenames[handleType]; 283 } 284 return "UNKNOWN TYPE"; 285 } 286 #endif 287 //****************************************************************************** 288 //****************************************************************************** 255 289 HGDIOBJ WIN32API SelectObject(HDC hdc, HGDIOBJ hObj) 256 290 { … … 263 297 } 264 298 265 handleType = GetObjectType (hObj);266 dprintf2(("GDI32: SelectObject %x %x type % x", hdc, hObj, handleType));299 handleType = GetObjectTypeNoDbg(hObj); 300 dprintf2(("GDI32: SelectObject %x %x type %s", hdc, hObj, DbgGetGDITypeName(handleType))); 267 301 if(handleType == GDIOBJ_REGION) { 268 302 //Return complexity here; not previously selected clip region … … 287 321 } 288 322 rc = O32_SelectObject(hdc, hObj); 289 if(rc != 0 && GetObjectType (rc) == OBJ_BITMAP && DIBSection::getSection != NULL)323 if(rc != 0 && GetObjectTypeNoDbg(rc) == OBJ_BITMAP && DIBSection::getSection != NULL) 290 324 { 291 325 DIBSection *dsect = DIBSection::findObj(rc); … … 327 361 //****************************************************************************** 328 362 //****************************************************************************** 329 DWORD WIN32API GetObjectType( HGDIOBJ hObj) 363 #ifdef DEBUG 364 static DWORD GetObjectTypeNoDbg( HGDIOBJ hObj) 330 365 { 331 366 DWORD objtype; … … 340 375 return OBJ_REGION; 341 376 } 377 return O32_GetObjectType(hObj); 378 } 379 #endif 380 //****************************************************************************** 381 //****************************************************************************** 382 DWORD WIN32API GetObjectType( HGDIOBJ hObj) 383 { 384 DWORD objtype; 385 386 //TODO: must use 16 bits gdi object handles 387 if(HIWORD(hObj) == 0) { 388 hObj |= GDIOBJ_PREFIX; 389 } 390 if(ObjGetHandleType(hObj) == GDIOBJ_REGION) { 391 dprintf2(("GDI32: GetObjectType %x REGION", hObj)); 392 SetLastError(ERROR_SUCCESS); 393 return OBJ_REGION; 394 } 342 395 objtype = O32_GetObjectType(hObj); 343 396 dprintf2(("GDI32: GetObjectType %x objtype %d", hObj, objtype)); … … 360 413 361 414 //System objects can't be deleted (TODO: any others?? (fonts?))!!!!) 362 objtype = GetObjectType (hObj);415 objtype = GetObjectTypeNoDbg(hObj); 363 416 switch (objtype) 364 417 { -
trunk/src/user32/HOOK.CPP
r8132 r8202 1 /* $Id: HOOK.CPP,v 1.3 6 2002-03-28 16:20:06sandervl Exp $ */1 /* $Id: HOOK.CPP,v 1.37 2002-04-07 14:36:59 sandervl Exp $ */ 2 2 3 3 /* … … 80 80 81 81 #define CHECK_MAGIC(a) ((a != 0) && (((HOOKDATA *)a)->magic == HOOK_MAGIC)) 82 83 //NOTE: This must be in the local data segment -> if a shared semaphore was84 // created by a different process, the handle returned by DosOpenMutexSem85 // will be returned in hGlobalHookMutex86 static HMTX hGlobalHookMutex = 0;87 82 88 83 //Global DLL Data -
trunk/src/user32/inituser32.cpp
r7640 r8202 1 /* $Id: inituser32.cpp,v 1.1 0 2001-12-16 15:30:14sandervl Exp $ */1 /* $Id: inituser32.cpp,v 1.11 2002-04-07 14:36:59 sandervl Exp $ */ 2 2 /* 3 3 * USER32 DLL entry point … … 43 43 #include "pmwindow.h" 44 44 #include "win32wdesktop.h" 45 #include "win32wndhandle.h" 45 46 #include "syscolor.h" 46 47 #include "initterm.h" … … 218 219 pmkbdhk_initialize(hab); 219 220 221 InitializeWindowHandles(); 222 220 223 //SvL: 18-7-'98, Register system window classes (button, listbox etc etc) 221 224 //CB: register internal classes … … 225 228 MONITOR_Initialize(&MONITOR_PrimaryMonitor); 226 229 227 break;230 break; 228 231 229 232 -
trunk/src/user32/win32wndhandle.cpp
r7097 r8202 1 /* $Id: win32wndhandle.cpp,v 1.1 0 2001-10-17 15:16:58 phallerExp $ */1 /* $Id: win32wndhandle.cpp,v 1.11 2002-04-07 14:37:00 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Handle Management Code for OS/2 … … 25 25 //****************************************************************************** 26 26 27 //NOTE: This must be in the local data segment -> if a shared semaphore was28 // created by a different process, the handle returned by DosOpenMutexSem29 // will be returned in hGlobalTableMutex30 HMTX hGlobalTableMutex = 0;31 32 27 //Global DLL Data 33 28 #pragma data_seg(_GLOBALDATA) 34 ULONG WindowHandleTable[MAX_WINDOW_HANDLES] = {0};35 VMutex tableMutex(VMUTEX_SHARED, &hGlobalTableMutex);29 ULONG WindowHandleTable[MAX_WINDOW_HANDLES] = {0}; 30 CRITICAL_SECTION_OS2 globalwhandlecritsect = {0}; 36 31 ULONG lastIndex = 0; 37 32 #pragma data_seg() … … 39 34 //****************************************************************************** 40 35 //****************************************************************************** 36 void InitializeWindowHandles() 37 { 38 if(globalwhandlecritsect.hmtxLock == 0) { 39 DosInitializeCriticalSection(&globalwhandlecritsect, WINHANDLE_CRITSECTION_NAME); 40 } 41 else { 42 dprintf(("InitializeWindowHandles -> access shared critical section")); 43 DosAccessCriticalSection(&globalwhandlecritsect, WINHANDLE_CRITSECTION_NAME); 44 } 45 } 46 //****************************************************************************** 47 //****************************************************************************** 41 48 BOOL HwAllocateWindowHandle(HWND *hwnd, DWORD dwUserData) 42 49 { 43 tableMutex.enter(VMUTEX_WAIT_FOREVER, &hGlobalTableMutex);50 DosEnterCriticalSection(&globalwhandlecritsect); 44 51 45 52 //find next free handle … … 55 62 if(i == MAX_WINDOW_HANDLES) { 56 63 //oops, out of handles 57 tableMutex.leave(&hGlobalTableMutex);64 DosLeaveCriticalSection(&globalwhandlecritsect); 58 65 dprintf(("ERROR: USER32: HwAllocateWindowHandle OUT OF WINDOW HANDLES!!")); 59 66 DebugInt3(); … … 65 72 66 73 lastIndex++; 67 tableMutex.leave(&hGlobalTableMutex);74 DosLeaveCriticalSection(&globalwhandlecritsect); 68 75 return TRUE; 69 76 } … … 74 81 hwnd &= WNDHANDLE_MAGIC_MASK; 75 82 if(hwnd < MAX_WINDOW_HANDLES) { 76 tableMutex.enter(VMUTEX_WAIT_FOREVER, &hGlobalTableMutex);83 DosEnterCriticalSection(&globalwhandlecritsect); 77 84 WindowHandleTable[hwnd] = 0; 78 tableMutex.leave(&hGlobalTableMutex);85 DosLeaveCriticalSection(&globalwhandlecritsect); 79 86 } 80 87 } -
trunk/src/user32/win32wndhandle.h
r2469 r8202 1 /* $Id: win32wndhandle.h,v 1. 4 2000-01-18 20:08:18sandervl Exp $ */1 /* $Id: win32wndhandle.h,v 1.5 2002-04-07 14:37:00 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Handle Management Code for OS/2 … … 17 17 #define WNDHANDLE_MAGIC_MASK 0x0000FFFF 18 18 19 #define WINHANDLE_CRITSECTION_NAME "\\SEM32\\ODIN_WINHANDLE.SEM" 20 21 void InitializeWindowHandles(); 19 22 BOOL HwAllocateWindowHandle(HWND *hwnd, DWORD dwUserData); 20 23 void HwFreeWindowHandle(HWND hwnd); -
trunk/src/winmm/waveindart.cpp
r7196 r8202 1 /* $Id: waveindart.cpp,v 1. 2 2001-10-24 22:47:42sandervl Exp $ */1 /* $Id: waveindart.cpp,v 1.3 2002-04-07 14:36:31 sandervl Exp $ */ 2 2 3 3 /* … … 262 262 0 ); 263 263 264 wmutex.enter( VMUTEX_WAIT_FOREVER);264 wmutex.enter(); 265 265 fMixerSetup = TRUE; 266 266 } … … 293 293 MCI_GENERIC_PARMS Params; 294 294 295 wmutex.enter( VMUTEX_WAIT_FOREVER);295 wmutex.enter(); 296 296 if(State != STATE_RECORDING) { 297 297 State = STATE_STOPPED; … … 326 326 mymciSendCommand(DeviceId, MCI_STOP, MCI_WAIT, (PVOID)&Params, 0); 327 327 328 dprintf(("Nr of threads blocked on mutex = %d\n", wmutex.getNrBlocked())); 329 330 wmutex.enter(VMUTEX_WAIT_FOREVER); 328 wmutex.enter(); 331 329 while(wavehdr) 332 330 { … … 341 339 callback(WIM_DATA, (ULONG)tmpwavehdr, 0); 342 340 343 wmutex.enter( VMUTEX_WAIT_FOREVER);341 wmutex.enter(); 344 342 } 345 343 wavehdr = NULL; … … 356 354 int i; 357 355 358 wmutex.enter( VMUTEX_WAIT_FOREVER);356 wmutex.enter(); 359 357 pwh->lpNext = NULL; 360 358 pwh->dwBytesRecorded = 0; … … 507 505 return; 508 506 } 509 wmutex.enter( VMUTEX_WAIT_FOREVER);507 wmutex.enter(); 510 508 511 509 whdr = wavehdr; … … 544 542 callback(WIM_DATA, (ULONG)whdr, whdr->dwBytesRecorded); 545 543 546 wmutex.enter( VMUTEX_WAIT_FOREVER);544 wmutex.enter(); 547 545 } 548 546 } -
trunk/src/winmm/waveinoutbase.cpp
r7792 r8202 1 /* $Id: waveinoutbase.cpp,v 1. 3 2002-01-29 20:13:52sandervl Exp $ */1 /* $Id: waveinoutbase.cpp,v 1.4 2002-04-07 14:36:31 sandervl Exp $ */ 2 2 3 3 /* … … 55 55 State = STATE_STOPPED; 56 56 57 wmutex.enter( VMUTEX_WAIT_FOREVER);57 wmutex.enter(); 58 58 59 59 if(wave == NULL) { … … 78 78 WaveInOut::~WaveInOut() 79 79 { 80 wmutex.enter( VMUTEX_WAIT_FOREVER);80 wmutex.enter(); 81 81 82 82 State = STATE_STOPPED; -
trunk/src/winmm/waveoutdart.cpp
r7196 r8202 1 /* $Id: waveoutdart.cpp,v 1. 6 2001-10-24 22:47:42sandervl Exp $ */1 /* $Id: waveoutdart.cpp,v 1.7 2002-04-07 14:36:31 sandervl Exp $ */ 2 2 3 3 /* … … 231 231 } 232 232 233 wmutex.enter( VMUTEX_WAIT_FOREVER);233 wmutex.enter(); 234 234 fMixerSetup = TRUE; 235 235 … … 274 274 pwh->lpNext = NULL; 275 275 pwh->reserved = 0; 276 wmutex.enter( VMUTEX_WAIT_FOREVER);276 wmutex.enter(); 277 277 if(wavehdr) { 278 278 WAVEHDR *chdr = wavehdr; … … 325 325 dprintf(("WINMM: DartWaveOut::pause")); 326 326 327 wmutex.enter( VMUTEX_WAIT_FOREVER);327 wmutex.enter(); 328 328 if(State != STATE_PLAYING) { 329 329 State = STATE_PAUSED; … … 381 381 mymciSendCommand(DeviceId, MCI_STOP, MCI_WAIT, (PVOID)&Params, 0); 382 382 383 dprintf(("Nr of threads blocked on mutex = %d\n", wmutex.getNrBlocked())); 384 385 wmutex.enter(VMUTEX_WAIT_FOREVER); 383 wmutex.enter(); 386 384 while(wavehdr) 387 385 { … … 395 393 396 394 callback(WOM_DONE, (ULONG)tmpwavehdr, 0); 397 wmutex.enter( VMUTEX_WAIT_FOREVER);395 wmutex.enter(); 398 396 } 399 397 wavehdr = NULL; … … 422 420 if(fMixerSetup == TRUE) 423 421 { 424 wmutex.enter( VMUTEX_WAIT_FOREVER);422 wmutex.enter(); 425 423 State = STATE_PLAYING; 426 424 fUnderrun = FALSE; … … 549 547 } 550 548 551 wmutex.enter( VMUTEX_WAIT_FOREVER);549 wmutex.enter(); 552 550 553 551 bytesPlayed += MixBuffer[curPlayBuf].ulBufferLength; … … 586 584 callback(WOM_DONE, (ULONG)whdr, 0); 587 585 588 wmutex.enter( VMUTEX_WAIT_FOREVER);586 wmutex.enter(); 589 587 } 590 588 else break; -
trunk/src/winmm/waveoutdaud.cpp
r6026 r8202 1 /* $Id: waveoutdaud.cpp,v 1. 6 2001-06-16 11:35:22 sandervl Exp $ */1 /* $Id: waveoutdaud.cpp,v 1.7 2002-04-07 14:36:32 sandervl Exp $ */ 2 2 3 3 /* … … 141 141 pwh->lpNext = NULL; 142 142 pwh->reserved = 0; 143 wmutex.enter( VMUTEX_WAIT_FOREVER);143 wmutex.enter(); 144 144 if(wavehdr) { 145 145 WAVEHDR *chdr = wavehdr; … … 185 185 sendIOCTL(DAUDIO_PAUSE, &cmd); 186 186 187 wmutex.enter( VMUTEX_WAIT_FOREVER);187 wmutex.enter(); 188 188 if(State != STATE_PLAYING) { 189 189 State = STATE_PAUSED; … … 240 240 sendIOCTL(DAUDIO_STOP, &cmd); 241 241 242 wmutex.enter( VMUTEX_WAIT_FOREVER);242 wmutex.enter(); 243 243 while(wavehdr) 244 244 { … … 252 252 253 253 callback(WOM_DONE, (ULONG)tmpwavehdr, 0); 254 wmutex.enter( VMUTEX_WAIT_FOREVER);254 wmutex.enter(); 255 255 } 256 256 wavehdr = NULL; … … 274 274 return(MMSYSERR_NOERROR); 275 275 276 wmutex.enter( VMUTEX_WAIT_FOREVER);276 wmutex.enter(); 277 277 State = STATE_PLAYING; 278 278 fUnderrun = FALSE;
Note:
See TracChangeset
for help on using the changeset viewer.