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/mixer.cpp

    r478 r483  
    8181/* OSS32_MIX_VOLUME_SPEAKER       */   MONOINSET & 0xF,
    8282/* OSS32_MIX_VOLUME_PHONE         */   PHONESET & 0xF,
    83 /* OSS32_MIX_VOLUME_HEADPHONE     */   -1, 
     83/* OSS32_MIX_VOLUME_HEADPHONE     */   -1,
    8484/* OSS32_MIX_VOLUME_AUX           */   AUXSET & 0xF,
    8585/* OSS32_MIX_VOLUME_CAPTURE       */   RECORDGAINSET & 0xF,
     
    109109    USHORT    VolumeL, VolumeR;
    110110
     111    //dprintf(("IoctlMixer Dev=%x Code=%x Data=%x", LDev, prp->s.ioctl.bCode, prp->s.ioctl.pvData));
    111112    if((prp->s.ioctl.bCode & 0xF0) == 0x40)
    112113    {
     
    123124        if(prp->s.ioctl.bCode == RECORDSRCSET ||
    124125           prp->s.ioctl.bCode == RECORDGAINSET ||
    125            prp->s.ioctl.bCode == STREAMVOLSET) 
     126           prp->s.ioctl.bCode == STREAMVOLSET)
    126127        {
    127128             if(pMixStruct->Mute != 2) { //don't save lock override value
     
    149150    }
    150151
    151     if(prp->s.ioctl.bCode >= MONOINSET && prp->s.ioctl.bCode <= RECORDGAINSET) 
     152    if(prp->s.ioctl.bCode >= MONOINSET && prp->s.ioctl.bCode <= RECORDGAINSET)
    152153    {
    153154        int idx = prp->s.ioctl.bCode & 0xF;
     
    198199                break;
    199200            }
    200             MixerSetProperty(MixerStreamId, OSS32_MIX_INPUTSRC, recsrc, 
     201            MixerSetProperty(MixerStreamId, OSS32_MIX_INPUTSRC, recsrc,
    201202                             MIXFLAG_FORCE_UPDATE|MIXFLAG_IOCTL90);
    202203            break;
     
    210211            fRecGainIOCTL90 = TRUE;
    211212            //must use left volume value only
    212             MixerSetVolume(MixerStreamId, OSS32_MIX_VOLUME_CAPTURE, MAKE_VOLUME_LR(VolumeL, VolumeL), 
     213            MixerSetVolume(MixerStreamId, OSS32_MIX_VOLUME_CAPTURE, MAKE_VOLUME_LR(VolumeL, VolumeL),
    213214                           MIXFLAG_FORCE_UPDATE|MIXFLAG_IOCTL90);
    214215            break;
     
    223224
    224225            fPCMVolIOCTL90 = TRUE;
    225             MixerSetVolume(MixerStreamId, OSS32_MIX_VOLUME_PCM, MAKE_VOLUME_LR(VolumeL, VolumeR), 
     226            MixerSetVolume(MixerStreamId, OSS32_MIX_VOLUME_PCM, MAKE_VOLUME_LR(VolumeL, VolumeR),
    226227                           MIXFLAG_FORCE_UPDATE|MIXFLAG_IOCTL90);
    227228            break;
     
    233234        }
    234235    }
    235     else 
    236     if(prp->s.ioctl.bCode >= MONOINQUERY && prp->s.ioctl.bCode <= RECORDGAINQUERY) 
     236    else
     237    if(prp->s.ioctl.bCode >= MONOINQUERY && prp->s.ioctl.bCode <= RECORDGAINQUERY)
    237238     {
    238239        int idx = prp->s.ioctl.bCode & 0xF;
     
    289290                return;
    290291            }
    291         }       
    292         else 
     292        }
     293        else
    293294        if(oldsem) {
    294295            if(DevHelp_CloseEventSem(oldsem) != 0) {
     
    333334
    334335    //if input gain is not supported by hardware, then change line volume
    335     if(ulControl == OSS32_MIX_VOLUME_CAPTURE && !(mixcaps.fuCtrlCaps & OSS32_MIX_FLAG(OSS32_MIX_VOLUME_CAPTURE))) 
     336    if(ulControl == OSS32_MIX_VOLUME_CAPTURE && !(mixcaps.fuCtrlCaps & OSS32_MIX_FLAG(OSS32_MIX_VOLUME_CAPTURE)))
    336337    {
    337338        dprintf(("MixerSetVolume: No input gain -> change line volume!!"));
     
    359360    }
    360361
    361     if(!(fFlags & MIXFLAG_DONTSAVE)) 
    362     {
    363         if(ulControl < OSS32_MIX_MAX_CONTROLS && ALSAToIOCTL90Control[ulControl] != -1) 
     362    if(!(fFlags & MIXFLAG_DONTSAVE))
     363    {
     364        if(ulControl < OSS32_MIX_MAX_CONTROLS && ALSAToIOCTL90Control[ulControl] != -1)
    364365        {
    365366            int idx = ALSAToIOCTL90Control[ulControl];
     
    409410    }
    410411
    411     if(ulControl < OSS32_MIX_MAX_CONTROLS && (mixcaps.fuCtrlCaps & OSS32_MIX_FLAG(ulControl))) 
    412     {
    413         ulVolume = MAKE_VOLUME_LR(MixerSettingsALSA[ulControl].VolumeL, 
     412    if(ulControl < OSS32_MIX_MAX_CONTROLS && (mixcaps.fuCtrlCaps & OSS32_MIX_FLAG(ulControl)))
     413    {
     414        ulVolume = MAKE_VOLUME_LR(MixerSettingsALSA[ulControl].VolumeL,
    414415                                  MixerSettingsALSA[ulControl].VolumeR);
    415416    }
     
    424425    ULONG ulVolume = 0;
    425426
    426     if(ulControl < OSS32_MIX_MAX_CONTROLS && (mixcaps.fuCtrlCaps & OSS32_MIX_FLAG(ulControl))) 
    427     {
    428         ulVolume = MAKE_VOLUME_LR(MixerSettingsALSA[ulControl].VolumeL, 
     427    if(ulControl < OSS32_MIX_MAX_CONTROLS && (mixcaps.fuCtrlCaps & OSS32_MIX_FLAG(ulControl)))
     428    {
     429        ulVolume = MAKE_VOLUME_LR(MixerSettingsALSA[ulControl].VolumeL,
    429430                                  MixerSettingsALSA[ulControl].VolumeR);
    430431    }
     
    435436//******************************************************************************
    436437void DBGCALLCONV MixerSuspend()
    437 { 
     438{
    438439    ULONG ulVolume;
    439440    int i;
    440441
    441     dprintf(("MixerSuspend"));
     442        //dprintf(("MixerSuspend"));
    442443
    443444    for(i=0;i<=OSS32_MIX_VOLUME_MAX;i++) {
     
    470471    int i;
    471472
    472     dprintf(("MixerRestoreState"));
     473        //dprintf(("MixerRestoreState"));
    473474
    474475    //restore mixer control volume
     
    586587
    587588    if(hMixerNotifySem) {
    588         dprintf(("Notify mixer change"));
     589                //dprintf(("Notify mixer change"));
    589590        rc = DevHelp_PostEventSem(hMixerNotifySem);
    590591        if(rc != 0) {
     
    611612    USHORT lVolume, rVolume;
    612613
    613     if(OSS16_MixOpen(LDev, &MixerStreamId) != OSSERR_SUCCESS) 
     614    if(OSS16_MixOpen(LDev, &MixerStreamId) != OSSERR_SUCCESS)
    614615    {
    615616        DebugInt3();
     
    617618        return;
    618619    }
    619     if(OSS16_MixQueryCaps(MixerStreamId, &mixcaps) != OSSERR_SUCCESS) 
     620    if(OSS16_MixQueryCaps(MixerStreamId, &mixcaps) != OSSERR_SUCCESS)
    620621    {
    621622        DebugInt3();
     
    685686        ALSAIOCTLMap[VIDEOSET]         = 1;
    686687        ALSAIOCTLMap[VIDEOQUERY]       = 1;
    687    
     688
    688689        //Set VIDEO
    689690        rp.s.ioctl.bCode  = VIDEOSET;
     
    702703        mixinfo.Mute    = 1;
    703704        mixinfo.VolumeR = mixinfo.VolumeL = 80;
    704         IoctlMixer(&rp, LDev);   
     705        IoctlMixer(&rp, LDev);
    705706    }
    706707    if(mixcaps.fuCtrlCaps & OSS32_MIX_FLAG(OSS32_MIX_VOLUME_PHONE)) {
Note: See TracChangeset for help on using the changeset viewer.