- added pages 7 thru 11 to main settings. for a total of 19 more settings you can now set without having to manually edit the ini file.

- removed the setting data_on_usb. now your dev:/wiiflow folder must be on the same device/partition as the apps folder. which i'm 99.9% sure most users do.
- added sd_only setting. no need to set it unless for some reason it gets set to true and you have usb hdd you want to use.
This commit is contained in:
Fledge68 2018-10-31 14:51:15 -05:00
parent d03c014f43
commit 796a8d78f7
18 changed files with 434 additions and 126 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 MiB

After

Width:  |  Height:  |  Size: 3.3 MiB

View File

@ -360,6 +360,31 @@ void CVideo::prepareAAPass(int aaStep)
GX_InvalidateTexAll();
}
void CVideo::renderAAPass(int aaStep)
{
u8 texFmt = GX_TF_RGBA8;
u32 w = m_aaWidth <= 0 ? m_rmode->fbWidth : (u32)m_aaWidth;
u32 h = m_aaHeight <= 0 ? m_rmode->efbHeight: (u32)m_aaHeight;
u32 bufLen = GX_GetTexBufferSize(w, h, texFmt, GX_FALSE, 0);
if (!m_aaBuffer[aaStep] || m_aaBufferSize[aaStep] < bufLen)
{
m_aaBuffer[aaStep] = (u8*)MEM2_alloc(bufLen);
if (m_aaBuffer[aaStep] != NULL)
m_aaBufferSize[aaStep] = bufLen;
}
if (!m_aaBuffer[aaStep] || m_aaBufferSize[aaStep] < bufLen)
return;
GX_SetZMode(GX_DISABLE, GX_ALWAYS, GX_TRUE);
GX_DrawDone();
GX_SetCopyFilter(GX_FALSE, NULL, GX_FALSE, NULL);
GX_SetTexCopySrc(0, 0, w, h);
GX_SetTexCopyDst(w, h, texFmt, GX_FALSE);
GX_CopyTex(m_aaBuffer[aaStep], GX_TRUE);
GX_PixModeSync();
GX_SetCopyFilter(m_rmode->aa, m_rmode->sample_pattern, GX_TRUE, m_rmode->vfilter);
}
void CVideo::drawAAScene(bool fs)
{
GXTexObj texObj[8];
@ -433,31 +458,6 @@ void CVideo::drawAAScene(bool fs)
GX_SetNumTevStages(1);
}
void CVideo::renderAAPass(int aaStep)
{
u8 texFmt = GX_TF_RGBA8;
u32 w = m_aaWidth <= 0 ? m_rmode->fbWidth : (u32)m_aaWidth;
u32 h = m_aaHeight <= 0 ? m_rmode->efbHeight: (u32)m_aaHeight;
u32 bufLen = GX_GetTexBufferSize(w, h, texFmt, GX_FALSE, 0);
if (!m_aaBuffer[aaStep] || m_aaBufferSize[aaStep] < bufLen)
{
m_aaBuffer[aaStep] = (u8*)MEM2_alloc(bufLen);
if (m_aaBuffer[aaStep] != NULL)
m_aaBufferSize[aaStep] = bufLen;
}
if (!m_aaBuffer[aaStep] || m_aaBufferSize[aaStep] < bufLen)
return;
GX_SetZMode(GX_DISABLE, GX_ALWAYS, GX_TRUE);
GX_DrawDone();
GX_SetCopyFilter(GX_FALSE, NULL, GX_FALSE, NULL);
GX_SetTexCopySrc(0, 0, w, h);
GX_SetTexCopyDst(w, h, texFmt, GX_FALSE);
GX_CopyTex(m_aaBuffer[aaStep], GX_TRUE);
GX_PixModeSync();
GX_SetCopyFilter(m_rmode->aa, m_rmode->sample_pattern, GX_TRUE, m_rmode->vfilter);
}
void CVideo::render(void)
{
GX_SetZMode(GX_DISABLE, GX_ALWAYS, GX_TRUE);

View File

@ -58,10 +58,10 @@ bool isUsingUSB() {
return true;
}
/* If we have the WiiFlow data on USB, then we're using USB */
if(m_cfg.getBool("general", "data_on_usb", false))
/* if sd_only is false, then we're using USB */
if(!m_cfg.getBool("general", "sd_only", true))
{
// data_on_usb is true, so assuming we're using USB.
// sd_only is false, so assuming we're using USB.
return true;
}

View File

@ -59,7 +59,6 @@ CMenu::CMenu()
m_numCFVersions = 0;
m_bgCrossFade = 0;
m_bnrSndVol = 0;
m_bnr_settings = true;
m_directLaunch = false;
m_exit = false;
m_reload = false;
@ -115,7 +114,7 @@ bool CMenu::init()
/* Clear Playlog */
Playlog_Delete();
/* Find the first partition with apps/wiiflow folder */
/* Find the first partition with apps/wiiflow folder */
const char *drive = "empty";
const char *check = "empty";
struct stat dummy;
@ -163,57 +162,19 @@ bool CMenu::init()
m_init_network = (m_cfg.getBool("GENERAL", "async_network") || has_enabled_providers() || m_use_wifi_gecko);
_netInit();
/* Try to find/make the wiiflow data directory */
bool onUSB = m_cfg.getBool("GENERAL", "data_on_usb", strncmp(drive, "usb", 3) == 0);
drive = check; //reset the drive variable for the check
//check for wiiflow data directory on USB or SD based on data_on_usb
if(!onUSB)
/* Set SD only to off if any usb device is attached and format is FAT, NTFS, WBFS, or LINUX */
m_cfg.setBool("GENERAL", "sd_only", true);
for(int i = USB1; i <= USB8; i++)
{
if(DeviceHandle.IsInserted(SD))// no need to find sd:/wiiflow, it will be made if not exist
drive = DeviceName[SD];
else
{
onUSB = true;
m_cfg.setBool("GENERAL", "data_on_usb", true);
}
}
if(onUSB)
{
for(u8 i = USB1; i <= USB8; i++) //Look for first partition with a wiiflow folder in root
{
if(DeviceHandle.IsInserted(i) && DeviceHandle.GetFSType(i) != PART_FS_WBFS && stat(fmt("%s:/%s", DeviceName[i], APP_DATA_DIR), &dummy) == 0)
{
drive = DeviceName[i];
break;
}
}
if(drive == check)// if wiiflow data directory not found just find a valid USB partition
{
for(u8 i = USB1; i <= USB8; i++)
{
if(DeviceHandle.IsInserted(i) && DeviceHandle.GetFSType(i) != PART_FS_WBFS)
{
drive = DeviceName[i];
break;
}
}
}
if(drive == check && DeviceHandle.IsInserted(SD))//if no valid USB partition then force SD if inserted
{
drive = DeviceName[SD];
// show error msg later after building menus
}
if(drive == check)// should not happen
{
/* No available usb partitions for data and no SD inserted! */
return false;
}
if(DeviceHandle.IsInserted(i) && DeviceHandle.GetFSType(i) >= 0)
m_cfg.setBool("GENERAL", "sd_only", false);
}
/* Set data folder on same device as the apps/wiiflow folder */
m_dataDir = fmt("%s:/%s", drive, APP_DATA_DIR);
gprintf("Data Directory: %s\n", m_dataDir.c_str());
snprintf(m_app_update_drive, sizeof(m_app_update_drive), "%s:/", drive);
/* Our Wii game dir */
/* Our Wii games dir */
memset(wii_games_dir, 0, 64);
strncpy(wii_games_dir, m_cfg.getString(WII_DOMAIN, "wii_games_dir", GAMES_DIR).c_str(), 64);
if(strncmp(wii_games_dir, "%s:/", 4) != 0)
@ -235,12 +196,6 @@ bool CMenu::init()
_installed_cios.clear();
_load_installed_cioses();
/* Path Settings */
m_dol = fmt("%s/boot.dol", m_appDir.c_str());
m_ver = fmt("%s/versions", m_appDir.c_str());
m_app_update_zip = fmt("%s/update.zip", m_appDir.c_str());
m_data_update_zip = fmt("%s/update.zip", m_dataDir.c_str());
m_imgsDir = fmt("%s/imgs", m_appDir.c_str());
m_binsDir = fmt("%s/bins", m_appDir.c_str());
@ -336,14 +291,14 @@ bool CMenu::init()
if(!m_coverflow.loaded())
m_coverflow.load(fmt("%s/coverflows/default.ini", m_themeDir.c_str()));
/* Get plugin ini files if plugin view enabled */
if(!m_cfg.getBool(PLUGIN_DOMAIN, "disable", false))
/* Get plugin ini files */
m_plugin.init(m_pluginsDir);
INI_List.clear();
GetFiles(m_pluginsDir.c_str(), stringToVector(".ini", '|'), GrabINIFiles, false, 1);
if(INI_List.size() > 0)
{
m_plugin.init(m_pluginsDir);
Config m_plugin_cfg;
INI_List.clear();
GetFiles(m_pluginsDir.c_str(), stringToVector(".ini", '|'), GrabINIFiles, false, 1);
for(vector<string>::const_iterator iniFile = INI_List.begin(); iniFile != INI_List.end(); ++iniFile)
{
if(iniFile->find("scummvm.ini") != string::npos)
@ -356,8 +311,9 @@ bool CMenu::init()
}
m_plugin_cfg.unload();
}
m_plugin.EndAdd();
}
m_plugin.EndAdd();
/* Set wiiflow language */
const char *defLang = "Default";
switch (CONF_GetLanguage())
@ -424,11 +380,6 @@ bool CMenu::init()
/* Init Button Manager and build the menus */
_buildMenus();
if(drive == DeviceName[SD] && onUSB)
{
error(_fmt("errboot5", L"data_on_usb=yes and No available usb partitions for data!\nUsing SD."));
m_cfg.setBool("GENERAL", "data_on_usb", false);
}
/* Check if locked, set return to, set exit to, and init multi threading */
m_locked = m_cfg.getString("GENERAL", "parent_code", "").size() >= 4;
@ -1276,6 +1227,7 @@ void CMenu::_buildMenus(void)
_initConfig3Menu();
_initConfigMenu();
_initConfigGCMenu();
_initConfig7Menu();
_initPartitionsCfgMenu();
_initGameMenu();
_initDownloadMenu();

View File

@ -158,17 +158,6 @@ private:
bool m_txt_view;
const char *m_txt_path;
/* Updates */
char m_app_update_drive[6];
const char* m_app_update_url;
const char* m_data_update_url;
string m_dol;
string m_app_update_zip;
u32 m_app_update_size;
string m_data_update_zip;
u32 m_data_update_size;
string m_ver;
// Background image stuff
TexData sfbgimg;
TexData m_curBg;
@ -891,6 +880,7 @@ private:
void _initConfigSndMenu();
void _initConfigScreenMenu();
void _initConfigGCMenu();
void _initConfig7Menu();
void _initPartitionsCfgMenu();
void _initGameMenu();
void _initDownloadMenu();
@ -956,6 +946,7 @@ private:
void _hideConfigSnd(bool instant = false);
void _hideConfigGC(bool instant = false);
void _hideConfigGCPage(bool instant = false);
void _hideConfig7(bool instant = false);
void _hidePartitionsCfg(bool instant = false);
void _hideGame(bool instant = false);
void _hideDownload(bool instant = false);
@ -991,6 +982,7 @@ private:
void _showConfigSnd(void);
void _showConfigGC(void);
void _showConfigGCPage(void);
void _showConfig7(int curPage);
void _showPartitionsCfg(void);
void _showNandEmu(void);
void _showGame(void);
@ -1042,6 +1034,7 @@ private:
int _configAdv(void);
int _configSnd(void);
void _configGC(void);
int _config7(int curPage);
void _partitionsCfg(void);
int _NandEmuCfg(void);
int _AutoExtractSave(string gameId);

