[Telepathy-commits] [telepathy-qt4/master] StreamedMediaChannel: sketch out a higher-level API

Simon McVittie simon.mcvittie at collabora.co.uk
Mon Mar 23 06:26:21 PDT 2009


---
 TelepathyQt4/Client/streamed-media-channel.h |   72 ++++++++++++++++++++++++++
 1 files changed, 72 insertions(+), 0 deletions(-)

diff --git a/TelepathyQt4/Client/streamed-media-channel.h b/TelepathyQt4/Client/streamed-media-channel.h
index 17065d7..936e99a 100644
--- a/TelepathyQt4/Client/streamed-media-channel.h
+++ b/TelepathyQt4/Client/streamed-media-channel.h
@@ -32,6 +32,61 @@ namespace Telepathy
 namespace Client
 {
 
+class StreamedMediaChannel;
+
+class MediaStream : public QObject
+{
+    Q_OBJECT
+    Q_DISABLE_COPY(MediaStream)
+
+#if 0
+public:
+    StreamedMediaChannel *channel() const;
+    uint streamId() const;
+
+    QSharedPointer<Contact> contact() const;
+    Telepathy::MediaStreamState state() const;
+    Telepathy::MediaStreamType type() const;
+
+    bool sending() const;
+    bool receiving() const;
+    bool localSendingRequested() const;
+    bool remoteSendingRequested() const;
+
+    Telepathy::MediaStreamDirection direction() const;
+    Telepathy::MediaStreamPendingSend pendingSend() const;
+
+public Q_SLOTS:
+    PendingOperation *remove();
+    PendingOperation *requestStreamDirection(bool send, bool receive);
+    PendingOperation *requestStreamDirection(
+            Telepathy::MediaStreamDirection direction);
+
+Q_SIGNALS:
+    void directionChanged(Telepathy::Client::MediaStream *stream,
+            bool sending, bool receiving, bool localSendingRequested,
+            bool remoteSendingRequested);
+    void error(Telepathy::Client::MediaStream *stream,
+            Telepathy::MediaStreamError code, const QString &debugMessage);
+    void stateChanged(Telepathy::Client::MediaStream *stream);
+    void removed(Telepathy::Client::MediaStream *stream);
+
+private:
+    friend class StreamedMediaChannel;
+
+    MediaStream(StreamedMediaChannel *parent, uint streamId, uint
+            contactHandle, MediaStreamType type,
+            MediaStreamState state, MediaStreamDirection direction,
+            MediaStreamPendingSend pendingSend) const;
+
+    struct Private;
+    friend struct Private;
+    Private *mPriv;
+#endif
+};
+
+typedef QSet<QSharedPointer<MediaStream> > MediaStreams;
+
 class StreamedMediaChannel : public Channel
 {
     Q_OBJECT
@@ -42,6 +97,23 @@ public:
             const QVariantMap &immutableProperties, QObject *parent = 0);
     ~StreamedMediaChannel();
 
+#if 0
+public:
+    MediaStreams streams() const;
+    bool awaitingLocalAnswer() const;
+    bool awaitingRemoteAnswer() const;
+
+public Q_SLOTS:
+    PendingOperation *acceptCall();
+
+    PendingOperation *removeStreams(MediaStreams streams);
+    PendingOperation *removeStreams(QSet<uint> streams);
+
+    PendingOperation *requestStreams(
+            QSharedPointer<Telepathy::Client::Contact> contact,
+            QList<Telepathy::MediaStreamType> types);
+#endif
+
 private:
     struct Private;
     friend struct Private;
-- 
1.5.6.5




More information about the telepathy-commits mailing list