Added input overlay

This commit is contained in:
SSimco
2024-05-26 17:51:32 +03:00
parent 8a4b99b3e1
commit f1dec91ae1
73 changed files with 2581 additions and 29 deletions
+24
View File
@@ -252,6 +252,12 @@ void EmulatedController::clear_controllers()
float EmulatedController::get_axis_value(uint64 mapping) const
{
const auto overridenAxisMappingIt = m_overridenAxisMappings.find(mapping);
if (overridenAxisMappingIt != m_overridenAxisMappings.cend() && overridenAxisMappingIt->second != 0.0f)
{
return overridenAxisMappingIt->second;
}
const auto it = m_mappings.find(mapping);
if (it != m_mappings.cend())
{
@@ -263,8 +269,26 @@ float EmulatedController::get_axis_value(uint64 mapping) const
return 0;
}
void EmulatedController::setButtonValue(uint64 mapping, bool value)
{
std::shared_lock lock(m_mutex);
m_overridenButtonMappings[mapping] = value;
}
void EmulatedController::setAxisValue(uint64 mapping, float value)
{
std::shared_lock lock(m_mutex);
m_overridenAxisMappings[mapping] = value;
}
bool EmulatedController::is_mapping_down(uint64 mapping) const
{
const auto overridenButtonMappingIt = m_overridenButtonMappings.find(mapping);
if (overridenButtonMappingIt != m_overridenButtonMappings.cend() && overridenButtonMappingIt->second)
{
return true;
}
const auto it = m_mappings.find(mapping);
if (it != m_mappings.cend())
{
+5 -2
View File
@@ -100,7 +100,8 @@ public:
bool was_home_button_down() { return std::exchange(m_homebutton_down, false); }
virtual bool set_default_mapping(const std::shared_ptr<ControllerBase>& controller) { return false; }
void setButtonValue(uint64 mapping, bool value);
void setAxisValue(uint64 mapping, float value);
protected:
size_t m_player_index;
std::string m_profile_name = "default";
@@ -117,7 +118,9 @@ protected:
uint64 button;
};
std::unordered_map<uint64, Mapping> m_mappings;
std::unordered_map<uint64, bool> m_overridenButtonMappings;
std::unordered_map<uint64, float> m_overridenAxisMappings;
bool m_homebutton_down = false;
};