Use function for updating detected device entry.

Use a function instead of looking for an existing entry and creating a new one
if necessary every time.

Change-Id: I7b385dad7366f27370545a7d1a9f7052510cca11
This commit is contained in:
Dominik Riebeling 2013-09-20 21:03:51 +02:00
parent 310e7b4943
commit 1977281bb3
2 changed files with 23 additions and 65 deletions

View file

@ -138,18 +138,11 @@ void Autodetection::mergeMounted(void)
QSettings log(mounts.at(i) + "/.rockbox/rbutil.log",
QSettings::IniFormat, this);
if(!log.value("platform").toString().isEmpty()) {
int index = findDetectedDevice(log.value("platform").toString());
struct Detected d;
d.device = log.value("platform").toString();
d.mountpoint = mounts.at(i);
d.status = PlayerOk;
if(index < 0) {
m_detected.append(d);
}
else {
m_detected.takeAt(index);
m_detected.append(d);
}
updateDetectedDevice(d);
qDebug() << "[Autodetect] rbutil.log detected:"
<< log.value("platform").toString() << mounts.at(i);
}
@ -159,18 +152,11 @@ void Autodetection::mergeMounted(void)
RockboxInfo info(mounts.at(i));
if(info.success())
{
int index = findDetectedDevice(info.target());
struct Detected d;
d.device = info.target();
d.mountpoint = mounts.at(i);
d.status = PlayerOk;
if(index < 0) {
m_detected.append(d);
}
else {
m_detected.takeAt(index);
m_detected.append(d);
}
updateDetectedDevice(d);
qDebug() << "[Autodetect] rockbox-info.txt detected:"
<< info.target() << mounts.at(i);
}
@ -185,7 +171,7 @@ void Autodetection::mergeMounted(void)
d.device = "player";
d.mountpoint = mounts.at(i);
d.status = PlayerOk;
m_detected.append(d);
updateDetectedDevice(d);
}
if(rootentries.contains("ONDIOST.BIN", Qt::CaseInsensitive))
{
@ -194,14 +180,7 @@ void Autodetection::mergeMounted(void)
d.device = "ondiofm";
d.mountpoint = mounts.at(i);
d.status = PlayerOk;
int index = findDetectedDevice("ondiofm");
if(index < 0) {
m_detected.append(d);
}
else {
m_detected.takeAt(index);
m_detected.append(d);
}
updateDetectedDevice(d);
}
if(rootentries.contains("ONDIOSP.BIN", Qt::CaseInsensitive))
{
@ -210,14 +189,7 @@ void Autodetection::mergeMounted(void)
d.device = "ondiosp";
d.mountpoint = mounts.at(i);
d.status = PlayerOk;
int index = findDetectedDevice("ondiosp");
if(index < 0) {
m_detected.append(d);
}
else {
m_detected.takeAt(index);
m_detected.append(d);
}
updateDetectedDevice(d);
}
if(rootentries.contains("ajbrec.ajz", Qt::CaseInsensitive))
{
@ -228,14 +200,7 @@ void Autodetection::mergeMounted(void)
d.status = PlayerOk;
if(!d.device.isEmpty()) {
qDebug() << "[Autodetect]" << d.device;
int index = findDetectedDevice("ondiosp");
if(index < 0) {
m_detected.append(d);
}
else {
m_detected.takeAt(index);
m_detected.append(d);
}
updateDetectedDevice(d);
}
}
// detection based on player specific folders
@ -247,14 +212,7 @@ void Autodetection::mergeMounted(void)
struct Detected d;
d.device = "gigabeatf";
d.mountpoint = mounts.at(i);
int index = findDetectedDevice("ondiosp");
if(index < 0) {
m_detected.append(d);
}
else {
m_detected.takeAt(index);
m_detected.append(d);
}
updateDetectedDevice(d);
}
}
}
@ -315,14 +273,7 @@ void Autodetection::mergePatcher(void)
d.status = PlayerWrongFilesystem;
else
d.status = PlayerOk;
int index = findDetectedDevice(ipod.targetname);
if(index < 0) {
m_detected.append(d);
}
else {
m_detected.takeAt(index);
m_detected.append(d);
}
updateDetectedDevice(d);
}
else {
qDebug() << "[Autodetect] ipodpatcher: no Ipod found." << n;
@ -348,14 +299,7 @@ void Autodetection::mergePatcher(void)
d.device = QString("sansa%1").arg(sansa.targetname);
d.mountpoint = Utils::resolveMountPoint(mp);
d.status = PlayerOk;
int index = findDetectedDevice(d.device);
if(index < 0) {
m_detected.append(d);
}
else {
m_detected.takeAt(index);
m_detected.append(d);
}
updateDetectedDevice(d);
}
else {
qDebug() << "[Autodetect] sansapatcher: no Sansa found." << n;
@ -423,3 +367,16 @@ int Autodetection::findDetectedDevice(QString device)
}
return -1;
}
void Autodetection::updateDetectedDevice(Detected& entry)
{
int index = findDetectedDevice(entry.device);
if(index < 0) {
m_detected.append(entry);
}
else {
m_detected.takeAt(index);
m_detected.append(entry);
}
}

View file

@ -61,6 +61,7 @@ private:
void mergePatcher(void);
QString detectAjbrec(QString);
int findDetectedDevice(QString device);
void updateDetectedDevice(struct Detected& entry);
QList<struct Detected> m_detected;
QList<int> m_usbconid;