mirror of
https://github.com/wiidev/usbloadergx.git
synced 2024-11-03 10:05:05 +01:00
152 lines
5.0 KiB
C++
152 lines
5.0 KiB
C++
|
/****************************************************************************
|
||
|
* Copyright (C) 2011
|
||
|
* by Dimok
|
||
|
*
|
||
|
* This software is provided 'as-is', without any express or implied
|
||
|
* warranty. In no event will the authors be held liable for any
|
||
|
* damages arising from the use of this software.
|
||
|
*
|
||
|
* Permission is granted to anyone to use this software for any
|
||
|
* purpose, including commercial applications, and to alter it and
|
||
|
* redistribute it freely, subject to the following restrictions:
|
||
|
*
|
||
|
* 1. The origin of this software must not be misrepresented; you
|
||
|
* must not claim that you wrote the original software. If you use
|
||
|
* this software in a product, an acknowledgment in the product
|
||
|
* documentation would be appreciated but is not required.
|
||
|
*
|
||
|
* 2. Altered source versions must be plainly marked as such, and
|
||
|
* must not be misrepresented as being the original software.
|
||
|
*
|
||
|
* 3. This notice may not be removed or altered from any source
|
||
|
* distribution.
|
||
|
***************************************************************************/
|
||
|
#include <unistd.h>
|
||
|
#include "FeatureSettingsMenu.hpp"
|
||
|
#include "settings/CGameCategories.hpp"
|
||
|
#include "settings/GameTitles.h"
|
||
|
#include "settings/CSettings.h"
|
||
|
#include "settings/SettingsPrompts.h"
|
||
|
#include "network/Wiinnertag.h"
|
||
|
#include "network/networkops.h"
|
||
|
#include "FileOperations/fileops.h"
|
||
|
#include "prompts/PromptWindows.h"
|
||
|
#include "language/gettext.h"
|
||
|
|
||
|
static const char * OnOffText[] =
|
||
|
{
|
||
|
trNOOP( "OFF" ),
|
||
|
trNOOP( "ON" )
|
||
|
};
|
||
|
|
||
|
FeatureSettingsMenu::FeatureSettingsMenu()
|
||
|
: SettingsMenu(tr("Sound Settings"), &GuiOptions, MENU_NONE)
|
||
|
{
|
||
|
int Idx = 0;
|
||
|
Options->SetName(Idx++, "%s", tr( "Titles from WiiTDB" ));
|
||
|
Options->SetName(Idx++, "%s", tr( "Cache Titles" ));
|
||
|
Options->SetName(Idx++, "%s", tr( "Wiinnertag" ));
|
||
|
Options->SetName(Idx++, "%s", tr( "Import Categories" ));
|
||
|
|
||
|
SetOptionValues();
|
||
|
}
|
||
|
|
||
|
void FeatureSettingsMenu::SetOptionValues()
|
||
|
{
|
||
|
int Idx = 0;
|
||
|
|
||
|
//! Settings: Titles from WiiTDB
|
||
|
Options->SetValue(Idx++, "%s", tr( OnOffText[Settings.titlesOverride] ));
|
||
|
|
||
|
//! Settings: Cache Titles
|
||
|
Options->SetValue(Idx++, "%s", tr( OnOffText[Settings.CacheTitles] ));
|
||
|
|
||
|
//! Settings: Wiinnertag
|
||
|
Options->SetValue(Idx++, "%s", tr( OnOffText[Settings.Wiinnertag] ));
|
||
|
|
||
|
//! Settings: Import categories from WiiTDB
|
||
|
Options->SetValue(Idx++, " ");
|
||
|
}
|
||
|
|
||
|
int FeatureSettingsMenu::GetMenuInternal()
|
||
|
{
|
||
|
int ret = optionBrowser->GetClickedOption();
|
||
|
|
||
|
if (ret < 0)
|
||
|
return MENU_NONE;
|
||
|
|
||
|
int Idx = -1;
|
||
|
|
||
|
|
||
|
//! Settings: Titles from WiiTDB
|
||
|
if (ret == ++Idx)
|
||
|
{
|
||
|
if (++Settings.titlesOverride >= MAX_ON_OFF) Settings.titlesOverride = 0;
|
||
|
}
|
||
|
|
||
|
//! Settings: Cache Titles
|
||
|
else if (ret == ++Idx)
|
||
|
{
|
||
|
if (++Settings.CacheTitles >= MAX_ON_OFF) Settings.CacheTitles = 0;
|
||
|
|
||
|
if(Settings.CacheTitles) //! create new cache file
|
||
|
GameTitles.LoadTitlesFromWiiTDB(Settings.titlestxt_path);
|
||
|
}
|
||
|
|
||
|
//! Settings: Winnertag
|
||
|
else if (ret == ++Idx)
|
||
|
{
|
||
|
if (++Settings.Wiinnertag >= MAX_ON_OFF) Settings.Wiinnertag = 0;
|
||
|
|
||
|
if(Settings.Wiinnertag == ON && !Settings.autonetwork)
|
||
|
{
|
||
|
int choice = WindowPrompt(tr("Warning"), tr("Wiinnertag requires you to enable automatic network connect on application start. Do you want to enable it now?"), tr("Yes"), tr("Cancel"));
|
||
|
if(choice)
|
||
|
{
|
||
|
Settings.autonetwork = ON;
|
||
|
if(!IsNetworkInit())
|
||
|
Initialize_Network();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if(Settings.Wiinnertag == ON && !CheckFile(Settings.WiinnertagPath))
|
||
|
{
|
||
|
int choice = WindowPrompt(tr("Warning"), tr("No Wiinnertag.xml found in the config path. Do you want an example file created?"), tr("Yes"), tr("No"));
|
||
|
if(choice)
|
||
|
{
|
||
|
if(Wiinnertag::CreateExample(Settings.WiinnertagPath))
|
||
|
{
|
||
|
char text[200];
|
||
|
snprintf(text, sizeof(text), "%s %s", tr("An example file was created here:"), Settings.WiinnertagPath);
|
||
|
WindowPrompt(tr("Success"), text, tr("OK"));
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//! Settings: Import categories from WiiTDB
|
||
|
else if (ret == ++Idx)
|
||
|
{
|
||
|
int choice = WindowPrompt(tr("Import Categories"), tr("Are you sure you want to import game categories from WiiTDB?"), tr("Yes"), tr("Cancel"));
|
||
|
if(choice)
|
||
|
{
|
||
|
char xmlpath[300];
|
||
|
snprintf(xmlpath, sizeof(xmlpath), "%swiitdb.xml", Settings.titlestxt_path);
|
||
|
if(!GameCategories.ImportFromWiiTDB(xmlpath))
|
||
|
{
|
||
|
WindowPrompt(tr("Error"), tr("Could not open the WiiTDB.xml file."), tr("OK"));
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
GameCategories.Save();
|
||
|
GameCategories.CategoryList.goToFirst();
|
||
|
WindowPrompt(tr("Import Categories"), tr("Import operation successfully completed."), tr("OK"));
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
SetOptionValues();
|
||
|
|
||
|
return MENU_NONE;
|
||
|
}
|