kscd: Fix device detection from Media Manager

Commit d36f6096 in tdebase has changed the order of
items in the device properties returned by Media Manager.
The indexes of items used in kscd must be consistent
with tdebase.
This resolves Bug 2834

Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
(cherry picked from commit 63f0675169)
pull/20/head
Slávek Banko 7 years ago
parent 758a817ea6
commit 1cc441b6bc

@ -119,16 +119,21 @@ void configWidget::getMediaDevices()
TQStringList::const_iterator it = list.begin();
TQStringList::const_iterator itEnd = list.end();
// it would be much better if libmediacommon was in tdelibs
// see tdebase/tdeioslave/media/libmediacommon/medium.h
while (it != itEnd) {
it++;
if (it == itEnd) break;
TQString url="media:/"+(*it); // is it always right? ervin?
kdDebug() << "checking " << url << endl;
for (int i=0;i<9;i++) ++it; // go to mimetype (MIME_TYPE-NAME from medium.h)
kdDebug() << "Mime: " << *it << endl;
if (it!=itEnd && (*it)=="media/audiocd") {
kcfg_cdDevice->comboBox()->insertItem(url);
}
TQString url;
for ( int i = 0; i<12 && it != itEnd; i++, ++it ) {
if (i == 2) { // NAME
url = "media:/"+(*it);
kdDebug() << "checking " << url << endl;
}
if (i == 11) { // MIME_TYPE
kdDebug() << "Mime: " << *it << endl;
if ((*it)=="media/audiocd") {
kcfg_cdDevice->comboBox()->insertItem(url);
}
}
}
while (it !=itEnd && (*it)!="---") ++it; // go to end of current device's properties
++it;
}

@ -241,15 +241,14 @@ TQString TDECompactDisc::urlToDevice(const TQString& device)
DCOPRef mediamanager("kded", "mediamanager");
DCOPReply reply = mediamanager.call("properties(TQString)", deviceUrl.fileName());
TQStringList properties = reply;
if (!reply.isValid() || properties.count() < 6)
{
if (!reply.isValid() || properties.count() < 7 ) {
kdError() << "Invalid reply from mediamanager" << endl;
return defaultDevice;
}
else
{
kdDebug() << "Reply from mediamanager " << properties[5] << endl;
return properties[5];
else {
/* see DEVICE_NODE in tdebase/tdeioslave/media/libmediacommon/medium.h */
kdDebug() << "Reply from mediamanager " << properties[6] << endl;
return properties[6];
}
}

Loading…
Cancel
Save