Mention mount errors on the status labels.

svn-id: r44202
This commit is contained in:
Andre Heider 2009-09-20 11:47:11 +00:00
parent 44ce4edeaa
commit cd1628f70d
3 changed files with 42 additions and 10 deletions

View file

@ -40,7 +40,9 @@ DECLARE_SINGLETON(WiiFilesystemFactory);
WiiFilesystemFactory::WiiFilesystemFactory() : WiiFilesystemFactory::WiiFilesystemFactory() :
_dvdMounted(false), _dvdMounted(false),
_smbMounted(false) { _smbMounted(false),
_dvdError(false),
_smbError(false) {
} }
AbstractFSNode *WiiFilesystemFactory::makeRootFileNode() const { AbstractFSNode *WiiFilesystemFactory::makeRootFileNode() const {
@ -104,6 +106,17 @@ bool WiiFilesystemFactory::isMounted(FileSystemType type) {
return false; return false;
} }
bool WiiFilesystemFactory::failedToMount(FileSystemType type) {
switch (type) {
case kDVD:
return _dvdError;
case kSMB:
return _smbError;
}
return false;
}
void WiiFilesystemFactory::mount(FileSystemType type) { void WiiFilesystemFactory::mount(FileSystemType type) {
switch (type) { switch (type) {
case kDVD: case kDVD:
@ -126,9 +139,11 @@ void WiiFilesystemFactory::mount(FileSystemType type) {
printf("mount ISO9660\n"); printf("mount ISO9660\n");
if (ISO9660_Mount()) { if (ISO9660_Mount()) {
_dvdMounted = true; _dvdMounted = true;
_dvdError = false;
printf("ISO9660 mounted\n"); printf("ISO9660 mounted\n");
} else { } else {
DI_StopMotor(); DI_StopMotor();
_dvdError = true;
printf("ISO9660 mount failed\n"); printf("ISO9660 mount failed\n");
} }
#endif #endif
@ -149,8 +164,10 @@ void WiiFilesystemFactory::mount(FileSystemType type) {
if (smbInit(_smbUsername.c_str(), _smbPassword.c_str(), if (smbInit(_smbUsername.c_str(), _smbPassword.c_str(),
_smbShare.c_str(), _smbServer.c_str())) { _smbShare.c_str(), _smbServer.c_str())) {
_smbMounted = true; _smbMounted = true;
_smbError = false;
printf("smb mounted\n"); printf("smb mounted\n");
} else { } else {
_smbError = true;
printf("error mounting smb\n"); printf("error mounting smb\n");
} }
#endif #endif
@ -171,6 +188,7 @@ void WiiFilesystemFactory::umount(FileSystemType type) {
DI_StopMotor(); DI_StopMotor();
_dvdMounted = false; _dvdMounted = false;
_dvdError = false;
#endif #endif
break; break;
@ -187,6 +205,7 @@ void WiiFilesystemFactory::umount(FileSystemType type) {
printf("error umounting smb\n"); printf("error umounting smb\n");
_smbMounted = false; _smbMounted = false;
_smbError = false;
#endif #endif
break; break;
} }

View file

@ -57,6 +57,7 @@ public:
#endif #endif
bool isMounted(FileSystemType type); bool isMounted(FileSystemType type);
bool failedToMount(FileSystemType type);
void mount(FileSystemType type); void mount(FileSystemType type);
void umount(FileSystemType type); void umount(FileSystemType type);
@ -72,6 +73,8 @@ private:
bool _dvdMounted; bool _dvdMounted;
bool _smbMounted; bool _smbMounted;
bool _dvdError;
bool _smbError;
#ifdef USE_WII_SMB #ifdef USE_WII_SMB
String _smbServer; String _smbServer;

View file

@ -72,7 +72,7 @@ WiiOptionsDialog::WiiOptionsDialog(bool doubleStrike) :
new StaticTextWidget(_tab, 16, 16, 64, 16, new StaticTextWidget(_tab, 16, 16, 64, 16,
"Status:", Graphics::kTextAlignRight); "Status:", Graphics::kTextAlignRight);
_textDVDStatus = new StaticTextWidget(_tab, 96, 16, 192, 16, "Unknown", _textDVDStatus = new StaticTextWidget(_tab, 96, 16, 272, 16, "Unknown",
Graphics::kTextAlignLeft); Graphics::kTextAlignLeft);
new ButtonWidget(_tab, 16, 48, 108, 24, "Mount DVD", 'mdvd'); new ButtonWidget(_tab, 16, 48, 108, 24, "Mount DVD", 'mdvd');
@ -84,7 +84,7 @@ WiiOptionsDialog::WiiOptionsDialog(bool doubleStrike) :
new StaticTextWidget(_tab, 16, 16, 64, 16, new StaticTextWidget(_tab, 16, 16, 64, 16,
"Status:", Graphics::kTextAlignRight); "Status:", Graphics::kTextAlignRight);
_textSMBStatus = new StaticTextWidget(_tab, 96, 16, 192, 16, "Unknown", _textSMBStatus = new StaticTextWidget(_tab, 96, 16, 272, 16, "Unknown",
Graphics::kTextAlignLeft); Graphics::kTextAlignLeft);
new StaticTextWidget(_tab, 16, 52, 64, 16, new StaticTextWidget(_tab, 16, 52, 64, 16,
@ -124,10 +124,14 @@ void WiiOptionsDialog::handleTickle() {
#ifdef USE_WII_DI #ifdef USE_WII_DI
if (tab == _tabDVD) { if (tab == _tabDVD) {
if (fsf.isMounted(WiiFilesystemFactory::kDVD)) if (fsf.isMounted(WiiFilesystemFactory::kDVD)) {
_textDVDStatus->setLabel("Mounted"); _textDVDStatus->setLabel("DVD Mounted successfully");
else } else {
_textDVDStatus->setLabel("Not mounted"); if (fsf.failedToMount(kDVD))
_textDVDStatus->setLabel("Error while mounting the DVD");
else
_textDVDStatus->setLabel("DVD not mounted");
}
} }
#endif #endif
@ -138,10 +142,16 @@ void WiiOptionsDialog::handleTickle() {
switch (status) { switch (status) {
case 0: case 0:
if (fsf.isMounted(WiiFilesystemFactory::kSMB)) if (fsf.isMounted(WiiFilesystemFactory::kSMB)) {
label = "Network up, share mounted"; label = "Network up, share mounted";
else } else {
label = "Network up, share not mounted"; label = "Network up";
if (fsf.failedToMount(WiiFilesystemFactory::kSMB))
label += ", error while mounting the share";
else
label += ", share not mounted";
}
break; break;