mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +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…
	
	Add table
		Add a link
		
	
		Reference in a new issue