Документация
ОС Аврора 5.1.6
Call.DTMF1
Ниже приведены фрагменты кода или же цельные файлы, которые реализуют интерфейс ru.auroraos.Call.DTMF1.
Содержание:
Объявление интерфейса
-
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); }; -
src/callapidbus/dtmf1dbusadaptor.cpp:#include <QDebug> #include "dtmf1dbusadaptor.h" Dtmf1DBusAdaptor::Dtmf1DBusAdaptor(QObject *parent) : QDBusAbstractAdaptor(parent) { } void Dtmf1DBusAdaptor::SendDTMF(const QString &tones) { emit sendDTMFInfo(tones); }
Регистрация интерфейса
-
src/callapidbus/calldbusmanager.cpp:void CallDbusManager::registerCall1DBusObject(const bool incoming) { ... if (m_dtmf1Enabled) { dbusManagedObjects.insert("ru.auroraos.Call.DTMF1", {}); } ... }
Удаление интерфейса
-
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(); } }