Add an Analytics reporting system.

Fully opt-in, reports to analytics.dolphin-emu.org over SSL. Collects system
information and settings at Dolphin start time and game start time.

UI not implemented yet, so users are required to opt in through config editing.
This commit is contained in:
Pierre Bourdon 2016-06-18 02:43:59 +02:00
parent 49ce9b153d
commit 121f270367
15 changed files with 798 additions and 6 deletions

View file

@ -55,6 +55,7 @@ SConfig::SConfig()
bProgressive(false), bPAL60(false),
bDisableScreenSaver(false),
iPosX(100), iPosY(100), iWidth(800), iHeight(600),
m_analytics_enabled(false), m_analytics_permission_asked(false),
bLoopFifoReplay(true)
{
LoadDefaults();
@ -95,6 +96,7 @@ void SConfig::SaveSettings()
SaveDSPSettings(ini);
SaveInputSettings(ini);
SaveFifoPlayerSettings(ini);
SaveAnalyticsSettings(ini);
ini.Save(File::GetUserPath(F_DOLPHINCONFIG_IDX));
m_SYSCONF->Save();
@ -309,6 +311,15 @@ void SConfig::SaveFifoPlayerSettings(IniFile& ini)
fifoplayer->Set("LoopReplay", bLoopFifoReplay);
}
void SConfig::SaveAnalyticsSettings(IniFile& ini)
{
IniFile::Section* analytics = ini.GetOrCreateSection("Analytics");
analytics->Set("ID", m_analytics_id);
analytics->Set("Enabled", m_analytics_enabled);
analytics->Set("PermissionAsked", m_analytics_permission_asked);
}
void SConfig::LoadSettings()
{
INFO_LOG(BOOT, "Loading Settings from %s", File::GetUserPath(F_DOLPHINCONFIG_IDX).c_str());
@ -324,6 +335,7 @@ void SConfig::LoadSettings()
LoadDSPSettings(ini);
LoadInputSettings(ini);
LoadFifoPlayerSettings(ini);
LoadAnalyticsSettings(ini);
m_SYSCONF = new SysConf();
}
@ -586,6 +598,15 @@ void SConfig::LoadFifoPlayerSettings(IniFile& ini)
fifoplayer->Get("LoopReplay", &bLoopFifoReplay, true);
}
void SConfig::LoadAnalyticsSettings(IniFile& ini)
{
IniFile::Section* analytics = ini.GetOrCreateSection("Analytics");
analytics->Get("ID", &m_analytics_id, "");
analytics->Get("Enabled", &m_analytics_enabled, false);
analytics->Get("PermissionAsked", &m_analytics_permission_asked, false);
}
void SConfig::LoadDefaults()
{
bEnableDebugging = false;
@ -626,6 +647,10 @@ void SConfig::LoadDefaults()
iWidth = 800;
iHeight = 600;
m_analytics_id = "";
m_analytics_enabled = false;
m_analytics_permission_asked = false;
bLoopFifoReplay = true;
bJITOff = false; // debugger only settings