void slimaudio_output_vol_adjust(slimaudio_t *audio) { if ( audio->vol_adjust > 1.0 ) audio->vol_adjust = 1.0; #ifdef EMPEG audio->volume = audio->vol_adjust + (audio->replay_gain - 1); if (audio->volume < 0) audio->volume = 0; #else audio->volume = audio->vol_adjust * audio->replay_gain; #endif if ( ( audio->volume == -1.0 ) || ( audio->volume > 1.0 ) ) audio->volume = 1.0; DEBUGF("vol_adjust:%f replay_gain:%f start_replay_gain:%f\n", audio->vol_adjust, audio->replay_gain, audio->start_replay_gain); #ifndef PORTAUDIO_DEV if (audio->px_mixer != NULL) { #if defined(EMPEG) Px_SetMasterVolume(audio->px_mixer, (PxVolume)audio->volume); DEBUGF("master volume %f\n", Px_GetMasterVolume(audio->px_mixer)); #elif defined(sun) Px_SetOutputVolume(audio->px_mixer, 0, (PxVolume)audio->volume); DEBUGF("output volume %f\n", Px_GetOutputVolume(audio->px_mixer, 0)); #else Px_SetPCMOutputVolume(audio->px_mixer, (PxVolume)audio->volume); DEBUGF("pcm volume %f\n", Px_GetPCMOutputVolume(audio->px_mixer)); #endif } #endif }
void MpPortAudioMixer::setOutputVolume(int i, MpAudioVolume volume) { OsLock lock(MpPortAudioDriver::ms_driverMutex); if (m_pxMixer) { Px_SetOutputVolume(m_pxMixer, i, volume); } }