mirror of
https://github.com/Lime3DS/Lime3DS
synced 2024-10-30 11:47:51 +00:00
Port yuzu-emu/yuzu#4164: "hotkeys: Add a "Mute Audio" hotkey" (#5463)
Co-authored-by: Kewlan <colin_rehn@hotmail.com>
This commit is contained in:
parent
14924e9db3
commit
aa84022704
5 changed files with 16 additions and 2 deletions
|
@ -86,7 +86,7 @@ void DspInterface::OutputCallback(s16* buffer, std::size_t num_frames) {
|
|||
|
||||
// Implementation of the hardware volume slider
|
||||
// A cubic curve is used to approximate a linear change in human-perceived loudness
|
||||
const float linear_volume = std::clamp(Settings::values.volume, 0.0f, 1.0f);
|
||||
const float linear_volume = std::clamp(Settings::Volume(), 0.0f, 1.0f);
|
||||
if (linear_volume != 1.0) {
|
||||
const float volume_scale_factor = linear_volume * linear_volume * linear_volume;
|
||||
for (std::size_t i = 0; i < num_frames; i++) {
|
||||
|
|
|
@ -58,7 +58,7 @@ const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> Config:
|
|||
// This must be in alphabetical order according to action name as it must have the same order as
|
||||
// UISetting::values.shortcuts, which is alphabetically ordered.
|
||||
// clang-format off
|
||||
const std::array<UISettings::Shortcut, 23> default_hotkeys{
|
||||
const std::array<UISettings::Shortcut, 24> default_hotkeys{
|
||||
{{QStringLiteral("Advance Frame"), QStringLiteral("Main Window"), {QStringLiteral("\\"), Qt::ApplicationShortcut}},
|
||||
{QStringLiteral("Capture Screenshot"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+P"), Qt::ApplicationShortcut}},
|
||||
{QStringLiteral("Continue/Pause Emulation"), QStringLiteral("Main Window"), {QStringLiteral("F4"), Qt::WindowShortcut}},
|
||||
|
@ -70,6 +70,7 @@ const std::array<UISettings::Shortcut, 23> default_hotkeys{
|
|||
{QStringLiteral("Load Amiibo"), QStringLiteral("Main Window"), {QStringLiteral("F2"), Qt::ApplicationShortcut}},
|
||||
{QStringLiteral("Load File"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+O"), Qt::WindowShortcut}},
|
||||
{QStringLiteral("Load from Newest Slot"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+V"), Qt::WindowShortcut}},
|
||||
{QStringLiteral("Mute Audio"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+M"), Qt::WindowShortcut}},
|
||||
{QStringLiteral("Remove Amiibo"), QStringLiteral("Main Window"), {QStringLiteral("F3"), Qt::ApplicationShortcut}},
|
||||
{QStringLiteral("Restart Emulation"), QStringLiteral("Main Window"), {QStringLiteral("F6"), Qt::WindowShortcut}},
|
||||
{QStringLiteral("Rotate Screens Upright"), QStringLiteral("Main Window"), {QStringLiteral("F8"), Qt::WindowShortcut}},
|
||||
|
|
|
@ -596,6 +596,9 @@ void GMainWindow::InitializeHotkeys() {
|
|||
&QShortcut::activated, ui->action_Load_from_Newest_Slot, &QAction::trigger);
|
||||
connect(hotkey_registry.GetHotkey(main_window, QStringLiteral("Save to Oldest Slot"), this),
|
||||
&QShortcut::activated, ui->action_Save_to_Oldest_Slot, &QAction::trigger);
|
||||
connect(hotkey_registry.GetHotkey(main_window, QStringLiteral("Mute Audio"), this),
|
||||
&QShortcut::activated, this,
|
||||
[] { Settings::values.audio_muted = !Settings::values.audio_muted; });
|
||||
}
|
||||
|
||||
void GMainWindow::ShowUpdaterWidgets() {
|
||||
|
|
|
@ -131,6 +131,13 @@ void LogSettings() {
|
|||
log_setting("Debugging_GdbstubPort", values.gdbstub_port);
|
||||
}
|
||||
|
||||
float Volume() {
|
||||
if (values.audio_muted) {
|
||||
return 0.0f;
|
||||
}
|
||||
return values.volume;
|
||||
}
|
||||
|
||||
void LoadProfile(int index) {
|
||||
Settings::values.current_input_profile = Settings::values.input_profiles[index];
|
||||
Settings::values.current_input_profile_index = index;
|
||||
|
|
|
@ -210,6 +210,7 @@ struct Values {
|
|||
bool use_vsync_new;
|
||||
|
||||
// Audio
|
||||
bool audio_muted;
|
||||
bool enable_dsp_lle;
|
||||
bool enable_dsp_lle_multithread;
|
||||
std::string sink_id;
|
||||
|
@ -244,6 +245,8 @@ struct Values {
|
|||
u64 audio_bitrate;
|
||||
} extern values;
|
||||
|
||||
float Volume();
|
||||
|
||||
// a special value for Values::region_value indicating that citra will automatically select a region
|
||||
// value to fit the region lockout info of the game
|
||||
static constexpr int REGION_VALUE_AUTO_SELECT = -1;
|
||||
|
|
Loading…
Reference in a new issue