mirror of
https://github.com/WinampDesktop/winamp.git
synced 2025-06-17 08:05:46 -04:00
HostInterface: Add separate volume control for fast forwarding
This commit is contained in:
@ -70,7 +70,12 @@ void HostInterface::CreateAudioStream()
|
||||
m_audio_stream->Reconfigure(AUDIO_SAMPLE_RATE, AUDIO_CHANNELS, g_settings.audio_buffer_size);
|
||||
}
|
||||
|
||||
m_audio_stream->SetOutputVolume(g_settings.audio_output_muted ? 0 : g_settings.audio_output_volume);
|
||||
m_audio_stream->SetOutputVolume(GetAudioOutputVolume());
|
||||
}
|
||||
|
||||
s32 HostInterface::GetAudioOutputVolume() const
|
||||
{
|
||||
return g_settings.audio_output_muted ? 0 : g_settings.audio_output_volume;
|
||||
}
|
||||
|
||||
bool HostInterface::BootSystem(const SystemBootParameters& parameters)
|
||||
@ -479,6 +484,7 @@ void HostInterface::SetDefaultSettings(SettingsInterface& si)
|
||||
|
||||
si.SetStringValue("Audio", "Backend", Settings::GetAudioBackendName(Settings::DEFAULT_AUDIO_BACKEND));
|
||||
si.SetIntValue("Audio", "OutputVolume", 100);
|
||||
si.SetIntValue("Audio", "FastForwardVolume", 100);
|
||||
si.SetIntValue("Audio", "BufferSize", DEFAULT_AUDIO_BUFFER_SIZE);
|
||||
si.SetIntValue("Audio", "OutputMuted", false);
|
||||
si.SetBoolValue("Audio", "Sync", true);
|
||||
@ -638,7 +644,7 @@ void HostInterface::CheckForSettingsChanges(const Settings& old_settings)
|
||||
CPU::ClearICache();
|
||||
}
|
||||
|
||||
m_audio_stream->SetOutputVolume(g_settings.audio_output_muted ? 0 : g_settings.audio_output_volume);
|
||||
m_audio_stream->SetOutputVolume(GetAudioOutputVolume());
|
||||
|
||||
if (g_settings.gpu_resolution_scale != old_settings.gpu_resolution_scale ||
|
||||
g_settings.gpu_multisamples != old_settings.gpu_multisamples ||
|
||||
|
@ -144,6 +144,7 @@ protected:
|
||||
virtual bool AcquireHostDisplay() = 0;
|
||||
virtual void ReleaseHostDisplay() = 0;
|
||||
virtual std::unique_ptr<AudioStream> CreateAudioStream(AudioBackend backend) = 0;
|
||||
virtual s32 GetAudioOutputVolume() const;
|
||||
|
||||
virtual void OnSystemCreated();
|
||||
virtual void OnSystemDestroyed();
|
||||
|
@ -196,6 +196,7 @@ void Settings::Load(SettingsInterface& si)
|
||||
ParseAudioBackend(si.GetStringValue("Audio", "Backend", GetAudioBackendName(DEFAULT_AUDIO_BACKEND)).c_str())
|
||||
.value_or(DEFAULT_AUDIO_BACKEND);
|
||||
audio_output_volume = si.GetIntValue("Audio", "OutputVolume", 100);
|
||||
audio_fast_forward_volume = si.GetIntValue("Audio", "FastForwardVolume", 100);
|
||||
audio_buffer_size = si.GetIntValue("Audio", "BufferSize", HostInterface::DEFAULT_AUDIO_BUFFER_SIZE);
|
||||
audio_output_muted = si.GetBoolValue("Audio", "OutputMuted", false);
|
||||
audio_sync_enabled = si.GetBoolValue("Audio", "Sync", true);
|
||||
@ -327,6 +328,7 @@ void Settings::Save(SettingsInterface& si) const
|
||||
|
||||
si.SetStringValue("Audio", "Backend", GetAudioBackendName(audio_backend));
|
||||
si.SetIntValue("Audio", "OutputVolume", audio_output_volume);
|
||||
si.SetIntValue("Audio", "FastForwardVolume", audio_fast_forward_volume);
|
||||
si.SetIntValue("Audio", "BufferSize", audio_buffer_size);
|
||||
si.SetBoolValue("Audio", "OutputMuted", audio_output_muted);
|
||||
si.SetBoolValue("Audio", "Sync", audio_sync_enabled);
|
||||
|
@ -142,6 +142,7 @@ struct Settings
|
||||
|
||||
AudioBackend audio_backend = AudioBackend::Cubeb;
|
||||
s32 audio_output_volume = 100;
|
||||
s32 audio_fast_forward_volume = 100;
|
||||
u32 audio_buffer_size = 2048;
|
||||
bool audio_output_muted = false;
|
||||
bool audio_sync_enabled = true;
|
||||
@ -200,6 +201,11 @@ struct Settings
|
||||
!cpu_recompiler_memory_exceptions);
|
||||
}
|
||||
|
||||
ALWAYS_INLINE s32 GetAudioOutputVolume(bool fast_forwarding) const
|
||||
{
|
||||
return audio_output_muted ? 0 : (fast_forwarding ? audio_fast_forward_volume : audio_output_volume);
|
||||
}
|
||||
|
||||
bool HasAnyPerGameMemoryCards() const;
|
||||
|
||||
static void CPUOverclockPercentToFraction(u32 percent, u32* numerator, u32* denominator);
|
||||
|
Reference in New Issue
Block a user