scummvm/backends/platform/wii/options.cpp
Max Horn e27b05ef35 COMMON: Rename String::printf() to String::format()
This is a first step towards getting rid of all uses of regular printf,
fprintf, vprintf, vfprintf, puts, fputs, etc. in our codebase.

The name format() reflects the purpose of the function, and parallels
String.format() in Java, boost::format, and others.

svn-id: r54004
2010-11-01 16:02:28 +00:00

318 lines
9.2 KiB
C++

/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
*/
#include <errno.h>
#include <network.h>
#include <gxflux/gfx.h>
#include "common/config-manager.h"
#include "gui/dialog.h"
#include "backends/fs/wii/wii-fs-factory.h"
#include "common/translation.h"
#include "options.h"
WiiOptionsDialog::WiiOptionsDialog(bool doubleStrike) :
Dialog((640 - 400) / 2, (480 - 340) / 2, 400, 340),
_doubleStrike(doubleStrike) {
if (_doubleStrike) {
_strUnderscanX = "wii_video_ds_underscan_x";
_strUnderscanY = "wii_video_ds_underscan_y";
} else {
_strUnderscanX = "wii_video_default_underscan_x";
_strUnderscanY = "wii_video_default_underscan_y";
}
new ButtonWidget(this, _w - 108 - 16, _h - 24 - 16, 108, 24, _("OK"), 0, 'k');
new ButtonWidget(this, _w - 216 - 32, _h - 24 - 16, 108, 24, _("Cancel"), 0, 'c');
_tab = new TabWidget(this, 0, 0, _w, _h - 54);
_tabVideo = _tab->addTab(_("Video"));
new StaticTextWidget(_tab, 16, 16, 128, 16,
_("Current video mode:"), Graphics::kTextAlignRight);
new StaticTextWidget(_tab, 160, 16, 128, 16,
_doubleStrike ? _("Double-strike") : _("Default"),
Graphics::kTextAlignLeft);
new StaticTextWidget(_tab, 16, 48, 128, 16,
_("Horizontal underscan:"), Graphics::kTextAlignRight);
_sliderUnderscanX = new SliderWidget(_tab, 160, 47, 128, 18, 0, 'x');
_sliderUnderscanX->setMinValue(0);
_sliderUnderscanX->setMaxValue(32);
new StaticTextWidget(_tab, 16, 80, 128, 16,
_("Vertical underscan:"), Graphics::kTextAlignRight);
_sliderUnderscanY = new SliderWidget(_tab, 160, 79, 128, 18, 0, 'y');
_sliderUnderscanY->setMinValue(0);
_sliderUnderscanY->setMaxValue(32);
_tabInput = _tab->addTab(_("Input"));
new StaticTextWidget(_tab, 16, 16, 128, 16,
_("GC Pad sensitivity:"), Graphics::kTextAlignRight);
_sliderPadSensitivity = new SliderWidget(_tab, 160, 15, 128, 18, 0, 'x');
_sliderPadSensitivity->setMinValue(0);
_sliderPadSensitivity->setMaxValue(64);
new StaticTextWidget(_tab, 16, 44, 128, 16,
_("GC Pad acceleration:"), Graphics::kTextAlignRight);
_sliderPadAcceleration = new SliderWidget(_tab, 160, 43, 128, 18, 0, 'y');
_sliderPadAcceleration->setMinValue(0);
_sliderPadAcceleration->setMaxValue(8);
#ifdef USE_WII_DI
_tabDVD = _tab->addTab(_("DVD"));
new StaticTextWidget(_tab, 16, 16, 64, 16,
_("Status:"), Graphics::kTextAlignRight);
_textDVDStatus = new StaticTextWidget(_tab, 96, 16, 272, 16, _("Unknown"),
Graphics::kTextAlignLeft);
new ButtonWidget(_tab, 16, 48, 108, 24, _("Mount DVD"), 0, 'mdvd');
new ButtonWidget(_tab, 140, 48, 108, 24, _("Unmount DVD"), 0, 'udvd');
#endif
#ifdef USE_WII_SMB
_tabSMB = _tab->addTab(_("SMB"));
new StaticTextWidget(_tab, 16, 16, 64, 16,
_("Status:"), Graphics::kTextAlignRight);
_textSMBStatus = new StaticTextWidget(_tab, 96, 16, 272, 16, _("Unknown"),
Graphics::kTextAlignLeft);
new StaticTextWidget(_tab, 16, 52, 64, 16,
_("Server:"), Graphics::kTextAlignRight);
_editSMBServer = new EditTextWidget(_tab, 96, 48, _w - 96 - 32, 24, "");
new StaticTextWidget(_tab, 16, 92, 64, 16,
_("Share:"), Graphics::kTextAlignRight);
_editSMBShare = new EditTextWidget(_tab, 96, 88, _w - 96 - 32, 24, "");
new StaticTextWidget(_tab, 16, 132, 64, 16,
_("Username:"), Graphics::kTextAlignRight);
_editSMBUsername = new EditTextWidget(_tab, 96, 128, _w - 96 - 32, 24, "");
new StaticTextWidget(_tab, 16, 172, 64, 16,
_("Password:"), Graphics::kTextAlignRight);
_editSMBPassword = new EditTextWidget(_tab, 96, 168, _w - 96 - 32, 24, "");
new ButtonWidget(_tab, 16, 208, 108, 24, _("Init network"), 0, 'net');
new ButtonWidget(_tab, 140, 208, 108, 24, _("Mount SMB"), 0, 'msmb');
new ButtonWidget(_tab, 264, 208, 108, 24, _("Unmount SMB"), 0, 'usmb');
#endif
_tab->setActiveTab(_tabVideo);
load();
}
WiiOptionsDialog::~WiiOptionsDialog() {
}
void WiiOptionsDialog::handleTickle() {
WiiFilesystemFactory &fsf = WiiFilesystemFactory::instance();
int tab = _tab->getActiveTab();
#ifdef USE_WII_DI
if (tab == _tabDVD) {
if (fsf.isMounted(WiiFilesystemFactory::kDVD)) {
_textDVDStatus->setLabel(_("DVD Mounted successfully"));
} else {
if (fsf.failedToMount(WiiFilesystemFactory::kDVD))
_textDVDStatus->setLabel(_("Error while mounting the DVD"));
else
_textDVDStatus->setLabel(_("DVD not mounted"));
}
}
#endif
#ifdef USE_WII_SMB
if (tab == _tabSMB) {
s32 status = net_get_status();
String label;
switch (status) {
case 0:
if (fsf.isMounted(WiiFilesystemFactory::kSMB)) {
label = _("Network up, share mounted");
} else {
label = _("Network up");
if (fsf.failedToMount(WiiFilesystemFactory::kSMB))
label += _(", error while mounting the share");
else
label += _(", share not mounted");
}
break;
case -ENETDOWN:
label = _("Network down");
break;
case -EBUSY:
label = _("Initialising network");
break;
case -ETIMEDOUT:
label = _("Timeout while initialising network");
break;
default:
label = String::format(_("Network not initialised (%d)"), status);
break;
}
_textSMBStatus->setLabel(label);
}
#endif
Dialog::handleTickle();
}
void WiiOptionsDialog::handleCommand(CommandSender *sender, uint32 cmd,
uint32 data) {
WiiFilesystemFactory &fsf = WiiFilesystemFactory::instance();
switch (cmd) {
case 'x':
case 'y':
gfx_set_underscan(_sliderUnderscanX->getValue(),
_sliderUnderscanY->getValue());
break;
case 'k':
save();
close();
break;
case 'c':
revert();
close();
break;
#ifdef USE_WII_DI
case 'mdvd':
fsf.mount(WiiFilesystemFactory::kDVD);
break;
case 'udvd':
fsf.umount(WiiFilesystemFactory::kDVD);
break;
#endif
#ifdef USE_WII_SMB
case 'net':
fsf.asyncInitNetwork();
break;
case 'msmb':
fsf.setSMBLoginData(_editSMBServer->getEditString(),
_editSMBShare->getEditString(),
_editSMBUsername->getEditString(),
_editSMBPassword->getEditString());
fsf.mount(WiiFilesystemFactory::kSMB);
break;
case 'usmb':
fsf.umount(WiiFilesystemFactory::kSMB);
break;
#endif
default:
Dialog::handleCommand(sender, cmd, data);
break;
}
}
void WiiOptionsDialog::revert() {
gfx_set_underscan(ConfMan.getInt(_strUnderscanX,
Common::ConfigManager::kApplicationDomain),
ConfMan.getInt(_strUnderscanY,
Common::ConfigManager::kApplicationDomain));
}
void WiiOptionsDialog::load() {
int i;
i = ConfMan.getInt(_strUnderscanX,
Common::ConfigManager::kApplicationDomain);
_sliderUnderscanX->setValue(i);
i = ConfMan.getInt(_strUnderscanY,
Common::ConfigManager::kApplicationDomain);
_sliderUnderscanY->setValue(i);
i = ConfMan.getInt("wii_pad_sensitivity",
Common::ConfigManager::kApplicationDomain);
_sliderPadSensitivity->setValue(i);
i = ConfMan.getInt("wii_pad_acceleration",
Common::ConfigManager::kApplicationDomain);
_sliderPadAcceleration->setValue(i);
#ifdef USE_WII_SMB
_editSMBServer->setEditString(ConfMan.get("wii_smb_server",
Common::ConfigManager::kApplicationDomain));
_editSMBShare->setEditString(ConfMan.get("wii_smb_share",
Common::ConfigManager::kApplicationDomain));
_editSMBUsername->setEditString(ConfMan.get("wii_smb_username",
Common::ConfigManager::kApplicationDomain));
_editSMBPassword->setEditString(ConfMan.get("wii_smb_password",
Common::ConfigManager::kApplicationDomain));
#endif
}
void WiiOptionsDialog::save() {
ConfMan.setInt(_strUnderscanX,
_sliderUnderscanX->getValue(),
Common::ConfigManager::kApplicationDomain);
ConfMan.setInt(_strUnderscanY,
_sliderUnderscanY->getValue(),
Common::ConfigManager::kApplicationDomain);
ConfMan.setInt("wii_pad_sensitivity",
_sliderPadSensitivity->getValue(),
Common::ConfigManager::kApplicationDomain);
ConfMan.setInt("wii_pad_acceleration",
_sliderPadAcceleration->getValue(),
Common::ConfigManager::kApplicationDomain);
#ifdef USE_WII_SMB
ConfMan.set("wii_smb_server", _editSMBServer->getEditString(),
Common::ConfigManager::kApplicationDomain);
ConfMan.set("wii_smb_share", _editSMBShare->getEditString(),
Common::ConfigManager::kApplicationDomain);
ConfMan.set("wii_smb_username", _editSMBUsername->getEditString(),
Common::ConfigManager::kApplicationDomain);
ConfMan.set("wii_smb_password", _editSMBPassword->getEditString(),
Common::ConfigManager::kApplicationDomain);
#endif
ConfMan.flushToDisk();
}