Esempio n. 1
0
 //
 // SetVolume
 //
 // Sets the current redbook audio volume
 //
 void SetVolume(F32 volume)
 {
   if (initialized && driver)
   {
     AIL_redbook_set_volume
     (
       driver, Clamp<S32>(MIN_VOLUME, S32((volume * F32(MAX_VOLUME)) + 0.5F), MAX_VOLUME)
     );
   }
 }
Esempio n. 2
0
void
SoundManager::SetVolume(const SOUNDTYPE &type, const uint32 &volume)
{
	CivSound *sound;
	
	Assert(volume >= 0);
	Assert(volume <= 10);

	if (m_noSound) return;

	switch (type) {
	case SOUNDTYPE_SFX:
		m_sfxVolume = volume;
		
		m_soundWalker->SetList(m_sfxSounds);
		while (m_soundWalker->IsValid()) {
			sound = m_soundWalker->GetObj();
			sound->SetVolume(volume);
			m_soundWalker->Next();
		}
		break;
	case SOUNDTYPE_VOICE:
		m_voiceVolume = volume;
		
		m_soundWalker->SetList(m_voiceSounds);
		while (m_soundWalker->IsValid()) {
			sound = m_soundWalker->GetObj();
			sound->SetVolume(volume);
			m_soundWalker->Next();
		}
		break;
	case SOUNDTYPE_MUSIC:
		m_musicVolume = volume;
#if !defined(USE_SDL)
		if (m_redbook)
			AIL_redbook_set_volume(m_redbook, (sint32)((double)volume * 12.7));
#else
        if (m_cdrom) {
            // TODO: found nothing in reference
        }   
#endif
		break;
	}
}