forked from len0rd/rockbox
Handle mixed case in Windows USB ID detection.
Windows XP might use mixed case in hardware ID (VID / PID) string. Cherry-picked from G#1221. Change-Id: I86fa63e050cd9b9de5a1beac65b81028e0f86a9d Signed-off-by: Dominik Riebeling <Dominik.Riebeling@gmail.com>
This commit is contained in:
parent
7d7359ae63
commit
ad65f8cc71
1 changed files with 4 additions and 3 deletions
|
|
@ -467,9 +467,10 @@ QMap<uint32_t, QString> System::listUsbDevices(void)
|
|||
|
||||
if(buffer) {
|
||||
// convert buffer text to upper case to avoid depending on the case of
|
||||
// the keys (W7 uses different casing than XP at least).
|
||||
QString data = QString::fromWCharArray(buffer);
|
||||
QRegExp rex("USB\\\\VID_([0-9a-fA-F]{4})&PID_([0-9a-fA-F]{4}).*");
|
||||
// the keys (W7 uses different casing than XP at least), in addition
|
||||
// XP may use "Vid_" and "Pid_".
|
||||
QString data = QString::fromWCharArray(buffer).toUpper();
|
||||
QRegExp rex("USB\\\\VID_([0-9A-F]{4})&PID_([0-9A-F]{4}).*");
|
||||
if(rex.indexIn(data) >= 0) {
|
||||
uint32_t id;
|
||||
id = rex.cap(1).toUInt(0, 16) << 16 | rex.cap(2).toUInt(0, 16);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue