LeechCraft Azoth  0.6.70-18450-gabe19ee3b0
Modular multiprotocol IM plugin for LeechCraft
imediacall.h
Go to the documentation of this file.
1 /**********************************************************************
2  * LeechCraft - modular cross-platform feature rich internet client.
3  * Copyright (C) 2006-2014 Georg Rudoy
4  *
5  * Distributed under the Boost Software License, Version 1.0.
6  * (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7  **********************************************************************/
8 
9 #pragma once
10 
11 #include <QtPlugin>
12 #include <QIODevice>
13 
14 class QAudioFormat;
15 
17 {
18  class MediaCall;
19 }
20 
21 namespace LC::Azoth
22 {
23  class IMediaCall
24  {
25  protected:
26  virtual ~IMediaCall () = default;
27  public:
28  virtual Emitters::MediaCall& GetMediaCallEmitter () = 0;
29 
30  enum Direction
31  {
32  DIn,
34  };
35 
36  enum State
37  {
42  };
43 
44  virtual Direction GetDirection () const = 0;
45 
46  virtual QString GetSourceID () const = 0;
47 
48  virtual void Accept () = 0;
49 
50  virtual void Hangup () = 0;
51 
52  virtual QIODevice* GetAudioDevice () = 0;
53 
54  virtual QAudioFormat GetAudioReadFormat () const = 0;
55 
56  virtual QAudioFormat GetAudioWriteFormat () const = 0;
57 
58  virtual QIODevice* GetVideoDevice () = 0;
59  };
60 }
61 
62 Q_DECLARE_INTERFACE (LC::Azoth::IMediaCall,
63  "org.Deviant.LeechCraft.Azoth.IMediaCall/1.0")
virtual QString GetSourceID() const =0
virtual void Hangup()=0
virtual void Accept()=0
virtual Emitters::MediaCall & GetMediaCallEmitter()=0
virtual QIODevice * GetAudioDevice()=0
virtual QAudioFormat GetAudioWriteFormat() const =0
virtual Direction GetDirection() const =0
virtual QIODevice * GetVideoDevice()=0
virtual ~IMediaCall()=default
virtual QAudioFormat GetAudioReadFormat() const =0