- only change channels type when needed.

This commit is contained in:
Fledge68 2023-03-25 18:26:31 -05:00
parent 1fa1054f04
commit b878b9e2ee
4 changed files with 47 additions and 16 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 MiB

After

Width:  |  Height:  |  Size: 4.4 MiB

View File

@ -2555,7 +2555,6 @@ bool CMenu::_loadChannelList(void)
bool CMenu::_loadPluginList() bool CMenu::_loadPluginList()
{ {
bool updateCache = m_cfg.getBool(PLUGIN_DOMAIN, "update_cache"); bool updateCache = m_cfg.getBool(PLUGIN_DOMAIN, "update_cache");
int channels_type = min(max(1, m_cfg.getInt(CHANNEL_DOMAIN, "channels_type", CHANNELS_REAL)), (int)ARRAY_SIZE(CMenu::_ChannelsType));
gprintf("Adding plugins list\n"); gprintf("Adding plugins list\n");
for(u8 i = 0; m_plugin.PluginExist(i); ++i) for(u8 i = 0; m_plugin.PluginExist(i); ++i)
{ {
@ -2589,18 +2588,10 @@ bool CMenu::_loadPluginList()
m_cfg.setBool(WII_DOMAIN, "update_cache", true); m_cfg.setBool(WII_DOMAIN, "update_cache", true);
_loadWiiList(); _loadWiiList();
} }
else if(strncasecmp(m_plugin.PluginMagicWord, NAND_PMAGIC, 8) == 0)//NAND else if(strncasecmp(m_plugin.PluginMagicWord, NAND_PMAGIC, 8) == 0 || strncasecmp(m_plugin.PluginMagicWord, ENAND_PMAGIC, 8) == 0)//NAND
{ {
if(updateCache) if(updateCache)
m_cfg.setBool(CHANNEL_DOMAIN, "update_cache", true); m_cfg.setBool(CHANNEL_DOMAIN, "update_cache", true);
m_cfg.setInt(CHANNEL_DOMAIN, "channels_type", CHANNELS_REAL);
_loadChannelList();
}
else if(strncasecmp(m_plugin.PluginMagicWord, ENAND_PMAGIC, 8) == 0)//ENAN
{
if(updateCache)
m_cfg.setBool(CHANNEL_DOMAIN, "update_cache", true);
m_cfg.setInt(CHANNEL_DOMAIN, "channels_type", CHANNELS_EMU);
_loadChannelList(); _loadChannelList();
} }
else else
@ -2661,7 +2652,6 @@ bool CMenu::_loadPluginList()
} }
} }
m_cfg.remove(PLUGIN_DOMAIN, "update_cache"); m_cfg.remove(PLUGIN_DOMAIN, "update_cache");
m_cfg.setInt(CHANNEL_DOMAIN, "channels_type", channels_type);
return true; return true;
} }

View File

@ -159,7 +159,8 @@ void CMenu::_PluginSettings()
} }
_hidePluginSettings(); _hidePluginSettings();
int channels_type = 0; int channels_type = m_cfg.getInt(CHANNEL_DOMAIN, "channels_type");
u8 first = 1;
string enabledMagics; string enabledMagics;
enabledPluginsCount = 0; enabledPluginsCount = 0;
for(u8 i = 0; m_plugin.PluginExist(i); i++) for(u8 i = 0; m_plugin.PluginExist(i); i++)
@ -173,10 +174,18 @@ void CMenu::_PluginSettings()
else else
enabledMagics.append(',' + magic); enabledMagics.append(',' + magic);
if(magic == ENAND_PMAGIC) if(magic == ENAND_PMAGIC || magic == NAND_PMAGIC)
channels_type |= CHANNELS_EMU; {
else if(magic == NAND_PMAGIC) if(first)
channels_type |= CHANNELS_REAL; {
first--;
channels_type = 0;
}
if(magic == ENAND_PMAGIC)
channels_type |= CHANNELS_EMU;
else if(magic == NAND_PMAGIC)
channels_type |= CHANNELS_REAL;
}
} }
} }
m_cfg.setString(PLUGIN_DOMAIN, "enabled_plugins", enabledMagics); m_cfg.setString(PLUGIN_DOMAIN, "enabled_plugins", enabledMagics);

