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

DTMFInterface

Ниже приведены фрагменты кода или же цельные файлы, которые реализуют класс DTMFInterface. Данный класс является дополнительным интерфейсом для класса AudioCall.

  1. .spec-файл:

    // Указываем зависимость для сборки: требуется библиотека callservice для работы с аудио и вызовами
    BuildRequires:  pkgconfig(callservice)
    
  2. .CMake-файл:

    # Ищем модуль callservice с помощью pkg-config и создаем импортированную цель PkgConfig::CALLSERVICE
    pkg_check_modules(CALLSERVICE REQUIRED IMPORTED_TARGET callservice)
    ...
    # Линкуем найденную библиотеку callservice с нашим целевым проектом в приватном режиме
    target_link_libraries(${PROJECT_NAME} PRIVATE PkgConfig::CALLSERVICE )
    ...
    
  3. src/audio/audiocall.h:

    // Класс-обертка для обработки DTMF, используемый при включенном режиме STANDALONE_DTMF.
    // Наследуется от QObject и реализует интерфейс DTMFInterface.
    class StandaloneDtmfHandler : public QObject, public DTMFInterface
    {
        Q_OBJECT // Макрос для поддержки сигналов, слотов и метаобъектной системы Qt
        
        // Регистрируем интерфейс DTMFInterface в метаобъектной системе Qt
        Q_INTERFACES(ru::auroraos::call::DTMFInterface)
    
    public:
        // Конструктор принимает указатель на родительский объект AudioCall
        explicit StandaloneDtmfHandler(AudioCall *parent)
            : QObject(parent)
            , m_call(parent) // Сохраняем указатель на экземпляр AudioCall для делегирования вызовов
        {
        }
    
    public slots:
        // Реализация метода интерфейса DTMFInterface
        // Делегирует вызов метода SendDTMF связанному объекту AudioCall
        void SendDTMF(const QString &codes) override
        {
            m_call->SendDTMF(codes);
        }
    
    private:
        AudioCall *m_call; // Указатель на связанный объект AudioCall
    };
    

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

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