mirror of
https://github.com/Rosalie241/RMG.git
synced 2026-11-12 00:58:43 +01:00
improve Utilities::Settings
This commit is contained in:
1 parent
ac3f561595
commit
b2805c0a03
5 files changed
+257
-45
No files matched your search
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
};
|
||||
|
||||
|
||||
Reference in new issue
Block a user