View File

@ -80,6 +80,8 @@ void CMenu::_sourceFlow()
m_plugin.SetEnablePlugin(pos, 1); // force disable all m_plugin.SetEnablePlugin(pos, 1); // force disable all
enabledPluginsCount = 0; enabledPluginsCount = 0;
string enabledMagics; string enabledMagics;
int channels_type = m_cfg.getInt(CHANNEL_DOMAIN, "channels_type");
u8 first = 1;
for(i = 0; i < magicNums.size(); i++) for(i = 0; i < magicNums.size(); i++)
{ {
u8 pos = m_plugin.GetPluginPosition(strtoul(magicNums[i].c_str(), NULL, 16)); u8 pos = m_plugin.GetPluginPosition(strtoul(magicNums[i].c_str(), NULL, 16));
@ -91,8 +93,22 @@ void CMenu::_sourceFlow()
enabledMagics = magicNums[i]; enabledMagics = magicNums[i];
else else
enabledMagics.append(',' + magicNums[i]); enabledMagics.append(',' + magicNums[i]);
string magic = sfmt("%08x", m_plugin.GetPluginMagic(pos));
if(magic == ENAND_PMAGIC || magic == NAND_PMAGIC)
{
if(first)
{
first--;
channels_type = 0;
}
if(magic == ENAND_PMAGIC)
channels_type |= CHANNELS_EMU;
else if(magic == NAND_PMAGIC)
channels_type |= CHANNELS_REAL;
}
} }
} }
m_cfg.setInt(CHANNEL_DOMAIN, "channels_type", channels_type);
m_cfg.setString(PLUGIN_DOMAIN, "enabled_plugins", enabledMagics); m_cfg.setString(PLUGIN_DOMAIN, "enabled_plugins", enabledMagics);
m_current_view = COVERFLOW_PLUGIN; m_current_view = COVERFLOW_PLUGIN;
} }
@ -500,6 +516,8 @@ bool CMenu::_Source()
m_plugin.SetEnablePlugin(pos, 1); // force disable all m_plugin.SetEnablePlugin(pos, 1); // force disable all
enabledPluginsCount = 0; enabledPluginsCount = 0;
string enabledMagics; string enabledMagics;
int channels_type = m_cfg.getInt(CHANNEL_DOMAIN, "channels_type");
u8 first = 1;
for(i = 0; i < magicNums.size(); i++) for(i = 0; i < magicNums.size(); i++)
{ {
u8 pos = m_plugin.GetPluginPosition(strtoul(magicNums[i].c_str(), NULL, 16)); u8 pos = m_plugin.GetPluginPosition(strtoul(magicNums[i].c_str(), NULL, 16));
@ -511,8 +529,22 @@ bool CMenu::_Source()
enabledMagics = magicNums[i]; enabledMagics = magicNums[i];
else else
enabledMagics.append(',' + magicNums[i]); enabledMagics.append(',' + magicNums[i]);
string magic = sfmt("%08x", m_plugin.GetPluginMagic(pos));
if(magic == ENAND_PMAGIC || magic == NAND_PMAGIC)
{
if(first)
{
first--;
channels_type = 0;
}
if(magic == ENAND_PMAGIC)
channels_type |= CHANNELS_EMU;
else if(magic == NAND_PMAGIC)
channels_type |= CHANNELS_REAL;
}
} }
} }
m_cfg.setInt(CHANNEL_DOMAIN, "channels_type", channels_type);
m_cfg.setString(PLUGIN_DOMAIN, "enabled_plugins", enabledMagics); m_cfg.setString(PLUGIN_DOMAIN, "enabled_plugins", enabledMagics);
m_current_view = COVERFLOW_PLUGIN; m_current_view = COVERFLOW_PLUGIN;
_setSrcOptions(); _setSrcOptions();