audiocallmanager.h 1,5 КБ
Newer Older
Denis Grigorev's avatar
Denis Grigorev включено в состав коммита
1
2
3
4
5
6
#pragma once

#include <QObject>
#include <QQuickItem>
#include <QVariantMap>

Denis Grigorev's avatar
Denis Grigorev включено в состав коммита
7
#include <audiocontext.h>
Denis Grigorev's avatar
Denis Grigorev включено в состав коммита
8
9
#include <callmanager.h>

Denis Grigorev's avatar
Denis Grigorev включено в состав коммита
10
11
#include "audiomanager.h"

Denis Grigorev's avatar
Denis Grigorev включено в состав коммита
12
13
14
15
16
17
18
19
20
21
22
23
using ru::auroraos::call::AudioContext;
using ru::auroraos::call::Call;
using ru::auroraos::call::CallManager;

class AudioCall;

class AudioCallManager : public CallManager
{
    Q_OBJECT

    Q_PROPERTY(bool holdable READ holdable WRITE setHoldable NOTIFY holdableChanged)
    Q_PROPERTY(bool redialable READ redialable WRITE setRedialable NOTIFY redialableChanged)
Denis Grigorev's avatar
Denis Grigorev включено в состав коммита
24
    Q_PROPERTY(AudioManager* audioManager READ audioManager CONSTANT)
Denis Grigorev's avatar
Denis Grigorev включено в состав коммита
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

public:
    explicit AudioCallManager(const QString &accountId, QObject *parent = nullptr);
    ~AudioCallManager() = default;

    Q_INVOKABLE AudioCall *getAudioCall(const QString &callId) const;
    Q_INVOKABLE Call *initiateCall(const QVariantMap &properties);
    Q_INVOKABLE Call *reportIncomingCall(const QVariantMap &properties);

    bool holdable() const;
    void setHoldable(bool on);

    bool redialable() const;
    void setRedialable(bool on);

Denis Grigorev's avatar
Denis Grigorev включено в состав коммита
40
41
42
43
44
    AudioManager *audioManager()
    {
        return &m_audioManager;
    }

Denis Grigorev's avatar
Denis Grigorev включено в состав коммита
45
46
47
48
49
50
51
52
53
54
55
public slots:
    void openUri(const QString &uri);

signals:
    void holdableChanged(bool on);
    void redialableChanged(bool on);

private:
    Call *newCall(QVariantMap &properties);

private:
Denis Grigorev's avatar
Denis Grigorev включено в состав коммита
56
    AudioContext m_audioContext;
Denis Grigorev's avatar
Denis Grigorev включено в состав коммита
57
    AudioManager m_audioManager;
Denis Grigorev's avatar
Denis Grigorev включено в состав коммита
58
59
60
61
62
63
    unsigned int m_callId;
    bool m_holdable;
    bool m_redialable;
};

QML_DECLARE_TYPE(AudioCallManager)