improve Utilities::Settings

This commit is contained in:
Rosalie Wanders committed 2020-11-22 16:42:41 +01:00
1 parent ac3f561595
commit b2805c0a03
5 files changed
+257 -45

No files matched your search

+4 -4
View File
@@ -655,10 +655,10 @@ bool Core::rom_ApplyOverlay()
return true;
}
g_MupenApi.Config.GetOption(section, "DisableExtraMem", (bool *)&info.Settings.disableextramem);
g_MupenApi.Config.GetOption(section, "SaveType", (int *)&info.Settings.savetype);
g_MupenApi.Config.GetOption(section, "CountPerOp", (int *)&info.Settings.countperop);
g_MupenApi.Config.GetOption(section, "SiDmaDuration", (int *)&info.Settings.sidmaduration);
info.Settings.disableextramem = g_Settings.GetBoolValue(SettingsID::Game_DisableExtraMem, section);
info.Settings.savetype = g_Settings.GetIntValue(SettingsID::Game_SaveType, section);
info.Settings.countperop = g_Settings.GetIntValue(SettingsID::Game_CountPerOp, section);
info.Settings.sidmaduration = g_Settings.GetIntValue(SettingsID::Game_SiDmaDuration, section);
std::cout << "info.Settings.goodname: " << info.Settings.goodname << std::endl;
std::cout << "info.Settings.DisableExtraMem: " << (int)info.Settings.disableextramem << std::endl;
@@ -166,12 +166,19 @@ void SettingsDialog::loadGamePluginSettings(void)
{
QComboBox *comboBoxArray[4] = {this->pluginVideoPlugins, this->pluginAudioPlugins, this->pluginInputPlugins,
this->pluginRspPlugins};
QComboBox *comboBox;
for (QComboBox *comboBox : comboBoxArray)
{
comboBox->clear();
comboBox->addItem("**Use Core Plugin Settings**");
}
for (const Plugin_t &p : g_Plugins.GetAvailablePlugins())
{
comboBox = comboBoxArray[(int)p.Type];
comboBox->addItem(p.Name);
}
}
void SettingsDialog::loadPluginSettings(void)
@@ -375,13 +382,13 @@ void SettingsDialog::saveGameSettings(void)
int siDmaDuration = this->gameSiDmaDuration->value();
if (defaultGameInfo.Settings.disableextramem != (unsigned char)disableExtraMem)
g_MupenApi.Config.SetOption(section, "DisableExtraMem", disableExtraMem);
g_Settings.SetValue(SettingsID::Game_DisableExtraMem, section, disableExtraMem);
if (defaultGameInfo.Settings.savetype != saveType)
g_MupenApi.Config.SetOption(section, "SaveType", saveType);
g_Settings.SetValue(SettingsID::Game_SaveType, section, saveType);
if (defaultGameInfo.Settings.countperop != countPerOp)
g_MupenApi.Config.SetOption(section, "CountPerOp", countPerOp);
g_Settings.SetValue(SettingsID::Game_CountPerOp, section, countPerOp);
if (defaultGameInfo.Settings.sidmaduration != siDmaDuration)
g_MupenApi.Config.SetOption(section, "SiDmaDuration", siDmaDuration);
g_Settings.SetValue(SettingsID::Game_SiDmaDuration, section, siDmaDuration);
}
void SettingsDialog::savePluginSettings(void)
+200 -37
View File
@@ -30,6 +30,9 @@ void Settings::LoadDefaults()
{
setting = this->getSetting((SettingsID)i);
if (setting.Section.isEmpty())
continue;
switch (setting.Default.type())
{
case QVariant::Type::String:
@@ -56,90 +59,146 @@ void Settings::LoadDefaults()
int Settings::GetDefaultIntValue(SettingsID id)
{
Setting_t s = this->getSetting(id);
return s.Default.toInt();
return this->getDefaultIntValue(this->getSetting(id));
}
bool Settings::GetDefaultBoolValue(SettingsID id)
{
Setting_t s = this->getSetting(id);
return s.Default.toBool();
return this->getDefaultBoolValue(this->getSetting(id));
}
float Settings::GetDefaultFloatValue(SettingsID id)
{
Setting_t s = this->getSetting(id);
return s.Default.toFloat();
return this->getDefaultFloatValue(this->getSetting(id));
}
QString Settings::GetDefaultStringValue(SettingsID id)
{
return this->getDefaultStringValue(this->getSetting(id));
}
int Settings::GetDefaultIntValue(SettingsID id, QString section)
{
Setting_t s = this->getSetting(id);
return s.Default.toString();
s.Section = section;
return this->getDefaultIntValue(s);
}
bool Settings::GetDefaultBoolValue(SettingsID id, QString section)
{
Setting_t s = this->getSetting(id);
s.Section = section;
return this->getDefaultBoolValue(s);
}
float Settings::GetDefaultFloatValue(SettingsID id, QString section)
{
Setting_t s = this->getSetting(id);
s.Section = section;
return this->getDefaultFloatValue(s);
}
QString Settings::GetDefaultStringValue(SettingsID id, QString section)
{
Setting_t s = this->getSetting(id);
s.Section = section;
return this->getDefaultStringValue(s);
}
int Settings::GetIntValue(SettingsID id)
{
Setting_t s = this->getSetting(id);
int value = s.Default.toInt();
g_MupenApi.Config.GetOption(s.Section, s.Key, &value);
return value;
return this->getIntValue(this->getSetting(id));
}
bool Settings::GetBoolValue(SettingsID id)
{
Setting_t s = this->getSetting(id);
bool value = s.Default.toBool();
g_MupenApi.Config.GetOption(s.Section, s.Key, &value);
return value;
return this->getBoolValue(this->getSetting(id));
}
float Settings::GetFloatValue(SettingsID id)
{
Setting_t s = this->getSetting(id);
float value = s.Default.toFloat();
g_MupenApi.Config.GetOption(s.Section, s.Key, &value);
return value;
return this->getFloatValue(this->getSetting(id));
}
QString Settings::GetStringValue(SettingsID id)
{
return this->getStringValue(this->getSetting(id));
}
int Settings::GetIntValue(SettingsID id, QString section)
{
Setting_t s = this->getSetting(id);
QString value = s.Default.toString();
g_MupenApi.Config.GetOption(s.Section, s.Key, &value);
return value;
s.Section = section;
return this->getIntValue(s);
}
bool Settings::GetBoolValue(SettingsID id, QString section)
{
Setting_t s = this->getSetting(id);
s.Section = section;
return this->getBoolValue(s);
}
float Settings::GetFloatValue(SettingsID id, QString section)
{
Setting_t s = this->getSetting(id);
s.Section = section;
return this->getFloatValue(s);
}
QString Settings::GetStringValue(SettingsID id, QString section)
{
Setting_t s = this->getSetting(id);
s.Section = section;
return this->getStringValue(s);
}
bool Settings::SetValue(SettingsID id, int value)
{
Setting_t s = this->getSetting(id);
bool ret = false;
ret = g_MupenApi.Config.SetOption(s.Section, s.Key, value);
return ret;
return this->setValue(this->getSetting(id), value);
}
bool Settings::SetValue(SettingsID id, bool value)
{
Setting_t s = this->getSetting(id);
bool ret = false;
ret = g_MupenApi.Config.SetOption(s.Section, s.Key, value);
return ret;
return this->setValue(this->getSetting(id), value);
}
bool Settings::SetValue(SettingsID id, float value)
{
Setting_t s = this->getSetting(id);
bool ret = false;
ret = g_MupenApi.Config.SetOption(s.Section, s.Key, value);
return ret;
return this->setValue(this->getSetting(id), value);
}
bool Settings::SetValue(SettingsID id, QString value)
{
return this->setValue(this->getSetting(id), value);
}
bool Settings::SetValue(SettingsID id, QString section, int value)
{
Setting_t s = this->getSetting(id);
bool ret = false;
ret = g_MupenApi.Config.SetOption(s.Section, s.Key, value);
return ret;
s.Section = section;
return this->setValue(s, value);
}
bool Settings::SetValue(SettingsID id, QString section, bool value)
{
Setting_t s = this->getSetting(id);
s.Section = section;
return this->setValue(s, value);
}
bool Settings::SetValue(SettingsID id, QString section, float value)
{
Setting_t s = this->getSetting(id);
s.Section = section;
return this->setValue(s, value);
}
bool Settings::SetValue(SettingsID id, QString section, QString value)
{
Setting_t s = this->getSetting(id);
s.Section = section;
return this->setValue(s, value);
}
#define GUI_SECTION "Rosalie's Mupen GUI"
@@ -235,7 +294,111 @@ Setting_t Settings::getSetting(SettingsID id)
case SettingsID::Core_SharedDataPath:
setting = {M64P_SECTION, "SharedDataPath", "Data", "", true};
break;
case SettingsID::Game_DisableExtraMem:
setting = {"", "DisableExtraMem", false, "", false};
break;
case SettingsID::Game_SaveType:
setting = {"", "SaveType", 0, "", false};
break;
case SettingsID::Game_CountPerOp:
setting = {"", "CountPerOp", 2, "", false};
break;
case SettingsID::Game_SiDmaDuration:
setting = {"", "SiDmaDuration", 2304, "", false};
break;
case SettingsID::Game_GFX_Plugin:
setting = {"", "GFX Plugin", "", "", false};
break;
case SettingsID::Game_AUDIO_Plugin:
setting = {"", "Audio Plugin", "", "", false};
break;
case SettingsID::Game_INPUT_Plugin:
setting = {"", "Input Plugin", "", "", false};
break;
case SettingsID::Game_RSP_Plugin:
setting = {"", "RSP Plugin", "", "", false};
break;
}
return setting;
}
int Settings::getDefaultIntValue(Setting_t s)
{
return s.Default.toInt();
}
bool Settings::getDefaultBoolValue(Setting_t s)
{
return s.Default.toBool();
}
float Settings::getDefaultFloatValue(Setting_t s)
{
return s.Default.toFloat();
}
QString Settings::getDefaultStringValue(Setting_t s)
{
return s.Default.toString();
}
int Settings::getIntValue(Setting_t s)
{
int value = s.Default.toInt();
g_MupenApi.Config.GetOption(s.Section, s.Key, &value);
return value;
}
bool Settings::getBoolValue(Setting_t s)
{
bool value = s.Default.toBool();
g_MupenApi.Config.GetOption(s.Section, s.Key, &value);
return value;
}
float Settings::getFloatValue(Setting_t s)
{
float value = s.Default.toFloat();
g_MupenApi.Config.GetOption(s.Section, s.Key, &value);
return value;
}
QString Settings::getStringValue(Setting_t s)
{
QString value = s.Default.toString();
g_MupenApi.Config.GetOption(s.Section, s.Key, &value);
return value;
}
bool Settings::setValue(Setting_t s, int value)
{
bool ret = false;
ret = g_MupenApi.Config.SetOption(s.Section, s.Key, value);
return ret;
}
bool Settings::setValue(Setting_t s, bool value)
{
bool ret = false;
ret = g_MupenApi.Config.SetOption(s.Section, s.Key, value);
return ret;
}
bool Settings::setValue(Setting_t s, float value)
{
bool ret = false;
ret = g_MupenApi.Config.SetOption(s.Section, s.Key, value);
return ret;
}
bool Settings::setValue(Setting_t s, QString value)
{
bool ret = false;
ret = g_MupenApi.Config.SetOption(s.Section, s.Key, value);
return ret;
}
+30
View File
@@ -28,18 +28,48 @@ class Settings
float GetDefaultFloatValue(SettingsID);
QString GetDefaultStringValue(SettingsID);
int GetDefaultIntValue(SettingsID, QString);
bool GetDefaultBoolValue(SettingsID, QString);
float GetDefaultFloatValue(SettingsID, QString);
QString GetDefaultStringValue(SettingsID, QString);
int GetIntValue(SettingsID);
bool GetBoolValue(SettingsID);
float GetFloatValue(SettingsID);
QString GetStringValue(SettingsID);
int GetIntValue(SettingsID, QString);
bool GetBoolValue(SettingsID, QString);
float GetFloatValue(SettingsID, QString);
QString GetStringValue(SettingsID, QString);
bool SetValue(SettingsID, int);
bool SetValue(SettingsID, bool);
bool SetValue(SettingsID, float);
bool SetValue(SettingsID, QString);
bool SetValue(SettingsID, QString, int);
bool SetValue(SettingsID, QString, bool);
bool SetValue(SettingsID, QString, float);
bool SetValue(SettingsID, QString, QString);
private:
Setting_t getSetting(SettingsID);
int getDefaultIntValue(Setting_t);
bool getDefaultBoolValue(Setting_t);
float getDefaultFloatValue(Setting_t);
QString getDefaultStringValue(Setting_t);
int getIntValue(Setting_t);
bool getBoolValue(Setting_t);
float getFloatValue(Setting_t);
QString getStringValue(Setting_t);
bool setValue(Setting_t, int);
bool setValue(Setting_t, bool);
bool setValue(Setting_t, float);
bool setValue(Setting_t, QString);
};
} // namespace Utilities
+12
View File
@@ -63,6 +63,18 @@ enum SettingsID
Core_SaveSRAMPath,
Core_SharedDataPath,
// Game Specific Settings
Game_DisableExtraMem,
Game_SaveType,
Game_CountPerOp,
Game_SiDmaDuration,
// Game Plugin Settings
Game_GFX_Plugin,
Game_AUDIO_Plugin,
Game_INPUT_Plugin,
Game_RSP_Plugin,
Invalid
};