1
0
Fork 0
forked from len0rd/rockbox

Refactor USB ID map retrieval from device settings file and minimize duplicated code.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20716 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Dominik Riebeling 2009-04-16 20:49:43 +00:00
parent 2995c2d265
commit bfce7eea5c
3 changed files with 23 additions and 57 deletions

View file

@ -333,9 +333,9 @@ bool Autodetection::detectUsb()
// usbids holds the mapping in the form
// ((VID<<16)|(PID)), targetname
// the ini file needs to hold the IDs as hex values.
QMap<int, QString> usbids = settings->usbIdMap();
QMap<int, QString> usberror = settings->usbIdErrorMap();
QMap<int, QString> usbincompat = settings->usbIdIncompatMap();
QMap<int, QString> usbids = settings->usbIdMap(RbSettings::MapDevice);
QMap<int, QString> usberror = settings->usbIdMap(RbSettings::MapError);
QMap<int, QString> usbincompat = settings->usbIdMap(RbSettings::MapIncompatible);
// usb pid detection
QList<uint32_t> attached;

View file

@ -388,7 +388,7 @@ QString RbSettings::brand(QString plattform)
return brand;
}
QMap<int, QString> RbSettings::usbIdMap()
QMap<int, QString> RbSettings::usbIdMap(enum MapType type)
{
QMap<int, QString> map;
// get a list of ID -> target name
@ -397,31 +397,18 @@ QMap<int, QString> RbSettings::usbIdMap()
platforms = devices->childKeys();
devices->endGroup();
for(int i = 0; i < platforms.size(); i++)
{
devices->beginGroup("platforms");
QString target = devices->value(platforms.at(i)).toString();
devices->endGroup();
devices->beginGroup(target);
QStringList ids = devices->value("usbid").toStringList();
int j = ids.size();
while(j--)
map.insert(ids.at(j).toInt(0, 16), target);
devices->endGroup();
QString t;
switch(type) {
case MapDevice:
t = "usbid";
break;
case MapError:
t = "usberror";
break;
case MapIncompatible:
t = "usbincompat";
break;
}
return map;
}
QMap<int, QString> RbSettings::usbIdErrorMap()
{
QMap<int, QString> map;
// get a list of ID -> target name
QStringList platforms;
devices->beginGroup("platforms");
platforms = devices->childKeys();
devices->endGroup();
for(int i = 0; i < platforms.size(); i++)
{
@ -429,36 +416,11 @@ QMap<int, QString> RbSettings::usbIdErrorMap()
QString target = devices->value(platforms.at(i)).toString();
devices->endGroup();
devices->beginGroup(target);
QStringList ids = devices->value("usberror").toStringList();
QStringList ids = devices->value(t).toStringList();
int j = ids.size();
while(j--)
map.insert(ids.at(j).toInt(0, 16), target);
devices->endGroup();
}
return map;
}
QMap<int, QString> RbSettings::usbIdIncompatMap()
{
QMap<int, QString> map;
// get a list of ID -> target name
QStringList platforms;
devices->beginGroup("platforms");
platforms = devices->childKeys();
devices->endGroup();
for(int i = 0; i < platforms.size(); i++)
{
devices->beginGroup("platforms");
QString target = devices->value(platforms.at(i)).toString();
devices->endGroup();
devices->beginGroup(target);
QStringList ids = devices->value("usbincompat").toStringList();
int j = ids.size();
while(j--)
map.insert(ids.at(j).toInt(0, 16), target);
devices->endGroup();
}
return map;

View file

@ -41,6 +41,12 @@ class RbSettings : public QObject
// returns the filename of the usersettings file
QString userSettingFilename();
enum MapType {
MapDevice,
MapError,
MapIncompatible,
};
//! access functions for the settings
QString curVersion();
bool cacheOffline();
@ -86,9 +92,7 @@ class RbSettings : public QObject
QString name(QString plattform);
QString brand(QString plattform);
QMap<int, QString> usbIdMap();
QMap<int, QString> usbIdErrorMap();
QMap<int, QString> usbIdIncompatMap();
QMap<int, QString> usbIdMap(enum MapType);
QString curBrand();
QString curName();