diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2012-10-06 10:44:56 +0200 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2012-10-06 13:53:09 +0200 |
commit | c659f9979a482521950c6db74221330dc1895219 (patch) | |
tree | 5a5db5faed2dafd9a66fc31bf8187cea0eb512f3 /rbutil/rbutilqt/base/systeminfo.cpp | |
parent | 71f70112b2484e45b332fd7f2da137145aa05e9d (diff) | |
download | rockbox-c659f9979a482521950c6db74221330dc1895219.tar.gz rockbox-c659f9979a482521950c6db74221330dc1895219.zip |
Allow USB IDs to be non-unique.
When retrieving USB IDs create a list of players matching to a USB ID instead
of assuming only one player. This prevents non-unique IDs overwriting each
other and will be used for improved autodetection later.
Currently only the first ID is used during detection, and no additional IDs
have been added yet.
Change-Id: Ieac5594108bae708e364bd2c8df88f61fcdcbdcd
Diffstat (limited to 'rbutil/rbutilqt/base/systeminfo.cpp')
-rw-r--r-- | rbutil/rbutilqt/base/systeminfo.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/rbutil/rbutilqt/base/systeminfo.cpp b/rbutil/rbutilqt/base/systeminfo.cpp index fde43d27dd..971a1196ac 100644 --- a/rbutil/rbutilqt/base/systeminfo.cpp +++ b/rbutil/rbutilqt/base/systeminfo.cpp | |||
@@ -159,11 +159,11 @@ QMap<QString, QStringList> SystemInfo::languages(void) | |||
159 | } | 159 | } |
160 | 160 | ||
161 | 161 | ||
162 | QMap<int, QString> SystemInfo::usbIdMap(enum MapType type) | 162 | QMap<int, QStringList> SystemInfo::usbIdMap(enum MapType type) |
163 | { | 163 | { |
164 | ensureSystemInfoExists(); | 164 | ensureSystemInfoExists(); |
165 | 165 | ||
166 | QMap<int, QString> map; | 166 | QMap<int, QStringList> map; |
167 | // get a list of ID -> target name | 167 | // get a list of ID -> target name |
168 | QStringList platforms; | 168 | QStringList platforms; |
169 | systemInfos->beginGroup("platforms"); | 169 | systemInfos->beginGroup("platforms"); |
@@ -191,9 +191,18 @@ QMap<int, QString> SystemInfo::usbIdMap(enum MapType type) | |||
191 | systemInfos->beginGroup(target); | 191 | systemInfos->beginGroup(target); |
192 | QStringList ids = systemInfos->value(t).toStringList(); | 192 | QStringList ids = systemInfos->value(t).toStringList(); |
193 | int j = ids.size(); | 193 | int j = ids.size(); |
194 | while(j--) | 194 | while(j--) { |
195 | map.insert(ids.at(j).toInt(0, 16), target); | 195 | QStringList l; |
196 | 196 | int id = ids.at(j).toInt(0, 16); | |
197 | if(id == 0) { | ||
198 | continue; | ||
199 | } | ||
200 | if(map.keys().contains(id)) { | ||
201 | l = map.take(id); | ||
202 | } | ||
203 | l.append(target); | ||
204 | map.insert(id, l); | ||
205 | } | ||
197 | systemInfos->endGroup(); | 206 | systemInfos->endGroup(); |
198 | } | 207 | } |
199 | return map; | 208 | return map; |