Changeset 391

Show
Ignore:
Timestamp:
10/08/08 23:28:16 (8 weeks ago)
Author:
rjerant
Message:

Add GetHwPtr?() to code base

Location:
OCO/trunk
Files:
8 modified

Legend:

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

    r288 r391  
    151151{ 
    152152   IDC32_PACKET idcpacket; 
    153     
     153 
    154154   _fmemset(&idcpacket, 0, sizeof(idcpacket)); 
    155155 
     
    214214   _fmemset(&idcpacket, 0, sizeof(idcpacket)); 
    215215 
    216    if(SELECTOROF(pHwParams) != _SS())  
     216   if(SELECTOROF(pHwParams) != _SS()) 
    217217   {//must be located on the stack! 
    218218       dprintf(("OSS16_WaveSetFormat error. Invalid stack segment for parameters...")); 
     
    228228//****************************************************************************** 
    229229//****************************************************************************** 
    230 OSSRET DBGCALLCONV OSS16_WaveAddBuffer(OSSSTREAMID StreamId, LINEAR pBuffer, ULONG size,  
     230OSSRET DBGCALLCONV OSS16_WaveAddBuffer(OSSSTREAMID StreamId, LINEAR pBuffer, ULONG size, 
    231231                                       ULONG FAR *lpBytesTransferred) 
    232 {                    
     232{ 
    233233   IDC32_PACKET idcpacket; 
    234234   OSSRET       ret; 
     
    241241   idcpacket.buffer.size   = size; 
    242242   ret =  CallOSS32(IDC32_WAVE_ADDBUFFER, &idcpacket); 
    243     
     243 
    244244   *lpBytesTransferred = idcpacket.buffer.transferred; 
    245245   return ret; 
     
    257257   idcpacket.streamid      = StreamId; 
    258258   ret =  CallOSS32(IDC32_WAVE_GETPOS, &idcpacket); 
    259     
     259 
    260260   *lpPosition = idcpacket.getpos.position; 
    261261   return ret; 
     
    273273   idcpacket.streamid      = StreamId; 
    274274   ret =  CallOSS32(IDC32_WAVE_GETSPACE, &idcpacket); 
    275     
     275 
    276276   *lpBytesLeft = idcpacket.getspace.bytesavail; 
    277277   return ret; 
     
    279279//****************************************************************************** 
    280280//****************************************************************************** 
     281//****************************************************************************** 
     282//****************************************************************************** 
     283OSSRET DBGCALLCONV OSS16_WaveGetHwPtr(OSSSTREAMID StreamId, ULONG FAR *lpBytesLeft) 
     284{ 
     285   IDC32_PACKET idcpacket; 
     286   OSSRET       ret; 
     287 
     288   _fmemset(&idcpacket, 0, sizeof(idcpacket)); 
     289 
     290   idcpacket.fileid        = FindStreamFileId_fromStreamId(StreamId); 
     291   idcpacket.streamid      = StreamId; 
     292   ret =  CallOSS32(IDC32_WAVE_GETHWPTR, &idcpacket); 
     293 
     294   *lpBytesLeft = idcpacket.getspace.bytesavail; 
     295   return ret; 
     296} 
    281297OSSRET DBGCALLCONV OSS16_WaveSetVolume(OSSSTREAMID StreamId, ULONG volume) 
    282298{ 
     
    344360   _fmemset(&idcpacket, 0, sizeof(idcpacket)); 
    345361 
    346    if(SELECTOROF(buffer) != _SS())  
     362   if(SELECTOROF(buffer) != _SS()) 
    347363   {//must be located on the stack! 
    348364       DebugInt3(); 
     
    617633    ULONG idcptr  = (ULONG)IDCTable.ProtIDCEntry; 
    618634    ULONG idcparm; 
    619   
     635 
    620636    if(idcptr == 0) 
    621637            return OSSERR_ACCESS_DENIED; 
     
    673689{ 
    674690//    dprintf(("OSSIDC ep. cmd: %x param1: %x, param2: %x",cmd, param1, param2)); 
    675     switch(cmd & 0xFFFF)  
     691    switch(cmd & 0xFFFF) 
    676692    { 
    677693    case IDC16_INIT: 
     
    837853    if (pWaveCaps->ulChanFlags & OSS32_CAPS_PCM_CHAN_5_1) 
    838854        dprintf (("                OSS32_CAPS_PCM_CHAN_5_1")); 
    839      
     855 
    840856 
    841857    dprintf (("  ulMinRate     %ld",   pWaveCaps->ulMinRate)); 
  • OCO/trunk/drv16/waudio.cpp

    r369 r391  
    1313/**@internal %W% 
    1414 * @notes 
    15  *  The default for 8 bps is unsigned and signed for > 8 bps  
     15 *  The default for 8 bps is unsigned and signed for > 8 bps 
    1616 *  The default byte order for > 8 bps is little endian 
    1717 *  (important for devices that support both formats) 
     
    226226       //NOTE2: The default byte order for > 8 bps is little endian 
    227227 
    228        switch(ulBitsPerSample)  
     228       switch(ulBitsPerSample) 
    229229       { 
    230230       case 8: 
     
    234234           //default = signed 
    235235           ulFlags |= TWOS_COMPLEMENT; 
    236             
     236 
    237237           if(!(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_16BPS_LE)) 
    238238           { 
     
    242242           break; 
    243243       case 24: 
    244            if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_24BPS_SIGNED)  
     244           if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_24BPS_SIGNED) 
    245245           { 
    246246               ulFlags |= TWOS_COMPLEMENT; 
     
    255255           break; 
    256256       case 32: 
    257            if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_32BPS_SIGNED)  
     257           if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_32BPS_SIGNED) 
    258258           { 
    259259               ulFlags |= TWOS_COMPLEMENT; 
     
    284284       break; 
    285285 
    286    default:  
     286   default: 
    287287       DebugInt3(); 
    288288       return 0; 
     
    293293//Get the OSS data format for the specified stream parameters 
    294294//****************************************************************************** 
    295 ULONG WAVEAUDIO::QueryOSSDataFormat(ULONG ulOperation, ULONG ulDataType,  
     295ULONG WAVEAUDIO::QueryOSSDataFormat(ULONG ulOperation, ULONG ulDataType, 
    296296                                    ULONG ulBitsPerSample) 
    297297{ 
    298298   ULONG ulDataFormat; 
    299299   PWAVE_CAPS pWaveCaps; 
    300    
     300 
    301301   if(ulOperation == OPERATION_PLAY) { 
    302302        pWaveCaps = &devCaps[ulDeviceNr].waveOutCaps; 
     
    310310       //NOTE1: The default for 8 bps is unsigned and signed for > 8 bps !!! 
    311311       //NOTE2: The default byte order for > 8 bps is little endian 
    312        switch(ulBitsPerSample)  
     312       switch(ulBitsPerSample) 
    313313       { 
    314314       case 8: 
    315315           //Default is unsigned, so check that first 
    316            if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_U8)  
     316           if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_U8) 
    317317           { 
    318318                ulDataFormat = OSS32_PCM_FORMAT_U8; 
     
    323323       case 16: 
    324324           //Default is signed, so check that first 
    325            if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_16BPS_SIGNED)  
     325           if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_16BPS_SIGNED) 
    326326           {//signed LE or BE 
    327327               //Default is LE, so check that first 
    328                if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_16BPS_LE)  
     328               if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_16BPS_LE) 
    329329               { 
    330330                    ulDataFormat = OSS32_PCM_FORMAT_S16_LE; 
     
    332332               else ulDataFormat = OSS32_PCM_FORMAT_S16_BE; 
    333333           } 
    334            else  
     334           else 
    335335           {//unsigned LE or BE 
    336336               //Default is LE, so check that first 
    337                if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_16BPS_LE)  
     337               if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_16BPS_LE) 
    338338               { 
    339339                    ulDataFormat = OSS32_PCM_FORMAT_U16_LE; 
     
    345345       case 24: 
    346346           //Default is signed, so check that first 
    347            if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_24BPS_SIGNED)  
     347           if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_24BPS_SIGNED) 
    348348           {//signed LE or BE 
    349349               //Default is LE, so check that first 
    350                if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_24BPS_LE)  
     350               if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_24BPS_LE) 
    351351               { 
    352352                    ulDataFormat = OSS32_PCM_FORMAT_S24_LE; 
     
    354354               else ulDataFormat = OSS32_PCM_FORMAT_S24_BE; 
    355355           } 
    356            else  
     356           else 
    357357           {//unsigned LE or BE 
    358358               //Default is LE, so check that first 
    359                if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_24BPS_LE)  
     359               if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_24BPS_LE) 
    360360               { 
    361361                    ulDataFormat = OSS32_PCM_FORMAT_U24_LE; 
     
    367367       case 32: 
    368368           //Default is signed, so check that first 
    369            if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_32BPS_SIGNED)  
     369           if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_32BPS_SIGNED) 
    370370           {//signed LE or BE 
    371371               //Default is LE, so check that first 
    372                if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_32BPS_LE)  
     372               if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_32BPS_LE) 
    373373               { 
    374374                    ulDataFormat = OSS32_PCM_FORMAT_S32_LE; 
     
    376376               else ulDataFormat = OSS32_PCM_FORMAT_S32_BE; 
    377377           } 
    378            else  
     378           else 
    379379           {//unsigned LE or BE 
    380380               //Default is LE, so check that first 
    381                if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_32BPS_LE)  
     381               if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_32BPS_LE) 
    382382               { 
    383383                    ulDataFormat = OSS32_PCM_FORMAT_U32_LE; 
     
    406406       break; 
    407407 
    408    default:  
     408   default: 
    409409       DebugInt3(); 
    410410       return 0; 
     
    415415//Setup conversion type & factor required for specified wave data format 
    416416//****************************************************************************** 
    417 BOOL WAVEAUDIO::SetupConversion(PWAVECONFIGINFO pConfigInfo,  
    418                                 ULONG ulOperation, ULONG ulDataType,  
     417BOOL WAVEAUDIO::SetupConversion(PWAVECONFIGINFO pConfigInfo, 
     418                                ULONG ulOperation, ULONG ulDataType, 
    419419                                ULONG ulNumChannels, ULONG ulBitsPerSample) 
    420420{ 
     
    424424 
    425425    usConversion = CONVERT_NONE; 
    426      
     426 
    427427    if(ulOperation == OPERATION_PLAY) { 
    428428         pWaveCaps = &devCaps[ulDeviceNr].waveOutCaps; 
     
    464464    case DATATYPE_WAVEFORM: 
    465465    case PCM: 
    466         switch(ulBitsPerSample)  
     466        switch(ulBitsPerSample) 
    467467        { 
    468468        case 8: 
    469             if(!(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_8BPS))  
     469            if(!(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_8BPS)) 
    470470            { 
    471471                if(!(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_16BPS)) { 
     
    477477                else usConversion |= CONVERT_16_8; 
    478478 
    479                 if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_16BPS_SIGNED)  
     479                if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_16BPS_SIGNED) 
    480480                { 
    481481                    if(ulOperation == OPERATION_PLAY) { 
     
    487487            } 
    488488            else 
    489             if(!(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_U8) &&  
     489            if(!(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_U8) && 
    490490                (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_S8)) 
    491491            { 
     
    502502 
    503503        case 16: 
    504             if(!(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_16BPS))  
     504            if(!(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_16BPS)) 
    505505            { 
    506506                if(!(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_8BPS)) { 
    507507                    DebugInt3(); 
    508508                    return FALSE; 
    509                 }               
     509                } 
    510510                if(ulOperation == OPERATION_PLAY) 
    511511                     usConversion |= CONVERT_16_8; 
    512512                else usConversion |= CONVERT_8_16; 
    513              
    514                 if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_U8)  
     513 
     514                if(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_U8) 
    515515                { 
    516516                    if(ulOperation == OPERATION_PLAY) { 
     
    522522            } 
    523523            else 
    524             if(!(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_16BPS_SIGNED) &&  
    525                 (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_16BPS_UNSIGNED))  
     524            if(!(pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_16BPS_SIGNED) && 
     525                (pWaveCaps->ulDataFormats & OSS32_CAPS_PCM_FORMAT_16BPS_UNSIGNED)) 
    526526            { 
    527527                if(ulOperation == OPERATION_PLAY) 
     
    546546    case DATATYPE_ADPCM_AVC: 
    547547    case DATATYPE_CT_ADPCM: 
    548     default:  
     548    default: 
    549549        DebugInt3(); 
    550550        return FALSE; 
     
    615615        dprintf(("CONVERT_8_UNSIGNED_TO_8_UNSIGNED_STEREO_MONO")); 
    616616        break; 
    617      
     617 
    618618    case CONVERT_8_SIGNED_TO_8_SIGNED_STEREO_MONO: 
    619619        pConfigInfo->ulConversionFactor = CONVERSION_FACTOR(0,1);   //factor 0.5 
     
    718718        dprintf(("CONVERT_16_UNSIGNED_TO_16_UNSIGNED_STEREO_MONO")); 
    719719        break; 
    720      
     720 
    721721    case CONVERT_16_SIGNED_TO_16_SIGNED_STEREO_MONO: 
    722722        pConfigInfo->ulConversionFactor = CONVERSION_FACTOR(0,1);   //factor 0.5 
     
    754754        dprintf(("CONVERT_16_SIGNED_TO_8_UNSIGNED_STEREO_MONO")); 
    755755        break; 
    756      
     756 
    757757    default: 
    758758        pConfigInfo->ulConversionFactor = CONVERSION_FACTOR(0,0);   //factor 1 
     
    778778    } 
    779779 
    780     if(pConfigInfo->fSampleRateConversion)  
     780    if(pConfigInfo->fSampleRateConversion) 
    781781    { 
    782         if(QuerySampleFormat(ulOperation, pConfigInfo) == TRUE)  
     782        if(QuerySampleFormat(ulOperation, pConfigInfo) == TRUE) 
    783783        { 
    784784            if(pConfigInfo->ulHwBitsPerSample == 8) { 
     
    788788                else pConfigInfo->pfnSRateConv = SRateConvert8Mono; 
    789789            } 
    790             else  
     790            else 
    791791            if(pConfigInfo->ulHwBitsPerSample == 16) { 
    792792                if(pConfigInfo->ulHwNumChannels == 2) { 
     
    966966//Find the closest matching samplerate from the OSS srate capability flags 
    967967//****************************************************************************** 
    968 ULONG WAVEAUDIO::FindMatchingSampleRate(ULONG ulSampleRate, ULONG ulOSSSRateFlags,  
     968ULONG WAVEAUDIO::FindMatchingSampleRate(ULONG ulSampleRate, ULONG ulOSSSRateFlags, 
    969969                                        ULONG FAR *pulNrSampleRates, ULONG FAR *pulFixedSampleRate) 
    970970{ 
     
    980980    if(ulOSSSRateFlags & OSS32_CAPS_PCM_RATE_8000) { 
    981981        sampleRates[nrSampleRates++] = 8000; 
    982     }                                                
     982    } 
    983983    if(ulOSSSRateFlags & OSS32_CAPS_PCM_RATE_11025) { 
    984984        sampleRates[nrSampleRates++] = 11025; 
     
    10211021        if(nrSampleRates <= 2 && pulFixedSampleRate) { 
    10221022            //sampleRates[0] = 44100; /* hardware set to 44100 */ 
    1023             *pulFixedSampleRate = sampleRates[0];  
     1023            *pulFixedSampleRate = sampleRates[0]; 
    10241024            nrSampleRates = 1; 
    10251025        } 
     
    10531053 
    10541054    if ( pCaps->ulOperation != OPERATION_PLAY && 
    1055          pCaps->ulOperation != OPERATION_RECORD )  
     1055         pCaps->ulOperation != OPERATION_RECORD ) 
    10561056    { 
    10571057        pCaps->ulSupport = UNSUPPORTED_OPERATION; 
    10581058        return; 
    10591059    } 
    1060      
     1060 
    10611061    if(pCaps->ulOperation == OPERATION_PLAY) { 
    10621062         pWaveCaps = &devCaps[ulDeviceNr].waveOutCaps; 
     
    10641064    else pWaveCaps = &devCaps[ulDeviceNr].waveInCaps; 
    10651065 
    1066     // We always support stereo and mono  
    1067     if (pCaps->ulChannels != 1 && pCaps->ulChannels != 2)  
     1066    // We always support stereo and mono 
     1067    if (pCaps->ulChannels != 1 && pCaps->ulChannels != 2) 
    10681068    { 
    10691069        if(pCaps->ulChannels > pWaveCaps->ulMaxChannels) { 
     
    10791079    //Determine supported rates 
    10801080    ulSampleRate = pCaps->ulSamplingRate; //save the sampling rate called with 
    1081     
    1082     if(pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_CONTINUOUS)  
     1081 
     1082    if(pWaveCaps->ulRateFlags & OSS32_CAPS_PCM_RATE_CONTINUOUS) 
    10831083    {//supports all sample rates from min to max 
    10841084        if (ulSampleRate < pWaveCaps->ulMinRate) { 
     
    11111111    // Determine the ulDataSubType and update any format specific flags 
    11121112    // Note: All data types have more than one value. 
    1113     switch ( pCaps->ulDataType )  
     1113    switch ( pCaps->ulDataType ) 
    11141114    { 
    11151115    case DATATYPE_NULL: //Warp 3 buggy data type 
     
    11221122        case 16: 
    11231123            //NOTE: We always support 8 & 16 bits playback & recording; if the card 
    1124             //      can't handle one of these formats, then we'll convert the  
     1124            //      can't handle one of these formats, then we'll convert the 
    11251125            //      wave data ourselves (same for mono/stereo). 
    11261126            break; 
     
    11631163        pCaps->ulDataSubType = aaulAlaw[usSampleRateIndex][pCaps->ulChannels-1]; 
    11641164        break; 
    1165      
     1165 
    11661166    case DATATYPE_MULAW: 
    11671167    case DATATYPE_RIFF_MULAW: 
     
    11791179        pCaps->ulDataSubType = aaulMulaw[usSampleRateIndex][pCaps->ulChannels-1]; 
    11801180        break; 
    1181      
     1181 
    11821182    case DATATYPE_ADPCM_AVC: 
    11831183    case DATATYPE_CT_ADPCM: 
     
    11941194        pCaps->ulDataSubType = aaulMulaw[usSampleRateIndex][pCaps->ulChannels-1]; 
    11951195        break; 
    1196      
     1196 
    11971197    default: 
    11981198        pCaps->ulSupport = UNSUPPORTED_DATATYPE; 
    11991199        return; 
    12001200    } // end switch 
    1201      
     1201 
    12021202    pCaps->ulFlags |= FIXED        |    // Fixed length data 
    12031203                      LEFT_ALIGNED |    // Left align bits on byte bndry 
     
    12401240        pCaps->ulResourceUnits = 1; 
    12411241    } 
    1242      
     1242 
    12431243    if ( pCaps->ulOperation == OPERATION_PLAY) 
    12441244        pCaps->ulResourceClass = 1; 
     
    12871287#pragma on (unreferenced) 
    12881288{ 
    1289          ULONG  ulBytesPerIRQ;  
    1290           
     1289         ULONG  ulBytesPerIRQ; 
     1290 
    12911291#ifdef DEBUG 
    12921292    dprintf(("WAVEAUDIO::ConfigDev")); 
     
    13231323    } /* endswitch */ 
    13241324 
    1325           // Calculate the BytesPerIRQ 
    1326           // The BytesPerIRQ is the number of bytes consumed by this data format 
    1327           // for every interrupt generated by the codec. 
    1328           // This information is returned to the WAVESTREAM which uses it in 
    1329           // buffer management decisions.... 
    1330           // rjj Fix for Bug #18 28082008 
    1331           
    1332           ulBytesPerIRQ = pConfigInfo->ulSampleRate; 
    1333           ulBytesPerIRQ >>= 5; // 32 interrupts per second 
    1334                                // we can tweak this as needed but generally this should do rjj 
    1335           
    1336           if (pConfigInfo->ulBitsPerSample == 16) { 
    1337                 ulBytesPerIRQ <<= 1; 
    1338           } 
    1339           if (pConfigInfo->ulNumChannels == 2) { 
    1340                 ulBytesPerIRQ <<= 1; 
    1341           } 
    1342           // make sure it's an even multiple of 64 
    1343           ulBytesPerIRQ += 0x00000040; 
    1344           ulBytesPerIRQ &= 0xFFFFFFC0; 
    1345                  
    1346           if (ulBytesPerIRQ > 0x800) { 
    1347                 ulBytesPerIRQ = 0x800; 
    1348           } 
    1349           pConfigInfo->ulBytesPerIRQ = ulBytesPerIRQ; 
    1350  
    1351           // Calculate the PCMConsumeRate 
     1325    // Calculate the PCMConsumeRate 
    13521326    // The consume rate is the number of bytes consumed by this data format 
    13531327    // per second. It calculated by taking the following equation: 
     
    13571331    pConfigInfo->ulSampleSize     = (pConfigInfo->ulBitsPerSample*pConfigInfo->ulNumChannels)/8; 
    13581332    pConfigInfo->ulPCMConsumeRate = pConfigInfo->ulSampleRate * pConfigInfo->ulSampleSize; 
    1359      
     1333 
     1334    // Calculate the BytesPerIRQ 
     1335    // The BytesPerIRQ is the number of bytes consumed by this data format 
     1336    // for every interrupt generated by the codec. 
     1337    // This information is returned to the WAVESTREAM which uses it in 
     1338    // buffer management decisions.... 
     1339    // basic formula is  (sampling rate * ((BitsPerSample * NumChannels) /8) / Number of Interrupts per Second 
     1340    // or pConfigInfo->ulPCMConsumeRate / Number of Interrupts Per Second 
     1341    // rjj Fix for Bug #18 28082008 
     1342 
     1343    //ulBytesPerIRQ = pConfigInfo->ulPCMConsumeRate >> 5;  // 32 interrupts per second 
     1344    ulBytesPerIRQ = pConfigInfo->ulPCMConsumeRate >> 6;  // 64 interrupts per second 
     1345                                                         // we can tweak this as needed but generally this should do rjj 
     1346    // make sure it's an even multiple of 64 
     1347    ulBytesPerIRQ += 0x00000040; 
     1348    ulBytesPerIRQ &= 0xFFFFFFC0; 
     1349 
     1350    if (ulBytesPerIRQ > 0x800) { 
     1351          ulBytesPerIRQ = 0x800; 
     1352    } 
     1353    pConfigInfo->ulBytesPerIRQ = ulBytesPerIRQ; 
     1354 
     1355 
    13601356    return TRUE; 
    13611357} 
     
    14631459//NOTE: Can only be used for small numbers (up to about 4mb)!! (overflow) 
    14641460//****************************************************************************** 
    1465 ULONG WAVEAUDIO::ConvertLength(ULONG length, PWAVECONFIGINFO pConfigInfo)  
     1461ULONG WAVEAUDIO::ConvertLength(ULONG length, PWAVECONFIGINFO pConfigInfo) 
    14661462{ 
    14671463    ULONG newlen; 
     
    14751471    } 
    14761472    if(newlen && pConfigInfo->fSampleRateConversion) { 
    1477         newlen = SRATE_CONVERT_LENGTH(newlen, pConfigInfo->ulSRatePosition,  
     1473        newlen = SRATE_CONVERT_LENGTH(newlen, pConfigInfo->ulSRatePosition, 
    14781474                                      pConfigInfo->ulSRateIncrement); 
    14791475    }