Esempio n. 1
0
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
}
Esempio n. 2
0
void MpPortAudioMixer::setOutputVolume(int i, MpAudioVolume volume)
{
   OsLock lock(MpPortAudioDriver::ms_driverMutex);

   if (m_pxMixer)
   {
      Px_SetOutputVolume(m_pxMixer, i, volume);
   }
}