diff --git a/libobs/obs-windows.c b/libobs/obs-windows.c index 410169a5a..62d08c249 100644 --- a/libobs/obs-windows.c +++ b/libobs/obs-windows.c @@ -15,6 +15,7 @@ along with this program. If not, see . ******************************************************************************/ +#include "util/windows/win-registry.h" #include "util/windows/win-version.h" #include "util/platform.h" #include "util/dstr.h" @@ -189,6 +190,49 @@ static void log_aero(void) aeroMessage); } +#define WIN10_GAME_BAR_REG_KEY \ + L"Software\\Microsoft\\Windows\\CurrentVersion\\GameDVR" +#define WIN10_GAME_DVR_POLICY_REG_KEY \ + L"SOFTWARE\\Policies\\Microsoft\\Windows\\GameDVR" +#define WIN10_GAME_DVR_REG_KEY L"System\\GameConfigStore" +#define WIN10_GAME_MODE_REG_KEY L"Software\\Microsoft\\GameBar" + +static void log_gaming_features(void) +{ + if (win_ver < 0xA00) + return; + + struct reg_dword game_bar_enabled; + struct reg_dword game_dvr_allowed; + struct reg_dword game_dvr_enabled; + struct reg_dword game_dvr_bg_recording; + struct reg_dword game_mode_enabled; + + get_reg_dword(HKEY_CURRENT_USER, WIN10_GAME_BAR_REG_KEY, + L"AppCaptureEnabled", &game_bar_enabled); + get_reg_dword(HKEY_CURRENT_USER, WIN10_GAME_DVR_POLICY_REG_KEY, + L"AllowGameDVR", &game_dvr_allowed); + get_reg_dword(HKEY_CURRENT_USER, WIN10_GAME_DVR_REG_KEY, + L"GameDVR_Enabled", &game_dvr_enabled); + get_reg_dword(HKEY_CURRENT_USER, WIN10_GAME_BAR_REG_KEY, + L"HistoricalCaptureEnabled", &game_dvr_bg_recording); + get_reg_dword(HKEY_CURRENT_USER, WIN10_GAME_MODE_REG_KEY, + L"AllowAutoGameMode", &game_mode_enabled); + + blog(LOG_INFO, "Windows 10 Gaming Features:"); + blog(LOG_INFO, "\tGame Bar: %s", + (bool)game_bar_enabled.return_value ? "On" : "Off"); + blog(LOG_INFO, "\tGame DVR Allowed: %s", + (bool)game_dvr_allowed.return_value ? "Yes" : "No"); + blog(LOG_INFO, "\tGame DVR: %s", + (bool)game_dvr_enabled.return_value ? "On" : "Off"); + blog(LOG_INFO, "\tGame DVR Background Recording: %s", + (bool)game_dvr_bg_recording.return_value ? "On" : + "Off"); + blog(LOG_INFO, "\tGame Mode: %s", + (bool)game_mode_enabled.return_value ? "On" : "Off"); +} + void log_system_info(void) { struct win_version_info ver; @@ -202,6 +246,7 @@ void log_system_info(void) log_windows_version(); log_admin_status(); log_aero(); + log_gaming_features(); }