Changeset 459


Ignore:
Timestamp:
Aug 24, 2009, 11:54:27 AM (16 years ago)
Author:
Paul Smedley
Message:

Only support sample rates >= 44100 for HDA cards

File:
1 edited

Legend:

Unmodified
Added
Removed
  • GPL/trunk/lib32/sound.c

    r456 r459  
    253253    ULONG fuOSSRates = 0;
    254254
    255     if(fuRates & SNDRV_PCM_RATE_5512) {
    256         fuOSSRates |= OSS32_CAPS_PCM_RATE_5512;
    257     }
    258     if(fuRates & SNDRV_PCM_RATE_8000) {
    259         fuOSSRates |= OSS32_CAPS_PCM_RATE_8000;
    260     }
    261     if(fuRates & SNDRV_PCM_RATE_11025) {
    262         fuOSSRates |= OSS32_CAPS_PCM_RATE_11025;
    263     }
    264     if(fuRates & SNDRV_PCM_RATE_16000) {
    265         fuOSSRates |= OSS32_CAPS_PCM_RATE_16000;
    266     }
    267     if(fuRates & SNDRV_PCM_RATE_22050) {
    268         fuOSSRates |= OSS32_CAPS_PCM_RATE_22050;
    269     }
    270     if(fuRates & SNDRV_PCM_RATE_32000) {
    271         fuOSSRates |= OSS32_CAPS_PCM_RATE_32000;
     255    char szMixerName[64];
     256    char szDeviceName[128];
     257    OSS32_QueryNames(OSS32_DEFAULT_DEVICE, szDeviceName,
     258                                sizeof(szDeviceName),szMixerName,
     259                                sizeof(szMixerName), TRUE);
     260    if (strncmp(szDeviceName,"HDA",3) != 0){
     261    /* non-HDA audio - support 5512 - 32000 Hz sample rates */
     262       if(fuRates & SNDRV_PCM_RATE_5512) {
     263           fuOSSRates |= OSS32_CAPS_PCM_RATE_5512;
     264       }
     265       if(fuRates & SNDRV_PCM_RATE_8000) {
     266           fuOSSRates |= OSS32_CAPS_PCM_RATE_8000;
     267       }
     268       if(fuRates & SNDRV_PCM_RATE_11025) {
     269           fuOSSRates |= OSS32_CAPS_PCM_RATE_11025;
     270       }
     271       if(fuRates & SNDRV_PCM_RATE_16000) {
     272           fuOSSRates |= OSS32_CAPS_PCM_RATE_16000;
     273       }
     274       if(fuRates & SNDRV_PCM_RATE_22050) {
     275           fuOSSRates |= OSS32_CAPS_PCM_RATE_22050;
     276       }
     277       if(fuRates & SNDRV_PCM_RATE_32000) {
     278           fuOSSRates |= OSS32_CAPS_PCM_RATE_32000;
     279       }
     280    } else {
     281       printk("HDA audio detected - don't support 5512 - 32000 Hz audio sample rates\n");
    272282    }
    273283    if(fuRates & SNDRV_PCM_RATE_44100) {
Note: See TracChangeset for help on using the changeset viewer.