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.tar.gz
rockbox-0b7bfb62700ab0c0f8764dd04e7dc3d64835781d.zip
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 54e06d024e..5ce735a5b7 100644
--- a/rbutil/rbutilqt/base/bootloaderinstallbase.cpp
+++ b/rbutil/rbutilqt/base/bootloaderinstallbase.cpp
@@ -187,3 +187,19 @@ QString BootloaderInstallBase::postinstallHints(QString model)
187 return QString(""); 187 return QString("");
188} 188}
189 189
190
191//! @brief set list of possible bootloader files and pick the existing one.
192//! @param sl list of possible bootloader files.
193void BootloaderInstallBase::setBlFile(QStringList sl)
194{
195 // figue which of the possible bootloader filenames is correct.
196 for(int a = 0; a < sl.size(); a++) {
197 if(!resolvePathCase(sl.at(a)).isEmpty()) {
198 m_blfile = sl.at(a);
199 }
200 }
201 if(m_blfile.isEmpty()) {
202 m_blfile = sl.at(0);
203 }
204}
205
diff --git a/rbutil/rbutilqt/base/bootloaderinstallbase.h b/rbutil/rbutilqt/base/bootloaderinstallbase.h
index 1e342e045b..d96e8ca73b 100644
--- a/rbutil/rbutilqt/base/bootloaderinstallbase.h
+++ b/rbutil/rbutilqt/base/bootloaderinstallbase.h
@@ -56,9 +56,8 @@ class BootloaderInstallBase : public QObject
56 //! backup a already installed bootloader 56 //! backup a already installed bootloader
57 bool backup(QString to); 57 bool backup(QString to);
58 58
59 //! set the differen filenames and paths 59 //! set the different filenames and paths
60 void setBlFile(QString f) 60 void setBlFile(QStringList f);
61 { m_blfile = f; }
62 void setBlUrl(QUrl u) 61 void setBlUrl(QUrl u)
63 { m_blurl = u; } 62 { m_blurl = u; }
64 void setLogfile(QString f) 63 void setLogfile(QString f)
diff --git a/rbutil/rbutilqt/rbutil.ini b/rbutil/rbutilqt/rbutil.ini
index 0922a4fdd4..b66e244fc7 100644
--- a/rbutil/rbutilqt/rbutil.ini
+++ b/rbutil/rbutilqt/rbutil.ini
@@ -192,7 +192,7 @@ name="H10 (5 / 6GB) UMS"
192buildserver_modelname=h10_5gb 192buildserver_modelname=h10_5gb
193bootloadermethod=mi4 193bootloadermethod=mi4
194bootloadername=/iriver/H10.mi4 194bootloadername=/iriver/H10.mi4
195bootloaderfile=/System/H10.mi4 195bootloaderfile=/System/H10.mi4, /System/H10EMP.mi4
196resolution=128x128x16 196resolution=128x128x16
197manualname= 197manualname=
198brand=Iriver 198brand=Iriver
@@ -206,7 +206,7 @@ name="H10 (5 / 6GB) MTP"
206buildserver_modelname=h10_5gb 206buildserver_modelname=h10_5gb
207bootloadermethod=mi4 207bootloadermethod=mi4
208bootloadername=/iriver/H10_5GB-MTP/H10.mi4 208bootloadername=/iriver/H10_5GB-MTP/H10.mi4
209bootloaderfile=/System/H10.mi4 209bootloaderfile=/System/H10.mi4, /System/H10EMP.mi4
210resolution=128x128x16 210resolution=128x128x16
211manualname= 211manualname=
212brand=Iriver 212brand=Iriver
diff --git a/rbutil/rbutilqt/rbutilqt.cpp b/rbutil/rbutilqt/rbutilqt.cpp
index 4c4003fcc2..39dd65348c 100644
--- a/rbutil/rbutilqt/rbutilqt.cpp
+++ b/rbutil/rbutilqt/rbutilqt.cpp
@@ -657,20 +657,13 @@ void RbUtilQt::installBootloader()
657 } 657 }
658 658
659 // set bootloader filename. Do this now as installed() needs it. 659 // set bootloader filename. Do this now as installed() needs it.
660 QString blfile; 660 QStringList blfile = RbSettings::value(RbSettings::CurBootloaderFile).toStringList();
661 blfile = RbSettings::value(RbSettings::Mountpoint).toString() 661 QStringList blfilepath;
662 + RbSettings::value(RbSettings::CurBootloaderFile).toString(); 662 for(int a = 0; a < blfile.size(); a++) {
663 // special case for H10 pure: this player can have a different 663 blfilepath.append(RbSettings::value(RbSettings::Mountpoint).toString()
664 // bootloader file filename. This is handled here to keep the install 664 + blfile.at(a));
665 // class clean, though having it here is also not the nicest solution.
666 if(RbSettings::value(RbSettings::Platform).toString() == "h10_ums"
667 || RbSettings::value(RbSettings::Platform) == "h10_mtp") {
668 if(resolvePathCase(blfile).isEmpty())
669 blfile = RbSettings::value(RbSettings::Mountpoint).toString()
670 + RbSettings::value(RbSettings::CurBootloaderName).toString()
671 .replace("H10", "H10EMP", Qt::CaseInsensitive);
672 } 665 }
673 bl->setBlFile(blfile); 666 bl->setBlFile(blfilepath);
674 QUrl url(RbSettings::value(RbSettings::BootloaderUrl).toString() 667 QUrl url(RbSettings::value(RbSettings::BootloaderUrl).toString()
675 + RbSettings::value(RbSettings::CurBootloaderName).toString()); 668 + RbSettings::value(RbSettings::CurBootloaderName).toString());
676 bl->setBlUrl(url); 669 bl->setBlUrl(url);
@@ -998,16 +991,13 @@ void RbUtilQt::uninstallBootloader(void)
998 return; 991 return;
999 } 992 }
1000 993
1001 QString blfile = RbSettings::value(RbSettings::Mountpoint).toString() 994 QStringList blfile = RbSettings::value(RbSettings::CurBootloaderFile).toStringList();
1002 + RbSettings::value(RbSettings::CurBootloaderFile).toString(); 995 QStringList blfilepath;
1003 if(RbSettings::value(RbSettings::Platform).toString() == "h10_ums" 996 for(int a = 0; a < blfile.size(); a++) {
1004 || RbSettings::value(RbSettings::Platform).toString() == "h10_mtp") { 997 blfilepath.append(RbSettings::value(RbSettings::Mountpoint).toString()
1005 if(resolvePathCase(blfile).isEmpty()) 998 + blfile.at(a));
1006 blfile = RbSettings::value(RbSettings::Mountpoint).toString()
1007 + RbSettings::value(RbSettings::CurBootloaderName).toString()
1008 .replace("H10", "H10EMP", Qt::CaseInsensitive);
1009 } 999 }
1010 bl->setBlFile(blfile); 1000 bl->setBlFile(blfilepath);
1011 1001
1012 connect(bl, SIGNAL(logItem(QString, int)), logger, SLOT(addItem(QString, int))); 1002 connect(bl, SIGNAL(logItem(QString, int)), logger, SLOT(addItem(QString, int)));
1013 connect(bl, SIGNAL(logProgress(int, int)), logger, SLOT(setProgress(int, int))); 1003 connect(bl, SIGNAL(logProgress(int, int)), logger, SLOT(setProgress(int, int)));