Changeset 483 for OCO/trunk/drv16/ioctl.cpp
- Timestamp:
- May 6, 2010, 3:08:34 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
OCO/trunk/drv16/ioctl.cpp
r478 r483 72 72 // stream idle bit in the stream state then write the sysfilenum 73 73 // into the request packet, set rc = 0 and return 74 if (p->sMode == IDLE) 74 if (p->sMode == IDLE) 75 75 { 76 76 pstream = FindStream_fromFile((ULONG) prp->s.ioctl.usSysFileNum); … … 117 117 //HACK BEGIN 118 118 //SvL: Save stream handle & SHD entrypoint in case MMPM2 reinitializes 119 // a stream that was already registered 119 // a stream that was already registered 120 120 //HACK END 121 121 if(pstream->pfnSHD) { … … 145 145 146 146 p->ulFlags = 0; /* Zero the Flags */ 147 switch (HardwareType) 147 switch (HardwareType) 148 148 { 149 149 case AUDIOHW_WAVE_PLAY: … … 210 210 211 211 #ifdef DEBUG 212 dprintf(("IACapability: dev type: %ld, ldev %d",ulDevicetype, LDev));212 // dprintf(("IACapability: dev type: %ld, ldev %d",ulDevicetype, LDev)); 213 213 #endif 214 214 … … 220 220 // bailout if no hardware object is returned.. 221 221 pHWobj = GetHardwareDevice(ulDevicetype); 222 if (pHWobj) 222 if (pHWobj) 223 223 { 224 224 pHWobj->DevCaps(p); 225 if (p->ulSupport != SUPPORT_SUCCESS) 225 if (p->ulSupport != SUPPORT_SUCCESS) 226 226 { 227 227 //PS+++ filling to our parameters as say mmpm2.inf for returning error in this call … … 237 237 else { 238 238 #ifdef DEBUG 239 dprintf(("IACapability: Error get HW obj"));239 // dprintf(("IACapability: Error get HW obj")); 240 240 #endif 241 241 //PS+++ filling to our parameters as say mmpm2.inf for returning error in this call … … 268 268 ULONG addr; 269 269 270 if (p->usIOCtlRequest != AUDIO_CHANGE) 270 if (p->usIOCtlRequest != AUDIO_CHANGE) 271 271 { 272 272 dprintf(("IAudioControl: Error support req:%x",p->usIOCtlRequest)); … … 282 282 addr = OFFSETOF(pAudChange); 283 283 addr += sizeof(MCI_AUDIO_CHANGE); 284 if(addr >= 0x10000UL) 284 if(addr >= 0x10000UL) 285 285 { 286 286 dprintf(("Invalid MCI_AUDIO_CHANGE pnt %lx!!", (ULONG)pAudChange)); … … 294 294 addr = OFFSETOF(pMasterVol); 295 295 addr += sizeof(MCI_TRACK_INFO); 296 if(addr >= 0x10000UL) 296 if(addr >= 0x10000UL) 297 297 { 298 298 dprintf(("Invalid MCI_TRACK_INFO pnt %lx!!", (ULONG)pMasterVol)); … … 311 311 pStream->SetProperty(PROPERTY_BALANCE, pAudChange->lBalance); 312 312 313 if (pAudChange->lVolume != AUDIO_IGNORE) 313 if (pAudChange->lVolume != AUDIO_IGNORE) 314 314 { 315 315 // stream volume ranges from 0 to 0x7FFFFFFF (linear) … … 320 320 } 321 321 322 if (pMasterVol && pMasterVol->usMasterVolume != AUDIO_IGNORE) 322 if (pMasterVol && pMasterVol->usMasterVolume != AUDIO_IGNORE) 323 323 { 324 324 // master volume ranges from 0 to 0x7FFF (linear) 325 325 volume = pMasterVol->usMasterVolume; 326 326 volume = (volume*OSS32_MAX_VOLUME)/0x7FFFUL; 327 if (volume > OSS32_MAX_VOLUME) 327 if (volume > OSS32_MAX_VOLUME) 328 328 { 329 329 volume = OSS32_MAX_VOLUME; … … 331 331 // dprintf(("IlAudioControl:Set MV to %d", volume)); 332 332 MixerSetVolume(MixerStreamId, OSS32_MIX_VOLUME_MASTER_FRONT, MAKE_VOLUME_LR(volume, volume)); 333 if(mixcaps.fuCtrlCaps & OSS32_MIX_FLAG(OSS32_MIX_VOLUME_MASTER_REAR)) 333 if(mixcaps.fuCtrlCaps & OSS32_MIX_FLAG(OSS32_MIX_VOLUME_MASTER_REAR)) 334 334 { 335 335 MixerSetVolume(MixerStreamId, OSS32_MIX_VOLUME_MASTER_REAR, MAKE_VOLUME_LR(volume, volume)); … … 409 409 { 410 410 pHWobj->DevCaps(&audioCaps); 411 if (audioCaps.ulSupport != SUPPORT_SUCCESS) 411 if (audioCaps.ulSupport != SUPPORT_SUCCESS) 412 412 { 413 413 dprintf(("IDirectAudio: DevCaps failed")); … … 417 417 } 418 418 } 419 else 419 else 420 420 { 421 421 dprintf(("IDirectAudio: HW DevCaps failed")); … … 427 427 pStream = new DWAVESTREAM(AUDIOHW_WAVE_PLAY, pInit, prp->s.ioctl.usSysFileNum, MixerStreamId); 428 428 if(pStream == NULL) { 429 dprintf(("IDirectAudio: pStream"));429 // dprintf(("IDirectAudio: pStream")); 430 430 DebugInt3(); 431 431 pInit->sReturnCode = INVALID_REQUEST; … … 434 434 } 435 435 436 if(!pStream->IsEverythingOk()) 436 if(!pStream->IsEverythingOk()) 437 437 { 438 438 delete pStream; 439 dprintf(("IlDirectAudio: IsEverythingOk"));439 // dprintf(("IlDirectAudio: IsEverythingOk")); 440 440 DebugInt3(); 441 441 pInit->sReturnCode = INVALID_REQUEST; … … 482 482 { 483 483 pHWobj->DevCaps(&audioCaps); 484 if (audioCaps.ulSupport != SUPPORT_SUCCESS) 484 if (audioCaps.ulSupport != SUPPORT_SUCCESS) 485 485 { 486 486 dprintf(("IlDirectAudio: DevCaps failed")); … … 489 489 return; 490 490 } 491 dprintf(("IoctlDirectAudio ret0"));491 // dprintf(("IoctlDirectAudio ret0")); 492 492 pInit->sReturnCode = 0; 493 493 return; … … 500 500 } 501 501 } 502 else 503 if(prp->s.ioctl.bCode == DAUDIO_QUERYCAPS) 502 else 503 if(prp->s.ioctl.bCode == DAUDIO_QUERYCAPS) 504 504 { 505 505 LPOSS32_DEVCAPS lpCaps = (LPOSS32_DEVCAPS) prp->s.ioctl.pvData; … … 519 519 { 520 520 pHWobj->DevCaps(lpCaps); 521 dprintf(("IoctlDirectAudio ret1"));522 return; 523 } 524 else 521 // dprintf(("IoctlDirectAudio ret1")); 522 return; 523 } 524 else 525 525 { 526 526 prp->usStatus |= RPERR; 527 dprintf(("IoctlDirectAudio ret err1"));527 // dprintf(("IoctlDirectAudio ret err1")); 528 528 return; 529 529 } … … 532 532 533 533 pStream = FindStream_fromFile((ULONG) prp->s.ioctl.usSysFileNum); 534 if(pStream == NULL) 534 if(pStream == NULL) 535 535 { 536 536 dprintf(("IDirectAudio stream %lx not found!", (ULONG) prp->s.ioctl.usSysFileNum)); … … 553 553 { 554 554 case DAUDIO_CLOSE: 555 dprintf(("ID close"));555 // dprintf(("ID close")); 556 556 delete pStream; 557 557 break; … … 559 559 case DAUDIO_SETVOLUME: 560 560 { 561 dprintf(("ID SetVolume"));561 // dprintf(("ID SetVolume")); 562 562 pStream->SetProperty(PROPERTY_VOLUME, MAKE_VOLUME_LR(pDAudioCmd->Vol.VolumeL, pDAudioCmd->Vol.VolumeR)); 563 563 break; … … 566 566 case DAUDIO_GETVOLUME: 567 567 { 568 dprintf(("ID GetVolume"));568 // dprintf(("ID GetVolume")); 569 569 pDAudioCmd->Vol.VolumeL = GET_VOLUME_L(pStream->GetProperty(PROPERTY_VOLUME)); 570 570 pDAudioCmd->Vol.VolumeR = GET_VOLUME_R(pStream->GetProperty(PROPERTY_VOLUME)); … … 575 575 { 576 576 dprintf(("ID Start NF:%d",(USHORT)numFreeStreams)); 577 if(numFreeStreams > 0) 577 if(numFreeStreams > 0) 578 578 { 579 579 rc = pStream->StartStream(); … … 631 631 case DAUDIO_SETPROPERTY: 632 632 { 633 dprintf(("ID SetProp"));633 // dprintf(("ID SetProp")); 634 634 rc = pStream->SetProperty((USHORT)pDAudioCmd->SetProperty.type, pDAudioCmd->SetProperty.value); 635 635 break; … … 640 640 DDCMDREGISTER reg; 641 641 642 dprintf(("ID Reg"));642 // dprintf(("ID Reg")); 643 643 reg.ulFunction = DDCMD_REG_STREAM; 644 644 reg.hStream = pDAudioCmd->Thread.hSemaphore; … … 651 651 case DAUDIO_DEREGISTER_THREAD: 652 652 { 653 dprintf(("ID DeReg"));653 // dprintf(("ID DeReg")); 654 654 pStream->DeRegister(); 655 655 break; … … 657 657 658 658 case DAUDIO_QUERYVERSION: 659 dprintf(("ID qVer"));659 // dprintf(("ID qVer")); 660 660 pDAudioCmd->Version.ulVersion = DAUDIO_VERSION; 661 661 break; 662 662 } 663 663 664 if(rc) 665 { 666 dprintf(("IoctlDirectAudio ret err rc=%ld",rc));664 if(rc) 665 { 666 // dprintf(("IoctlDirectAudio ret err rc=%ld",rc)); 667 667 prp->usStatus |= RPERR | RPBADCMD; 668 668 return; … … 687 687 extern "C" void StrategyIoctl(PREQPACKET prp, USHORT LDev) 688 688 { 689 if (prp->s.ioctl.bCategory == DAUDIO_IOCTL_CAT) 689 if (prp->s.ioctl.bCategory == DAUDIO_IOCTL_CAT) 690 690 { 691 691 IoctlDirectAudio(prp); … … 696 696 dprintf(("StrategyIoctl:cat:0x%x, code:0x%x cd %d gd %d", prp->s.ioctl.bCategory, prp->s.ioctl.bCode, current_device, LDev)); 697 697 #endif 698 if (prp->s.ioctl.bCategory == 0x90) 698 if (prp->s.ioctl.bCategory == 0x90) 699 699 { 700 700 IoctlMixer(prp, LDev); 701 701 return; 702 702 } 703 if (prp->s.ioctl.bCategory != AUDIO_IOCTL_CAT) 703 if (prp->s.ioctl.bCategory != AUDIO_IOCTL_CAT) 704 704 { 705 705 prp->usStatus |= RPERR | RPBADCMD; … … 724 724 725 725 #ifdef DEBUG 726 dprintf(("StrategyIoctl:ret:0x%x", (USHORT)prp->usStatus));726 // dprintf(("StrategyIoctl:ret:0x%x", (USHORT)prp->usStatus)); 727 727 #endif 728 728 return;
Note:
See TracChangeset
for help on using the changeset viewer.