Ignore:
Timestamp:
May 23, 2002, 3:50:16 PM (23 years ago)
Author:
sandervl
Message:

mixer updates

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/winmm/mixeros2.cpp

    r8472 r8477  
    1 /* $Id: mixeros2.cpp,v 1.1 2002-05-22 20:19:11 sandervl Exp $ */
     1/* $Id: mixeros2.cpp,v 1.2 2002-05-23 13:50:15 sandervl Exp $ */
    22
    33/*
     
    7373
    7474    switch(dwControl) {
    75     case MIXER_CTRL_MONOIN:
     75    case MIX_CTRL_VOL_IN_L_MONO:
     76    case MIX_CTRL_MUTE_IN_L_MONO:
    7677        idx = MONOINSET;
    7778        break;
    78     case MIXER_CTRL_PHONE:
     79    case MIX_CTRL_VOL_IN_L_PHONE:
     80    case MIX_CTRL_MUTE_IN_L_PHONE:
    7981        idx = PHONESET;
    8082        break;
    81     case MIXER_CTRL_MIC:
     83    case MIX_CTRL_VOL_IN_L_MIC:
     84    case MIX_CTRL_MUTE_IN_L_MIC:
    8285        idx = MICSET;
    8386        break;
    84     case MIXER_CTRL_LINE:
     87    case MIX_CTRL_VOL_IN_L_LINE:
     88    case MIX_CTRL_MUTE_IN_L_LINE:
    8589        idx = LINESET;
    8690        break;
    87     case MIXER_CTRL_CD:
     91    case MIX_CTRL_VOL_IN_L_CD:
     92    case MIX_CTRL_MUTE_IN_L_CD:
    8893        idx = CDSET;
    8994        break;
    90     case MIXER_CTRL_VIDEO:
     95    case MIX_CTRL_VOL_IN_L_VIDEO:
     96    case MIX_CTRL_MUTE_IN_L_VIDEO:
    9197        idx = VIDEOSET;
    9298        break;
    93     case MIXER_CTRL_AUX:
     99    case MIX_CTRL_VOL_IN_L_AUX:
     100    case MIX_CTRL_MUTE_IN_L_AUX:
    94101        idx = AUXSET;
    95102        break;
    96     case MIXER_CTRL_BASS:
     103    case MIX_CTRL_OUT_L_BASS:
     104    case MIX_CTRL_OUT_L_TREBLE:
    97105        idx = BASSTREBLESET;
    98106        break;
    99     case MIXER_CTRL_TREBLE:
    100         idx = BASSTREBLESET;
    101         break;
    102     case MIXER_CTRL_3D:
     107    case MIX_CTRL_OUT_L_3DCENTER:
     108    case MIX_CTRL_OUT_L_3DDEPTH:
    103109        idx = THREEDSET;
    104110        break;
    105     case MIXER_CTRL_STREAMVOL:
     111    case MIX_CTRL_VOL_IN_L_PCM:
     112    case MIX_CTRL_MUTE_IN_L_PCM:
    106113        idx = STREAMVOLSET;
    107114        break;
    108     case MIXER_CTRL_RECORDSRC:
     115    case MIX_CTRL_MUX_IN_W_SRC:
    109116        idx = RECORDSRCSET;
    110117        break;
    111     case MIXER_CTRL_RECORDGAIN:
    112         idx = RECORDGAINSET;
    113         break;
    114118    default:
    115         DebugInt3();
    116119        return -1;
    117120    }
     
    188191/******************************************************************************/
    189192/******************************************************************************/
    190 BOOL OSLibMixSetRecSource(DWORD dwRecSrc)
     193BOOL OSLibMixIsRecSourcePresent(DWORD dwRecSrc)
     194{
     195    DWORD dwOldRecSrc, dwVolL, dwVolR;
     196
     197    if(OSLibMixGetRecSource(&dwOldRecSrc, &dwVolL, &dwVolR) == FALSE) {
     198        return FALSE;
     199    }
     200    if(OSLibMixSetRecSource(dwRecSrc, dwVolL, dwVolR) == FALSE) {
     201        return FALSE;
     202    }
     203    OSLibMixSetRecSource(dwOldRecSrc, dwVolL, dwVolR);
     204    return TRUE;
     205}
     206/******************************************************************************/
     207/******************************************************************************/
     208BOOL OSLibMixSetRecSource(DWORD dwRecSrc, DWORD dwVolL, DWORD dwVolR)
    191209{
    192210    DWORD idx;
     
    194212
    195213    switch(dwRecSrc) {
    196     case MIXER_RECSRC_MIC:
     214    case MIX_CTRL_VOL_IN_W_MIC:
    197215        idx = I90SRC_MIC;
    198216        break;
    199     case MIXER_RECSRC_CD:
     217    case MIX_CTRL_VOL_IN_W_CD:
    200218        idx = I90SRC_CD;
    201219        break;
    202     case MIXER_RECSRC_VIDEO:
     220    case MIX_CTRL_VOL_IN_W_VIDEO:
    203221        idx = I90SRC_VIDEO;
    204222        break;
    205     case MIXER_RECSRC_AUX:
     223    case MIX_CTRL_VOL_IN_W_AUX:
    206224        idx = I90SRC_AUX;
    207225        break;
    208     case MIXER_RECSRC_LINE:
     226    case MIX_CTRL_VOL_IN_W_LINE:
    209227        idx = I90SRC_LINE;
    210228        break;
    211     case MIXER_RECSRC_RES5:
    212         idx = I90SRC_RES5;
    213         break;
    214     case MIXER_RECSRC_RES6:
    215         idx = I90SRC_RES6;
    216         break;
    217     case MIXER_RECSRC_PHONE:
     229    case MIX_CTRL_VOL_IN_W_PHONE:
    218230        idx = I90SRC_PHONE;
     231        break;
     232    default:
     233        return FALSE;
     234    }
     235    mixstruct.Mute    = 0;
     236    mixstruct.VolumeL = idx;
     237
     238    if(mixerapiIOCTL90(hPDDMix, RECORDSRCSET, &mixstruct, sizeof(mixstruct)) == FALSE) {
     239        dprintf(("OSLibMixSetRecSource: mixerapiIOCTL90 RECORDSRCSET failed!!"));
     240        return FALSE;
     241    }
     242
     243    mixstruct.Mute    = 0;
     244    mixstruct.VolumeL = dwVolL;
     245    mixstruct.VolumeR = dwVolR;
     246    if(mixerapiIOCTL90(hPDDMix, RECORDGAINSET, &mixstruct, sizeof(mixstruct)) == FALSE) {
     247        dprintf(("OSLibMixSetRecSource: mixerapiIOCTL90 RECORDGAINSET failed!!"));
     248        return FALSE;
     249    }
     250    return TRUE;
     251}
     252/******************************************************************************/
     253/******************************************************************************/
     254BOOL OSLibMixGetRecSource(DWORD *pdwRecSrc, DWORD *pdwVolL, DWORD *pdwVolR)
     255{
     256    DWORD idx;
     257    MIXSTRUCT mixstruct;
     258
     259    if(mixerapiIOCTL90(hPDDMix, RECORDSRCQUERY, &mixstruct, sizeof(mixstruct)) == FALSE) {
     260        dprintf(("OSLibMixSetRecSource: mixerapiIOCTL90 RECORDSRCGET failed!!"));
     261        return FALSE;
     262    }
     263    switch(mixstruct.VolumeL) {
     264    case I90SRC_MIC:
     265        idx = MIX_CTRL_VOL_IN_W_MIC;
     266        break;
     267    case I90SRC_CD:
     268        idx = MIX_CTRL_VOL_IN_W_CD;
     269        break;
     270    case I90SRC_VIDEO:
     271        idx = MIX_CTRL_VOL_IN_W_VIDEO;
     272        break;
     273    case I90SRC_AUX:
     274        idx = MIX_CTRL_VOL_IN_W_AUX;
     275        break;
     276    case I90SRC_LINE:
     277        idx = MIX_CTRL_VOL_IN_W_LINE;
     278        break;
     279    case I90SRC_PHONE:
     280        idx = MIX_CTRL_VOL_IN_W_PHONE;
    219281        break;
    220282    default:
     
    222284        return FALSE;
    223285    }
    224     mixstruct.Mute    = 0;
    225     mixstruct.VolumeL = idx;
    226 
    227     if(mixerapiIOCTL90(hPDDMix, RECORDSRCSET, &mixstruct, sizeof(mixstruct)) == TRUE) {
    228         return TRUE;
    229     }
    230     dprintf(("OSLibMixSetRecSource: mixerapiIOCTL90 RECORDSRCSET failed!!"));
    231     return FALSE;
    232 }
    233 /******************************************************************************/
    234 /******************************************************************************/
    235 BOOL OSLibMixGetRecSource(DWORD *pdwRecSrc)
    236 {
    237     DWORD idx;
    238     MIXSTRUCT mixstruct;
    239 
    240     if(mixerapiIOCTL90(hPDDMix, RECORDSRCQUERY, &mixstruct, sizeof(mixstruct)) == FALSE) {
    241         dprintf(("OSLibMixSetRecSource: mixerapiIOCTL90 RECORDSRCGET failed!!"));
    242         return FALSE;
    243     }
    244     switch(mixstruct.VolumeL) {
    245     case I90SRC_MIC:
    246         idx = MIXER_RECSRC_MIC;
    247         break;
    248     case I90SRC_CD:
    249         idx = MIXER_RECSRC_CD;
    250         break;
    251     case I90SRC_VIDEO:
    252         idx = MIXER_RECSRC_VIDEO;
    253         break;
    254     case I90SRC_AUX:
    255         idx = MIXER_RECSRC_AUX;
    256         break;
    257     case I90SRC_LINE:
    258         idx = MIXER_RECSRC_LINE;
    259         break;
    260     case I90SRC_RES5:
    261         idx = MIXER_RECSRC_RES5;
    262         break;
    263     case I90SRC_RES6:
    264         idx = MIXER_RECSRC_RES6;
    265         break;
    266     case I90SRC_PHONE:
    267         idx = MIXER_RECSRC_PHONE;
    268         break;
    269     default:
    270         DebugInt3();
    271         return FALSE;
    272     }
    273286    if(pdwRecSrc) {
    274287        *pdwRecSrc = idx;
     288    }
     289    if(mixerapiIOCTL90(hPDDMix, RECORDGAINQUERY, &mixstruct, sizeof(mixstruct)) == FALSE) {
     290        dprintf(("OSLibMixSetRecSource: mixerapiIOCTL90 RECORDGAINQUERY failed!!"));
     291        return FALSE;
     292    }
     293    if(pdwVolL) {
     294        *pdwVolL = mixstruct.VolumeL;
     295    }
     296    if(pdwVolR) {
     297        *pdwVolR = mixstruct.VolumeR;
    275298    }
    276299    return TRUE;
Note: See TracChangeset for help on using the changeset viewer.