summaryrefslogtreecommitdiffstats
path: root/src/fbgui/sysinfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/fbgui/sysinfo.cpp')
-rw-r--r--src/fbgui/sysinfo.cpp24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/fbgui/sysinfo.cpp b/src/fbgui/sysinfo.cpp
index 80f4a64..d1ac44f 100644
--- a/src/fbgui/sysinfo.cpp
+++ b/src/fbgui/sysinfo.cpp
@@ -46,6 +46,7 @@ const QString SysInfo::getInfo(const QString& infoName) {
return getMainboardSerial();
else if (infoName == QString("usb"))
return getUsbVendorIdProductIdSerialNumber();
+
/* unknown code */
LOG4CXX_DEBUG(siLogger, "unknown requested");
return "info_error";
@@ -128,22 +129,35 @@ const QString SysInfo::getUsbVendorIdProductIdSerialNumber() {
return "error";
}
cnt = libusb_get_device_list(ctx, &devs); //get the list of devices
+
if (cnt < 0) {
LOG4CXX_DEBUG(siLogger, tag + "Get Device Error"); //there was an error
}
- LOG4CXX_DEBUG(siLogger, tag + cnt + " Devices in list."); //print total number of usb devices
+ LOG4CXX_DEBUG(siLogger, tag << cnt << " Devices in list."); //print total number of usb devices
ssize_t i; //for iterating through the list#
for (i = 0; i < cnt; i++) {
//printdev(devs[i]); //print specs of this device
+
QVariantMap infos;
libusb_device *dev = devs[i];
+
+ libusb_config_descriptor *config;
+ int cr = 1;
+ cr = libusb_get_config_descriptor(dev, 1, &config);
+ if (cr < 0) {
+ LOG4CXX_DEBUG(siLogger, "Couldn't open config desc, code: " << cr);
+ }
+ //LOG4CXX_DEBUG(siLogger, "bmAttribute: " << config->bmAttributes);
+
libusb_device_descriptor desc;
int re = libusb_get_device_descriptor(dev, &desc);
if (re < 0) {
LOG4CXX_DEBUG(siLogger, tag + "failed to get device descriptor");
return "error";
}
+
infos.insert("vendorId", desc.idVendor);
+ //LOG4CXX_DEBUG(siLogger, "idVendor: " << infos.value("vendorId").toString());
infos.insert("productId", desc.idProduct);
unsigned char string[256];
libusb_device_handle *handle;
@@ -158,6 +172,7 @@ const QString SysInfo::getUsbVendorIdProductIdSerialNumber() {
LOG4CXX_DEBUG(siLogger, tag + "failed to get SerialNumber");
return "error";
}
+ //LOG4CXX_DEBUG(siLogger, "SN: " << string);
infos.insert("serialnumber", QString((const char *) string));
re = libusb_get_string_descriptor_ascii(handle, desc.iProduct, string,
sizeof(string));
@@ -175,11 +190,18 @@ const QString SysInfo::getUsbVendorIdProductIdSerialNumber() {
infos.insert("manuacturer", QString((const char *) string));
list << infos;
+
+ /*
+ for (int i = 0; i < list.size(); ++i) {
+ LOG4CXX_DEBUG(siLogger, "list: " << list[i].toString());
+ }*/
+
libusb_close(handle);
}
libusb_free_device_list(devs, 1); //free the list, unref the devices in it
libusb_exit(ctx); //close the session
+
/*
QByteArray json = serializer.serialize(list);
LOG4CXX_DEBUG(siLogger, tag + "json object: " + json);