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/base | |
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/base')
-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 |
4 files changed, 74 insertions, 39 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 | ||