summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2009-08-09 10:57:33 +0000
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2009-08-09 10:57:33 +0000
commit63ba647ee0fcdcb42f1e36e4a8f82c6c40cbb8f2 (patch)
treeb13d4c5767f8b084d78cc0598cc4abe4cdc8a6ea
parent7aaa544f09ae2f2cf0cd64cbd3f72c0714a94eba (diff)
downloadrockbox-63ba647ee0fcdcb42f1e36e4a8f82c6c40cbb8f2.tar.gz
rockbox-63ba647ee0fcdcb42f1e36e4a8f82c6c40cbb8f2.zip
Clean up bootloader installation debug output a bit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22219 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--rbutil/rbutilqt/base/bootloaderinstallbase.cpp16
-rw-r--r--rbutil/rbutilqt/base/bootloaderinstallbase.h7
-rw-r--r--rbutil/rbutilqt/base/bootloaderinstallfile.cpp12
-rw-r--r--rbutil/rbutilqt/base/bootloaderinstallhex.cpp6
-rw-r--r--rbutil/rbutilqt/base/bootloaderinstallipod.cpp11
-rw-r--r--rbutil/rbutilqt/base/bootloaderinstallmi4.cpp18
-rw-r--r--rbutil/rbutilqt/base/bootloaderinstallsansa.cpp5
7 files changed, 40 insertions, 35 deletions
diff --git a/rbutil/rbutilqt/base/bootloaderinstallbase.cpp b/rbutil/rbutilqt/base/bootloaderinstallbase.cpp
index 428283749d..54e06d024e 100644
--- a/rbutil/rbutilqt/base/bootloaderinstallbase.cpp
+++ b/rbutil/rbutilqt/base/bootloaderinstallbase.cpp
@@ -50,8 +50,8 @@ void BootloaderInstallBase::downloadBlStart(QUrl source)
50 50
51void BootloaderInstallBase::downloadReqFinished(int id, bool error) 51void BootloaderInstallBase::downloadReqFinished(int id, bool error)
52{ 52{
53 qDebug() << __FILE__ << "::" << __func__ << id << error; 53 qDebug() << "[BootloaderInstallBase] Download Request" << id
54 qDebug() << "error:" << m_http.errorString(); 54 << "finished, error:" << m_http.errorString();
55 55
56 downloadBlFinish(error); 56 downloadBlFinish(error);
57} 57}
@@ -59,7 +59,8 @@ void BootloaderInstallBase::downloadReqFinished(int id, bool error)
59 59
60void BootloaderInstallBase::downloadBlFinish(bool error) 60void BootloaderInstallBase::downloadBlFinish(bool error)
61{ 61{
62 qDebug() << __FILE__ << "::" << __func__ << ": error =" << error; 62 qDebug() << "[BootloaderInstallBase] Downloading bootloader finished, error:"
63 << error;
63 64
64 // update progress bar 65 // update progress bar
65 emit logProgress(100, 100); 66 emit logProgress(100, 100);
@@ -88,7 +89,7 @@ void BootloaderInstallBase::downloadBlFinish(bool error)
88 89
89void BootloaderInstallBase::installBlfile(void) 90void BootloaderInstallBase::installBlfile(void)
90{ 91{
91 qDebug() << __FILE__ << __func__; 92 qDebug() << "[BootloaderInstallBase]" << __func__;
92} 93}
93 94
94 95
@@ -98,7 +99,7 @@ void BootloaderInstallBase::installBlfile(void)
98 99
99bool BootloaderInstallBase::backup(QString to) 100bool BootloaderInstallBase::backup(QString to)
100{ 101{
101 qDebug() << __func__; 102 qDebug() << "[BootloaderInstallBase] Backing up bootloader file";
102 QDir targetDir("."); 103 QDir targetDir(".");
103 emit logItem(tr("Creating backup of original firmware file."), LOGINFO); 104 emit logItem(tr("Creating backup of original firmware file."), LOGINFO);
104 if(!targetDir.mkpath(to)) { 105 if(!targetDir.mkpath(to)) {
@@ -106,7 +107,7 @@ bool BootloaderInstallBase::backup(QString to)
106 return false; 107 return false;
107 } 108 }
108 QString tofile = to + "/" + QFileInfo(m_blfile).fileName(); 109 QString tofile = to + "/" + QFileInfo(m_blfile).fileName();
109 qDebug() << "trying to backup" << m_blfile << "to" << tofile; 110 qDebug() << "[BootloaderInstallBase] trying to backup" << m_blfile << "to" << tofile;
110 if(!QFile::copy(resolvePathCase(m_blfile), tofile)) { 111 if(!QFile::copy(resolvePathCase(m_blfile), tofile)) {
111 emit logItem(tr("Creating backup copy failed."), LOGERROR); 112 emit logItem(tr("Creating backup copy failed."), LOGERROR);
112 return false; 113 return false;
@@ -128,7 +129,8 @@ int BootloaderInstallBase::logInstall(LogMode mode)
128 129
129 if(mode == LogAdd) { 130 if(mode == LogAdd) {
130 s.setValue("Bootloader/" + section, m_blversion.toString(Qt::ISODate)); 131 s.setValue("Bootloader/" + section, m_blversion.toString(Qt::ISODate));
131 qDebug() << m_blversion.toString(Qt::ISODate); 132 qDebug() << "[BootloaderInstallBase] Writing log, version:"
133 << m_blversion.toString(Qt::ISODate);
132 } 134 }
133 else { 135 else {
134 s.remove("Bootloader/" + section); 136 s.remove("Bootloader/" + section);
diff --git a/rbutil/rbutilqt/base/bootloaderinstallbase.h b/rbutil/rbutilqt/base/bootloaderinstallbase.h
index 470a23a7ab..1e342e045b 100644
--- a/rbutil/rbutilqt/base/bootloaderinstallbase.h
+++ b/rbutil/rbutilqt/base/bootloaderinstallbase.h
@@ -49,7 +49,7 @@ class BootloaderInstallBase : public QObject
49 virtual BootloaderType installed(void)=0; 49 virtual BootloaderType installed(void)=0;
50 //! returns the capabilities of the bootloader class 50 //! returns the capabilities of the bootloader class
51 virtual Capabilities capabilities(void)=0; 51 virtual Capabilities capabilities(void)=0;
52 //! returns a OF Firmware hint or empty if there is none 52 //! returns a OF Firmware hint or empty if there is none
53 virtual QString ofHint() {return QString();} 53 virtual QString ofHint() {return QString();}
54 54
55 55
@@ -66,8 +66,9 @@ class BootloaderInstallBase : public QObject
66 void setOfFile(QString f) 66 void setOfFile(QString f)
67 {m_offile = f;} 67 {m_offile = f;}
68 68
69 //! returns a port Install Hint or empty if there is none 69 //! returns a port Install Hint or empty if there is none
70 //! static and in the base class, so the installer classes dont need to be modified for new targets 70 //! static and in the base class, so the installer classes dont need to
71 // be modified for new targets
71 static QString postinstallHints(QString model); 72 static QString postinstallHints(QString model);
72 73
73 protected slots: 74 protected slots:
diff --git a/rbutil/rbutilqt/base/bootloaderinstallfile.cpp b/rbutil/rbutilqt/base/bootloaderinstallfile.cpp
index 0c12b05253..0db39a5be3 100644
--- a/rbutil/rbutilqt/base/bootloaderinstallfile.cpp
+++ b/rbutil/rbutilqt/base/bootloaderinstallfile.cpp
@@ -33,7 +33,7 @@ BootloaderInstallFile::BootloaderInstallFile(QObject *parent)
33bool BootloaderInstallFile::install(void) 33bool BootloaderInstallFile::install(void)
34{ 34{
35 emit logItem(tr("Downloading bootloader"), LOGINFO); 35 emit logItem(tr("Downloading bootloader"), LOGINFO);
36 qDebug() << __func__; 36 qDebug() << "[BootloaderInstallFile] installing bootloader";
37 downloadBlStart(m_blurl); 37 downloadBlStart(m_blurl);
38 connect(this, SIGNAL(downloadDone()), this, SLOT(installStage2())); 38 connect(this, SIGNAL(downloadDone()), this, SLOT(installStage2()));
39 return true; 39 return true;
@@ -48,7 +48,7 @@ void BootloaderInstallFile::installStage2(void)
48 QString fwfile(resolvePathCase(m_blfile)); 48 QString fwfile(resolvePathCase(m_blfile));
49 if(!fwfile.isEmpty()) { 49 if(!fwfile.isEmpty()) {
50 QString moved = resolvePathCase(m_blfile) + ".ORIG"; 50 QString moved = resolvePathCase(m_blfile) + ".ORIG";
51 qDebug() << "renaming" << fwfile << "->" << moved; 51 qDebug() << "[BootloaderInstallFile] renaming" << fwfile << "to" << moved;
52 QFile::rename(fwfile, moved); 52 QFile::rename(fwfile, moved);
53 } 53 }
54 54
@@ -82,7 +82,7 @@ void BootloaderInstallFile::installStage2(void)
82 82
83 // place (new) bootloader 83 // place (new) bootloader
84 m_tempfile.open(); 84 m_tempfile.open();
85 qDebug() << "renaming" << m_tempfile.fileName() << "->" << fwfile; 85 qDebug() << "[BootloaderInstallFile] renaming" << m_tempfile.fileName() << "to" << fwfile;
86 m_tempfile.close(); 86 m_tempfile.close();
87 m_tempfile.rename(fwfile); 87 m_tempfile.rename(fwfile);
88 88
@@ -95,7 +95,7 @@ void BootloaderInstallFile::installStage2(void)
95 95
96bool BootloaderInstallFile::uninstall(void) 96bool BootloaderInstallFile::uninstall(void)
97{ 97{
98 qDebug() << __func__; 98 qDebug() << "[BootloaderInstallFile] Uninstalling bootloader";
99 emit logItem(tr("Removing Rockbox bootloader"), LOGINFO); 99 emit logItem(tr("Removing Rockbox bootloader"), LOGINFO);
100 // check if a .ORIG file is present, and allow moving it back. 100 // check if a .ORIG file is present, and allow moving it back.
101 QString origbl = resolvePathCase(m_blfile + ".ORIG"); 101 QString origbl = resolvePathCase(m_blfile + ".ORIG");
@@ -127,7 +127,7 @@ bool BootloaderInstallFile::uninstall(void)
127//! @return BootloaderRockbox, BootloaderOther or BootloaderUnknown. 127//! @return BootloaderRockbox, BootloaderOther or BootloaderUnknown.
128BootloaderInstallBase::BootloaderType BootloaderInstallFile::installed(void) 128BootloaderInstallBase::BootloaderType BootloaderInstallFile::installed(void)
129{ 129{
130 qDebug("%s()", __func__); 130 qDebug() << "[BootloaderInstallFile] checking installed bootloader";
131 if(!resolvePathCase(m_blfile).isEmpty() 131 if(!resolvePathCase(m_blfile).isEmpty()
132 && !resolvePathCase(m_blfile + ".ORIG").isEmpty()) 132 && !resolvePathCase(m_blfile + ".ORIG").isEmpty())
133 return BootloaderRockbox; 133 return BootloaderRockbox;
@@ -140,7 +140,7 @@ BootloaderInstallBase::BootloaderType BootloaderInstallFile::installed(void)
140 140
141BootloaderInstallBase::Capabilities BootloaderInstallFile::capabilities(void) 141BootloaderInstallBase::Capabilities BootloaderInstallFile::capabilities(void)
142{ 142{
143 qDebug() << __func__; 143 qDebug() << "[BootloaderInstallFile] getting capabilities";
144 return Install | IsFile | CanCheckInstalled | Backup; 144 return Install | IsFile | CanCheckInstalled | Backup;
145} 145}
146 146
diff --git a/rbutil/rbutilqt/base/bootloaderinstallhex.cpp b/rbutil/rbutilqt/base/bootloaderinstallhex.cpp
index 31659981f7..994a7cb16f 100644
--- a/rbutil/rbutilqt/base/bootloaderinstallhex.cpp
+++ b/rbutil/rbutilqt/base/bootloaderinstallhex.cpp
@@ -74,7 +74,7 @@ bool BootloaderInstallHex::install(void)
74 file.close(); 74 file.close();
75 QString hash = QCryptographicHash::hash(filedata, 75 QString hash = QCryptographicHash::hash(filedata,
76 QCryptographicHash::Md5).toHex(); 76 QCryptographicHash::Md5).toHex();
77 qDebug() << "hexfile hash:" << hash; 77 qDebug() << "[BootloaderInstallHex] hexfile hash:" << hash;
78 if(file.error() != QFile::NoError) { 78 if(file.error() != QFile::NoError) {
79 emit logItem(tr("Could not verify original firmware file"), LOGERROR); 79 emit logItem(tr("Could not verify original firmware file"), LOGERROR);
80 emit done(true); 80 emit done(true);
@@ -112,7 +112,7 @@ bool BootloaderInstallHex::install(void)
112 int result; 112 int result;
113 result = iriver_decode(m_offile.toAscii().data(), 113 result = iriver_decode(m_offile.toAscii().data(),
114 m_descrambled.fileName().toAscii().data(), FALSE, STRIP_NONE); 114 m_descrambled.fileName().toAscii().data(), FALSE, STRIP_NONE);
115 qDebug() << "iriver_decode" << result; 115 qDebug() << "[BootloaderInstallHex] iriver_decode" << result;
116 116
117 if(result < 0) { 117 if(result < 0) {
118 emit logItem(tr("Error in descramble: %1").arg(scrambleError(result)), LOGERROR); 118 emit logItem(tr("Error in descramble: %1").arg(scrambleError(result)), LOGERROR);
@@ -200,7 +200,7 @@ void BootloaderInstallHex::installStage2(void)
200 targethex.close(); 200 targethex.close();
201 QString hash = QCryptographicHash::hash(filedata, 201 QString hash = QCryptographicHash::hash(filedata,
202 QCryptographicHash::Md5).toHex(); 202 QCryptographicHash::Md5).toHex();
203 qDebug() << "created hexfile hash:" << hash; 203 qDebug() << "[BootloaderInstallHex] created hexfile hash:" << hash;
204 204
205 emit logItem(tr("Checking modified firmware file"), LOGINFO); 205 emit logItem(tr("Checking modified firmware file"), LOGINFO);
206 if(hash != QString(md5sums[m_hashindex].patched)) { 206 if(hash != QString(md5sums[m_hashindex].patched)) {
diff --git a/rbutil/rbutilqt/base/bootloaderinstallipod.cpp b/rbutil/rbutilqt/base/bootloaderinstallipod.cpp
index f622225f22..ca243a944c 100644
--- a/rbutil/rbutilqt/base/bootloaderinstallipod.cpp
+++ b/rbutil/rbutilqt/base/bootloaderinstallipod.cpp
@@ -140,7 +140,7 @@ void BootloaderInstallIpod::installStage2(void)
140 emit done(true); 140 emit done(true);
141 return; 141 return;
142 } 142 }
143 qDebug() << "version installed:" << m_blversion.toString(Qt::ISODate); 143 qDebug() << "[BootloaderInstallIpod] version installed:" << m_blversion.toString(Qt::ISODate);
144} 144}
145 145
146 146
@@ -203,17 +203,17 @@ BootloaderInstallBase::BootloaderType BootloaderInstallIpod::installed(void)
203 BootloaderInstallBase::BootloaderType result = BootloaderRockbox; 203 BootloaderInstallBase::BootloaderType result = BootloaderRockbox;
204 204
205 if(!ipodInitialize(&ipod)) { 205 if(!ipodInitialize(&ipod)) {
206 qDebug() << "BootloaderInstallIpod::installed(): BootloaderUnknown"; 206 qDebug() << "[BootloaderInstallIpod] installed: BootloaderUnknown";
207 result = BootloaderUnknown; 207 result = BootloaderUnknown;
208 } 208 }
209 else { 209 else {
210 read_directory(&ipod); 210 read_directory(&ipod);
211 if(ipod.ipod_directory[0].entryOffset == 0) { 211 if(ipod.ipod_directory[0].entryOffset == 0) {
212 qDebug() << "BootloaderInstallIpod::installed(): BootloaderOther"; 212 qDebug() << "[BootloaderInstallIpod] installed: BootloaderOther";
213 result = BootloaderOther; 213 result = BootloaderOther;
214 } 214 }
215 else { 215 else {
216 qDebug() << "BootloaderInstallIpod::installed(): BootloaderRockbox"; 216 qDebug() << "[BootloaderInstallIpod] installed: BootloaderRockbox";
217 } 217 }
218 } 218 }
219 ipod_close(&ipod); 219 ipod_close(&ipod);
@@ -243,7 +243,8 @@ bool BootloaderInstallIpod::ipodInitialize(struct ipod_t *ipod)
243 qPrintable(Autodetection::resolveDevicename(m_blfile) 243 qPrintable(Autodetection::resolveDevicename(m_blfile)
244 .remove(QRegExp("[0-9]+$")))); 244 .remove(QRegExp("[0-9]+$"))));
245#endif 245#endif
246 qDebug() << "ipodpatcher: overriding scan, using" << ipod->diskname; 246 qDebug() << "[BootloaderInstallIpod] ipodpatcher: overriding scan, using"
247 << ipod->diskname;
247 } 248 }
248 else { 249 else {
249 ipod_scan(ipod); 250 ipod_scan(ipod);
diff --git a/rbutil/rbutilqt/base/bootloaderinstallmi4.cpp b/rbutil/rbutilqt/base/bootloaderinstallmi4.cpp
index 0b42425903..8ae872d5ab 100644
--- a/rbutil/rbutilqt/base/bootloaderinstallmi4.cpp
+++ b/rbutil/rbutilqt/base/bootloaderinstallmi4.cpp
@@ -32,7 +32,7 @@ BootloaderInstallMi4::BootloaderInstallMi4(QObject *parent)
32bool BootloaderInstallMi4::install(void) 32bool BootloaderInstallMi4::install(void)
33{ 33{
34 emit logItem(tr("Downloading bootloader"), LOGINFO); 34 emit logItem(tr("Downloading bootloader"), LOGINFO);
35 qDebug() << __func__; 35 qDebug() << "[BootloaderInstallMi4] installing bootloader";
36 downloadBlStart(m_blurl); 36 downloadBlStart(m_blurl);
37 connect(this, SIGNAL(downloadDone()), this, SLOT(installStage2())); 37 connect(this, SIGNAL(downloadDone()), this, SLOT(installStage2()));
38 return true; 38 return true;
@@ -49,17 +49,17 @@ void BootloaderInstallMi4::installStage2(void)
49 QString moved = QFileInfo(resolvePathCase(m_blfile)).absolutePath() 49 QString moved = QFileInfo(resolvePathCase(m_blfile)).absolutePath()
50 + "/OF.mi4"; 50 + "/OF.mi4";
51 if(!QFileInfo(moved).exists()) { 51 if(!QFileInfo(moved).exists()) {
52 qDebug() << "renaming" << fwfile << "->" << moved; 52 qDebug() << "[BootloaderInstallMi4] renaming" << fwfile << "to" << moved;
53 oldbl.rename(moved); 53 oldbl.rename(moved);
54 } 54 }
55 else { 55 else {
56 qDebug() << "OF.mi4 already present, not renaming again."; 56 qDebug() << "[BootloaderInstallMi4] OF.mi4 already present, not renaming again.";
57 oldbl.remove(); 57 oldbl.remove();
58 } 58 }
59 59
60 // place new bootloader 60 // place new bootloader
61 m_tempfile.open(); 61 m_tempfile.open();
62 qDebug() << "renaming" << m_tempfile.fileName() << "->" << fwfile; 62 qDebug() << "[BootloaderInstallMi4] renaming" << m_tempfile.fileName() << "to" << fwfile;
63 m_tempfile.close(); 63 m_tempfile.close();
64 m_tempfile.rename(fwfile); 64 m_tempfile.rename(fwfile);
65 65
@@ -72,7 +72,7 @@ void BootloaderInstallMi4::installStage2(void)
72 72
73bool BootloaderInstallMi4::uninstall(void) 73bool BootloaderInstallMi4::uninstall(void)
74{ 74{
75 qDebug() << __func__; 75 qDebug() << "[BootloaderInstallMi4] Uninstalling bootloader";
76 76
77 // check if it's actually a Rockbox bootloader 77 // check if it's actually a Rockbox bootloader
78 emit logItem(tr("Checking for Rockbox bootloader"), LOGINFO); 78 emit logItem(tr("Checking for Rockbox bootloader"), LOGINFO);
@@ -117,7 +117,7 @@ BootloaderInstallBase::BootloaderType BootloaderInstallMi4::installed(void)
117 QString resolved; 117 QString resolved;
118 resolved = resolvePathCase(m_blfile); 118 resolved = resolvePathCase(m_blfile);
119 if(resolved.isEmpty()) { 119 if(resolved.isEmpty()) {
120 qDebug("%s: BootloaderNone", __func__); 120 qDebug() << "[BootloaderInstallMi4] installed: BootloaderNone";
121 return BootloaderNone; 121 return BootloaderNone;
122 } 122 }
123 123
@@ -129,11 +129,11 @@ BootloaderInstallBase::BootloaderType BootloaderInstallMi4::installed(void)
129 f.close(); 129 f.close();
130 130
131 if(!memcmp(magic, "RBBL", 4)) { 131 if(!memcmp(magic, "RBBL", 4)) {
132 qDebug("%s: BootloaderRockbox", __func__); 132 qDebug() << "[BootloaderInstallMi4] installed: BootloaderRockbox";
133 return BootloaderRockbox; 133 return BootloaderRockbox;
134 } 134 }
135 else { 135 else {
136 qDebug("%s: BootloaderOther", __func__); 136 qDebug() << "[BootloaderInstallMi4] installed: BootloaderOther";
137 return BootloaderOther; 137 return BootloaderOther;
138 } 138 }
139} 139}
@@ -141,7 +141,7 @@ BootloaderInstallBase::BootloaderType BootloaderInstallMi4::installed(void)
141 141
142BootloaderInstallBase::Capabilities BootloaderInstallMi4::capabilities(void) 142BootloaderInstallBase::Capabilities BootloaderInstallMi4::capabilities(void)
143{ 143{
144 qDebug() << __func__; 144 qDebug() << "[BootloaderInstallMi4] getting capabilities";
145 return Install | Uninstall | Backup | IsFile | CanCheckInstalled | CanCheckVersion; 145 return Install | Uninstall | Backup | IsFile | CanCheckInstalled | CanCheckVersion;
146} 146}
147 147
diff --git a/rbutil/rbutilqt/base/bootloaderinstallsansa.cpp b/rbutil/rbutilqt/base/bootloaderinstallsansa.cpp
index 19750446f6..43404de4bb 100644
--- a/rbutil/rbutilqt/base/bootloaderinstallsansa.cpp
+++ b/rbutil/rbutilqt/base/bootloaderinstallsansa.cpp
@@ -125,7 +125,7 @@ void BootloaderInstallSansa::installStage2(void)
125 m_tempfile.close(); 125 m_tempfile.close();
126 if(memcmp(sansa.targetname, magic, 4) != 0) { 126 if(memcmp(sansa.targetname, magic, 4) != 0) {
127 emit logItem(tr("Bootloader mismatch! Aborting."), LOGERROR); 127 emit logItem(tr("Bootloader mismatch! Aborting."), LOGERROR);
128 qDebug("[BL-Sansa] Targetname: %s, mi4 magic: %c%c%c%c", 128 qDebug("[BootloaderInstallSansa] Targetname: %s, mi4 magic: %c%c%c%c",
129 sansa.targetname, magic[0], magic[1], magic[2], magic[3]); 129 sansa.targetname, magic[0], magic[1], magic[2], magic[3]);
130 emit done(true); 130 emit done(true);
131 sansa_close(&sansa); 131 sansa_close(&sansa);
@@ -230,7 +230,8 @@ bool BootloaderInstallSansa::sansaInitialize(struct sansa_t *sansa)
230 sprintf(sansa->diskname, 230 sprintf(sansa->diskname,
231 qPrintable(Autodetection::resolveDevicename(m_blfile).remove(QRegExp("[0-9]+$")))); 231 qPrintable(Autodetection::resolveDevicename(m_blfile).remove(QRegExp("[0-9]+$"))));
232#endif 232#endif
233 qDebug() << "sansapatcher: overriding scan, using" << sansa->diskname; 233 qDebug() << "[BootloaderInstallSansa] sansapatcher: overriding scan, using"
234 << sansa->diskname;
234 } 235 }
235 else if(sansa_scan(sansa) != 1) { 236 else if(sansa_scan(sansa) != 1) {
236 emit logItem(tr("Can't find Sansa"), LOGERROR); 237 emit logItem(tr("Can't find Sansa"), LOGERROR);