summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2008-07-02 17:48:50 +0000
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2008-07-02 17:48:50 +0000
commit6d64e39888a4a86db472be6c3acb880c39785a1e (patch)
tree41597f1233c5e371cf4b18c292b21441a6e8906e
parent144f39b4ea134ab3efc0d47d99ce81cb5c91cdd8 (diff)
downloadrockbox-6d64e39888a4a86db472be6c3acb880c39785a1e.tar.gz
rockbox-6d64e39888a4a86db472be6c3acb880c39785a1e.zip
Add reading USB product / vendor names on Linux / OSX.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17917 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--rbutil/rbutilqt/detect.cpp28
1 files changed, 24 insertions, 4 deletions
diff --git a/rbutil/rbutilqt/detect.cpp b/rbutil/rbutilqt/detect.cpp
index ad563b8be7..75a892571b 100644
--- a/rbutil/rbutilqt/detect.cpp
+++ b/rbutil/rbutilqt/detect.cpp
@@ -72,7 +72,7 @@ enum Detect::userlevel Detect::userPermissions(void)
72 DWORD usersize = UNLEN; 72 DWORD usersize = UNLEN;
73 BOOL status; 73 BOOL status;
74 enum userlevel result; 74 enum userlevel result;
75 75
76 status = GetUserNameW(userbuf, &usersize); 76 status = GetUserNameW(userbuf, &usersize);
77 if(!status) 77 if(!status)
78 return ERR; 78 return ERR;
@@ -184,7 +184,7 @@ QMap<uint32_t, QString> Detect::listUsbDevices(void)
184{ 184{
185 QMap<uint32_t, QString> usbids; 185 QMap<uint32_t, QString> usbids;
186 // usb pid detection 186 // usb pid detection
187#if defined(Q_OS_LINUX) | defined(Q_OS_MACX) 187#if defined(Q_OS_LINUX) || defined(Q_OS_MACX)
188 usb_init(); 188 usb_init();
189 usb_find_busses(); 189 usb_find_busses();
190 usb_find_devices(); 190 usb_find_devices();
@@ -200,8 +200,28 @@ QMap<uint32_t, QString> Detect::listUsbDevices(void)
200 while(u) { 200 while(u) {
201 uint32_t id; 201 uint32_t id;
202 id = u->descriptor.idVendor << 16 | u->descriptor.idProduct; 202 id = u->descriptor.idVendor << 16 | u->descriptor.idProduct;
203 // FIXME: until description is empty for now. 203 // get identification strings
204 if(id) usbids.insert(id, QString("")); 204 usb_dev_handle *dev;
205 QString name;
206 char string[256];
207 int res;
208 dev = usb_open(u);
209 if(dev) {
210 if(u->descriptor.iManufacturer) {
211 res = usb_get_string_simple(dev, u->descriptor.iManufacturer, string, sizeof(string));
212 if(res > 0)
213 name += QString::fromAscii(string) + " ";
214 }
215 if(u->descriptor.iProduct) {
216 res = usb_get_string_simple(dev, u->descriptor.iProduct, string, sizeof(string));
217 if(res > 0)
218 name += QString::fromAscii(string);
219 }
220 }
221 usb_close(dev);
222 if(name.isEmpty()) name = QObject::tr("(no description available)");
223
224 if(id) usbids.insert(id, name);
205 u = u->next; 225 u = u->next;
206 } 226 }
207 } 227 }