summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2009-08-09 10:57:39 +0000
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2009-08-09 10:57:39 +0000
commit0b7bfb62700ab0c0f8764dd04e7dc3d64835781d (patch)
tree487da6cb8b2e5cbc0ef479bd70f380c95673cc13
parent63ba647ee0fcdcb42f1e36e4a8f82c6c40cbb8f2 (diff)
downloadrockbox-0b7bfb62700ab0c0f8764dd04e7dc3d64835781d.zip
rockbox-0b7bfb62700ab0c0f8764dd04e7dc3d64835781d.tar.gz
rockbox-0b7bfb62700ab0c0f8764dd04e7dc3d64835781d.tar.bz2
rockbox-0b7bfb62700ab0c0f8764dd04e7dc3d64835781d.tar.xz
Extend bootloader installation to accept alternatives for the destination filename.
Remove the hardcoded special case for the H10 bootloader installation and uninstallation. Allow multiple bootloader filenames to be present and pick the existing one on (un)installation. This is also needed for easily adding support for the Samsung YH players (to make FS#10373 actually work). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22220 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--rbutil/rbutilqt/base/bootloaderinstallbase.cpp16
-rw-r--r--rbutil/rbutilqt/base/bootloaderinstallbase.h5
-rw-r--r--rbutil/rbutilqt/rbutil.ini4
-rw-r--r--rbutil/rbutilqt/rbutilqt.cpp34
4 files changed, 32 insertions, 27 deletions
diff --git a/rbutil/rbutilqt/base/bootloaderinstallbase.cpp b/rbutil/rbutilqt/base/bootloaderinstallbase.cpp
index 54e06d0..5ce735a 100644
--- a/rbutil/rbutilqt/base/bootloaderinstallbase.cpp
+++ b/rbutil/rbutilqt/base/bootloaderinstallbase.cpp
@@ -187,3 +187,19 @@ QString BootloaderInstallBase::postinstallHints(QString model)
return QString("");
}
+
+//! @brief set list of possible bootloader files and pick the existing one.
+//! @param sl list of possible bootloader files.
+void BootloaderInstallBase::setBlFile(QStringList sl)
+{
+ // figue which of the possible bootloader filenames is correct.
+ for(int a = 0; a < sl.size(); a++) {
+ if(!resolvePathCase(sl.at(a)).isEmpty()) {
+ m_blfile = sl.at(a);
+ }
+ }
+ if(m_blfile.isEmpty()) {
+ m_blfile = sl.at(0);
+ }
+}
+
diff --git a/rbutil/rbutilqt/base/bootloaderinstallbase.h b/rbutil/rbutilqt/base/bootloaderinstallbase.h
index 1e342e0..d96e8ca 100644
--- a/rbutil/rbutilqt/base/bootloaderinstallbase.h
+++ b/rbutil/rbutilqt/base/bootloaderinstallbase.h
@@ -56,9 +56,8 @@ class BootloaderInstallBase : public QObject
//! backup a already installed bootloader
bool backup(QString to);
- //! set the differen filenames and paths
- void setBlFile(QString f)
- { m_blfile = f; }
+ //! set the different filenames and paths
+ void setBlFile(QStringList f);
void setBlUrl(QUrl u)
{ m_blurl = u; }
void setLogfile(QString f)
diff --git a/rbutil/rbutilqt/rbutil.ini b/rbutil/rbutilqt/rbutil.ini
index 0922a4f..b66e244 100644
--- a/rbutil/rbutilqt/rbutil.ini
+++ b/rbutil/rbutilqt/rbutil.ini
@@ -192,7 +192,7 @@ name="H10 (5 / 6GB) UMS"
buildserver_modelname=h10_5gb
bootloadermethod=mi4
bootloadername=/iriver/H10.mi4
-bootloaderfile=/System/H10.mi4
+bootloaderfile=/System/H10.mi4, /System/H10EMP.mi4
resolution=128x128x16
manualname=
brand=Iriver
@@ -206,7 +206,7 @@ name="H10 (5 / 6GB) MTP"
buildserver_modelname=h10_5gb
bootloadermethod=mi4
bootloadername=/iriver/H10_5GB-MTP/H10.mi4
-bootloaderfile=/System/H10.mi4
+bootloaderfile=/System/H10.mi4, /System/H10EMP.mi4
resolution=128x128x16
manualname=
brand=Iriver
diff --git a/rbutil/rbutilqt/rbutilqt.cpp b/rbutil/rbutilqt/rbutilqt.cpp
index 4c4003f..39dd653 100644
--- a/rbutil/rbutilqt/rbutilqt.cpp
+++ b/rbutil/rbutilqt/rbutilqt.cpp
@@ -657,20 +657,13 @@ void RbUtilQt::installBootloader()
}
// set bootloader filename. Do this now as installed() needs it.
- QString blfile;
- blfile = RbSettings::value(RbSettings::Mountpoint).toString()
- + RbSettings::value(RbSettings::CurBootloaderFile).toString();
- // special case for H10 pure: this player can have a different
- // bootloader file filename. This is handled here to keep the install
- // class clean, though having it here is also not the nicest solution.
- if(RbSettings::value(RbSettings::Platform).toString() == "h10_ums"
- || RbSettings::value(RbSettings::Platform) == "h10_mtp") {
- if(resolvePathCase(blfile).isEmpty())
- blfile = RbSettings::value(RbSettings::Mountpoint).toString()
- + RbSettings::value(RbSettings::CurBootloaderName).toString()
- .replace("H10", "H10EMP", Qt::CaseInsensitive);
+ QStringList blfile = RbSettings::value(RbSettings::CurBootloaderFile).toStringList();
+ QStringList blfilepath;
+ for(int a = 0; a < blfile.size(); a++) {
+ blfilepath.append(RbSettings::value(RbSettings::Mountpoint).toString()
+ + blfile.at(a));
}
- bl->setBlFile(blfile);
+ bl->setBlFile(blfilepath);
QUrl url(RbSettings::value(RbSettings::BootloaderUrl).toString()
+ RbSettings::value(RbSettings::CurBootloaderName).toString());
bl->setBlUrl(url);
@@ -998,16 +991,13 @@ void RbUtilQt::uninstallBootloader(void)
return;
}
- QString blfile = RbSettings::value(RbSettings::Mountpoint).toString()
- + RbSettings::value(RbSettings::CurBootloaderFile).toString();
- if(RbSettings::value(RbSettings::Platform).toString() == "h10_ums"
- || RbSettings::value(RbSettings::Platform).toString() == "h10_mtp") {
- if(resolvePathCase(blfile).isEmpty())
- blfile = RbSettings::value(RbSettings::Mountpoint).toString()
- + RbSettings::value(RbSettings::CurBootloaderName).toString()
- .replace("H10", "H10EMP", Qt::CaseInsensitive);
+ QStringList blfile = RbSettings::value(RbSettings::CurBootloaderFile).toStringList();
+ QStringList blfilepath;
+ for(int a = 0; a < blfile.size(); a++) {
+ blfilepath.append(RbSettings::value(RbSettings::Mountpoint).toString()
+ + blfile.at(a));
}
- bl->setBlFile(blfile);
+ bl->setBlFile(blfilepath);
connect(bl, SIGNAL(logItem(QString, int)), logger, SLOT(addItem(QString, int)));
connect(bl, SIGNAL(logProgress(int, int)), logger, SLOT(setProgress(int, int)));