summaryrefslogtreecommitdiffstats
path: root/pica-client/audiovideocallcontroller.h
diff options
context:
space:
mode:
authorAnton <anton@picapica.im>2025-08-19 17:20:35 +0400
committerAnton <anton@picapica.im>2025-08-19 17:20:35 +0400
commitdc8dc3d49d4b98e28cee3e68cf408bc8af9633b9 (patch)
treeb051634fd022a79c4368cc7dcb65f737588dc645 /pica-client/audiovideocallcontroller.h
parentc725f856286dc7918c20a6fb9de34d3d72cb2768 (diff)
downloadpica-pica-dc8dc3d49d4b98e28cee3e68cf408bc8af9633b9.tar.gz
pica-pica-dc8dc3d49d4b98e28cee3e68cf408bc8af9633b9.zip
pica-client: add call initiation & termination in skynet and audiovideocallscontroller and callwindow
Diffstat (limited to 'pica-client/audiovideocallcontroller.h')
-rw-r--r--pica-client/audiovideocallcontroller.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/pica-client/audiovideocallcontroller.h b/pica-client/audiovideocallcontroller.h
index 9bc9c38..82e1dc8 100644
--- a/pica-client/audiovideocallcontroller.h
+++ b/pica-client/audiovideocallcontroller.h
@@ -19,17 +19,39 @@
#include <QObject>
#include "callwindow.h"
+#include "audiodevice.h"
+#include "videodevice.h"
class AudioVideoCallController : public QObject
{
Q_OBJECT
public:
explicit AudioVideoCallController(QObject *parent = nullptr);
+ // is call active (i.e. are voice/video packets exchanged now)
+ bool const isActive() {return is_active;}
+ void processCall();
public slots:
void start_call(QByteArray peer_id);
+ void call_from(QByteArray peer_id);
+ void call_failed(QString reason);
+ void call_accepted(QByteArray peer_id);
+ void call_rejected(QByteArray peer_id);
+ void call_hungup(QByteArray peer_id);
signals:
private:
CallWindow *callwindow;
+ AudioDevice *ringdevice;
+ AudioDevice *microphone;
+ AudioDevice *output;
+ VideoDevice *cam;
+ bool is_active;
+ QByteArray m_peer_id;
+private slots:
+ // button handlers
+ void initiate_call();
+ void accept_call();
+ void end_call();
+
};
#endif // AUDIOVIDEOCALLCONTROLLER_H