diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2009-08-09 10:57:39 +0000 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2009-08-09 10:57:39 +0000 |
commit | 0b7bfb62700ab0c0f8764dd04e7dc3d64835781d (patch) | |
tree | 487da6cb8b2e5cbc0ef479bd70f380c95673cc13 /rbutil | |
parent | 63ba647ee0fcdcb42f1e36e4a8f82c6c40cbb8f2 (diff) | |
download | rockbox-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
Diffstat (limited to 'rbutil')
-rw-r--r-- | rbutil/rbutilqt/base/bootloaderinstallbase.cpp | 16 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/bootloaderinstallbase.h | 5 | ||||
-rw-r--r-- | rbutil/rbutilqt/rbutil.ini | 4 | ||||
-rw-r--r-- | rbutil/rbutilqt/rbutilqt.cpp | 34 |
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. | ||
193 | void 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" | |||
192 | buildserver_modelname=h10_5gb | 192 | buildserver_modelname=h10_5gb |
193 | bootloadermethod=mi4 | 193 | bootloadermethod=mi4 |
194 | bootloadername=/iriver/H10.mi4 | 194 | bootloadername=/iriver/H10.mi4 |
195 | bootloaderfile=/System/H10.mi4 | 195 | bootloaderfile=/System/H10.mi4, /System/H10EMP.mi4 |
196 | resolution=128x128x16 | 196 | resolution=128x128x16 |
197 | manualname= | 197 | manualname= |
198 | brand=Iriver | 198 | brand=Iriver |
@@ -206,7 +206,7 @@ name="H10 (5 / 6GB) MTP" | |||
206 | buildserver_modelname=h10_5gb | 206 | buildserver_modelname=h10_5gb |
207 | bootloadermethod=mi4 | 207 | bootloadermethod=mi4 |
208 | bootloadername=/iriver/H10_5GB-MTP/H10.mi4 | 208 | bootloadername=/iriver/H10_5GB-MTP/H10.mi4 |
209 | bootloaderfile=/System/H10.mi4 | 209 | bootloaderfile=/System/H10.mi4, /System/H10EMP.mi4 |
210 | resolution=128x128x16 | 210 | resolution=128x128x16 |
211 | manualname= | 211 | manualname= |
212 | brand=Iriver | 212 | brand=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))); |