Документация
ОС Аврора 5.0.1

Call.Service1

Ниже приведены фрагменты кода или же цельные файлы, которые реализуют интерфейс ru.auroraos.Call.Service1.

Объявление интерфейса

  1. src/callapidbus/call1dbusobject.h:

    #include <QObject>
    #include <QtDBus/QDBusContext>
    #include <QtDBus/QDBusObjectPath>
    
    class Call1DBusAdaptor;
    class Dtmf1DBusAdaptor;
    
    class Call1DBusObject : public QObject, public QDBusContext
    {
        Q_OBJECT
    
    public:
        enum CallStatus {
            Unknown = 0,
            Disconnected,
            Dialing,
            Ringing,
            Rejecting,
            Accepting,
            Active,
            Held
        };
    ...
    }
    
  2. src/callapidbus/callservice1dbusinterface.cpp:

    #include <QtDBus/QDBusReply>
    #include <QtDBus/QDBusError>
    
    #include <QDebug>
    
    #include "callservice1dbusinterface.h"
    
    static const QString s_callService1DBusService = QStringLiteral("org.nemomobile.voicecall");
    static const QString s_callService1DBusObject = QStringLiteral("/ru/auroraos/call/service");
    static const QString s_callService1DBusInterface = QStringLiteral("ru.auroraos.Call.Service1");
    
    /*!
    * Конструктор инициализирует экземпляр QDBusInterface для вызовов DBus-интерфейса.
    * parent — родительский экземпляр QObject.
    */
    CallService1DBusInterface::CallService1DBusInterface(QObject *parent)
        : QObject(parent), m_isInitialized(false)
    {
    }
    
    bool CallService1DBusInterface::isInitialized() const
    {
        return m_isInitialized;
    }
    
    /*!
    * Вызывает метод 'RegisterCallManager' DBus-интерфейса.
    * dbusObjectPath — путь DBus-объекта для регистрации в качестве менеджера вызовов.
    */
    void CallService1DBusInterface::registerCallManager(const QString &dbusObjectPath)
    {
        QVariant dbusObjPathVariant = QVariant::fromValue(QDBusObjectPath(dbusObjectPath));
        QDBusReply<void> reply = m_dbusInterface->call("RegisterCallManager", dbusObjPathVariant);
        if (!reply.isValid()) {
            QString message = QStringLiteral("Не удалось вызвать метод %1.RegisterCallManager(%2): %3, %4")
                                    .arg(s_callService1DBusInterface, dbusObjectPath,
                                        reply.error().name(), reply.error().message());
            qWarning() << message;
            emit dbusErrorReceived(message);
            return;
        }
        qInfo() << QStringLiteral("%1.RegisterCallManager('%2') успешно вызван")
                        .arg(s_callService1DBusInterface, dbusObjectPath);
        emit callManagerRegistered();
    }
    
    /*!
    * Инициализирует экземпляр класса QDBusInterface, который будет выполнять запросы к
    * DBus-интерфейсу ru.auroraos.Call.Service1.
    */
    void CallService1DBusInterface::initialize()
    {
        m_dbusInterface.reset(new QDBusInterface(s_callService1DBusService, s_callService1DBusObject,
                                                s_callService1DBusInterface,
                                                QDBusConnection::sessionBus(), this));
        if (m_dbusInterface == nullptr) {
            QString message =
                    QStringLiteral("DBus-интерфейс %1 не создан").arg(s_callService1DBusService);
            qWarning() << message;
            emit dbusErrorReceived(message);
            return;
        }
        if (!m_dbusInterface->isValid()) {
            QString message = QStringLiteral("DBus-интерфейс %1 недоступен")
                                    .arg(s_callService1DBusInterface)
                                    .append("\n")
                                    .append(QStringLiteral("Ошибка: %1 %2")
                                                    .arg(m_dbusInterface->lastError().name(),
                                                        m_dbusInterface->lastError().message()));
            qWarning() << message;
            qWarning() << "Тип ошибки:" << m_dbusInterface->lastError().type();
            emit dbusErrorReceived(message);
            return;
        }
        qInfo() << QStringLiteral("DBus-интерфейс %1 инициализирован").arg(s_callService1DBusInterface);
        m_isInitialized = true;
        emit dbusInterfaceInitialized();
    }
    

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.