Changeset 483 for OCO/trunk/drv16/mixer.cpp
- Timestamp:
- May 6, 2010, 3:08:34 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
OCO/trunk/drv16/mixer.cpp
r478 r483 81 81 /* OSS32_MIX_VOLUME_SPEAKER */ MONOINSET & 0xF, 82 82 /* OSS32_MIX_VOLUME_PHONE */ PHONESET & 0xF, 83 /* OSS32_MIX_VOLUME_HEADPHONE */ -1, 83 /* OSS32_MIX_VOLUME_HEADPHONE */ -1, 84 84 /* OSS32_MIX_VOLUME_AUX */ AUXSET & 0xF, 85 85 /* OSS32_MIX_VOLUME_CAPTURE */ RECORDGAINSET & 0xF, … … 109 109 USHORT VolumeL, VolumeR; 110 110 111 //dprintf(("IoctlMixer Dev=%x Code=%x Data=%x", LDev, prp->s.ioctl.bCode, prp->s.ioctl.pvData)); 111 112 if((prp->s.ioctl.bCode & 0xF0) == 0x40) 112 113 { … … 123 124 if(prp->s.ioctl.bCode == RECORDSRCSET || 124 125 prp->s.ioctl.bCode == RECORDGAINSET || 125 prp->s.ioctl.bCode == STREAMVOLSET) 126 prp->s.ioctl.bCode == STREAMVOLSET) 126 127 { 127 128 if(pMixStruct->Mute != 2) { //don't save lock override value … … 149 150 } 150 151 151 if(prp->s.ioctl.bCode >= MONOINSET && prp->s.ioctl.bCode <= RECORDGAINSET) 152 if(prp->s.ioctl.bCode >= MONOINSET && prp->s.ioctl.bCode <= RECORDGAINSET) 152 153 { 153 154 int idx = prp->s.ioctl.bCode & 0xF; … … 198 199 break; 199 200 } 200 MixerSetProperty(MixerStreamId, OSS32_MIX_INPUTSRC, recsrc, 201 MixerSetProperty(MixerStreamId, OSS32_MIX_INPUTSRC, recsrc, 201 202 MIXFLAG_FORCE_UPDATE|MIXFLAG_IOCTL90); 202 203 break; … … 210 211 fRecGainIOCTL90 = TRUE; 211 212 //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), 213 214 MIXFLAG_FORCE_UPDATE|MIXFLAG_IOCTL90); 214 215 break; … … 223 224 224 225 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), 226 227 MIXFLAG_FORCE_UPDATE|MIXFLAG_IOCTL90); 227 228 break; … … 233 234 } 234 235 } 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) 237 238 { 238 239 int idx = prp->s.ioctl.bCode & 0xF; … … 289 290 return; 290 291 } 291 } 292 else 292 } 293 else 293 294 if(oldsem) { 294 295 if(DevHelp_CloseEventSem(oldsem) != 0) { … … 333 334 334 335 //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))) 336 337 { 337 338 dprintf(("MixerSetVolume: No input gain -> change line volume!!")); … … 359 360 } 360 361 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) 364 365 { 365 366 int idx = ALSAToIOCTL90Control[ulControl]; … … 409 410 } 410 411 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, 414 415 MixerSettingsALSA[ulControl].VolumeR); 415 416 } … … 424 425 ULONG ulVolume = 0; 425 426 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, 429 430 MixerSettingsALSA[ulControl].VolumeR); 430 431 } … … 435 436 //****************************************************************************** 436 437 void DBGCALLCONV MixerSuspend() 437 { 438 { 438 439 ULONG ulVolume; 439 440 int i; 440 441 441 442 //dprintf(("MixerSuspend")); 442 443 443 444 for(i=0;i<=OSS32_MIX_VOLUME_MAX;i++) { … … 470 471 int i; 471 472 472 473 //dprintf(("MixerRestoreState")); 473 474 474 475 //restore mixer control volume … … 586 587 587 588 if(hMixerNotifySem) { 588 589 //dprintf(("Notify mixer change")); 589 590 rc = DevHelp_PostEventSem(hMixerNotifySem); 590 591 if(rc != 0) { … … 611 612 USHORT lVolume, rVolume; 612 613 613 if(OSS16_MixOpen(LDev, &MixerStreamId) != OSSERR_SUCCESS) 614 if(OSS16_MixOpen(LDev, &MixerStreamId) != OSSERR_SUCCESS) 614 615 { 615 616 DebugInt3(); … … 617 618 return; 618 619 } 619 if(OSS16_MixQueryCaps(MixerStreamId, &mixcaps) != OSSERR_SUCCESS) 620 if(OSS16_MixQueryCaps(MixerStreamId, &mixcaps) != OSSERR_SUCCESS) 620 621 { 621 622 DebugInt3(); … … 685 686 ALSAIOCTLMap[VIDEOSET] = 1; 686 687 ALSAIOCTLMap[VIDEOQUERY] = 1; 687 688 688 689 //Set VIDEO 689 690 rp.s.ioctl.bCode = VIDEOSET; … … 702 703 mixinfo.Mute = 1; 703 704 mixinfo.VolumeR = mixinfo.VolumeL = 80; 704 IoctlMixer(&rp, LDev); 705 IoctlMixer(&rp, LDev); 705 706 } 706 707 if(mixcaps.fuCtrlCaps & OSS32_MIX_FLAG(OSS32_MIX_VOLUME_PHONE)) {
Note:
See TracChangeset
for help on using the changeset viewer.