Ignore:
Timestamp:
May 23, 2010, 10:28:06 PM (15 years ago)
Author:
David Azarewicz
Message:

add ability to set volume on headphone, code cleanup

File:
1 edited

Legend:

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

    r483 r486  
    5050static int IOCTL90ToALSAControl[IOCTL90_MAX_CONTROLS][3] = {
    5151// IOCTL90 id       ALSA id,                 ALSA id 2,              fIsProperty
    52 /* MONOIN        */ OSS32_MIX_VOLUME_SPEAKER,  -1,                     FALSE,
    53 /* PHONESET      */ OSS32_MIX_VOLUME_PHONE,  -1,                     FALSE,
    54 /* MICSET        */ OSS32_MIX_VOLUME_MIC,    -1,                     FALSE,
    55 /* LINESET       */ OSS32_MIX_VOLUME_LINEIN, -1,                     FALSE,
    56 /* CDSET         */ OSS32_MIX_VOLUME_CD,     -1,                     FALSE,
    57 /* VIDEOSET      */ OSS32_MIX_VOLUME_VIDEO,  -1,                     FALSE,
    58 /* AUXSET        */ OSS32_MIX_VOLUME_AUX,    -1,                     FALSE,
    59 /* none          */ -1,                      -1,                     FALSE,
    60 /* none          */ -1,                      -1,                     FALSE,
    61 /* none          */ -1,                      -1,                     FALSE,
    62 /* none          */ -1,                      -1,                     FALSE,
    63 /* BASSTREBLESET */ OSS32_MIX_LEVEL_BASS,    OSS32_MIX_LEVEL_TREBLE, TRUE,
    64 /* THREEDSET     */ -1,                      -1,                     FALSE,
    65 /* STREAMVOLSET  */ OSS32_MIX_VOLUME_PCM,    -1,                     FALSE,
    66 /* RECORDSRCSET  */ OSS32_MIX_INPUTSRC,      -1,                     TRUE,
    67 /* RECORDGAINSET */ OSS32_MIX_VOLUME_CAPTURE,-1,                     FALSE,
     52/* MONOIN        */ OSS32_MIX_VOLUME_SPEAKER,   -1,                     FALSE,
     53/* PHONESET      */ OSS32_MIX_VOLUME_PHONE,     -1,                     FALSE,
     54/* MICSET        */ OSS32_MIX_VOLUME_MIC,       -1,                     FALSE,
     55/* LINESET       */ OSS32_MIX_VOLUME_LINEIN,    -1,                     FALSE,
     56/* CDSET         */ OSS32_MIX_VOLUME_CD,        -1,                     FALSE,
     57/* VIDEOSET      */ OSS32_MIX_VOLUME_VIDEO,     -1,                     FALSE,
     58/* AUXSET        */ OSS32_MIX_VOLUME_AUX,       -1,                     FALSE,
     59/* HEADPHONESET  */ OSS32_MIX_VOLUME_HEADPHONE, -1,                     FALSE,
     60/* none          */ -1,                         -1,                     FALSE,
     61/* none          */ -1,                         -1,                     FALSE,
     62/* none          */ -1,                         -1,                     FALSE,
     63/* BASSTREBLESET */ OSS32_MIX_LEVEL_BASS,    OSS32_MIX_LEVEL_TREBLE,    TRUE,
     64/* THREEDSET     */ -1,                         -1,                     FALSE,
     65/* STREAMVOLSET  */ OSS32_MIX_VOLUME_PCM,       -1,                     FALSE,
     66/* RECORDSRCSET  */ OSS32_MIX_INPUTSRC,         -1,                     TRUE,
     67/* RECORDGAINSET */ OSS32_MIX_VOLUME_CAPTURE,   -1,                     FALSE,
    6868};
    6969
     
    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     */   HEADPHONESET & 0xF,
    8484/* OSS32_MIX_VOLUME_AUX           */   AUXSET & 0xF,
    8585/* OSS32_MIX_VOLUME_CAPTURE       */   RECORDGAINSET & 0xF,
     
    313313BOOL DBGCALLCONV MixerSetWaveVolume(OSSSTREAMID mixerStreamId, OSSSTREAMID StreamId, ULONG Volume, int fFlags)
    314314{
     315    dprintf(("MixerSetWaveVolume Vol=%lx", Volume));
    315316    if(!fSetWaveVolume || OSS16_WaveSetVolume(StreamId, Volume) != OSSERR_SUCCESS) {
    316317        fSetWaveVolume = FALSE;
     
    327328    BOOL fInputGainHack = FALSE;
    328329
     330    dprintf(("MixerSetVolume Ctl=%lx Vol=%lx", ulControl, ulVolume));
    329331    if(!(fFlags & MIXFLAG_FORCE_UPDATE) && fRecGainIOCTL90 && ulControl == OSS32_MIX_VOLUME_CAPTURE)
    330332        return TRUE;    //locked
     
    649651    }
    650652    if(mixcaps.fuCtrlCaps & OSS32_MIX_FLAG(OSS32_MIX_VOLUME_MIDI)) {
     653                dprintf(("MixerInit: MIX_VOLUME_MIDI not processed"));
    651654    }
    652655    if(mixcaps.fuCtrlCaps & OSS32_MIX_FLAG(OSS32_MIX_VOLUME_LINEIN)) {
     
    717720    }
    718721    if(mixcaps.fuCtrlCaps & OSS32_MIX_FLAG(OSS32_MIX_VOLUME_HEADPHONE)) {
     722        ALSAIOCTLMap[HEADPHONESET]     = 1;
     723        ALSAIOCTLMap[HEADPHONEQUERY]   = 1;
     724
     725        //Set HEADPHONE
     726        rp.s.ioctl.bCode  = HEADPHONESET;
     727        rp.s.ioctl.pvData = (void FAR *)&mixinfo;
     728        mixinfo.Mute    = 0;
     729        mixinfo.VolumeR = mixinfo.VolumeL = 80;
     730        IoctlMixer(&rp, LDev);
     731//              dprintf(("MixerInit: MIX_VOLUME_HEADPHONE not processed"));
    719732    }
    720733    if(mixcaps.fuCtrlCaps & OSS32_MIX_FLAG(OSS32_MIX_VOLUME_AUX)) {
Note: See TracChangeset for help on using the changeset viewer.