Ignore:
Timestamp:
May 6, 2010, 3:08:34 AM (15 years ago)
Author:
David Azarewicz
Message:

Rework buffer management

File:
1 edited

Legend:

Unmodified
Added
Removed
  • OCO/trunk/drv16/ioctl.cpp

    r478 r483  
    7272      // stream idle bit in the stream state then write the sysfilenum
    7373      // into the request packet, set rc = 0 and return
    74    if (p->sMode == IDLE) 
     74   if (p->sMode == IDLE)
    7575   {
    7676       pstream = FindStream_fromFile((ULONG) prp->s.ioctl.usSysFileNum);
     
    117117         //HACK BEGIN
    118118         //SvL: Save stream handle & SHD entrypoint in case MMPM2 reinitializes
    119          //     a stream that was already registered 
     119         //     a stream that was already registered
    120120         //HACK END
    121121         if(pstream->pfnSHD) {
     
    145145
    146146   p->ulFlags = 0;  /* Zero the Flags  */
    147    switch (HardwareType) 
     147   switch (HardwareType)
    148148   {
    149149      case AUDIOHW_WAVE_PLAY:
     
    210210
    211211#ifdef DEBUG
    212    dprintf(("IACapability: dev type: %ld, ldev %d",ulDevicetype, LDev));
     212//   dprintf(("IACapability: dev type: %ld, ldev %d",ulDevicetype, LDev));
    213213#endif
    214214
     
    220220   // bailout if no hardware object is returned..
    221221   pHWobj = GetHardwareDevice(ulDevicetype);
    222    if (pHWobj) 
     222   if (pHWobj)
    223223   {
    224224      pHWobj->DevCaps(p);
    225       if (p->ulSupport != SUPPORT_SUCCESS) 
     225      if (p->ulSupport != SUPPORT_SUCCESS)
    226226      {
    227227         //PS+++ filling to our parameters as say mmpm2.inf for returning error in this call
     
    237237   else {
    238238#ifdef DEBUG
    239        dprintf(("IACapability: Error get HW obj"));
     239//       dprintf(("IACapability: Error get HW obj"));
    240240#endif
    241241      //PS+++ filling to our parameters as say mmpm2.inf for returning error in this call
     
    268268   ULONG               addr;
    269269
    270    if (p->usIOCtlRequest != AUDIO_CHANGE) 
     270   if (p->usIOCtlRequest != AUDIO_CHANGE)
    271271   {
    272272       dprintf(("IAudioControl: Error support req:%x",p->usIOCtlRequest));
     
    282282   addr  = OFFSETOF(pAudChange);
    283283   addr += sizeof(MCI_AUDIO_CHANGE);
    284    if(addr >= 0x10000UL) 
     284   if(addr >= 0x10000UL)
    285285   {
    286286       dprintf(("Invalid MCI_AUDIO_CHANGE pnt %lx!!", (ULONG)pAudChange));
     
    294294   addr  = OFFSETOF(pMasterVol);
    295295   addr += sizeof(MCI_TRACK_INFO);
    296    if(addr >= 0x10000UL) 
     296   if(addr >= 0x10000UL)
    297297   {
    298298       dprintf(("Invalid MCI_TRACK_INFO pnt %lx!!", (ULONG)pMasterVol));
     
    311311       pStream->SetProperty(PROPERTY_BALANCE, pAudChange->lBalance);
    312312
    313    if (pAudChange->lVolume != AUDIO_IGNORE) 
     313   if (pAudChange->lVolume != AUDIO_IGNORE)
    314314   {
    315315       // stream volume ranges from 0 to 0x7FFFFFFF (linear)
     
    320320   }
    321321
    322    if (pMasterVol && pMasterVol->usMasterVolume != AUDIO_IGNORE) 
     322   if (pMasterVol && pMasterVol->usMasterVolume != AUDIO_IGNORE)
    323323   {
    324324       // master volume ranges from 0 to 0x7FFF (linear)
    325325       volume = pMasterVol->usMasterVolume;
    326326       volume = (volume*OSS32_MAX_VOLUME)/0x7FFFUL;
    327        if (volume > OSS32_MAX_VOLUME) 
     327       if (volume > OSS32_MAX_VOLUME)
    328328       {
    329329           volume = OSS32_MAX_VOLUME;
     
    331331//       dprintf(("IlAudioControl:Set MV to %d", volume));
    332332       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))
    334334       {
    335335           MixerSetVolume(MixerStreamId, OSS32_MIX_VOLUME_MASTER_REAR, MAKE_VOLUME_LR(volume, volume));
     
    409409        {
    410410            pHWobj->DevCaps(&audioCaps);
    411             if (audioCaps.ulSupport != SUPPORT_SUCCESS) 
     411            if (audioCaps.ulSupport != SUPPORT_SUCCESS)
    412412            {
    413413                dprintf(("IDirectAudio: DevCaps failed"));
     
    417417            }
    418418        }
    419         else 
     419        else
    420420        {
    421421            dprintf(("IDirectAudio: HW DevCaps failed"));
     
    427427        pStream = new DWAVESTREAM(AUDIOHW_WAVE_PLAY, pInit,  prp->s.ioctl.usSysFileNum, MixerStreamId);
    428428        if(pStream == NULL) {
    429             dprintf(("IDirectAudio: pStream"));
     429//            dprintf(("IDirectAudio: pStream"));
    430430            DebugInt3();
    431431            pInit->sReturnCode = INVALID_REQUEST;
     
    434434        }
    435435
    436         if(!pStream->IsEverythingOk()) 
     436        if(!pStream->IsEverythingOk())
    437437        {
    438438            delete pStream;
    439             dprintf(("IlDirectAudio: IsEverythingOk"));
     439//            dprintf(("IlDirectAudio: IsEverythingOk"));
    440440            DebugInt3();
    441441            pInit->sReturnCode = INVALID_REQUEST;
     
    482482        {
    483483            pHWobj->DevCaps(&audioCaps);
    484             if (audioCaps.ulSupport != SUPPORT_SUCCESS) 
     484            if (audioCaps.ulSupport != SUPPORT_SUCCESS)
    485485            {
    486486                dprintf(("IlDirectAudio: DevCaps failed"));
     
    489489                return;
    490490            }
    491             dprintf(("IoctlDirectAudio ret0"));
     491//            dprintf(("IoctlDirectAudio ret0"));
    492492            pInit->sReturnCode = 0;
    493493            return;
     
    500500        }
    501501    }
    502     else 
    503     if(prp->s.ioctl.bCode == DAUDIO_QUERYCAPS) 
     502    else
     503    if(prp->s.ioctl.bCode == DAUDIO_QUERYCAPS)
    504504    {
    505505        LPOSS32_DEVCAPS lpCaps = (LPOSS32_DEVCAPS) prp->s.ioctl.pvData;
     
    519519        {
    520520            pHWobj->DevCaps(lpCaps);
    521             dprintf(("IoctlDirectAudio ret1"));
    522             return;
    523         }
    524         else 
     521//            dprintf(("IoctlDirectAudio ret1"));
     522            return;
     523        }
     524        else
    525525        {
    526526            prp->usStatus |= RPERR;
    527             dprintf(("IoctlDirectAudio ret err1"));
     527//            dprintf(("IoctlDirectAudio ret err1"));
    528528            return;
    529529        }
     
    532532
    533533    pStream = FindStream_fromFile((ULONG) prp->s.ioctl.usSysFileNum);
    534     if(pStream == NULL) 
     534    if(pStream == NULL)
    535535    {
    536536        dprintf(("IDirectAudio stream %lx not found!", (ULONG) prp->s.ioctl.usSysFileNum));
     
    553553    {
    554554    case DAUDIO_CLOSE:
    555          dprintf(("ID close"));
     555//         dprintf(("ID close"));
    556556        delete pStream;
    557557        break;
     
    559559    case DAUDIO_SETVOLUME:
    560560    {
    561         dprintf(("ID SetVolume"));
     561//        dprintf(("ID SetVolume"));
    562562        pStream->SetProperty(PROPERTY_VOLUME, MAKE_VOLUME_LR(pDAudioCmd->Vol.VolumeL, pDAudioCmd->Vol.VolumeR));
    563563        break;
     
    566566    case DAUDIO_GETVOLUME:
    567567    {
    568         dprintf(("ID GetVolume"));
     568//        dprintf(("ID GetVolume"));
    569569        pDAudioCmd->Vol.VolumeL = GET_VOLUME_L(pStream->GetProperty(PROPERTY_VOLUME));
    570570        pDAudioCmd->Vol.VolumeR = GET_VOLUME_R(pStream->GetProperty(PROPERTY_VOLUME));
     
    575575    {
    576576        dprintf(("ID Start NF:%d",(USHORT)numFreeStreams));
    577         if(numFreeStreams > 0) 
     577        if(numFreeStreams > 0)
    578578        {
    579579              rc = pStream->StartStream();
     
    631631    case DAUDIO_SETPROPERTY:
    632632    {
    633         dprintf(("ID SetProp"));
     633//        dprintf(("ID SetProp"));
    634634        rc = pStream->SetProperty((USHORT)pDAudioCmd->SetProperty.type, pDAudioCmd->SetProperty.value);
    635635        break;
     
    640640        DDCMDREGISTER reg;
    641641
    642         dprintf(("ID Reg"));
     642//        dprintf(("ID Reg"));
    643643        reg.ulFunction     = DDCMD_REG_STREAM;
    644644        reg.hStream        = pDAudioCmd->Thread.hSemaphore;
     
    651651    case DAUDIO_DEREGISTER_THREAD:
    652652    {
    653         dprintf(("ID DeReg"));
     653//        dprintf(("ID DeReg"));
    654654        pStream->DeRegister();
    655655        break;
     
    657657
    658658    case DAUDIO_QUERYVERSION:
    659         dprintf(("ID qVer"));
     659//        dprintf(("ID qVer"));
    660660        pDAudioCmd->Version.ulVersion = DAUDIO_VERSION;
    661661        break;
    662662    }
    663663
    664     if(rc) 
    665     {
    666         dprintf(("IoctlDirectAudio ret err rc=%ld",rc));
     664    if(rc)
     665    {
     666//        dprintf(("IoctlDirectAudio ret err rc=%ld",rc));
    667667        prp->usStatus |= RPERR | RPBADCMD;
    668668        return;
     
    687687extern "C" void StrategyIoctl(PREQPACKET prp, USHORT LDev)
    688688{
    689     if (prp->s.ioctl.bCategory == DAUDIO_IOCTL_CAT) 
     689    if (prp->s.ioctl.bCategory == DAUDIO_IOCTL_CAT)
    690690    {
    691691        IoctlDirectAudio(prp);
     
    696696    dprintf(("StrategyIoctl:cat:0x%x, code:0x%x cd %d gd %d", prp->s.ioctl.bCategory, prp->s.ioctl.bCode, current_device, LDev));
    697697#endif
    698     if (prp->s.ioctl.bCategory == 0x90) 
     698    if (prp->s.ioctl.bCategory == 0x90)
    699699    {
    700700        IoctlMixer(prp, LDev);
    701701        return;
    702702    }
    703     if (prp->s.ioctl.bCategory != AUDIO_IOCTL_CAT) 
     703    if (prp->s.ioctl.bCategory != AUDIO_IOCTL_CAT)
    704704    {
    705705        prp->usStatus |= RPERR | RPBADCMD;
     
    724724
    725725#ifdef DEBUG
    726     dprintf(("StrategyIoctl:ret:0x%x", (USHORT)prp->usStatus));
     726//    dprintf(("StrategyIoctl:ret:0x%x", (USHORT)prp->usStatus));
    727727#endif
    728728    return;
Note: See TracChangeset for help on using the changeset viewer.