Ignore:
Timestamp:
Nov 4, 2009, 4:21:24 PM (16 years ago)
Author:
pasha
Message:

Rebuild buffers supply, fix DDCMD_WRITE with len=0 in WAVE chain, remove/add debug output, change DebugInt3 for debug/nondebug version, move unused code to unused directore

File:
1 edited

Legend:

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

    r33 r468  
    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) {
    75       pstream = FindStream_fromFile((ULONG) prp->s.ioctl.usSysFileNum);
    76       if (pstream)
    77          pstream->ulStreamState |= STREAM_IDLE;
    78       p->pvReserved = (VOID FAR *) (ULONG)prp->s.ioctl.usSysFileNum;
    79       p->sReturnCode = 0;
    80       return;
     74   if (p->sMode == IDLE)
     75   {
     76       pstream = FindStream_fromFile((ULONG) prp->s.ioctl.usSysFileNum);
     77       if (pstream)
     78           pstream->ulStreamState |= STREAM_IDLE;
     79       p->pvReserved = (VOID FAR *) (ULONG)prp->s.ioctl.usSysFileNum;
     80       p->sReturnCode = 0;
     81       return;
    8182   }
    8283       // call FindStream_fromFile to see if there is already a stream
     
    182183   //HACK BEGIN
    183184   if(pfnSHD) {
    184        dprintf(("Stream was previously registered; reregister it"));
     185//       dprintf(("Stream was previously registered; reregister it"));
    185186       pstream->pfnSHD  = pfnSHD;
    186187       pstream->hstream = hstream;
     
    201202   ULONG ulDevicetype;
    202203
     204#ifdef DEBUG
     205//   dprintf(("IACapability: src type: %d, op %d",(USHORT)p->ulDataType, (USHORT)p->ulOperation));
     206#endif
     207
    203208   // get the hardware device type based on the datatype and operation
    204209   ulDevicetype = GetHardwareType((USHORT)p->ulDataType,(USHORT)p->ulOperation,LDev);
    205210
    206211#ifdef DEBUG
    207 //   dprintf(("dev type: %d, ldev %d",ulDevicetype, LDev));
     212//   dprintf(("IACapability: dev type: %d, ldev %d",ulDevicetype, LDev));
    208213#endif
    209214
     
    215220   // bailout if no hardware object is returned..
    216221   pHWobj = GetHardwareDevice(ulDevicetype);
    217    if (pHWobj) {
     222   if (pHWobj)
     223   {
    218224      pHWobj->DevCaps(p);
    219225      if (p->ulSupport != SUPPORT_SUCCESS) {
     226         dprintf(("IACapability: Error support"));
    220227         prp->usStatus |= RPERR;
    221228      }
     
    223230   else {
    224231#ifdef DEBUG
    225        dprintf(("Error getting hardware object"));
     232       dprintf(("IACapability: Error get HW obj"));
    226233#endif
    227234      p->ulSupport = UNSUPPORTED_DATATYPE;
     
    248255   ULONG               addr;
    249256
    250    if (p->usIOCtlRequest != AUDIO_CHANGE) {
     257   if (p->usIOCtlRequest != AUDIO_CHANGE)
     258   {
     259       dprintf(("IAudioControl: Error support req:%x",p->usIOCtlRequest));
    251260       p->sReturnCode = INVALID_REQUEST;
    252261       prp->usStatus |= RPERR | RPBADCMD;
     
    260269   addr  = OFFSETOF(pAudChange);
    261270   addr += sizeof(MCI_AUDIO_CHANGE);
    262    if(addr >= 0x10000UL) {
    263        dprintf(("Invalid MCI_AUDIO_CHANGE pointer %lx!!", (ULONG)pAudChange));
     271   if(addr >= 0x10000UL)
     272   {
     273       dprintf(("Invalid MCI_AUDIO_CHANGE pnt %lx!!", (ULONG)pAudChange));
    264274       p->sReturnCode = INVALID_REQUEST;
    265275       prp->usStatus |= RPERR | RPBADCMD;
     
    271281   addr  = OFFSETOF(pMasterVol);
    272282   addr += sizeof(MCI_TRACK_INFO);
    273    if(addr >= 0x10000UL) {
    274        dprintf(("Invalid MCI_TRACK_INFO pointer %lx!!", (ULONG)pMasterVol));
     283   if(addr >= 0x10000UL)
     284   {
     285       dprintf(("Invalid MCI_TRACK_INFO pnt %lx!!", (ULONG)pMasterVol));
    275286       p->sReturnCode = INVALID_REQUEST;
    276287       prp->usStatus |= RPERR | RPBADCMD;
     
    280291   pStream = FindStream_fromFile((ULONG) prp->s.ioctl.usSysFileNum);
    281292   if(pStream == NULL) {
    282        dprintf(("IoctlAudioControl stream %lx not found!", (ULONG) prp->s.ioctl.usSysFileNum));
     293       dprintf(("IAudioControl stream %lx not found!", (ULONG) prp->s.ioctl.usSysFileNum));
    283294       DebugInt3();
    284295       return;
     
    287298       pStream->SetProperty(PROPERTY_BALANCE, pAudChange->lBalance);
    288299
    289    if(pAudChange->lVolume != AUDIO_IGNORE) {
     300   if (pAudChange->lVolume != AUDIO_IGNORE)
     301   {
    290302       // stream volume ranges from 0 to 0x7FFFFFFF (linear)
    291303       volume = pAudChange->lVolume >> 16UL;
     
    295307   }
    296308
    297    if(pMasterVol && pMasterVol->usMasterVolume != AUDIO_IGNORE)
     309   if (pMasterVol && pMasterVol->usMasterVolume != AUDIO_IGNORE)
    298310   {
    299311       // master volume ranges from 0 to 0x7FFF (linear)
    300312       volume = pMasterVol->usMasterVolume;
    301313       volume = (volume*OSS32_MAX_VOLUME)/0x7FFFUL;
    302        if(volume > OSS32_MAX_VOLUME) {
     314       if (volume > OSS32_MAX_VOLUME)
     315       {
    303316           volume = OSS32_MAX_VOLUME;
    304317       }
    305 //       dprintf(("Set mastervolume to %d", volume));
     318//       dprintf(("IlAudioControl:Set MV to %d", volume));
    306319       MixerSetVolume(MixerStreamId, OSS32_MIX_VOLUME_MASTER_FRONT, MAKE_VOLUME_LR(volume, volume));
    307        if(mixcaps.fuCtrlCaps & OSS32_MIX_FLAG(OSS32_MIX_VOLUME_MASTER_REAR)) {
     320       if(mixcaps.fuCtrlCaps & OSS32_MIX_FLAG(OSS32_MIX_VOLUME_MASTER_REAR))
     321       {
    308322           MixerSetVolume(MixerStreamId, OSS32_MIX_VOLUME_MASTER_REAR, MAKE_VOLUME_LR(volume, volume));
    309323       }
     
    345359           volume = OSS32_MAX_VOLUME;
    346360       }
    347 //       dprintf(("Set input gain of %x to %d", prp->s.ioctl.usSysFileNum, volume));
     361//       dprintf(("IAudioControl:Set IG of %x to %d", prp->s.ioctl.usSysFileNum, volume));
    348362       pStream->SetProperty(PROPERTY_INPUTGAIN, MAKE_VOLUME_LR(volume, volume));
    349363   }
     
    353367void IoctlDirectAudio(PREQPACKET prp)
    354368{
     369    dprintf(("IoctlDirectAudio"));
    355370    if(prp->s.ioctl.bCode == DAUDIO_OPEN)
    356371    {
     
    362377        if(DevHelp_VerifyAccess(SELECTOROF(pInit), sizeof(MCI_AUDIO_INIT), OFFSETOF(pInit), VERIFY_READWRITE))
    363378        {
    364             dprintf(("Invalid MCI_AUDIO_INIT pointer %lx!!", (ULONG)pInit));
     379            dprintf(("Invalid MCI_AUDIO_INIT pnt %lx!!", (ULONG)pInit));
    365380            prp->usStatus |= RPERR | RPBADCMD;
    366381            return;
     
    382397            pHWobj->DevCaps(&audioCaps);
    383398            if (audioCaps.ulSupport != SUPPORT_SUCCESS) {
    384                 dprintf(("IoctlDirectAudio: DevCaps failed"));
     399                dprintf(("IDirectAudio: DevCaps failed"));
    385400                pInit->sReturnCode = INVALID_REQUEST;
    386401                prp->usStatus |= RPERR;
     
    396411        pStream = new DWAVESTREAM(AUDIOHW_WAVE_PLAY, pInit,  prp->s.ioctl.usSysFileNum, MixerStreamId);
    397412        if(pStream == NULL) {
     413            dprintf(("IDirectAudio: pStream"));
    398414            DebugInt3();
    399415            pInit->sReturnCode = INVALID_REQUEST;
     
    404420        if(!pStream->IsEverythingOk()) {
    405421            delete pStream;
     422            dprintf(("IlDirectAudio: IsEverythingOk"));
    406423            DebugInt3();
    407424            pInit->sReturnCode = INVALID_REQUEST;
     
    429446        if(DevHelp_VerifyAccess(SELECTOROF(pInit), sizeof(MCI_AUDIO_INIT), OFFSETOF(pInit), VERIFY_READWRITE))
    430447        {
    431             dprintf(("Invalid MCI_AUDIO_INIT pointer %lx!!", (ULONG)pInit));
     448            dprintf(("Invalid MCI_AUDIO_INIT pnt %lx!!", (ULONG)pInit));
    432449            prp->usStatus |= RPERR | RPBADCMD;
    433450            return;
     
    449466            pHWobj->DevCaps(&audioCaps);
    450467            if (audioCaps.ulSupport != SUPPORT_SUCCESS) {
    451                 dprintf(("IoctlDirectAudio: DevCaps failed"));
     468                dprintf(("IlDirectAudio: DevCaps failed"));
    452469                prp->usStatus |= RPERR;
    453470                pInit->sReturnCode = INVALID_REQUEST;
     
    471488        if(DevHelp_VerifyAccess(SELECTOROF(lpCaps), sizeof(OSS32_DEVCAPS), OFFSETOF(lpCaps), VERIFY_READWRITE))
    472489        {
    473             dprintf(("Invalid OSS32_DEVCAPS pointer %lx!!", (ULONG)lpCaps));
     490            dprintf(("Invalid OSS32_DEVCAPS pnt %lx!!", (ULONG)lpCaps));
    474491            prp->usStatus |= RPERR | RPBADCMD;
    475492            return;
     
    493510    pStream = FindStream_fromFile((ULONG) prp->s.ioctl.usSysFileNum);
    494511    if(pStream == NULL) {
    495         dprintf(("IoctlDirectAudio stream %lx not found!", (ULONG) prp->s.ioctl.usSysFileNum));
     512        dprintf(("IDirectAudio stream %lx not found!", (ULONG) prp->s.ioctl.usSysFileNum));
    496513        DebugInt3();
    497514        prp->usStatus |= RPERR | RPBADCMD;
     
    504521    if(DevHelp_VerifyAccess(SELECTOROF(pDAudioCmd), sizeof(DAUDIO_CMD), OFFSETOF(pDAudioCmd), VERIFY_READWRITE))
    505522    {
    506         dprintf(("Invalid DAUDIO_CMD pointer %lx!!", (ULONG)pDAudioCmd));
     523        dprintf(("Invalid DAUDIO_CMD pnt %lx!!", (ULONG)pDAudioCmd));
    507524        prp->usStatus |= RPERR | RPBADCMD;
    508525        return;
     
    627644{
    628645#ifdef DEBUG
    629 //    dprintf(("StrategyIoctl. cat %d, code: %d, dev %d", prp->s.ioctl.bCategory, prp->s.ioctl.bCode, current_device));
     646    dprintf(("StrategyIoctl:cat:0x%x, code:0x%x dev %d", prp->s.ioctl.bCategory, prp->s.ioctl.bCode, current_device));
    630647#endif
    631     if(prp->s.ioctl.bCategory == DAUDIO_IOCTL_CAT) {
     648    if (prp->s.ioctl.bCategory == DAUDIO_IOCTL_CAT)
     649    {
    632650        IoctlDirectAudio(prp);
    633651        return;
    634652    }
    635653
    636     if(prp->s.ioctl.bCategory == 0x90) {
     654    if (prp->s.ioctl.bCategory == 0x90)
     655    {
    637656        IoctlMixer(prp, LDev);
    638657        return;
    639658    }
    640     if(prp->s.ioctl.bCategory != AUDIO_IOCTL_CAT) {
     659    if (prp->s.ioctl.bCategory != AUDIO_IOCTL_CAT)
     660    {
    641661        prp->usStatus |= RPERR | RPBADCMD;
    642662        return;
     
    645665    switch (prp->s.ioctl.bCode)
    646666    {
    647     case AUDIO_INIT:
    648         IoctlAudioInit(prp, LDev);
    649         break;
    650     case AUDIO_CONTROL:
    651         IoctlAudioControl(prp);
    652         break;
    653     case AUDIO_CAPABILITY:
    654         IoctlAudioCapability(prp, LDev);
    655         break;
    656     default:
    657         prp->usStatus |= RPERR | RPBADCMD;
    658         break;
    659     }
     667           case AUDIO_INIT:
     668                IoctlAudioInit(prp, LDev);
     669                break;
     670           case AUDIO_CONTROL:
     671                IoctlAudioControl(prp);
     672                break;
     673           case AUDIO_CAPABILITY:
     674                IoctlAudioCapability(prp, LDev);
     675                break;
     676           default:
     677                prp->usStatus |= RPERR | RPBADCMD;
     678               break;
     679    }
     680
     681#ifdef DEBUG
     682    dprintf(("StrategyIoctl:ret:0x%x", (USHORT)prp->usStatus));
     683#endif
    660684    return;
    661685}
Note: See TracChangeset for help on using the changeset viewer.