Merge pull request #3916 from phire/totallyAwesomeBranch
analytics: Collect less data about controllers.
This commit is contained in:
commit
1746be3b2a
|
@ -247,12 +247,10 @@ void DolphinAnalytics::MakePerGameBuilder()
|
||||||
builder.AddData("movie", Movie::IsMovieActive());
|
builder.AddData("movie", Movie::IsMovieActive());
|
||||||
|
|
||||||
// Controller information
|
// Controller information
|
||||||
|
// We grab enough to tell what percentage of our users are playing with keyboard/mouse, some kind of gamepad
|
||||||
|
// or the official gamecube adapter.
|
||||||
builder.AddData("gcadapter-detected", GCAdapter::IsDetected());
|
builder.AddData("gcadapter-detected", GCAdapter::IsDetected());
|
||||||
|
builder.AddData("has-controller", Pad::GetConfig()->IsControllerControlledByGamepadDevice(0) || GCAdapter::IsDetected());
|
||||||
// For privacy reasons, limit this to type of the first controller.
|
|
||||||
// The ControllersNeedToBeCreated() check is enough to ensure GetController(0) won't return nullptr or throw exceptions.
|
|
||||||
if (!Pad::GetConfig()->ControllersNeedToBeCreated())
|
|
||||||
builder.AddData("controller-type", Pad::GetConfig()->GetController(0)->default_device.name);
|
|
||||||
|
|
||||||
m_per_game_builder = builder;
|
m_per_game_builder = builder;
|
||||||
}
|
}
|
||||||
|
|
|
@ -117,3 +117,17 @@ bool InputConfig::ControllersNeedToBeCreated() const
|
||||||
{
|
{
|
||||||
return m_controllers.empty();
|
return m_controllers.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool InputConfig::IsControllerControlledByGamepadDevice(int index) const
|
||||||
|
{
|
||||||
|
if (static_cast<size_t>(index) >= m_controllers.size())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
const auto& controller = m_controllers.at(index).get()->default_device;
|
||||||
|
|
||||||
|
// Filter out anything which obviously not a gamepad
|
||||||
|
return !((controller.source == "Keyboard") // OSX Keyboard/Mouse
|
||||||
|
|| (controller.source == "XInput2") // Linux and BSD Keyboard/Mouse
|
||||||
|
|| (controller.source == "Android" && controller.name == "Touchscreen") // Android Touchscreen
|
||||||
|
|| (controller.source == "DInput" && controller.name == "Keyboard Mouse")); // Windows Keyboard/Mouse
|
||||||
|
}
|
||||||
|
|
|
@ -31,6 +31,7 @@ public:
|
||||||
ControllerEmu* GetController(int index);
|
ControllerEmu* GetController(int index);
|
||||||
void ClearControllers();
|
void ClearControllers();
|
||||||
bool ControllersNeedToBeCreated() const;
|
bool ControllersNeedToBeCreated() const;
|
||||||
|
bool IsControllerControlledByGamepadDevice(int index) const;
|
||||||
|
|
||||||
std::string GetGUIName() const { return m_gui_name; }
|
std::string GetGUIName() const { return m_gui_name; }
|
||||||
std::string GetProfileName() const { return m_profile_name; }
|
std::string GetProfileName() const { return m_profile_name; }
|
||||||
|
|
Loading…
Reference in New Issue