ControllerEmu: Virtualize settings

This will allow us to move Background Input to a global setting rather
than a local setting.
This commit is contained in:
Jasper St. Pierre
2014-07-11 10:31:06 -04:00
parent a6dc3c47a9
commit 0d49bf65a7
4 changed files with 34 additions and 16 deletions

View File

@ -43,6 +43,8 @@ void ControllerEmu::ControlGroup::LoadConfig(IniFile::Section *sec, const std::s
// settings
for (auto& s : settings)
{
if (s->is_virtual)
continue;
sec->Get(group + s->name, &s->value, s->default_value * 100);
s->value /= 100;
}
@ -99,7 +101,11 @@ void ControllerEmu::ControlGroup::SaveConfig(IniFile::Section *sec, const std::s
std::string group(base + name); group += "/";
for (auto& s : settings)
{
if (s->is_virtual)
continue;
sec->Set(group + s->name, s->value*100.0f, s->default_value*100.0f);
}
for (auto& c : controls)
{

View File

@ -94,12 +94,24 @@ public:
, value(def_value)
, default_value(def_value)
, low(_low)
, high(_high){}
, high(_high)
, is_virtual(false) {}
const std::string name;
ControlState value;
const ControlState default_value;
const unsigned int low, high;
bool is_virtual;
virtual void SetValue(ControlState new_value)
{
value = new_value;
}
virtual ControlState GetValue()
{
return value;
}
};
ControlGroup(const std::string& _name, const unsigned int _type = GROUP_TYPE_OTHER) : name(_name), type(_type) {}