Changeset 8492 for trunk/src/winmm/mixeros2.cpp
- Timestamp:
- May 25, 2002, 7:19:41 PM (23 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/winmm/mixeros2.cpp
r8485 r8492 1 /* $Id: mixeros2.cpp,v 1. 3 2002-05-24 18:02:48sandervl Exp $ */1 /* $Id: mixeros2.cpp,v 1.4 2002-05-25 17:19:41 sandervl Exp $ */ 2 2 3 3 /* … … 116 116 idx = RECORDSRCSET; 117 117 break; 118 case MIX_CTRL_VOL_IN_W_MONO: 119 case MIX_CTRL_VOL_IN_W_PHONE: 120 case MIX_CTRL_VOL_IN_W_MIC: 121 case MIX_CTRL_VOL_IN_W_LINE: 122 case MIX_CTRL_VOL_IN_W_CD: 123 case MIX_CTRL_VOL_IN_W_VIDEO: 124 case MIX_CTRL_VOL_IN_W_AUX: 125 case MIX_CTRL_VOL_IN_W_PCM: 126 idx = RECORDGAINSET; 127 break; 128 118 129 default: 119 130 return -1; … … 141 152 MIXSTRUCT mixstruct; 142 153 154 //TODO: implement master volume with MMPM2 155 if(dwControl == MIX_CTRL_VOL_OUT_LINE || dwControl == MIX_CTRL_MUTE_OUT_LINE) { 156 return TRUE; 157 } 158 143 159 dwFunc = OSLibMixGetIndex(dwControl); 144 160 if(dwFunc == -1) { … … 147 163 dwFunc += MONOINSET; 148 164 149 if(dwVolLeft > MIXER_ MAX_VOLUME || dwVolRight > MIXER_MAX_VOLUME) {165 if(dwVolLeft > MIXER_IOCTL90_MAX_VOLUME || dwVolRight > MIXER_IOCTL90_MAX_VOLUME) { 150 166 dprintf(("OSLibMixSetVolume: Volume (%d,%d) out of RANGE!!", dwVolLeft, dwVolRight)); 151 167 return FALSE; 152 168 } 153 169 mixstruct.Mute = fMute; 154 mixstruct.VolumeL = dwVolLeft;155 mixstruct.VolumeR = dwVolRight;170 mixstruct.VolumeL = WIN32_TO_IOCTL90_VOLUME(dwVolLeft); 171 mixstruct.VolumeR = WIN32_TO_IOCTL90_VOLUME(dwVolRight); 156 172 157 173 if(mixerapiIOCTL90(hPDDMix, dwFunc, &mixstruct, sizeof(mixstruct)) == TRUE) { … … 168 184 MIXSTRUCT mixstruct; 169 185 186 //TODO: implement master volume with MMPM2 187 if(dwControl == MIX_CTRL_VOL_OUT_LINE || dwControl == MIX_CTRL_MUTE_OUT_LINE) { 188 if(pfMute) *pfMute = 0; 189 if(pdwVolLeft) *pdwVolLeft = 50000; 190 if(pdwVolRight) *pdwVolRight = 50000; 191 return TRUE; 192 } 193 170 194 dwFunc = OSLibMixGetIndex(dwControl); 171 195 if(dwFunc == -1) { … … 177 201 return FALSE; 178 202 } 203 if(mixstruct.VolumeL > MIXER_IOCTL90_MAX_VOLUME || mixstruct.VolumeR > MIXER_IOCTL90_MAX_VOLUME) { 204 dprintf(("OSLibMixGetVolume: Volume (%d,%d) out of RANGE!!", mixstruct.VolumeL, mixstruct.VolumeR)); 205 } 206 mixstruct.VolumeL = min(MIXER_IOCTL90_MAX_VOLUME, mixstruct.VolumeL); 207 mixstruct.VolumeR = min(MIXER_IOCTL90_MAX_VOLUME, mixstruct.VolumeR); 208 179 209 if(pfMute) *pfMute = mixstruct.Mute; 180 if(pdwVolLeft) *pdwVolLeft = mixstruct.VolumeL; 181 if(pdwVolRight) *pdwVolRight = mixstruct.VolumeR; 182 183 if(mixstruct.VolumeL > MIXER_MAX_VOLUME || mixstruct.VolumeR > MIXER_MAX_VOLUME) { 184 dprintf(("OSLibMixGetVolume: Volume (%d,%d) out of RANGE!!", mixstruct.VolumeL, mixstruct.VolumeR)); 210 if(pdwVolLeft) *pdwVolLeft = IOCTL90_TO_WIN32_VOLUME(mixstruct.VolumeL); 211 if(pdwVolRight) *pdwVolRight = IOCTL90_TO_WIN32_VOLUME(mixstruct.VolumeR); 212 213 return TRUE; 214 } 215 /******************************************************************************/ 216 /******************************************************************************/ 217 BOOL OSLibMixGetCtrlCaps(DWORD dwControl, LONG *plMinimum, LONG *plMaximum, DWORD *pcSteps) 218 { 219 switch(dwControl) { 220 case MIX_CTRL_VOL_OUT_LINE: 221 *plMinimum = MIXER_WIN32_MIN_VOLUME; 222 *plMaximum = MIXER_WIN32_MAX_VOLUME; 223 *pcSteps = MIXER_WIN32_CSTEP_VOLUME; 224 break; 225 226 case MIX_CTRL_VOL_IN_L_MONO: 227 case MIX_CTRL_VOL_IN_L_PHONE: 228 case MIX_CTRL_VOL_IN_L_MIC: 229 case MIX_CTRL_VOL_IN_L_LINE: 230 case MIX_CTRL_VOL_IN_L_CD: 231 case MIX_CTRL_VOL_IN_L_VIDEO: 232 case MIX_CTRL_VOL_IN_L_AUX: 233 case MIX_CTRL_VOL_IN_L_PCM: 234 *plMinimum = MIXER_WIN32_MIN_VOLUME; 235 *plMaximum = MIXER_WIN32_MAX_VOLUME; 236 *pcSteps = MIXER_WIN32_CSTEP_VOLUME; 237 break; 238 239 case MIX_CTRL_VOL_IN_W_MONO: 240 case MIX_CTRL_VOL_IN_W_PHONE: 241 case MIX_CTRL_VOL_IN_W_MIC: 242 case MIX_CTRL_VOL_IN_W_LINE: 243 case MIX_CTRL_VOL_IN_W_CD: 244 case MIX_CTRL_VOL_IN_W_VIDEO: 245 case MIX_CTRL_VOL_IN_W_AUX: 246 case MIX_CTRL_VOL_IN_W_PCM: 247 *plMinimum = MIXER_WIN32_MIN_VOLUME; 248 *plMaximum = MIXER_WIN32_MAX_VOLUME; 249 *pcSteps = MIXER_WIN32_CSTEP_VOLUME; 250 break; 251 252 case MIX_CTRL_OUT_L_BASS: 253 case MIX_CTRL_OUT_L_TREBLE: 254 *plMinimum = MIXER_WIN32_MIN_VOLUME; 255 *plMaximum = MIXER_WIN32_MAX_VOLUME; 256 *pcSteps = MIXER_WIN32_CSTEP_VOLUME; 257 break; 258 259 case MIX_CTRL_OUT_L_3DCENTER: 260 case MIX_CTRL_OUT_L_3DDEPTH: 261 *plMinimum = MIXER_WIN32_MIN_VOLUME; 262 *plMaximum = MIXER_WIN32_MAX_VOLUME; 263 *pcSteps = MIXER_WIN32_CSTEP_VOLUME; 264 break; 265 default: 266 DebugInt3(); 185 267 return FALSE; 186 268 } … … 240 322 241 323 mixstruct.Mute = 0; 242 mixstruct.VolumeL = dwVolL;243 mixstruct.VolumeR = dwVolR;324 mixstruct.VolumeL = WIN32_TO_IOCTL90_VOLUME(dwVolL); 325 mixstruct.VolumeR = WIN32_TO_IOCTL90_VOLUME(dwVolR); 244 326 if(mixerapiIOCTL90(hPDDMix, RECORDGAINSET, &mixstruct, sizeof(mixstruct)) == FALSE) { 245 327 dprintf(("OSLibMixSetRecSource: mixerapiIOCTL90 RECORDGAINSET failed!!")); … … 290 372 } 291 373 if(pdwVolL) { 292 *pdwVolL = mixstruct.VolumeL;374 *pdwVolL = IOCTL90_TO_WIN32_VOLUME(mixstruct.VolumeL); 293 375 } 294 376 if(pdwVolR) { 295 *pdwVolR = mixstruct.VolumeR;377 *pdwVolR = IOCTL90_TO_WIN32_VOLUME(mixstruct.VolumeR); 296 378 } 297 379 return TRUE;
Note:
See TracChangeset
for help on using the changeset viewer.