View File

@ -3,8 +3,7 @@
#include "channel/nand.hpp"
#include "loader/nk.h"
const int CMenu::_nbCfgPages = 6;
static const int g_curPage = 1;
const int CMenu::_nbCfgPages = 11;
void CMenu::_hideConfigCommon(bool instant)
{
@ -46,7 +45,7 @@ void CMenu::_showConfigCommon(const TexData &bg, int page)
void CMenu::_showConfig(void)
{
_showConfigCommon(m_configBg, g_curPage);
_showConfigCommon(m_configBg, 1);
if(!m_locked)
{
@ -92,6 +91,21 @@ void CMenu::_config(int page)
case 6:
change = _configScreen();
break;
case 7:
change = _config7(page);
break;
case 8:
change = _config7(page);
break;
case 9:
change = _config7(page);
break;
case 10:
change = _config7(page);
break;
case 11:
change = _config7(page);
break;
}
if(change == CONFIG_PAGE_BACK)
break;
@ -142,8 +156,6 @@ int CMenu::_config1(void)
if (change != CONFIG_PAGE_NO_CHANGE)
break;
if (BTN_HOME_PRESSED || BTN_B_PRESSED)
break;
if (BTN_A_PRESSED)
{
if (m_btnMgr.selected(m_configBtnDownload))

View File

@ -1,8 +1,6 @@
#include "menu.hpp"
static const int g_curPage = 3;
template <class T> static inline T loopNum(T i, T s)
{
return (i + s) % s;
@ -37,7 +35,7 @@ void CMenu::_hideConfig3(bool instant)
void CMenu::_showConfig3(void)
{
_showConfigCommon(m_config3Bg, g_curPage);
_showConfigCommon(m_config3Bg, 3);
m_btnMgr.show(m_config3LblGameLanguage);
m_btnMgr.show(m_config3LblLanguage);

View File

@ -2,7 +2,6 @@
#include "menu.hpp"
#include "channel/channels.h"
static const int g_curPage = 4;
Config custom_titles;
int currentChannelIndex = -1;
int amountOfChannels = -1;
@ -39,7 +38,7 @@ void CMenu::_hideConfig4(bool instant)
void CMenu::_showConfig4(void)
{
_showConfigCommon(m_config4Bg, g_curPage);
_showConfigCommon(m_config4Bg, 4);
m_btnMgr.show(m_config4LblPathManager);
m_btnMgr.show(m_config4BtnPathManager);

View File

@ -0,0 +1,328 @@
#include "menu.hpp"
using namespace std;
s16 m_config7Lbl1;
s16 m_config7Lbl2;
s16 m_config7Lbl3;
s16 m_config7Lbl4;
s16 m_config7Btn1;
s16 m_config7Btn2;
s16 m_config7Btn3;
s16 m_config7Btn4;
s16 m_config7Lbl4Val;
s16 m_config7Btn4M;
s16 m_config7Btn4P;
s16 m_config7LblUser[4];
TexData m_config7Bg;
void CMenu::_hideConfig7(bool instant)
{
_hideConfigCommon(instant);
m_btnMgr.hide(m_config7Lbl1, instant);
m_btnMgr.hide(m_config7Btn1, instant);
m_btnMgr.hide(m_config7Lbl2, instant);
m_btnMgr.hide(m_config7Btn2, instant);
m_btnMgr.hide(m_config7Lbl3, instant);
m_btnMgr.hide(m_config7Btn3, instant);
m_btnMgr.hide(m_config7Lbl4, instant);
m_btnMgr.hide(m_config7Btn4, instant);
m_btnMgr.hide(m_config7Lbl4Val, instant);
m_btnMgr.hide(m_config7Btn4M, instant);
m_btnMgr.hide(m_config7Btn4P, instant);
for(u8 i = 0; i < ARRAY_SIZE(m_config7LblUser); ++i)
if(m_config7LblUser[i] != -1)
m_btnMgr.hide(m_config7LblUser[i], instant);
}
void CMenu::_showConfig7(int curPage)
{
_showConfigCommon(m_config7Bg,curPage);
m_btnMgr.hide(m_config7Lbl1, true);
m_btnMgr.hide(m_config7Btn1, true);
m_btnMgr.hide(m_config7Lbl2, true);
m_btnMgr.hide(m_config7Btn2, true);
m_btnMgr.hide(m_config7Lbl3, true);
m_btnMgr.hide(m_config7Btn3, true);
m_btnMgr.hide(m_config7Lbl4, true);
m_btnMgr.hide(m_config7Btn4, true);
m_btnMgr.hide(m_config7Lbl4Val, true);
m_btnMgr.hide(m_config7Btn4M, true);
m_btnMgr.hide(m_config7Btn4P, true);
_setBg(m_config7Bg, m_config7Bg);
for(u32 i = 0; i < ARRAY_SIZE(m_config7LblUser); ++i)
if(m_config7LblUser[i] != -1)
m_btnMgr.show(m_config7LblUser[i]);
m_btnMgr.show(m_config7Lbl1);
m_btnMgr.show(m_config7Btn1);
m_btnMgr.show(m_config7Lbl2);
m_btnMgr.show(m_config7Btn2);
m_btnMgr.show(m_config7Lbl3);
m_btnMgr.show(m_config7Btn3);
if(curPage != 11)
m_btnMgr.show(m_config7Lbl4);
if(curPage == 7)
m_btnMgr.show(m_config7Btn4);
else if(curPage != 11)
{
m_btnMgr.show(m_config7Lbl4Val);
m_btnMgr.show(m_config7Btn4M);
m_btnMgr.show(m_config7Btn4P);
}
if(curPage == 7)
{
m_btnMgr.setText(m_config7Lbl1, _t("cfg701", L"Hide all source buttons"));
m_btnMgr.setText(m_config7Btn1, m_cfg.getBool("GENERAL", "hideviews") ? _t("yes", L"Yes") : _t("no", L"No"));
m_btnMgr.setText(m_config7Lbl2, _t("cfg702", L"Hide GameCube button"));
m_btnMgr.setText(m_config7Btn2, m_cfg.getBool(GC_DOMAIN, "disable") ? _t("yes", L"Yes") : _t("no", L"No"));
m_btnMgr.setText(m_config7Lbl3, _t("cfg703", L"Hide channels button"));
m_btnMgr.setText(m_config7Btn3, m_cfg.getBool(CHANNEL_DOMAIN, "disable") ? _t("yes", L"Yes") : _t("no", L"No"));
m_btnMgr.setText(m_config7Lbl4, _t("cfg704", L"Hide plugins button"));
m_btnMgr.setText(m_config7Btn4, m_cfg.getBool(PLUGIN_DOMAIN, "disable") ? _t("yes", L"Yes") : _t("no", L"No"));
}
else if(curPage == 8)
{
m_btnMgr.setText(m_config7Lbl1, _t("cfg705", L"Show banner in game settings"));
m_btnMgr.setText(m_config7Btn1, m_cfg.getBool("GENERAL", "banner_in_settings") ? _t("yes", L"Yes") : _t("no", L"No"));
m_btnMgr.setText(m_config7Lbl2, _t("cfg706", L"Enable fanart"));
m_btnMgr.setText(m_config7Btn1, m_cfg.getBool("FANART", "enable_fanart") ? _t("yes", L"Yes") : _t("no", L"No"));
m_btnMgr.setText(m_config7Lbl3, _t("cfg707", L"Fanart default loop"));
m_btnMgr.setText(m_config7Btn1, !m_cfg.getBool("FANART", "show_cover_after_animation") ? _t("yes", L"Yes") : _t("no", L"No"));
m_btnMgr.setText(m_config7Lbl4, _t("cfg708", L"Fanart default ending delay"));
m_btnMgr.setText(m_config7Lbl4Val, wfmt(L"%i", m_cfg.getInt("FANART", "delay_after_animation", 200)));
}
else if(curPage == 9)
{
m_btnMgr.setText(m_config7Lbl1, _t("cfg709", L"Rumble"));
m_btnMgr.setText(m_config7Btn1, m_cfg.getBool("GENERAL", "rumble") ? _t("on", L"On") : _t("off", L"Off"));
m_btnMgr.setText(m_config7Lbl2, _t("cfg710", L"Wiimote gestures"));
m_btnMgr.setText(m_config7Btn2, m_cfg.getBool("GENERAL", "wiimote_gestures") ? _t("on", L"On") : _t("off", L"Off"));
m_btnMgr.setText(m_config7Lbl3, _t("cfg711", L"Screensaver"));
m_btnMgr.setText(m_config7Btn3, !m_cfg.getBool("GENERAL", "screensaver_disabled") ? _t("on", L"On") : _t("off", L"Off"));
m_btnMgr.setText(m_config7Lbl4, _t("cfg712", L"Screensaver idle seconds"));
m_btnMgr.setText(m_config7Lbl4Val, wfmt(L"%i", m_cfg.getInt("GENERAL", "screensaver_idle_seconds", 60)));// inc by 30
}
else if(curPage == 10)
{
m_btnMgr.setText(m_config7Lbl1, _t("cfg713", L"Use HQ covers"));
m_btnMgr.setText(m_config7Btn1, m_cfg.getBool("GENERAL", "cover_use_hq") ? _t("yes", L"Yes") : _t("no", L"No"));
m_btnMgr.setText(m_config7Lbl2, _t("cfg714", L"Display music title"));
m_btnMgr.setText(m_config7Btn2, m_cfg.getBool("GENERAL", "display_music_info") ? _t("yes", L"Yes") : _t("no", L"No"));
m_btnMgr.setText(m_config7Lbl3, _t("cfg715", L"Randomize music"));
m_btnMgr.setText(m_config7Btn3, m_cfg.getBool("GENERAL", "randomize_music") ? _t("yes", L"Yes") : _t("no", L"No"));
m_btnMgr.setText(m_config7Lbl4, _t("cfg716", L"Music fade rate"));
m_btnMgr.setText(m_config7Lbl4Val, wfmt(L"%i", m_cfg.getInt("GENERAL", "music_fade_rate", 8)));
}
else // page 11
{
m_btnMgr.setText(m_config7Lbl1, _t("cfg717", L"Random game boot or select"));
m_btnMgr.setText(m_config7Btn1, m_cfg.getBool("GENERAL", "random_select") ? _t("select", L"Select") : _t("boot", L"Boot"));
m_btnMgr.setText(m_config7Lbl2, _t("cfg718", L"Source Menu on start"));
m_btnMgr.setText(m_config7Btn2, m_cfg.getBool("GENERAL", "source_on_start") ? _t("yes", L"Yes") : _t("no", L"No"));
m_btnMgr.setText(m_config7Lbl3, _t("cfg719", L"SD only"));
m_btnMgr.setText(m_config7Btn3, m_cfg.getBool("GENERAL", "sd_only") ? _t("yes", L"Yes") : _t("no", L"No"));
}
}
int CMenu::_config7(int curPage)
{
bool rand_music = m_cfg.getBool("GENERAL", "randomize_music");
bool hq_covers = m_cfg.getBool("GENERAL", "cover_use_hq");
int change = CONFIG_PAGE_NO_CHANGE;
_showConfig7(curPage);
while(!m_exit)
{
change = _configCommon();
if(change != CONFIG_PAGE_NO_CHANGE)
break;
if(BTN_A_PRESSED)
{
if(curPage == 7)
{
if(m_btnMgr.selected(m_config7Btn1))
{
m_cfg.setBool("GENERAL", "hideviews", !m_cfg.getBool("GENERAL", "hideviews"));
m_btnMgr.setText(m_config7Btn1, m_cfg.getBool("GENERAL", "hideviews") ? _t("yes", L"Yes") : _t("no", L"No"));
}
else if(m_btnMgr.selected(m_config7Btn2))
{
m_cfg.setBool(GC_DOMAIN, "disable", !m_cfg.getBool(GC_DOMAIN, "disable"));
m_btnMgr.setText(m_config7Btn2, m_cfg.getBool(GC_DOMAIN, "disable") ? _t("yes", L"Yes") : _t("no", L"No"));
}
else if(m_btnMgr.selected(m_config7Btn3))
{
m_cfg.setBool(CHANNEL_DOMAIN, "disable", !m_cfg.getBool(CHANNEL_DOMAIN, "disable"));
m_btnMgr.setText(m_config7Btn3, m_cfg.getBool(CHANNEL_DOMAIN, "disable") ? _t("yes", L"Yes") : _t("no", L"No"));
}
else if(m_btnMgr.selected(m_config7Btn4))
{
m_cfg.setBool(PLUGIN_DOMAIN, "disable", !m_cfg.getBool(PLUGIN_DOMAIN, "disable"));
m_btnMgr.setText(m_config7Btn4, m_cfg.getBool(PLUGIN_DOMAIN, "disable") ? _t("yes", L"Yes") : _t("no", L"No"));
}
}
if(curPage == 8)
{
if(m_btnMgr.selected(m_config7Btn1))
{
m_cfg.setBool("GENERAL", "banner_in_settings", !m_cfg.getBool("GENERAL", "banner_in_settings"));
m_btnMgr.setText(m_config7Btn1, m_cfg.getBool("GENERAL", "banner_in_settings") ? _t("yes", L"Yes") : _t("no", L"No"));
m_bnr_settings = m_cfg.getBool("GENERAL", "banner_in_settings");
}
else if(m_btnMgr.selected(m_config7Btn2))
{
m_cfg.setBool("FANART", "enable_fanart", !m_cfg.getBool("FANART", "enable_fanart"));
m_btnMgr.setText(m_config7Btn2, m_cfg.getBool("FANART", "enable_fanart") ? _t("yes", L"Yes") : _t("no", L"No"));
}
else if(m_btnMgr.selected(m_config7Btn3))
{
m_cfg.setBool("FANART", "show_cover_after_animation", !m_cfg.getBool("FANART", "show_cover_after_animation"));
m_btnMgr.setText(m_config7Btn3, m_cfg.getBool("FANART", "show_cover_after_animation") ? _t("yes", L"Yes") : _t("no", L"No"));
}
else if(m_btnMgr.selected(m_config7Btn4P) || m_btnMgr.selected(m_config7Btn4M))
{
s8 direction = m_btnMgr.selected(m_config7Btn4P) ? 1 : -1;
int val = m_cfg.getInt("FANART", "delay_after_animation") + direction;
if(val >= 0 && val < 360)
m_cfg.setInt("FANART", "delay_after_animation", val);
m_btnMgr.setText(m_config7Lbl4Val, wfmt(L"%i", m_cfg.getInt("FANART", "delay_after_animation")));
}
}
if(curPage == 9)
{
if(m_btnMgr.selected(m_config7Btn1))
{
m_cfg.setBool("GENERAL", "rumble", !m_cfg.getBool("GENERAL", "rumble"));
m_btnMgr.setText(m_config7Btn1, m_cfg.getBool("GENERAL", "rumble") ? _t("on", L"On") : _t("off", L"Off"));
m_btnMgr.setRumble(m_cfg.getBool("GENERAL", "rumble"));
}
else if(m_btnMgr.selected(m_config7Btn2))
{
m_cfg.setBool("GENERAL", "wiimote_gestures", !m_cfg.getBool("GENERAL", "wiimote_gestures"));
m_btnMgr.setText(m_config7Btn2, m_cfg.getBool("GENERAL", "wiimote_gestures") ? _t("on", L"On") : _t("off", L"Off"));
enable_wmote_roll = m_cfg.getBool("GENERAL", "wiimote_gestures");
}
else if(m_btnMgr.selected(m_config7Btn3))
{
m_cfg.setBool("GENERAL", "screensaver_disabled", !m_cfg.getBool("GENERAL", "screensaver_disabled"));
m_btnMgr.setText(m_config7Btn3, m_cfg.getBool("GENERAL", "screensaver_disabled") ? _t("on", L"On") : _t("off", L"Off"));
}
else if(m_btnMgr.selected(m_config7Btn4P) || m_btnMgr.selected(m_config7Btn4M))
{
s8 direction = m_btnMgr.selected(m_config7Btn4P) ? 30 : -30;
int val = m_cfg.getInt("GENERAL", "screensaver_idle_seconds") + direction;
if(val >= 0 && val < 361)
m_cfg.setInt("GENERAL", "screensaver_idle_seconds", val);
m_btnMgr.setText(m_config7Lbl4Val, wfmt(L"%i", m_cfg.getInt("GENERAL", "screensaver_idle_seconds")));
}
}
if(curPage == 10)
{
if(m_btnMgr.selected(m_config7Btn1))
{
m_cfg.setBool("GENERAL", "cover_use_hq", !m_cfg.getBool("GENERAL", "cover_use_hq"));
m_btnMgr.setText(m_config7Btn1, m_cfg.getBool("GENERAL", "cover_use_hq") ? _t("yes", L"Yes") : _t("no", L"No"));
}
else if(m_btnMgr.selected(m_config7Btn2))
{
m_cfg.setBool("GENERAL", "display_music_info", !m_cfg.getBool("GENERAL", "display_music_info"));
m_btnMgr.setText(m_config7Btn2, m_cfg.getBool("GENERAL", "display_music_info") ? _t("yes", L"Yes") : _t("no", L"No"));
m_music_info = m_cfg.getBool("GENERAL", "display_music_info");
}
else if(m_btnMgr.selected(m_config7Btn3))
{
m_cfg.setBool("GENERAL", "randomize_music", !m_cfg.getBool("GENERAL", "randomize_music"));
m_btnMgr.setText(m_config7Btn3, m_cfg.getBool("GENERAL", "randomize_music") ? _t("yes", L"Yes") : _t("no", L"No"));
}
else if(m_btnMgr.selected(m_config7Btn4P) || m_btnMgr.selected(m_config7Btn4M))
{
s8 direction = m_btnMgr.selected(m_config7Btn4P) ? 1 : -1;
int val = m_cfg.getInt("GENERAL", "music_fade_rate") + direction;
if(val >= 0 && val < 30)
m_cfg.setInt("GENERAL", "music_fade_rate", val);
m_btnMgr.setText(m_config7Lbl4Val, wfmt(L"%i", m_cfg.getInt("GENERAL", "music_fade_rate")));
MusicPlayer.SetFadeRate(m_cfg.getInt("GENERAL", "music_fade_rate"));
}
}
if(curPage == 11)
{
if(m_btnMgr.selected(m_config7Btn1))
{
m_cfg.setBool("GENERAL", "random_select", !m_cfg.getBool("GENERAL", "random_select"));
m_btnMgr.setText(m_config7Btn1, m_cfg.getBool("GENERAL", "random_select") ? _t("select", L"Select") : _t("boot", L"Boot"));
}
else if(m_btnMgr.selected(m_config7Btn2))
{
m_cfg.setBool("GENERAL", "source_on_start", !m_cfg.getBool("GENERAL", "source_on_start"));
m_btnMgr.setText(m_config7Btn2, m_cfg.getBool("GENERAL", "source_on_start") ? _t("yes", L"Yes") : _t("no", L"No"));
}
else if(m_btnMgr.selected(m_config7Btn3))
{
m_cfg.setBool("GENERAL", "sd_only", !m_cfg.getBool("GENERAL", "sd_only"));
m_btnMgr.setText(m_config7Btn3, m_cfg.getBool("GENERAL", "sd_only") ? _t("yes", L"Yes") : _t("no", L"No"));
}
}
}
}
if(rand_music != m_cfg.getBool("GENERAL", "randomize_music"))
MusicPlayer.Init(m_cfg, m_musicDir, fmt("%s/music", m_themeDataDir.c_str()));
if(hq_covers != m_cfg.getBool("GENERAL", "cover_use_hq"))
_initCF();
_hideConfig7();
return change;
}
void CMenu::_initConfig7Menu()
{
_addUserLabels(m_config7LblUser, ARRAY_SIZE(m_config7LblUser), "CONFIG7");
m_config7Bg = _texture("CONFIG7/BG", "texture", theme.bg, false);
m_config7Lbl1 = _addLabel("CONFIG7/LINE1", theme.lblFont, L"", 20, 125, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_config7Btn1 = _addButton("CONFIG7/LINE1_BTN", theme.btnFont, L"", 420, 130, 200, 48, theme.btnFontColor);
m_config7Lbl2 = _addLabel("CONFIG7/LINE2", theme.lblFont, L"", 20, 185, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_config7Btn2 = _addButton("CONFIG7/LINE2_BTN", theme.btnFont, L"", 420, 190, 200, 48, theme.btnFontColor);
m_config7Lbl3 = _addLabel("CONFIG7/LINE3", theme.lblFont, L"", 20, 245, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_config7Btn3 = _addButton("CONFIG7/LINE3_BTN", theme.btnFont, L"", 420, 250, 200, 48, theme.btnFontColor);
m_config7Lbl4 = _addLabel("CONFIG7/LINE4", theme.lblFont, L"", 20, 305, 385, 56, theme.lblFontColor, FTGX_JUSTIFY_LEFT | FTGX_ALIGN_MIDDLE);
m_config7Btn4 = _addButton("CONFIG7/LINE4_BTN", theme.btnFont, L"", 420, 310, 200, 48, theme.btnFontColor);
m_config7Lbl4Val = _addLabel("CONFIG7/LINE4_VAL", theme.btnFont, L"", 468, 310, 104, 48, theme.btnFontColor, FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE, theme.btnTexC);
m_config7Btn4M = _addPicButton("CONFIG7/LINE4_MINUS", theme.btnTexMinus, theme.btnTexMinusS, 420, 310, 48, 48);
m_config7Btn4P = _addPicButton("CONFIG7/LINE4_PLUS", theme.btnTexPlus, theme.btnTexPlusS, 572, 310, 48, 48);
_setHideAnim(m_config7Lbl1, "CONFIG7/LINE1", 50, 0, -2.f, 0.f);
_setHideAnim(m_config7Btn1, "CONFIG7/LINE1_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_config7Lbl2, "CONFIG7/LINE2", 50, 0, -2.f, 0.f);
_setHideAnim(m_config7Btn2, "CONFIG7/LINE2_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_config7Lbl3, "CONFIG7/LINE3", 50, 0, -2.f, 0.f);
_setHideAnim(m_config7Btn3, "CONFIG7/LINE3_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_config7Lbl4, "CONFIG7/LINE4", 50, 0, -2.f, 0.f);
_setHideAnim(m_config7Btn4, "CONFIG7/LINE4_BTN", -50, 0, 1.f, 0.f);
_setHideAnim(m_config7Lbl4Val, "CONFIG7/LINE4_VAL", -50, 0, 1.f, 0.f);
_setHideAnim(m_config7Btn4M, "CONFIG7/LINE4_MINUS", -50, 0, 1.f, 0.f);
_setHideAnim(m_config7Btn4P, "CONFIG7/LINE4_PLUS", -50, 0, 1.f, 0.f);
_hideConfig7(true);
}
/*
void CMenu::_textConfig7(void)
{
}
*/

View File

@ -5,8 +5,6 @@
using namespace std;
static const int g_curPage = 2;
template <class T> static inline T loopNum(T i, T s)
{
return (i + s) % s;
@ -46,7 +44,7 @@ void CMenu::_hideConfigAdv(bool instant)
void CMenu::_showConfigAdv(void)
{
_showConfigCommon(m_configAdvBg, g_curPage);
_showConfigCommon(m_configAdvBg, 2);
m_btnMgr.show(m_configAdvLblCurTheme);
m_btnMgr.show(m_configAdvBtnCurThemeM);

View File

@ -1,8 +1,6 @@
#include "menu.hpp"
static const int g_curPage = 6;
void CMenu::_hideConfigScreen(bool instant)
{
_hideConfigCommon(instant);
@ -30,7 +28,7 @@ void CMenu::_hideConfigScreen(bool instant)
void CMenu::_showConfigScreen(void)
{
_showConfigCommon(m_configScreenBg, g_curPage);
_showConfigCommon(m_configScreenBg, 6);
m_btnMgr.show(m_configScreenLblTVHeight);
m_btnMgr.show(m_configScreenLblTVHeightVal);

View File

@ -1,8 +1,6 @@
#include "menu.hpp"
static const int g_curPage = 5;
void CMenu::_hideConfigSnd(bool instant)
{
_hideConfigCommon(instant);
@ -30,7 +28,7 @@ void CMenu::_hideConfigSnd(bool instant)
void CMenu::_showConfigSnd(void)
{
_showConfigCommon(m_configSndBg, g_curPage);
_showConfigCommon(m_configSndBg, 5);
m_btnMgr.show(m_configSndLblBnrVol);
m_btnMgr.show(m_configSndLblBnrVolVal);

View File

@ -988,7 +988,7 @@ void CMenu::_game(bool launch)
if(coverFlipped)
{
m_coverflow.setVector3D(domain, key, savedv);
_loadCFLayout(cf_version, true);
_loadCFLayout(cf_version, true);// true?
CoverFlow.applySettings();
}
m_gameSelected = false;

View File

@ -414,6 +414,9 @@ int CMenu::main(void)
bheld = true;
bUsed = true;
}
show_channel = !m_cfg.getBool(CHANNEL_DOMAIN, "disable", false);
show_plugin = !m_cfg.getBool(PLUGIN_DOMAIN, "disable", false);
show_gamecube = !m_cfg.getBool(GC_DOMAIN, "disable", false);
_showMain();
}
else if(m_btnMgr.selected(m_mainBtnHomebrew))

View File

@ -65,6 +65,11 @@ void Musicplayer::Init(Config &cfg, const string& musicDir, const string& themeM
CurrentFileName = FileNames.begin();
}
void Musicplayer::SetFadeRate(u8 faderate)
{
FadeRate = faderate;
}
void Musicplayer::SetMaxVolume(u8 volume)
{
Volume = volume;

View File

@ -31,6 +31,7 @@ public:
void Init(Config &cfg, const string& musicDir, const string& themeMusicDir);
void Tick(bool attenuate);
void SetFadeRate(u8 faderate);
void SetVolume(u8 volume);
void SetMaxVolume(u8 volume);
u8 GetVolume() { return CurrentVolume; };

View File

@ -34,7 +34,7 @@ void Plugin::init(const string& m_pluginsDir)
{
PluginMagicWord[8] = '\0';
pluginsDir = m_pluginsDir;
//Ready to add plugins
Plugins.clear();
adding = true;
}

View File

@ -13,6 +13,7 @@ appname=%s v%s
aspect169=Force 16:9
aspect43=Force 4:3
aspectDef=Default
boot=Boot
bootmii=BootMii
bycontrollers=By Controllers
byesrb=By ESRB
@ -41,6 +42,25 @@ cfg4=Download
cfg5=Parental control
cfg6=Unlock
cfg7=Set code
cfg701=Hide all source buttons
cfg702=Hide GameCube button
cfg703=Hide channels button
cfg704=Hide plugins button
cfg705=Show banner in game settings
cfg706=Enable fanart
cfg707=Fanart default loop
cfg708=Fanart default ending delay
cfg709=Rumble
cfg710=Wiimote gestures
cfg711=Screensaver
cfg712=Screensaver idle seconds
cfg713=Use HQ covers
cfg714=Display music title
cfg715=Randomize music
cfg716=Music fade rate
cfg717=Random game boot or select
cfg718=Source Menu on start
cfg719=SD only
cfga2=Install game
cfga3=Install
cfga6=Language
@ -376,6 +396,7 @@ NinMCon=Enabled
NoDVDDef=Default
NoDVDOff=Disabled
NoDVDon=Enabled
no=No
off=Off
on=On
part1=Wii Partition
@ -396,6 +417,7 @@ SavePartG=Game save
SaveReg=Regionswitch
SaveRegG=Regionswitch
savedtheme=Theme config saved!
select=Select
snes=Super Nintendo
stup1=Select Source
stup2=** DISABLED **
@ -466,3 +488,4 @@ wii=Wii
wiichannels=Offical Wii Channels
wiiware=WiiWare
wiiu=Wii U Menu
yes=Yes