Ignore:
Timestamp:
Jul 12, 2010, 12:57:31 AM (15 years ago)
Author:
David Azarewicz
Message:

AddBuffers reentry fix

File:
1 edited

Legend:

Unmodified
Added
Removed
  • OCO/branches/DAZ/drv16/ossidc16.cpp

    r508 r513  
    55 */
    66
    7 extern "C" {               // 16-bit header files are not C++ aware
     7extern "C" {                       // 16-bit header files are not C++ aware
    88#define  INCL_16
    99#define  INCL_DOSINFOSEG
     
    3333
    3434void DumpDeviceCaps (LPOSS32_DEVCAPS pDevCaps);
    35 void DumpWaveCaps   (LPWAVE_CAPS pWaveCaps);
    36 void DumpMixerCaps  (LPOSS32_MIXCAPS pMixCaps);
     35void DumpWaveCaps       (LPWAVE_CAPS pWaveCaps);
     36void DumpMixerCaps      (LPOSS32_MIXCAPS pMixCaps);
    3737#endif
    3838
     
    5656   // Attach to the 32 bits OSS driver
    5757   if(DevHelp_AttachDD((NPSZ)"ALSA32$ ",(NPBYTE)&IDCTable)) {
    58       return FALSE;
     58          return FALSE;
    5959   }
    6060   idcpacket.init.handler16 = (ULONG)(VOID FAR *)OSSIDC_ENTRY;
     
    7777   IDC32_PACKET  idcpacket;
    7878   OSS32_DEVCAPS devcaps;
    79    OSSRET        ret;
    80 
    81    _fmemset(&idcpacket, 0, sizeof(idcpacket));
    82 
    83    idcpacket.fileid           = 0x666;
     79   OSSRET                ret;
     80
     81   _fmemset(&idcpacket, 0, sizeof(idcpacket));
     82
     83   idcpacket.fileid               = 0x666;
    8484   idcpacket.devcaps.devicenr = devicenr;
    8585   idcpacket.devcaps.pDevCaps = (ULONG)&devcaps;
     
    8787
    8888#ifdef DEBUG
    89     if (ret == OSSERR_SUCCESS)
    90         DumpDeviceCaps (&devcaps);
    91     else
    92         dprintf (("IDC32_OSS32_QUERYDEVCAPS - FAILED!"));
     89        if (ret == OSSERR_SUCCESS)
     90                DumpDeviceCaps (&devcaps);
     91        else
     92                dprintf (("IDC32_OSS32_QUERYDEVCAPS - FAILED!"));
    9393#endif
    9494
     
    123123{
    124124   IDC32_PACKET idcpacket;
    125    OSSRET       ret;
    126 
    127    _fmemset(&idcpacket, 0, sizeof(idcpacket));
    128 
    129    idcpacket.fileid         = ulSysFileNum;
    130    idcpacket.open.devicenr  = devicenr;
     125   OSSRET               ret;
     126
     127   _fmemset(&idcpacket, 0, sizeof(idcpacket));
     128
     129   idcpacket.fileid             = ulSysFileNum;
     130   idcpacket.open.devicenr      = devicenr;
    131131   idcpacket.open.streamtype = (ulStreamType == STREAM_WAVE_PLAY) ? OSS32_STREAM_WAVEOUT : OSS32_STREAM_WAVEIN;
    132132   ret = CallOSS32(IDC32_WAVE_OPEN, &idcpacket);
     
    216216   if(SELECTOROF(pHwParams) != _SS())
    217217   {//must be located on the stack!
    218        dprintf(("OSS16_WaveSetFormat error. Invalid stack segment for parameters..."));
    219        DebugInt3();
    220        return OSSERR_INVALID_PARAMETER;
     218           dprintf(("OSS16_WaveSetFormat error. Invalid stack segment for parameters..."));
     219           DebugInt3();
     220           return OSSERR_INVALID_PARAMETER;
    221221   }
    222222
    223    idcpacket.fileid               = FindStreamFileId_fromStreamId(StreamId);
    224    idcpacket.streamid             = StreamId;
     223   idcpacket.fileid                       = FindStreamFileId_fromStreamId(StreamId);
     224   idcpacket.streamid                     = StreamId;
    225225   idcpacket.sethwparams.hwparams = (ULONG)pHwParams;
    226226   return CallOSS32(IDC32_WAVE_SETHWPARAMS, &idcpacket);
     
    229229//******************************************************************************
    230230OSSRET DBGCALLCONV OSS16_WaveAddBuffer(OSSSTREAMID StreamId, LINEAR pBuffer, ULONG size,
    231                                        ULONG FAR *lpBytesTransferred)
    232 {
    233    IDC32_PACKET idcpacket;
    234    OSSRET       ret;
    235 
    236    _fmemset(&idcpacket, 0, sizeof(idcpacket));
    237 
    238    idcpacket.fileid        = FindStreamFileId_fromStreamId(StreamId);
    239    idcpacket.streamid      = StreamId;
     231                                                                           ULONG FAR *lpBytesTransferred)
     232{
     233   IDC32_PACKET idcpacket;
     234   OSSRET               ret;
     235
     236   _fmemset(&idcpacket, 0, sizeof(idcpacket));
     237
     238   idcpacket.fileid        = FindStreamFileId_fromStreamId(StreamId);
     239   idcpacket.streamid      = StreamId;
    240240   idcpacket.buffer.buffer = pBuffer;
    241241   idcpacket.buffer.size   = size;
     
    250250{
    251251   IDC32_PACKET idcpacket;
    252    OSSRET       ret;
    253 
    254    _fmemset(&idcpacket, 0, sizeof(idcpacket));
    255 
    256    idcpacket.fileid        = FindStreamFileId_fromStreamId(StreamId);
    257    idcpacket.streamid      = StreamId;
     252   OSSRET               ret;
     253
     254   _fmemset(&idcpacket, 0, sizeof(idcpacket));
     255
     256   idcpacket.fileid        = FindStreamFileId_fromStreamId(StreamId);
     257   idcpacket.streamid      = StreamId;
    258258   ret =  CallOSS32(IDC32_WAVE_GETPOS, &idcpacket);
    259259
     
    266266{
    267267   IDC32_PACKET idcpacket;
    268    OSSRET       ret;
    269 
    270    _fmemset(&idcpacket, 0, sizeof(idcpacket));
    271 
    272    idcpacket.fileid        = FindStreamFileId_fromStreamId(StreamId);
    273    idcpacket.streamid      = StreamId;
     268   OSSRET               ret;
     269
     270   _fmemset(&idcpacket, 0, sizeof(idcpacket));
     271
     272   idcpacket.fileid        = FindStreamFileId_fromStreamId(StreamId);
     273   idcpacket.streamid      = StreamId;
    274274   ret =  CallOSS32(IDC32_WAVE_GETSPACE, &idcpacket);
    275275
     
    282282{
    283283   IDC32_PACKET idcpacket;
    284    OSSRET       ret;
    285 
    286    _fmemset(&idcpacket, 0, sizeof(idcpacket));
    287 
    288    idcpacket.fileid        = FindStreamFileId_fromStreamId(StreamId);
    289    idcpacket.streamid      = StreamId;
     284   OSSRET               ret;
     285
     286   _fmemset(&idcpacket, 0, sizeof(idcpacket));
     287
     288   idcpacket.fileid        = FindStreamFileId_fromStreamId(StreamId);
     289   idcpacket.streamid      = StreamId;
    290290   ret =  CallOSS32(IDC32_WAVE_GETHWPTR, &idcpacket);
    291291
     
    298298{
    299299   IDC32_PACKET idcpacket;
    300    OSSRET       ret;
    301 
    302    _fmemset(&idcpacket, 0, sizeof(idcpacket));
    303 
    304    idcpacket.fileid        = FindStreamFileId_fromStreamId(StreamId);
    305    idcpacket.streamid      = StreamId;
     300   OSSRET               ret;
     301
     302   _fmemset(&idcpacket, 0, sizeof(idcpacket));
     303
     304   idcpacket.fileid        = FindStreamFileId_fromStreamId(StreamId);
     305   idcpacket.streamid      = StreamId;
    306306   ret =  CallOSS32(IDC32_WAVE_GETSTATUS, &idcpacket);
    307307
     
    317317   _fmemset(&idcpacket, 0, sizeof(idcpacket));
    318318
    319    idcpacket.fileid            = FindStreamFileId_fromStreamId(StreamId);
    320    idcpacket.streamid          = StreamId;
     319   idcpacket.fileid                = FindStreamFileId_fromStreamId(StreamId);
     320   idcpacket.streamid              = StreamId;
    321321   idcpacket.setwavevol.volume = volume;
    322322   return CallOSS32(IDC32_WAVE_SETVOLUME, &idcpacket);
     
    327327{
    328328   IDC32_PACKET idcpacket;
    329    OSSRET       ret;
     329   OSSRET               ret;
    330330
    331331   dprintf(("OSS16_MidiOpen. type: %d",midiType));
    332332   _fmemset(&idcpacket, 0, sizeof(idcpacket));
    333333
    334    idcpacket.fileid         = 0x666;  //TODO
    335    idcpacket.open.devicenr  = devicenr;
     334   idcpacket.fileid             = 0x666;  //TODO
     335   idcpacket.open.devicenr      = devicenr;
    336336   switch(midiType) {
    337337   case MPU401_RECEIVE:
    338        idcpacket.open.streamtype = OSS32_STREAM_MPU401_MIDIIN;
    339        break;
     338           idcpacket.open.streamtype = OSS32_STREAM_MPU401_MIDIIN;
     339           break;
    340340   case MPU401_SEND:
    341        idcpacket.open.streamtype = OSS32_STREAM_MPU401_MIDIOUT;
    342        break;
     341           idcpacket.open.streamtype = OSS32_STREAM_MPU401_MIDIOUT;
     342           break;
    343343   case FM_SEND:
    344        idcpacket.open.streamtype = OSS32_STREAM_FM_MIDIOUT;
    345        break;
     344           idcpacket.open.streamtype = OSS32_STREAM_FM_MIDIOUT;
     345           break;
    346346   case WAVETABLE_SEND:
    347        idcpacket.open.streamtype = OSS32_STREAM_WAVETABLE_MIDIOUT;
    348        break;
     347           idcpacket.open.streamtype = OSS32_STREAM_WAVETABLE_MIDIOUT;
     348           break;
    349349   }
    350350   ret = CallOSS32(IDC32_MIDI_OPEN, &idcpacket);
     
    361361   _fmemset(&idcpacket, 0, sizeof(idcpacket));
    362362
    363    idcpacket.fileid             = 0x666;  //TODO
    364    idcpacket.streamid           = StreamId;
     363   idcpacket.fileid                     = 0x666;  //TODO
     364   idcpacket.streamid                   = StreamId;
    365365   idcpacket.midiwrite.midiByte = midiByte;
    366366   return CallOSS32(IDC32_MIDI_WRITE, &idcpacket);
     
    371371{
    372372   IDC32_PACKET idcpacket;
    373    OSSRET       ret;
    374 
    375 //  dprintf(("OSS16_MidiRead. id: %d",StreamId));
     373   OSSRET               ret;
     374
     375//      dprintf(("OSS16_MidiRead. id: %d",StreamId));
    376376   _fmemset(&idcpacket, 0, sizeof(idcpacket));
    377377
    378378   if(SELECTOROF(buffer) != _SS())
    379379   {//must be located on the stack!
    380        DebugInt3();
    381        return OSSERR_INVALID_PARAMETER;
     380           DebugInt3();
     381           return OSSERR_INVALID_PARAMETER;
    382382   }
    383383
    384    idcpacket.fileid           = 0x666;  //TODO
    385    idcpacket.streamid         = StreamId;
     384   idcpacket.fileid               = 0x666;      //TODO
     385   idcpacket.streamid             = StreamId;
    386386   idcpacket.midiread.buffer  = (ULONG)buffer;
    387387   idcpacket.midiread.bufsize = bufsize;
     
    397397   IDC32_PACKET   idcpacket;
    398398   OSS32_MIDICAPS midiCaps;
    399    OSSRET         ret;
     399   OSSRET                 ret;
    400400
    401401   dprintf(("OSS16_MidiQueryCaps. id: %d",streamid));
     
    530530{
    531531   IDC32_PACKET idcpacket;
    532    OSSRET       ret;
    533 
    534    _fmemset(&idcpacket, 0, sizeof(idcpacket));
    535 
    536    idcpacket.fileid         = 0x766;  //TODO
    537    idcpacket.open.devicenr  = devicenr;
     532   OSSRET               ret;
     533
     534   _fmemset(&idcpacket, 0, sizeof(idcpacket));
     535
     536   idcpacket.fileid             = 0x766;  //TODO
     537   idcpacket.open.devicenr      = devicenr;
    538538   ret = CallOSS32(IDC32_MIXER_OPEN, &idcpacket);
    539539   *pStreamId = idcpacket.streamid;
     
    560560   _fmemset(&idcpacket, 0, sizeof(idcpacket));
    561561
    562    idcpacket.fileid        = 0x766;  //TODO
    563    idcpacket.streamid      = StreamId;
     562   idcpacket.fileid        = 0x766;  //TODO
     563   idcpacket.streamid      = StreamId;
    564564   idcpacket.mixvol.line   = usLine;
    565565   idcpacket.mixvol.volume = ulVolume;
     
    572572{
    573573   IDC32_PACKET idcpacket;
    574    OSSRET       ret;
    575 
    576    _fmemset(&idcpacket, 0, sizeof(idcpacket));
    577 
    578    idcpacket.fileid        = 0x766;  //TODO
    579    idcpacket.streamid      = StreamId;
     574   OSSRET               ret;
     575
     576   _fmemset(&idcpacket, 0, sizeof(idcpacket));
     577
     578   idcpacket.fileid        = 0x766;  //TODO
     579   idcpacket.streamid      = StreamId;
    580580   idcpacket.mixvol.line   = usLine;
    581581
     
    592592   _fmemset(&idcpacket, 0, sizeof(idcpacket));
    593593
    594    idcpacket.fileid           = 0x766;  //TODO
    595    idcpacket.streamid         = StreamId;
     594   idcpacket.fileid               = 0x766;      //TODO
     595   idcpacket.streamid             = StreamId;
    596596   idcpacket.mixprop.property = usProperty;
    597    idcpacket.mixprop.value    = ulValue;
     597   idcpacket.mixprop.value        = ulValue;
    598598
    599599   return CallOSS32(IDC32_MIXER_SETPROPERTY, &idcpacket);
     
    603603OSSRET DBGCALLCONV OSS16_MixGetProperty(OSSSTREAMID StreamId, USHORT usProperty, ULONG FAR *pValue)
    604604{
    605     IDC32_PACKET idcpacket;
    606     OSSRET      ret;
    607 
    608     _fmemset(&idcpacket, 0, sizeof(idcpacket));
    609 
    610     idcpacket.fileid           = 0x766;  //TODO
    611     idcpacket.streamid         = StreamId;
    612     idcpacket.mixprop.property = usProperty;
    613 
    614     ret = CallOSS32(IDC32_MIXER_GETPROPERTY, &idcpacket);
    615     *pValue = idcpacket.mixprop.value;
    616     return ret;
     605        IDC32_PACKET idcpacket;
     606        OSSRET          ret;
     607
     608        _fmemset(&idcpacket, 0, sizeof(idcpacket));
     609
     610        idcpacket.fileid                   = 0x766;  //TODO
     611        idcpacket.streamid                 = StreamId;
     612        idcpacket.mixprop.property = usProperty;
     613
     614        ret = CallOSS32(IDC32_MIXER_GETPROPERTY, &idcpacket);
     615        *pValue = idcpacket.mixprop.value;
     616        return ret;
    617617}
    618618//******************************************************************************
     
    620620OSSRET DBGCALLCONV OSS16_MixQueryCaps(OSSSTREAMID Streamid, OSS32_MIXCAPS FAR *pCaps)
    621621{
    622     IDC32_PACKET    idcpacket;
    623     OSS32_MIXCAPS mixerCaps;
    624     OSSRET          ret;
    625 
    626     _fmemset(&idcpacket, 0, sizeof(idcpacket));
    627 
    628     idcpacket.fileid   = 0x766; //TODO
    629     idcpacket.streamid = Streamid;
    630     idcpacket.mixcaps.pCaps = (ULONG)&mixerCaps;
    631     ret = CallOSS32(IDC32_MIXER_QUERYCAPS, &idcpacket);
     622        IDC32_PACKET    idcpacket;
     623        OSS32_MIXCAPS mixerCaps;
     624        OSSRET                  ret;
     625
     626        _fmemset(&idcpacket, 0, sizeof(idcpacket));
     627
     628        idcpacket.fileid   = 0x766; //TODO
     629        idcpacket.streamid = Streamid;
     630        idcpacket.mixcaps.pCaps = (ULONG)&mixerCaps;
     631        ret = CallOSS32(IDC32_MIXER_QUERYCAPS, &idcpacket);
    632632
    633633#ifdef DEBUG
    634     if (ret == OSSERR_SUCCESS)
    635         DumpMixerCaps (&mixerCaps);
    636     else
    637         dprintf (("IDC32_MIXER_QUERYCAPS - FAILED!"));
     634        if (ret == OSSERR_SUCCESS)
     635                DumpMixerCaps (&mixerCaps);
     636        else
     637                dprintf (("IDC32_MIXER_QUERYCAPS - FAILED!"));
    638638#endif
    639639
    640     _fmemcpy(pCaps, &mixerCaps, sizeof(mixerCaps));
    641     return ret;
     640        _fmemcpy(pCaps, &mixerCaps, sizeof(mixerCaps));
     641        return ret;
    642642}
    643643//******************************************************************************
     
    646646OSSRET CallOSS32(USHORT cmd, IDC32_PACKET FAR *pIDCPacket)
    647647{
    648     ULONG rc = 0;
    649     ULONG idcptr  = (ULONG)IDCTable.ProtIDCEntry;
    650     ULONG idcparm;
    651 
    652     if(idcptr == 0)
    653             return OSSERR_ACCESS_DENIED;
    654 
    655     if(SELECTOROF(pIDCPacket) != _SS()) {
    656        dprintf(("CallOSS32 error. Invalid stack segment for parameters..."));
    657        DebugInt3();
    658        return OSSERR_INVALID_PARAMETER;
    659     }
    660 
    661 //    dprintf(("CallOSS32. cmd: %d", cmd));
    662 
    663     idcparm = (ULONG)pIDCPacket;
    664 
    665     _asm {
    666             pusha
    667             mov  cx, cmd
    668             mov  dx, word ptr [idcparm+2]
    669             mov  bx, word ptr [idcparm]
    670             call dword ptr [idcptr]
    671             mov  word ptr rc, ax
    672             mov  word ptr [rc+2], dx
    673             popa
    674     }
    675     return(rc);
     648        ULONG rc = 0;
     649        ULONG idcptr  = (ULONG)IDCTable.ProtIDCEntry;
     650        ULONG idcparm;
     651
     652        if(idcptr == 0)
     653                return OSSERR_ACCESS_DENIED;
     654
     655        if(SELECTOROF(pIDCPacket) != _SS()) {
     656           dprintf(("CallOSS32 error. Invalid stack segment for parameters..."));
     657           DebugInt3();
     658           return OSSERR_INVALID_PARAMETER;
     659        }
     660
     661//        dprintf(("CallOSS32. cmd: %d", cmd));
     662
     663        idcparm = (ULONG)pIDCPacket;
     664
     665        _asm {
     666                pusha
     667                mov  cx, cmd
     668                mov  dx, word ptr [idcparm+2]
     669                mov  bx, word ptr [idcparm]
     670                call dword ptr [idcptr]
     671                mov  word ptr rc, ax
     672                mov  word ptr [rc+2], dx
     673                popa
     674        }
     675        return(rc);
    676676}
    677677//******************************************************************************
     
    683683{
    684684   IDC32_PACKET idcpacket;
    685    ULONG        buffer;
    686 
    687    _fmemset(&idcpacket, 0, sizeof(idcpacket));
    688 
    689     if (DevHelp_VirtToLin(SELECTOROF(debstr),OFFSETOF(debstr),&buffer))
    690         return OSSERR_INVALID_PARAMETER;
    691 
    692 
    693    idcpacket.buffer.buffer  = (ULONG)buffer;
     685   ULONG                buffer;
     686
     687   _fmemset(&idcpacket, 0, sizeof(idcpacket));
     688
     689        if (DevHelp_VirtToLin(SELECTOROF(debstr),OFFSETOF(debstr),&buffer))
     690                return OSSERR_INVALID_PARAMETER;
     691
     692
     693   idcpacket.buffer.buffer      = (ULONG)buffer;
    694694   idcpacket.buffer.size = bufsize;
    695695   return CallOSS32(IDC32_DEBUG_STRING, &idcpacket);
     
    704704#pragma on (unreferenced)
    705705{
    706     //dprintf(("OSSIDC cmd:%lx param1:%lx param2:%lx", cmd, param1, param2));
    707     switch(cmd & 0xFFFF)
    708     {
    709     case IDC16_INIT:
    710             break;
    711 
    712     case IDC16_EXIT:
    713         DestroyStreams();
    714             IDCTable.ProtIDCEntry = 0;
    715             break;
    716     case IDC16_MIDI_IRQ:
    717         MPU_401::processIrq(0);
    718         break;
    719 
    720     case IDC16_CLOSE_UNI16:
    721         {
    722             force_closed = 1;
    723 #ifdef DEBUG
    724             dprintf(("IDC16_CLOSE_UNI16"));
    725 #endif
    726             pWavePlay->Close(0);
    727             //WAVEAUDIO::WavePlayClose();
    728             break;
    729         }
    730     case IDC16_PROCESS:
    731     {
    732         PWAVESTREAM pStream;
     706        //dprintf(("OSSIDC cmd:%lx param1:%lx param2:%lx", cmd, param1, param2));
     707        switch(cmd & 0xFFFF)
     708        {
     709        case IDC16_INIT:
     710                break;
     711
     712        case IDC16_EXIT:
     713                DestroyStreams();
     714                IDCTable.ProtIDCEntry = 0;
     715                        break;
     716        case IDC16_MIDI_IRQ:
     717                MPU_401::processIrq(0);
     718                break;
     719
     720        case IDC16_CLOSE_UNI16:
     721                {
     722                        force_closed = 1;
     723                        dprintf(("IDC16_CLOSE_UNI16"));
     724                        pWavePlay->Close(0);
     725                        //WAVEAUDIO::WavePlayClose();
     726                        break;
     727                }
     728        case IDC16_PROCESS:
     729        {
     730                PWAVESTREAM pStream;
    733731                //dprintf(("IDC16_PROCESS, %d", param1));
    734         //Signal all active wave playback streams to update their status
    735             pStream = (PWAVESTREAM)FindFirstActiveStream(STREAM_WAVE_PLAY);
    736             while(pStream)
    737            {
    738                 pStream->Process();
    739                pStream = (PWAVESTREAM)FindNextActiveStream(STREAM_WAVE_PLAY, pStream);
    740            }
    741            //Signal all active wave capture streams to update their status
    742            pStream = (PWAVESTREAM)FindFirstActiveStream(STREAM_WAVE_CAPTURE);
    743            while(pStream)
    744            {
    745                  pStream->Process();
    746                  pStream = (PWAVESTREAM)FindNextActiveStream(STREAM_WAVE_CAPTURE, pStream);
    747            }
    748                         //dprintf(("IDC16_PROCESS end"));
    749            break;
    750     }
    751 
    752     }
    753     return 0;
     732                //Signal all active wave playback streams to update their status
     733                pStream = (PWAVESTREAM)FindFirstActiveStream(STREAM_WAVE_PLAY);
     734                while(pStream) {
     735                        pStream->Process();
     736                        pStream = (PWAVESTREAM)FindNextActiveStream(STREAM_WAVE_PLAY, pStream);
     737                }
     738                //Signal all active wave capture streams to update their status
     739                pStream = (PWAVESTREAM)FindFirstActiveStream(STREAM_WAVE_CAPTURE);
     740                while(pStream) {
     741                        pStream->Process();
     742                        pStream = (PWAVESTREAM)FindNextActiveStream(STREAM_WAVE_CAPTURE, pStream);
     743                }
     744                //dprintf(("IDC16_PROCESS end"));
     745                break;
     746        }
     747
     748        }
     749        return 0;
    754750}
    755751//******************************************************************************
     
    760756void DumpMixerCaps (LPOSS32_MIXCAPS pMixCaps)
    761757{
    762     dprintf (("\nMixerCaps"));
    763     dprintf (("  name       '%s'", pMixCaps->name));
    764     dprintf (("  fuCtrlCaps %lxh", pMixCaps->fuCtrlCaps));
    765     if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_MASTER_FRONT))
    766         dprintf (("             OSS32_MIX_VOLUME_MASTER_FRONT"));
    767     if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_MASTER_REAR))
    768         dprintf (("             OSS32_MIX_VOLUME_MASTER_REAR"));
    769     if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_PCM))
    770         dprintf (("             OSS32_MIX_VOLUME_PCM"));
    771     if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_MIDI))
    772         dprintf (("             OSS32_MIX_VOLUME_MIDI"));
    773     if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_LINEIN))
    774         dprintf (("             OSS32_MIX_VOLUME_LINEIN"));
    775     if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_MIC))
    776         dprintf (("             OSS32_MIX_VOLUME_MIC"));
    777     if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_CD))
    778         dprintf (("             OSS32_MIX_VOLUME_CD"));
    779     if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_SPDIF))
    780         dprintf (("             OSS32_MIX_VOLUME_SPDIF"));
    781     if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_VIDEO))
    782         dprintf (("             OSS32_MIX_VOLUME_VIDEO"));
    783     if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_SPEAKER))
    784         dprintf (("             OSS32_MIX_VOLUME_SPEAKER"));
    785     if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_PHONE))
    786         dprintf (("             OSS32_MIX_VOLUME_PHONE"));
    787     if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_HEADPHONE))
    788         dprintf (("             OSS32_MIX_VOLUME_HEADPHONE"));
    789     if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_AUX))
    790         dprintf (("             OSS32_MIX_VOLUME_AUX"));
    791     if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_CAPTURE))
    792         dprintf (("             OSS32_MIX_VOLUME_CAPTURE"));
    793     if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_INPUTSRC))
    794         dprintf (("             OSS32_MIX_INPUTSRC"));
    795     if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_LEVEL_BASS))
    796         dprintf (("             OSS32_MIX_LEVEL_BASS"));
    797     if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_LEVEL_TREBLE))
    798         dprintf (("             OSS32_MIX_LEVEL_TREBLE"));
    799     if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_LEVEL_3DCENTER))
    800         dprintf (("             OSS32_MIX_LEVEL_3DCENTER"));
    801     if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_LEVEL_3DDEPTH))
    802         dprintf (("             OSS32_MIX_LEVEL_3DDEPTH"));
    803     if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_SWITCH_MICBOOST))
    804         dprintf (("             OSS32_MIX_SWITCH_MICBOOST"));
    805 
    806 
    807     dprintf (("  fuRecCaps  %lxh", pMixCaps->fuRecCaps));
    808     if (pMixCaps->fuRecCaps & OSS32_MIX_FLAG (OSS32_MIX_RECSRC_MIC))
    809         dprintf (("             OSS32_MIX_RECSRC_MIC"));
    810     if (pMixCaps->fuRecCaps & OSS32_MIX_FLAG (OSS32_MIX_RECSRC_CD))
    811         dprintf (("             OSS32_MIX_RECSRC_CD"));
    812     if (pMixCaps->fuRecCaps & OSS32_MIX_FLAG (OSS32_MIX_RECSRC_LINE))
    813         dprintf (("             OSS32_MIX_RECSRC_LINE"));
    814     if (pMixCaps->fuRecCaps & OSS32_MIX_FLAG (OSS32_MIX_RECSRC_VIDEO))
    815         dprintf (("             OSS32_MIX_RECSRC_VIDEO"));
    816     if (pMixCaps->fuRecCaps & OSS32_MIX_FLAG (OSS32_MIX_RECSRC_AUX))
    817         dprintf (("             OSS32_MIX_RECSRC_AUX"));
    818     if (pMixCaps->fuRecCaps & OSS32_MIX_FLAG (OSS32_MIX_RECSRC_MIXER))
    819         dprintf (("             OSS32_MIX_RECSRC_MIXER"));
    820     if (pMixCaps->fuRecCaps & OSS32_MIX_FLAG (OSS32_MIX_RECSRC_MIXER_MONO))
    821         dprintf (("             OSS32_MIX_RECSRC_MIXER_MONO"));
    822     if (pMixCaps->fuRecCaps & OSS32_MIX_FLAG (OSS32_MIX_RECSRC_PHONE))
    823         dprintf (("             OSS32_MIX_RECSRC_PHONE"));
    824     if (pMixCaps->fuRecCaps & OSS32_MIX_FLAG (OSS32_MIX_RECSRC_SYNTH))
    825         dprintf (("             OSS32_MIX_RECSRC_SYNTH"));
     758        dprintf (("\nMixerCaps"));
     759        dprintf (("  name       '%s'", pMixCaps->name));
     760        dprintf (("  fuCtrlCaps %lxh", pMixCaps->fuCtrlCaps));
     761        if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_MASTER_FRONT))
     762                dprintf (("             OSS32_MIX_VOLUME_MASTER_FRONT"));
     763        if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_MASTER_REAR))
     764                dprintf (("             OSS32_MIX_VOLUME_MASTER_REAR"));
     765        if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_PCM))
     766                dprintf (("             OSS32_MIX_VOLUME_PCM"));
     767        if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_MIDI))
     768                dprintf (("             OSS32_MIX_VOLUME_MIDI"));
     769        if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_LINEIN))
     770                dprintf (("             OSS32_MIX_VOLUME_LINEIN"));
     771        if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_MIC))
     772                dprintf (("             OSS32_MIX_VOLUME_MIC"));
     773        if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_CD))
     774                dprintf (("             OSS32_MIX_VOLUME_CD"));
     775        if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_SPDIF))
     776                dprintf (("             OSS32_MIX_VOLUME_SPDIF"));
     777        if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_VIDEO))
     778                dprintf (("             OSS32_MIX_VOLUME_VIDEO"));
     779        if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_SPEAKER))
     780                dprintf (("             OSS32_MIX_VOLUME_SPEAKER"));
     781        if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_PHONE))
     782                dprintf (("             OSS32_MIX_VOLUME_PHONE"));
     783        if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_HEADPHONE))
     784                dprintf (("             OSS32_MIX_VOLUME_HEADPHONE"));
     785        if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_AUX))
     786                dprintf (("             OSS32_MIX_VOLUME_AUX"));
     787        if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_VOLUME_CAPTURE))
     788                dprintf (("             OSS32_MIX_VOLUME_CAPTURE"));
     789        if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_INPUTSRC))
     790                dprintf (("             OSS32_MIX_INPUTSRC"));
     791        if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_LEVEL_BASS))
     792                dprintf (("             OSS32_MIX_LEVEL_BASS"));
     793        if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_LEVEL_TREBLE))
     794                dprintf (("             OSS32_MIX_LEVEL_TREBLE"));
     795        if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_LEVEL_3DCENTER))
     796                dprintf (("             OSS32_MIX_LEVEL_3DCENTER"));
     797        if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_LEVEL_3DDEPTH))
     798                dprintf (("             OSS32_MIX_LEVEL_3DDEPTH"));
     799        if (pMixCaps->fuCtrlCaps & OSS32_MIX_FLAG (OSS32_MIX_SWITCH_MICBOOST))
     800                dprintf (("             OSS32_MIX_SWITCH_MICBOOST"));
     801
     802
     803        dprintf (("  fuRecCaps  %lxh", pMixCaps->fuRecCaps));
     804        if (pMixCaps->fuRecCaps & OSS32_MIX_FLAG (OSS32_MIX_RECSRC_MIC))
     805                dprintf (("             OSS32_MIX_RECSRC_MIC"));
     806        if (pMixCaps->fuRecCaps & OSS32_MIX_FLAG (OSS32_MIX_RECSRC_CD))
     807                dprintf (("             OSS32_MIX_RECSRC_CD"));
     808        if (pMixCaps->fuRecCaps & OSS32_MIX_FLAG (OSS32_MIX_RECSRC_LINE))
     809                dprintf (("             OSS32_MIX_RECSRC_LINE"));
     810        if (pMixCaps->fuRecCaps & OSS32_MIX_FLAG (OSS32_MIX_RECSRC_VIDEO))
     811                dprintf (("             OSS32_MIX_RECSRC_VIDEO"));
     812        if (pMixCaps->fuRecCaps & OSS32_MIX_FLAG (OSS32_MIX_RECSRC_AUX))
     813                dprintf (("             OSS32_MIX_RECSRC_AUX"));
     814        if (pMixCaps->fuRecCaps & OSS32_MIX_FLAG (OSS32_MIX_RECSRC_MIXER))
     815                dprintf (("             OSS32_MIX_RECSRC_MIXER"));
     816        if (pMixCaps->fuRecCaps & OSS32_MIX_FLAG (OSS32_MIX_RECSRC_MIXER_MONO))
     817                dprintf (("             OSS32_MIX_RECSRC_MIXER_MONO"));
     818        if (pMixCaps->fuRecCaps & OSS32_MIX_FLAG (OSS32_MIX_RECSRC_PHONE))
     819                dprintf (("             OSS32_MIX_RECSRC_PHONE"));
     820        if (pMixCaps->fuRecCaps & OSS32_MIX_FLAG (OSS32_MIX_RECSRC_SYNTH))
     821                dprintf (("             OSS32_MIX_RECSRC_SYNTH"));
    826822}
    827823//******************************************************************************
     
    829825void DumpDeviceCaps (LPOSS32_DEVCAPS pDevCaps)
    830826{
    831     dprintf (("\nDeviceCaps"));
    832     dprintf (("  nrDevices     %d", pDevCaps->nrDevices));
    833 
    834     dprintf (("  ulCaps        %uxh", pDevCaps->ulCaps));
    835     if (pDevCaps->ulCaps & OSS32_CAPS_WAVE_PLAYBACK)
    836         dprintf (("                OSS32_CAPS_WAVE_PLAYBACK"));
    837     if (pDevCaps->ulCaps & OSS32_CAPS_WAVE_CAPTURE)
    838         dprintf (("                OSS32_CAPS_WAVE_CAPTURE"));
    839     if (pDevCaps->ulCaps & OSS32_CAPS_FMSYNTH_PLAYBACK)
    840         dprintf (("                OSS32_CAPS_FMSYNTH_PLAYBACK"));
    841     if (pDevCaps->ulCaps & OSS32_CAPS_WAVETABLE_PLAYBACK)
    842         dprintf (("                OSS32_CAPS_WAVETABLE_PLAYBACK"));
    843     if (pDevCaps->ulCaps & OSS32_CAPS_MPU401_PLAYBACK)
    844         dprintf (("                OSS32_CAPS_MPU401_PLAYBACK"));
    845     if (pDevCaps->ulCaps & OSS32_CAPS_MPU401_CAPTURE)
    846         dprintf (("                OSS32_CAPS_MPU401_CAPTURE"));
    847 
    848     dprintf (("  szDeviceName  %s", (char far*)pDevCaps->szDeviceName));
    849     dprintf (("  szMixerName   %s", (char far*)pDevCaps->szMixerName));
    850 
    851 
    852     dprintf (("WaveOutCaps"));
    853     DumpWaveCaps (&pDevCaps->waveOutCaps);
    854 
    855     dprintf (("WaveInCaps"));
    856     DumpWaveCaps (&pDevCaps->waveInCaps);
     827        dprintf (("\nDeviceCaps"));
     828        dprintf (("  nrDevices     %d", pDevCaps->nrDevices));
     829
     830        dprintf (("  ulCaps        %uxh", pDevCaps->ulCaps));
     831        if (pDevCaps->ulCaps & OSS32_CAPS_WAVE_PLAYBACK)
     832                dprintf (("                OSS32_CAPS_WAVE_PLAYBACK"));
     833        if (pDevCaps->ulCaps & OSS32_CAPS_WAVE_CAPTURE)
     834                dprintf (("                OSS32_CAPS_WAVE_CAPTURE"));
     835        if (pDevCaps->ulCaps & OSS32_CAPS_FMSYNTH_PLAYBACK)
     836                dprintf (("                OSS32_CAPS_FMSYNTH_PLAYBACK"));
     837        if (pDevCaps->ulCaps & OSS32_CAPS_WAVETABLE_PLAYBACK)
     838                dprintf (("                OSS32_CAPS_WAVETABLE_PLAYBACK"));
     839        if (pDevCaps->ulCaps & OSS32_CAPS_MPU401_PLAYBACK)
     840                dprintf (("                OSS32_CAPS_MPU401_PLAYBACK"));
     841        if (pDevCaps->ulCaps & OSS32_CAPS_MPU401_CAPTURE)
     842                dprintf (("                OSS32_CAPS_MPU401_CAPTURE"));
     843
     844        dprintf (("  szDeviceName  %s", (char far*)pDevCaps->szDeviceName));
     845        dprintf (("  szMixerName   %s", (char far*)pDevCaps->szMixerName));
     846
     847
     848        dprintf (("WaveOutCaps"));
     849        DumpWaveCaps (&pDevCaps->waveOutCaps);
     850
     851        dprintf (("WaveInCaps"));
     852        DumpWaveCaps (&pDevCaps->waveInCaps);
    857853}
    858854//******************************************************************************
     
    860856void DumpWaveCaps (LPWAVE_CAPS pWaveCaps)
    861857{
    862     dprintf (("  nrStreams     %d",   pWaveCaps->nrStreams));
    863     dprintf (("  ulMinChannels %ld",   pWaveCaps->ulMinChannels));
    864     dprintf (("  ulMaxChannels %ld",   pWaveCaps->ulMaxChannels));
    865     dprintf (("  ulChanFlags   %lxh",  pWaveCaps->ulChanFlags));
    866     if (pWaveCaps->ulChanFlags & OSS32_CAPS_PCM_CHAN_MONO)
    867         dprintf (("                OSS32_CAPS_PCM_CHAN_MONO"));
    868     if (pWaveCaps->ulChanFlags & OSS32_CAPS_PCM_CHAN_STEREO)
    869         dprintf (("                OSS32_CAPS_PCM_CHAN_STEREO"));
    870     if (pWaveCaps->ulChanFlags & OSS32_CAPS_PCM_CHAN_QUAD)
    871         dprintf (("                OSS32_CAPS_PCM_CHAN_QUAD"));
    872     if (pWaveCaps->ulChanFlags & OSS32_CAPS_PCM_CHAN_5_1)
    873         dprintf (("                OSS32_CAPS_PCM_CHAN_5_1"));
    874 
    875 
    876     dprintf (("  ulMinRate     %ld",   pWaveCaps->ulMinRate));
    877     dprintf (("  ulMaxRate     %ld",   pWaveCaps->ulMaxRate));
    878 
    879     dprintf (("  ulRateFlags   %lxh",  pWaveCaps->ulRateFlags));
    880     if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_5512)
    881         dprintf (("                OSS32_CAPS_PCM_RATE_5512"));
    882     if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_8000)
    883         dprintf (("                OSS32_CAPS_PCM_RATE_8000"));
    884     if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_11025)
    885         dprintf (("                OSS32_CAPS_PCM_RATE_11025"));
    886     if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_16000)
    887         dprintf (("                OSS32_CAPS_PCM_RATE_16000"));
    888     if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_22050)
    889         dprintf (("                OSS32_CAPS_PCM_RATE_22050"));
    890     if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_32000)
    891         dprintf (("                OSS32_CAPS_PCM_RATE_32000"));
    892     if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_44100)
    893         dprintf (("                OSS32_CAPS_PCM_RATE_44100"));
    894     if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_48000)
    895         dprintf (("                OSS32_CAPS_PCM_RATE_48000"));
    896     if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_64000)
    897         dprintf (("                OSS32_CAPS_PCM_RATE_64000"));
    898     if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_88200)
    899         dprintf (("                OSS32_CAPS_PCM_RATE_88200"));
    900     if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_96000)
    901         dprintf (("                OSS32_CAPS_PCM_RATE_96000"));
    902     if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_176400)
    903         dprintf (("                OSS32_CAPS_PCM_RATE_176400"));
    904     if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_192000)
    905         dprintf (("                OSS32_CAPS_PCM_RATE_192000"));
    906     if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_HALFDUPLEX)
    907         dprintf (("                OSS32_CAPS_PCM_RATE_HALFDUPLEX"));
    908     if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_CONTINUOUS)
    909         dprintf (("                OSS32_CAPS_PCM_RATE_CONTINUOUS"));
    910     if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_KNOT)
    911         dprintf (("                OSS32_CAPS_PCM_RATE_KNOT"));
    912 
    913 
    914     dprintf (("  ulDataFormats %lxh",  pWaveCaps->ulDataFormats));
    915     if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_S8)
    916         dprintf (("                OSS32_CAPS_PCM_FORMAT_S8"));
    917     if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_U8)
    918         dprintf (("                OSS32_CAPS_PCM_FORMAT_U8"));
    919     if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_S16_LE)
    920         dprintf (("                OSS32_CAPS_PCM_FORMAT_S16_LE"));
    921     if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_S16_BE)
    922         dprintf (("                OSS32_CAPS_PCM_FORMAT_S16_BE"));
    923     if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_U16_LE)
    924         dprintf (("                OSS32_CAPS_PCM_FORMAT_U16_LE"));
    925     if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_U16_BE)
    926         dprintf (("                OSS32_CAPS_PCM_FORMAT_U16_BE"));
    927     if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_S24_LE)
    928         dprintf (("                OSS32_CAPS_PCM_FORMAT_S24_LE"));
    929     if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_S24_BE)
    930         dprintf (("                OSS32_CAPS_PCM_FORMAT_S24_BE"));
    931     if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_U24_LE)
    932         dprintf (("                OSS32_CAPS_PCM_FORMAT_U24_LE"));
    933     if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_U24_BE)
    934         dprintf (("                OSS32_CAPS_PCM_FORMAT_U24_BE"));
    935     if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_S32_LE)
    936         dprintf (("                OSS32_CAPS_PCM_FORMAT_S32_LE"));
    937     if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_S32_BE)
    938         dprintf (("                OSS32_CAPS_PCM_FORMAT_S32_BE"));
    939     if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_U32_LE)
    940         dprintf (("                OSS32_CAPS_PCM_FORMAT_U32_LE"));
    941     if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_U32_BE)
    942         dprintf (("                OSS32_CAPS_PCM_FORMAT_U32_BE"));
    943     if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_MULAW)
    944         dprintf (("                OSS32_CAPS_PCM_FORMAT_MULAW"));
    945     if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_ALAW)
    946         dprintf (("                OSS32_CAPS_PCM_FORMAT_ALAW"));
    947     if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_ADPCM)
    948         dprintf (("                OSS32_CAPS_PCM_FORMAT_ADPCM"));
    949     if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_MPEG)
    950         dprintf (("                OSS32_CAPS_PCM_FORMAT_MPEG"));
     858        dprintf (("  nrStreams     %d",   pWaveCaps->nrStreams));
     859        dprintf (("  ulMinChannels %ld",   pWaveCaps->ulMinChannels));
     860        dprintf (("  ulMaxChannels %ld",   pWaveCaps->ulMaxChannels));
     861        dprintf (("  ulChanFlags   %lxh",  pWaveCaps->ulChanFlags));
     862        if (pWaveCaps->ulChanFlags & OSS32_CAPS_PCM_CHAN_MONO)
     863                dprintf (("                OSS32_CAPS_PCM_CHAN_MONO"));
     864        if (pWaveCaps->ulChanFlags & OSS32_CAPS_PCM_CHAN_STEREO)
     865                dprintf (("                OSS32_CAPS_PCM_CHAN_STEREO"));
     866        if (pWaveCaps->ulChanFlags & OSS32_CAPS_PCM_CHAN_QUAD)
     867                dprintf (("                OSS32_CAPS_PCM_CHAN_QUAD"));
     868        if (pWaveCaps->ulChanFlags & OSS32_CAPS_PCM_CHAN_5_1)
     869                dprintf (("                OSS32_CAPS_PCM_CHAN_5_1"));
     870
     871
     872        dprintf (("  ulMinRate     %ld",   pWaveCaps->ulMinRate));
     873        dprintf (("  ulMaxRate     %ld",   pWaveCaps->ulMaxRate));
     874
     875        dprintf (("  ulRateFlags   %lxh",  pWaveCaps->ulRateFlags));
     876        if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_5512)
     877                dprintf (("                OSS32_CAPS_PCM_RATE_5512"));
     878        if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_8000)
     879                dprintf (("                OSS32_CAPS_PCM_RATE_8000"));
     880        if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_11025)
     881                dprintf (("                OSS32_CAPS_PCM_RATE_11025"));
     882        if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_16000)
     883                dprintf (("                OSS32_CAPS_PCM_RATE_16000"));
     884        if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_22050)
     885                dprintf (("                OSS32_CAPS_PCM_RATE_22050"));
     886        if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_32000)
     887                dprintf (("                OSS32_CAPS_PCM_RATE_32000"));
     888        if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_44100)
     889                dprintf (("                OSS32_CAPS_PCM_RATE_44100"));
     890        if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_48000)
     891                dprintf (("                OSS32_CAPS_PCM_RATE_48000"));
     892        if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_64000)
     893                dprintf (("                OSS32_CAPS_PCM_RATE_64000"));
     894        if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_88200)
     895                dprintf (("                OSS32_CAPS_PCM_RATE_88200"));
     896        if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_96000)
     897                dprintf (("                OSS32_CAPS_PCM_RATE_96000"));
     898        if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_176400)
     899                dprintf (("                OSS32_CAPS_PCM_RATE_176400"));
     900        if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_192000)
     901                dprintf (("                OSS32_CAPS_PCM_RATE_192000"));
     902        if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_HALFDUPLEX)
     903                dprintf (("                OSS32_CAPS_PCM_RATE_HALFDUPLEX"));
     904        if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_CONTINUOUS)
     905                dprintf (("                OSS32_CAPS_PCM_RATE_CONTINUOUS"));
     906        if (pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_KNOT)
     907                dprintf (("                OSS32_CAPS_PCM_RATE_KNOT"));
     908
     909
     910        dprintf (("  ulDataFormats %lxh",  pWaveCaps->ulDataFormats));
     911        if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_S8)
     912                dprintf (("                OSS32_CAPS_PCM_FORMAT_S8"));
     913        if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_U8)
     914                dprintf (("                OSS32_CAPS_PCM_FORMAT_U8"));
     915        if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_S16_LE)
     916                dprintf (("                OSS32_CAPS_PCM_FORMAT_S16_LE"));
     917        if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_S16_BE)
     918                dprintf (("                OSS32_CAPS_PCM_FORMAT_S16_BE"));
     919        if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_U16_LE)
     920                dprintf (("                OSS32_CAPS_PCM_FORMAT_U16_LE"));
     921        if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_U16_BE)
     922                dprintf (("                OSS32_CAPS_PCM_FORMAT_U16_BE"));
     923        if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_S24_LE)
     924                dprintf (("                OSS32_CAPS_PCM_FORMAT_S24_LE"));
     925        if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_S24_BE)
     926                dprintf (("                OSS32_CAPS_PCM_FORMAT_S24_BE"));
     927        if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_U24_LE)
     928                dprintf (("                OSS32_CAPS_PCM_FORMAT_U24_LE"));
     929        if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_U24_BE)
     930                dprintf (("                OSS32_CAPS_PCM_FORMAT_U24_BE"));
     931        if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_S32_LE)
     932                dprintf (("                OSS32_CAPS_PCM_FORMAT_S32_LE"));
     933        if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_S32_BE)
     934                dprintf (("                OSS32_CAPS_PCM_FORMAT_S32_BE"));
     935        if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_U32_LE)
     936                dprintf (("                OSS32_CAPS_PCM_FORMAT_U32_LE"));
     937        if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_U32_BE)
     938                dprintf (("                OSS32_CAPS_PCM_FORMAT_U32_BE"));
     939        if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_MULAW)
     940                dprintf (("                OSS32_CAPS_PCM_FORMAT_MULAW"));
     941        if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_ALAW)
     942                dprintf (("                OSS32_CAPS_PCM_FORMAT_ALAW"));
     943        if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_ADPCM)
     944                dprintf (("                OSS32_CAPS_PCM_FORMAT_ADPCM"));
     945        if (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_MPEG)
     946                dprintf (("                OSS32_CAPS_PCM_FORMAT_MPEG"));
    951947}
    952948//******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.