summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerInterface
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2019-05-29 18:42:22 -0400
committerLioncash <mathew1800@gmail.com>2019-05-29 18:42:24 -0400
commit1355b43fd242f20d04b1250c02de355c8e80ac98 (patch)
tree97abb3b627acd0772bcee999afc3797d59c4df5f /Source/Core/InputCommon/ControllerInterface
parent80d8173d29749b13ccdf84e75641e179ea34768b (diff)
ControllerInterface/Device: Use std::string_view where applicable
In these cases, the given string is only ever compared against other string, so std::string can be turned into a std::string_view to allow non-allocating inputs.
Diffstat (limited to 'Source/Core/InputCommon/ControllerInterface')
-rw-r--r--Source/Core/InputCommon/ControllerInterface/Device.cpp12
-rw-r--r--Source/Core/InputCommon/ControllerInterface/Device.h15
2 files changed, 14 insertions, 13 deletions
diff --git a/Source/Core/InputCommon/ControllerInterface/Device.cpp b/Source/Core/InputCommon/ControllerInterface/Device.cpp
index 38b11a932b..9e29389dae 100644
--- a/Source/Core/InputCommon/ControllerInterface/Device.cpp
+++ b/Source/Core/InputCommon/ControllerInterface/Device.cpp
@@ -52,7 +52,7 @@ std::string Device::GetQualifiedName() const
return StringFromFormat("%s/%i/%s", this->GetSource().c_str(), GetId(), this->GetName().c_str());
}
-Device::Input* Device::FindInput(const std::string& name) const
+Device::Input* Device::FindInput(std::string_view name) const
{
for (Input* input : m_inputs)
{
@@ -63,7 +63,7 @@ Device::Input* Device::FindInput(const std::string& name) const
return nullptr;
}
-Device::Output* Device::FindOutput(const std::string& name) const
+Device::Output* Device::FindOutput(std::string_view name) const
{
for (Output* output : m_outputs)
{
@@ -74,7 +74,7 @@ Device::Output* Device::FindOutput(const std::string& name) const
return nullptr;
}
-bool Device::Control::IsMatchingName(const std::string& name) const
+bool Device::Control::IsMatchingName(std::string_view name) const
{
return GetName() == name;
}
@@ -90,7 +90,7 @@ std::string Device::FullAnalogSurface::GetName() const
return "Full " + m_high.GetName();
}
-bool Device::FullAnalogSurface::IsMatchingName(const std::string& name) const
+bool Device::FullAnalogSurface::IsMatchingName(std::string_view name) const
{
if (Control::IsMatchingName(name))
return true;
@@ -218,7 +218,7 @@ std::string DeviceContainer::GetDefaultDeviceString() const
return device_qualifier.ToString();
}
-Device::Input* DeviceContainer::FindInput(const std::string& name, const Device* def_dev) const
+Device::Input* DeviceContainer::FindInput(std::string_view name, const Device* def_dev) const
{
if (def_dev)
{
@@ -239,7 +239,7 @@ Device::Input* DeviceContainer::FindInput(const std::string& name, const Device*
return nullptr;
}
-Device::Output* DeviceContainer::FindOutput(const std::string& name, const Device* def_dev) const
+Device::Output* DeviceContainer::FindOutput(std::string_view name, const Device* def_dev) const
{
return def_dev->FindOutput(name);
}
diff --git a/Source/Core/InputCommon/ControllerInterface/Device.h b/Source/Core/InputCommon/ControllerInterface/Device.h
index ac18c18803..8281396515 100644
--- a/Source/Core/InputCommon/ControllerInterface/Device.h
+++ b/Source/Core/InputCommon/ControllerInterface/Device.h
@@ -8,6 +8,7 @@
#include <mutex>
#include <optional>
#include <string>
+#include <string_view>
#include <vector>
#include "Common/CommonTypes.h"
@@ -42,14 +43,14 @@ public:
class Control // input or output
{
public:
+ virtual ~Control() = default;
virtual std::string GetName() const = 0;
- virtual ~Control() {}
virtual Input* ToInput() { return nullptr; }
virtual Output* ToOutput() { return nullptr; }
// May be overridden to allow multiple valid names.
// Useful for backwards-compatible configurations when names change.
- virtual bool IsMatchingName(const std::string& name) const;
+ virtual bool IsMatchingName(std::string_view name) const;
};
//
@@ -111,8 +112,8 @@ public:
const std::vector<Input*>& Inputs() const { return m_inputs; }
const std::vector<Output*>& Outputs() const { return m_outputs; }
- Input* FindInput(const std::string& name) const;
- Output* FindOutput(const std::string& name) const;
+ Input* FindInput(std::string_view name) const;
+ Output* FindOutput(std::string_view name) const;
protected:
void AddInput(Input* const i);
@@ -124,7 +125,7 @@ protected:
FullAnalogSurface(Input* low, Input* high) : m_low(*low), m_high(*high) {}
ControlState GetState() const override;
std::string GetName() const override;
- bool IsMatchingName(const std::string& name) const override;
+ bool IsMatchingName(std::string_view name) const override;
private:
Input& m_low;
@@ -177,8 +178,8 @@ public:
class DeviceContainer
{
public:
- Device::Input* FindInput(const std::string& name, const Device* def_dev) const;
- Device::Output* FindOutput(const std::string& name, const Device* def_dev) const;
+ Device::Input* FindInput(std::string_view name, const Device* def_dev) const;
+ Device::Output* FindOutput(std::string_view name, const Device* def_dev) const;
std::vector<std::string> GetAllDeviceStrings() const;
std::string GetDefaultDeviceString() const;