Changeset 55404 in vbox
- Timestamp:
- Apr 23, 2015 10:53:41 AM (9 years ago)
- Location:
- trunk/src/VBox/Devices/Audio
- Files:
-
- 3 edited
-
DevIchHda.cpp (modified) (2 diffs)
-
DevIchHdaCodec.cpp (modified) (7 diffs)
-
DevIchHdaCodec.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Audio/DevIchHda.cpp
r55388 r55404 2516 2516 } 2517 2517 2518 PDMAUDIOVOLUME vol = { false, 255, 255 };2519 audioMixerSetSinkVolume(pThis->pSinkOutput, &vol);2520 2521 2518 LogFlowFuncLeaveRC(rc); 2522 2519 return rc; 2523 2520 } 2524 2521 2525 static DECLCALLBACK(int) hdaSetVolume(PHDASTATE pThis, 2522 static DECLCALLBACK(int) hdaSetVolume(PHDASTATE pThis, ENMSOUNDSOURCE enmSource, 2526 2523 bool fMute, uint8_t uVolLeft, uint8_t uVolRight) 2527 2524 { 2528 int rc = VINF_SUCCESS; 2529 2530 PDMAUDIOVOLUME vol = { fMute, uVolLeft, uVolRight }; 2531 audioMixerSetMasterVolume(pThis->pMixer, &vol); 2525 int rc = VINF_SUCCESS; 2526 PDMAUDIOVOLUME vol = { fMute, uVolLeft, uVolRight }; 2527 PAUDMIXSINK pSink; 2528 2529 /* Convert the audio source to corresponding sink. */ 2530 switch (enmSource) { 2531 case PO_INDEX: 2532 pSink = pThis->pSinkOutput; 2533 break; 2534 case PI_INDEX: 2535 pSink = pThis->pSinkLineIn; 2536 break; 2537 case MC_INDEX: 2538 pSink = pThis->pSinkMicIn; 2539 break; 2540 default: 2541 AssertFailedReturn(VERR_INVALID_PARAMETER); 2542 } 2543 2544 /* Set the volume. Codec already converted it to the correct range. */ 2545 audioMixerSetSinkVolume(pSink, &vol); 2532 2546 2533 2547 LogFlowFuncLeaveRC(rc); … … 3868 3882 rc = audioMixerAddSink(pThis->pMixer, "[Recording] Microphone In", 3869 3883 AUDMIXSINKDIR_INPUT, &pThis->pSinkMicIn); 3884 AssertRC(rc); 3885 3886 /* There is no master volume control. Set the master to max. */ 3887 PDMAUDIOVOLUME vol = { false, 255, 255 }; 3888 rc = audioMixerSetMasterVolume(pThis->pMixer, &vol); 3870 3889 AssertRC(rc); 3871 3890 } -
trunk/src/VBox/Devices/Audio/DevIchHdaCodec.cpp
r55394 r55404 1174 1174 { 1175 1175 uint32_t dir = AMPLIFIER_OUT; 1176 ENMSOUNDSOURCE enmSrc; 1176 1177 switch (mt) 1177 1178 { 1178 1179 #ifdef VBOX_WITH_PDM_AUDIO_DRIVER 1179 case PDMAUDIOMIXERCTL_VOLUME:1180 1180 case PDMAUDIOMIXERCTL_PCM: 1181 enmSrc = PO_INDEX; 1181 1182 #else 1182 1183 case AUD_MIXER_VOLUME: … … 1187 1188 #ifdef VBOX_WITH_PDM_AUDIO_DRIVER 1188 1189 case PDMAUDIOMIXERCTL_LINE_IN: 1190 enmSrc = PI_INDEX; 1189 1191 #else 1190 1192 case AUD_MIXER_LINE_IN: … … 1214 1216 #ifdef VBOX_WITH_PDM_AUDIO_DRIVER 1215 1217 /** @todo In SetVolume no passing audmixerctl_in as its not used in DrvAudio.cpp. */ 1216 pThis->pfnSetVolume(pThis->pHDAState, RT_BOOL(mute), lVol, rVol);1218 pThis->pfnSetVolume(pThis->pHDAState, enmSrc, RT_BOOL(mute), lVol, rVol); 1217 1219 #else 1218 1220 AUD_set_volume(mt, &mute, &lVol, &rVol); … … 1373 1375 /** @todo Fix ID of u8DacLineOut! */ 1374 1376 #ifdef VBOX_WITH_PDM_AUDIO_DRIVER 1375 hdaCodecToAudVolume(pThis, pAmplifier, PDMAUDIOMIXERCTL_ VOLUME);1377 hdaCodecToAudVolume(pThis, pAmplifier, PDMAUDIOMIXERCTL_PCM); 1376 1378 #else 1377 1379 hdaCodecToAudVolume(pAmplifier, AUD_MIXER_VOLUME); … … 2415 2417 if (hdaCodecIsDacNode(pThis, pThis->u8DacLineOut)) 2416 2418 #ifdef VBOX_WITH_PDM_AUDIO_DRIVER 2417 hdaCodecToAudVolume(pThis, &pThis->paNodes[pThis->u8DacLineOut].dac.B_params, PDMAUDIOMIXERCTL_ VOLUME);2419 hdaCodecToAudVolume(pThis, &pThis->paNodes[pThis->u8DacLineOut].dac.B_params, PDMAUDIOMIXERCTL_PCM); 2418 2420 #else 2419 2421 hdaCodecToAudVolume(&pThis->paNodes[pThis->u8DacLineOut].dac.B_params, AUD_MIXER_VOLUME); … … 2421 2423 else if (hdaCodecIsSpdifOutNode(pThis, pThis->u8DacLineOut)) 2422 2424 #ifdef VBOX_WITH_PDM_AUDIO_DRIVER 2423 hdaCodecToAudVolume(pThis, &pThis->paNodes[pThis->u8DacLineOut].spdifout.B_params, PDMAUDIOMIXERCTL_ VOLUME);2425 hdaCodecToAudVolume(pThis, &pThis->paNodes[pThis->u8DacLineOut].spdifout.B_params, PDMAUDIOMIXERCTL_PCM); 2424 2426 hdaCodecToAudVolume(pThis, &pThis->paNodes[pThis->u8AdcVolsLineIn].adcvol.B_params, PDMAUDIOMIXERCTL_LINE_IN); 2425 2427 #else … … 2504 2506 2505 2507 #ifdef VBOX_WITH_PDM_AUDIO_DRIVER 2506 hdaCodecToAudVolume(pThis, &pThis->paNodes[pThis->u8DacLineOut].dac.B_params, PDMAUDIOMIXERCTL_ VOLUME);2508 hdaCodecToAudVolume(pThis, &pThis->paNodes[pThis->u8DacLineOut].dac.B_params, PDMAUDIOMIXERCTL_PCM); 2507 2509 hdaCodecToAudVolume(pThis, &pThis->paNodes[pThis->u8AdcVolsLineIn].adcvol.B_params, PDMAUDIOMIXERCTL_LINE_IN); 2508 2510 -
trunk/src/VBox/Devices/Audio/DevIchHdaCodec.h
r53831 r55404 116 116 DECLR3CALLBACKMEMBER(int, pfnOpenIn, (PHDASTATE pThis, const char *pszName, PDMAUDIORECSOURCE enmRecSource, PPDMAUDIOSTREAMCFG pCfg)); 117 117 DECLR3CALLBACKMEMBER(int, pfnOpenOut, (PHDASTATE pThis, const char *pszName, PPDMAUDIOSTREAMCFG pCfg)); 118 DECLR3CALLBACKMEMBER(int, pfnSetVolume, (PHDASTATE pThis, bool fMute, uint8_t uVolLeft, uint8_t uVolRight));118 DECLR3CALLBACKMEMBER(int, pfnSetVolume, (PHDASTATE pThis, ENMSOUNDSOURCE enmSource, bool fMute, uint8_t uVolLeft, uint8_t uVolRight)); 119 119 #else 120 120 QEMUSoundCard card;
Note:
See TracChangeset
for help on using the changeset viewer.

