mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	Port yuzu-emu/yuzu#7506 & yuzu-emu/yuzu#7861: "Fix yuzu-emu/yuzu#7502" & "yuzu: Mute audio when in background" (#7321)
This commit is contained in:
		
							parent
							
								
									57696b2c11
								
							
						
					
					
						commit
						015e42be05
					
				
					 6 changed files with 37 additions and 11 deletions
				
			
		|  | @ -768,6 +768,7 @@ void Config::ReadUIValues() { | |||
|         ReadBasicSetting(UISettings::values.callout_flags); | ||||
|         ReadBasicSetting(UISettings::values.show_console); | ||||
|         ReadBasicSetting(UISettings::values.pause_when_in_background); | ||||
|         ReadBasicSetting(UISettings::values.mute_when_in_background); | ||||
|         ReadBasicSetting(UISettings::values.hide_mouse); | ||||
|     } | ||||
| 
 | ||||
|  | @ -1239,6 +1240,7 @@ void Config::SaveUIValues() { | |||
|         WriteBasicSetting(UISettings::values.callout_flags); | ||||
|         WriteBasicSetting(UISettings::values.show_console); | ||||
|         WriteBasicSetting(UISettings::values.pause_when_in_background); | ||||
|         WriteBasicSetting(UISettings::values.mute_when_in_background); | ||||
|         WriteBasicSetting(UISettings::values.hide_mouse); | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
|  | @ -74,6 +74,8 @@ void ConfigureGeneral::SetConfiguration() { | |||
|         ui->toggle_check_exit->setChecked(UISettings::values.confirm_before_closing.GetValue()); | ||||
|         ui->toggle_background_pause->setChecked( | ||||
|             UISettings::values.pause_when_in_background.GetValue()); | ||||
|         ui->toggle_background_mute->setChecked( | ||||
|             UISettings::values.mute_when_in_background.GetValue()); | ||||
|         ui->toggle_hide_mouse->setChecked(UISettings::values.hide_mouse.GetValue()); | ||||
| 
 | ||||
|         ui->toggle_update_check->setChecked( | ||||
|  | @ -174,6 +176,7 @@ void ConfigureGeneral::ApplyConfiguration() { | |||
|     if (Settings::IsConfiguringGlobal()) { | ||||
|         UISettings::values.confirm_before_closing = ui->toggle_check_exit->isChecked(); | ||||
|         UISettings::values.pause_when_in_background = ui->toggle_background_pause->isChecked(); | ||||
|         UISettings::values.mute_when_in_background = ui->toggle_background_mute->isChecked(); | ||||
|         UISettings::values.hide_mouse = ui->toggle_hide_mouse->isChecked(); | ||||
| 
 | ||||
|         UISettings::values.check_for_update_on_start = ui->toggle_update_check->isChecked(); | ||||
|  |  | |||
|  | @ -36,6 +36,13 @@ | |||
|           </property> | ||||
|          </widget> | ||||
|         </item> | ||||
|         <item> | ||||
|          <widget class="QCheckBox" name="toggle_background_mute"> | ||||
|           <property name="text"> | ||||
|            <string>Mute audio when in background</string> | ||||
|           </property> | ||||
|          </widget> | ||||
|         </item> | ||||
|         <item> | ||||
|          <widget class="QCheckBox" name="toggle_hide_mouse"> | ||||
|           <property name="text"> | ||||
|  |  | |||
|  | @ -778,21 +778,33 @@ void GMainWindow::RestoreUIState() { | |||
| } | ||||
| 
 | ||||
| void GMainWindow::OnAppFocusStateChanged(Qt::ApplicationState state) { | ||||
|     if (!UISettings::values.pause_when_in_background) { | ||||
|         return; | ||||
|     } | ||||
|     if (state != Qt::ApplicationHidden && state != Qt::ApplicationInactive && | ||||
|         state != Qt::ApplicationActive) { | ||||
|         LOG_DEBUG(Frontend, "ApplicationState unusual flag: {} ", state); | ||||
|     } | ||||
|     if (ui->action_Pause->isEnabled() && | ||||
|         (state & (Qt::ApplicationHidden | Qt::ApplicationInactive))) { | ||||
|         auto_paused = true; | ||||
|         OnPauseGame(); | ||||
|     } else if (emulation_running && !emu_thread->IsRunning() && auto_paused && | ||||
|                state == Qt::ApplicationActive) { | ||||
|         auto_paused = false; | ||||
|         OnStartGame(); | ||||
|     if (!emulation_running) { | ||||
|         return; | ||||
|     } | ||||
|     if (UISettings::values.pause_when_in_background) { | ||||
|         if (emu_thread->IsRunning() && | ||||
|             (state & (Qt::ApplicationHidden | Qt::ApplicationInactive))) { | ||||
|             auto_paused = true; | ||||
|             OnPauseGame(); | ||||
|         } else if (!emu_thread->IsRunning() && auto_paused && state == Qt::ApplicationActive) { | ||||
|             auto_paused = false; | ||||
|             OnStartGame(); | ||||
|         } | ||||
|     } | ||||
|     if (UISettings::values.mute_when_in_background) { | ||||
|         if (!Settings::values.audio_muted && | ||||
|             (state & (Qt::ApplicationHidden | Qt::ApplicationInactive))) { | ||||
|             Settings::values.audio_muted = true; | ||||
|             auto_muted = true; | ||||
|         } else if (auto_muted && state == Qt::ApplicationActive) { | ||||
|             Settings::values.audio_muted = false; | ||||
|             auto_muted = false; | ||||
|         } | ||||
|         UpdateVolumeUI(); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -325,6 +325,7 @@ private: | |||
|     QString game_path; | ||||
| 
 | ||||
|     bool auto_paused = false; | ||||
|     bool auto_muted = false; | ||||
|     QTimer mouse_hide_timer; | ||||
| 
 | ||||
|     // Movie
 | ||||
|  |  | |||
|  | @ -80,6 +80,7 @@ struct Values { | |||
|     Settings::Setting<bool> save_state_warning{true, "saveStateWarning"}; | ||||
|     Settings::Setting<bool> first_start{true, "firstStart"}; | ||||
|     Settings::Setting<bool> pause_when_in_background{false, "pauseWhenInBackground"}; | ||||
|     Settings::Setting<bool> mute_when_in_background{false, "muteWhenInBackground"}; | ||||
|     Settings::Setting<bool> hide_mouse{false, "hideInactiveMouse"}; | ||||
| 
 | ||||
|     bool updater_found; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue