Ayahuaska
@Ayahuaska
Хочу знать всё.

QDBus и сигналы: как правильно состыковать активацию сигнала при вызывании метода DBus?

Есть класс Controller, в нём описан сигнал pause.
Регистрация объекта и установка соединения происходит так:
QDBusConnection conn = QDBusConnection::sessionBus();
if (! conn.registerService(SERVICE_NAME)) {
        qDebug() << "Error:" <<  conn.lastError().message();
        exit(EXIT_FAILURE);
}
Controller controller;
conn.registerObject(OBJECT_PATH, &controller, QDBusConnection::ExportAllSignals);

В конструкторе класса Controller есть такое безобразие:
this->playback = new Playback(this);
    connect(this, SIGNAL(sig_pause()), playback, SLOT(pause()));

Идея следующая: при обращении к нужному методу нужного объекта нужного интерфейса DBus активировался сигнал.

Что есть сейчас:
D-Bus Viewer показывает наличие сигнала, но вызвать его нельзя:
DbusObject::__call(): org.freedesktop.DBus.Error.UnknownInterface: No such interface 'my.iface' at object path '/my/control'


Пока закостылил через обычный метод, в котором происходит emit sig_pause();

ЧТЯДНТ?
  • Вопрос задан
  • 2845 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы