[devel] Как eject'ить CD с помощью dbus

Андрей Черепанов cas на altlinux.ru
Пт Окт 29 17:20:24 UTC 2010


Возникла задача - грамотно извлечь CD по кнопке на клавиатуре. Можно было 
повешать eject, но при этом не будет сообщения в KDE4 о невозможности 
извлечения (к примеру). Хочется сделать через dbus-send, но qdbus(viewer) не 
показывает ничего про Solid, хотя у Solid в коде прописывается интерфейс 

Q_DECLARE_INTERFACE(Solid::Ifaces::OpticalDrive, 
"org.kde.Solid.Ifaces.OpticalDrive/0.1")

и вызов:

bool Solid::OpticalDrive::eject()
{
    Q_D(OpticalDrive);
    return_SOLID_CALL(Ifaces::OpticalDrive *, d->backendObject(), false, 
eject());
}

а dbus-monitor при извлечении по кнопке в нотификаторе выдаёт:

method call sender=:1.121 -> dest=org.freedesktop.DBus serial=153 
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
   string 
"type='signal',path='/org/kde/solid/HalDevice_/org/freedesktop/Hal/devices/storage_model_DVD_RAM_UJ_861H',interface='org.kde.solid.HalDevice',member='ejectRequested'"


P.S. Мопед не мой, я только объяву разместил. :)

-- 
Андрей Черепанов
ALT Linux
cas на altlinux.ru
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 198 байтов
Описание: This is a digitally signed message part.
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20101029/e3fa17bb/attachment-0001.bin>


Подробная информация о списке рассылки Devel