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

Call.DTMF1

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

Содержание:

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

  1. src/callapidbus/dtmf1dbusadaptor.h:

    #include <QtDBus/QDBusAbstractAdaptor>
    #include <QtDBus/QDBusObjectPath>
    
    class Dtmf1DBusAdaptor : public QDBusAbstractAdaptor
    {
        Q_OBJECT
        Q_CLASSINFO("D-Bus Interface", "ru.auroraos.Call.DTMF1")
    
    public:
        explicit Dtmf1DBusAdaptor(QObject *parent = nullptr);
    
    public slots:
        void SendDTMF(const QString &tones);
    
    signals:
        void sendDTMFInfo(const QString &tones);
    };
    
  2. src/callapidbus/dtmf1dbusadaptor.cpp:

    #include <QDebug>
    
    #include "dtmf1dbusadaptor.h"
    
    Dtmf1DBusAdaptor::Dtmf1DBusAdaptor(QObject *parent)
        : QDBusAbstractAdaptor(parent)
    {
    }
    
    void Dtmf1DBusAdaptor::SendDTMF(const QString &tones)
    {
        emit sendDTMFInfo(tones);
    }
    

Регистрация интерфейса

  1. src/callapidbus/calldbusmanager.cpp:

    void CallDbusManager::registerCall1DBusObject(const bool incoming)
    {
        ...
        if (m_dtmf1Enabled) {
            dbusManagedObjects.insert("ru.auroraos.Call.DTMF1", {});
        }
        ...
    }
    

Удаление интерфейса

  1. src/callapidbus/calldbusmanager.cpp:

    void CallDbusManager::handleCallStatusChanged(const uint32_t status)
    {
        qInfo() << QStringLiteral("Статус звонка изменён: %1")
                        .arg(Call1DBusObject::statusToString(status));
        m_currentCallStatus = Call1DBusObject::CallStatus(status);
        if (status == Call1DBusObject::Disconnected) {
            m_dbusManagedObjects.remove(m_call1DBusObject.objectPath());
            QStringList call1Interfaces = QStringList() << "ru.auroraos.Call.Call1";
            if (m_dtmf1Enabled) {
                call1Interfaces.append("ru.auroraos.Call.DTMF1");
            }
            emit InterfacesRemoved(m_call1DBusObject.objectPath(), call1Interfaces);
            m_call1DBusObject.unregisterCall1DBusObject();
        } else if (status == Call1DBusObject::Rejecting) {
            m_earpiecePlayer.releaseAudioResource();
        } else if (status == Call1DBusObject::Active || status == Call1DBusObject::Held
                || status == Call1DBusObject::Dialing) {
            m_earpiecePlayer.grantAudioResource();
        }
    }
    

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

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