diff options
author | Dominik Wenger <domonoky@googlemail.com> | 2009-03-21 16:30:40 +0000 |
---|---|---|
committer | Dominik Wenger <domonoky@googlemail.com> | 2009-03-21 16:30:40 +0000 |
commit | 6c73482d0058804979c511616ad95d643a5143c2 (patch) | |
tree | 6cb432509a360926ce8ccd4c21e31c3f2919ba9d /rbutil/rbutilqt | |
parent | 7aaffa51d6bd36e7be9d6895d9310f0d8fea8dfd (diff) | |
download | rockbox-6c73482d0058804979c511616ad95d643a5143c2.tar.gz rockbox-6c73482d0058804979c511616ad95d643a5143c2.zip |
rbutil: create a RockboxInfo class so all rockbox-info.txt handling is in one place.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20429 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil/rbutilqt')
-rw-r--r-- | rbutil/rbutilqt/base/autodetection.cpp | 21 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/detect.cpp | 34 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/utils.cpp | 40 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/utils.h | 18 | ||||
-rw-r--r-- | rbutil/rbutilqt/voicefile.cpp | 32 |
5 files changed, 83 insertions, 62 deletions
diff --git a/rbutil/rbutilqt/base/autodetection.cpp b/rbutil/rbutilqt/base/autodetection.cpp index 3e3c63ec32..aa74419ce0 100644 --- a/rbutil/rbutilqt/base/autodetection.cpp +++ b/rbutil/rbutilqt/base/autodetection.cpp | |||
@@ -90,21 +90,18 @@ bool Autodetection::detect() | |||
90 | } | 90 | } |
91 | 91 | ||
92 | // check rockbox-info.txt afterwards. | 92 | // check rockbox-info.txt afterwards. |
93 | QFile file(mounts.at(i) + "/.rockbox/rockbox-info.txt"); | 93 | RockboxInfo info(mounts.at(i)); |
94 | if(file.exists()) | 94 | if(info.open()) |
95 | { | 95 | { |
96 | file.open(QIODevice::ReadOnly | QIODevice::Text); | 96 | if(m_device.isEmpty()) |
97 | QString line = file.readLine(); | ||
98 | if(line.startsWith("Target: ")) | ||
99 | { | 97 | { |
100 | line.remove("Target: "); | 98 | m_device = info.target(); |
101 | if(m_device.isEmpty()) | 99 | } |
102 | m_device = line.trimmed(); // trim whitespaces | 100 | m_mountpoint = mounts.at(i); |
103 | m_mountpoint = mounts.at(i); | 101 | qDebug() << "rockbox-info.txt detected:" << m_device << m_mountpoint; |
104 | qDebug() << "rockbox-info.txt detected:" << m_device << m_mountpoint; | 102 | return true; |
105 | return true; | ||
106 | } | ||
107 | } | 103 | } |
104 | |||
108 | // check for some specific files in root folder | 105 | // check for some specific files in root folder |
109 | QDir root(mounts.at(i)); | 106 | QDir root(mounts.at(i)); |
110 | QStringList rootentries = root.entryList(QDir::Files); | 107 | QStringList rootentries = root.entryList(QDir::Files); |
diff --git a/rbutil/rbutilqt/base/detect.cpp b/rbutil/rbutilqt/base/detect.cpp index 1792febc0f..c30a03ba2e 100644 --- a/rbutil/rbutilqt/base/detect.cpp +++ b/rbutil/rbutilqt/base/detect.cpp | |||
@@ -58,6 +58,7 @@ | |||
58 | #include <sys/mount.h> | 58 | #include <sys/mount.h> |
59 | #endif | 59 | #endif |
60 | 60 | ||
61 | #include "utils.h" | ||
61 | 62 | ||
62 | /** @brief detect permission of user (only Windows at moment). | 63 | /** @brief detect permission of user (only Windows at moment). |
63 | * @return enum userlevel. | 64 | * @return enum userlevel. |
@@ -352,23 +353,13 @@ QUrl Detect::systemProxy(void) | |||
352 | */ | 353 | */ |
353 | QString Detect::installedVersion(QString mountpoint) | 354 | QString Detect::installedVersion(QString mountpoint) |
354 | { | 355 | { |
355 | // read rockbox-info.txt | 356 | RockboxInfo info(mountpoint); |
356 | QFile info(mountpoint +"/.rockbox/rockbox-info.txt"); | 357 | if(!info.open()) |
357 | if(!info.open(QIODevice::ReadOnly)) | ||
358 | { | 358 | { |
359 | return ""; | 359 | return ""; |
360 | } | 360 | } |
361 | 361 | ||
362 | while (!info.atEnd()) { | 362 | return info.version(); |
363 | QString line = info.readLine(); | ||
364 | |||
365 | if(line.contains("Version:")) | ||
366 | { | ||
367 | return line.remove("Version:").trimmed(); | ||
368 | } | ||
369 | } | ||
370 | info.close(); | ||
371 | return ""; | ||
372 | } | 363 | } |
373 | 364 | ||
374 | 365 | ||
@@ -377,24 +368,13 @@ QString Detect::installedVersion(QString mountpoint) | |||
377 | */ | 368 | */ |
378 | QString Detect::installedTarget(QString mountpoint) | 369 | QString Detect::installedTarget(QString mountpoint) |
379 | { | 370 | { |
380 | // read rockbox-info.txt | 371 | RockboxInfo info(mountpoint); |
381 | QFile info(mountpoint +"/.rockbox/rockbox-info.txt"); | 372 | if(!info.open()) |
382 | if(!info.open(QIODevice::ReadOnly)) | ||
383 | { | 373 | { |
384 | return ""; | 374 | return ""; |
385 | } | 375 | } |
386 | 376 | ||
387 | while (!info.atEnd()) | 377 | return info.target(); |
388 | { | ||
389 | QString line = info.readLine(); | ||
390 | if(line.contains("Target:")) | ||
391 | { | ||
392 | qDebug() << line; | ||
393 | return line.remove("Target:").trimmed(); | ||
394 | } | ||
395 | } | ||
396 | info.close(); | ||
397 | return ""; | ||
398 | } | 378 | } |
399 | 379 | ||
400 | 380 | ||
diff --git a/rbutil/rbutilqt/base/utils.cpp b/rbutil/rbutilqt/base/utils.cpp index 379b642431..2e6b04ecff 100644 --- a/rbutil/rbutilqt/base/utils.cpp +++ b/rbutil/rbutilqt/base/utils.cpp | |||
@@ -130,3 +130,43 @@ qulonglong filesystemFree(QString path) | |||
130 | return size; | 130 | return size; |
131 | } | 131 | } |
132 | 132 | ||
133 | RockboxInfo::RockboxInfo(QString mountpoint) | ||
134 | { | ||
135 | m_path = mountpoint +"/.rockbox/rockbox-info.txt"; | ||
136 | } | ||
137 | |||
138 | bool RockboxInfo::open() | ||
139 | { | ||
140 | QFile file(m_path); | ||
141 | if(!file.exists()) | ||
142 | return false; | ||
143 | |||
144 | if(!file.open(QIODevice::ReadOnly | QIODevice::Text)) | ||
145 | return false; | ||
146 | |||
147 | // read file contents | ||
148 | while (!file.atEnd()) | ||
149 | { | ||
150 | QString line = file.readLine(); | ||
151 | |||
152 | if(line.contains("Version:")) | ||
153 | { | ||
154 | m_version = line.remove("Version:").trimmed(); | ||
155 | } | ||
156 | else if(line.contains("Target: ")) | ||
157 | { | ||
158 | m_target = line.remove("Target: ").trimmed(); | ||
159 | } | ||
160 | else if(line.contains("Features:")) | ||
161 | { | ||
162 | m_features = line.remove("Features:").trimmed(); | ||
163 | } | ||
164 | else if(line.contains("Target id:")) | ||
165 | { | ||
166 | m_targetid = line.remove("Target id:").trimmed(); | ||
167 | } | ||
168 | } | ||
169 | |||
170 | file.close(); | ||
171 | return true; | ||
172 | } | ||
diff --git a/rbutil/rbutilqt/base/utils.h b/rbutil/rbutilqt/base/utils.h index 0a9135485a..caaf13eb41 100644 --- a/rbutil/rbutilqt/base/utils.h +++ b/rbutil/rbutilqt/base/utils.h | |||
@@ -30,5 +30,23 @@ bool recRmdir( const QString &dirName ); | |||
30 | QString resolvePathCase(QString path); | 30 | QString resolvePathCase(QString path); |
31 | qulonglong filesystemFree(QString path); | 31 | qulonglong filesystemFree(QString path); |
32 | 32 | ||
33 | class RockboxInfo | ||
34 | { | ||
35 | public: | ||
36 | RockboxInfo(QString mountpoint); | ||
37 | bool open(); | ||
38 | |||
39 | QString version() {return m_version;} | ||
40 | QString features(){return m_features;} | ||
41 | QString targetID() {return m_targetid;} | ||
42 | QString target() {return m_target;} | ||
43 | private: | ||
44 | QString m_path; | ||
45 | QString m_version; | ||
46 | QString m_features; | ||
47 | QString m_targetid; | ||
48 | QString m_target; | ||
49 | }; | ||
50 | |||
33 | #endif | 51 | #endif |
34 | 52 | ||
diff --git a/rbutil/rbutilqt/voicefile.cpp b/rbutil/rbutilqt/voicefile.cpp index 1488ead742..65c9bee8dc 100644 --- a/rbutil/rbutilqt/voicefile.cpp +++ b/rbutil/rbutilqt/voicefile.cpp | |||
@@ -18,6 +18,7 @@ | |||
18 | ****************************************************************************/ | 18 | ****************************************************************************/ |
19 | 19 | ||
20 | #include "voicefile.h" | 20 | #include "voicefile.h" |
21 | #include "utils.h" | ||
21 | 22 | ||
22 | #define STATE_INVALID 0 | 23 | #define STATE_INVALID 0 |
23 | #define STATE_PHRASE 1 | 24 | #define STATE_PHRASE 1 |
@@ -49,35 +50,20 @@ bool VoiceFileCreator::createVoiceFile(ProgressloggerInterface* logger) | |||
49 | m_path = QDir::tempPath() + "/rbvoice/"; | 50 | m_path = QDir::tempPath() + "/rbvoice/"; |
50 | 51 | ||
51 | // read rockbox-info.txt | 52 | // read rockbox-info.txt |
52 | QFile info(m_mountpoint+"/.rockbox/rockbox-info.txt"); | 53 | RockboxInfo info(m_mountpoint); |
53 | if(!info.open(QIODevice::ReadOnly)) | 54 | if(!info.open()) |
54 | { | 55 | { |
55 | m_logger->addItem(tr("failed to open rockbox-info.txt"),LOGERROR); | 56 | m_logger->addItem(tr("could not find rockbox-info.txt"),LOGERROR); |
56 | m_logger->abort(); | 57 | m_logger->abort(); |
57 | emit done(false); | 58 | emit done(false); |
58 | return false; | 59 | return false; |
59 | } | 60 | } |
60 | 61 | ||
61 | QString target, features,version; | 62 | QString target = info.target(); |
62 | while (!info.atEnd()) { | 63 | QString features = info.features(); |
63 | QString line = info.readLine(); | 64 | QString version = info.version(); |
64 | 65 | version = version.left(version.indexOf("-")).remove(0,1); | |
65 | if(line.contains("Target:")) | 66 | |
66 | { | ||
67 | target = line.remove("Target:").trimmed(); | ||
68 | } | ||
69 | else if(line.contains("Features:")) | ||
70 | { | ||
71 | features = line.remove("Features:").trimmed(); | ||
72 | } | ||
73 | else if(line.contains("Version:")) | ||
74 | { | ||
75 | version = line.remove("Version:").trimmed(); | ||
76 | version = version.left(version.indexOf("-")).remove(0,1); | ||
77 | } | ||
78 | } | ||
79 | info.close(); | ||
80 | |||
81 | //prepare download url | 67 | //prepare download url |
82 | QUrl genlangUrl = settings->genlangUrl() +"?lang=" +m_lang+"&t="+target+"&rev="+version+"&f="+features; | 68 | QUrl genlangUrl = settings->genlangUrl() +"?lang=" +m_lang+"&t="+target+"&rev="+version+"&f="+features; |
83 | 69 | ||