summaryrefslogtreecommitdiff
path: root/rbutil/rbutilqt/base/systeminfo.cpp
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2012-10-06 10:44:56 +0200
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2012-10-06 13:53:09 +0200
commitc659f9979a482521950c6db74221330dc1895219 (patch)
tree5a5db5faed2dafd9a66fc31bf8187cea0eb512f3 /rbutil/rbutilqt/base/systeminfo.cpp
parent71f70112b2484e45b332fd7f2da137145aa05e9d (diff)
downloadrockbox-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.cpp19
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
162QMap<int, QString> SystemInfo::usbIdMap(enum MapType type) 162QMap<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;