00001
00002
00003
00004
00005
00006
00007
00008 #ifndef IN_TELEPATHY_QT4_HEADER
00009 #error IN_TELEPATHY_QT4_HEADER
00010 #endif
00011
00012 #include <TelepathyQt4/Types>
00013
00014 #include <QtGlobal>
00015
00016 #include <QString>
00017 #include <QObject>
00018 #include <QVariant>
00019
00020 #include <QDBusPendingReply>
00021
00022 #include <TelepathyQt4/AbstractInterface>
00023 #include <TelepathyQt4/DBusProxy>
00024 #include <TelepathyQt4/Global>
00025
00026 namespace Tp
00027 {
00028 class PendingVariant;
00029 class PendingOperation;
00030 }
00031
00032 namespace Tp
00033 {
00034 namespace Client
00035 {
00036
00044 class TELEPATHY_QT4_EXPORT MediaStreamHandlerInterface : public Tp::AbstractInterface
00045 {
00046 Q_OBJECT
00047
00048 public:
00055 static inline QLatin1String staticInterfaceName()
00056 {
00057 return QLatin1String("org.freedesktop.Telepathy.Media.StreamHandler");
00058 }
00059
00067 MediaStreamHandlerInterface(
00068 const QString& busName,
00069 const QString& objectPath,
00070 QObject* parent = 0
00071 );
00072
00081 MediaStreamHandlerInterface(
00082 const QDBusConnection& connection,
00083 const QString& busName,
00084 const QString& objectPath,
00085 QObject* parent = 0
00086 );
00087
00094 MediaStreamHandlerInterface(Tp::DBusProxy *proxy);
00095
00111 inline Tp::PendingVariant *requestPropertySTUNServers() const
00112 {
00113 return internalRequestProperty(QLatin1String("STUNServers"));
00114 }
00115
00127 inline Tp::PendingVariant *requestPropertyCreatedLocally() const
00128 {
00129 return internalRequestProperty(QLatin1String("CreatedLocally"));
00130 }
00131
00171 inline Tp::PendingVariant *requestPropertyNATTraversal() const
00172 {
00173 return internalRequestProperty(QLatin1String("NATTraversal"));
00174 }
00175
00254 inline Tp::PendingVariant *requestPropertyRelayInfo() const
00255 {
00256 return internalRequestProperty(QLatin1String("RelayInfo"));
00257 }
00258
00265 Tp::PendingVariantMap *requestAllProperties() const
00266 {
00267 return internalRequestAllProperties();
00268 }
00269
00270 public Q_SLOTS:
00281 inline QDBusPendingReply<> CodecChoice(uint codecID, int timeout = -1)
00282 {
00283 if (!invalidationReason().isEmpty()) {
00284 return QDBusPendingReply<>(QDBusMessage::createError(
00285 invalidationReason(),
00286 invalidationMessage()
00287 ));
00288 }
00289
00290 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00291 this->staticInterfaceName(), QLatin1String("CodecChoice"));
00292 callMessage << QVariant::fromValue(codecID);
00293 return this->connection().asyncCall(callMessage, timeout);
00294 }
00295
00316 inline QDBusPendingReply<> Error(uint errorCode, const QString& message, int timeout = -1)
00317 {
00318 if (!invalidationReason().isEmpty()) {
00319 return QDBusPendingReply<>(QDBusMessage::createError(
00320 invalidationReason(),
00321 invalidationMessage()
00322 ));
00323 }
00324
00325 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00326 this->staticInterfaceName(), QLatin1String("Error"));
00327 callMessage << QVariant::fromValue(errorCode) << QVariant::fromValue(message);
00328 return this->connection().asyncCall(callMessage, timeout);
00329 }
00330
00342 inline QDBusPendingReply<> NativeCandidatesPrepared(int timeout = -1)
00343 {
00344 if (!invalidationReason().isEmpty()) {
00345 return QDBusPendingReply<>(QDBusMessage::createError(
00346 invalidationReason(),
00347 invalidationMessage()
00348 ));
00349 }
00350
00351 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00352 this->staticInterfaceName(), QLatin1String("NativeCandidatesPrepared"));
00353 return this->connection().asyncCall(callMessage, timeout);
00354 }
00355
00367 inline QDBusPendingReply<> NewActiveCandidatePair(const QString& nativeCandidateID, const QString& remoteCandidateID, int timeout = -1)
00368 {
00369 if (!invalidationReason().isEmpty()) {
00370 return QDBusPendingReply<>(QDBusMessage::createError(
00371 invalidationReason(),
00372 invalidationMessage()
00373 ));
00374 }
00375
00376 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00377 this->staticInterfaceName(), QLatin1String("NewActiveCandidatePair"));
00378 callMessage << QVariant::fromValue(nativeCandidateID) << QVariant::fromValue(remoteCandidateID);
00379 return this->connection().asyncCall(callMessage, timeout);
00380 }
00381
00409 inline QDBusPendingReply<> NewActiveTransportPair(const QString& nativeCandidateID, const Tp::MediaStreamHandlerTransport& nativeTransport, const QString& remoteCandidateID, const Tp::MediaStreamHandlerTransport& remoteTransport, int timeout = -1)
00410 {
00411 if (!invalidationReason().isEmpty()) {
00412 return QDBusPendingReply<>(QDBusMessage::createError(
00413 invalidationReason(),
00414 invalidationMessage()
00415 ));
00416 }
00417
00418 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00419 this->staticInterfaceName(), QLatin1String("NewActiveTransportPair"));
00420 callMessage << QVariant::fromValue(nativeCandidateID) << QVariant::fromValue(nativeTransport) << QVariant::fromValue(remoteCandidateID) << QVariant::fromValue(remoteTransport);
00421 return this->connection().asyncCall(callMessage, timeout);
00422 }
00423
00456 inline QDBusPendingReply<> NewNativeCandidate(const QString& candidateID, const Tp::MediaStreamHandlerTransportList& transports, int timeout = -1)
00457 {
00458 if (!invalidationReason().isEmpty()) {
00459 return QDBusPendingReply<>(QDBusMessage::createError(
00460 invalidationReason(),
00461 invalidationMessage()
00462 ));
00463 }
00464
00465 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00466 this->staticInterfaceName(), QLatin1String("NewNativeCandidate"));
00467 callMessage << QVariant::fromValue(candidateID) << QVariant::fromValue(transports);
00468 return this->connection().asyncCall(callMessage, timeout);
00469 }
00470
00486 inline QDBusPendingReply<> Ready(const Tp::MediaStreamHandlerCodecList& codecs, int timeout = -1)
00487 {
00488 if (!invalidationReason().isEmpty()) {
00489 return QDBusPendingReply<>(QDBusMessage::createError(
00490 invalidationReason(),
00491 invalidationMessage()
00492 ));
00493 }
00494
00495 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00496 this->staticInterfaceName(), QLatin1String("Ready"));
00497 callMessage << QVariant::fromValue(codecs);
00498 return this->connection().asyncCall(callMessage, timeout);
00499 }
00500
00528 inline QDBusPendingReply<> SetLocalCodecs(const Tp::MediaStreamHandlerCodecList& codecs, int timeout = -1)
00529 {
00530 if (!invalidationReason().isEmpty()) {
00531 return QDBusPendingReply<>(QDBusMessage::createError(
00532 invalidationReason(),
00533 invalidationMessage()
00534 ));
00535 }
00536
00537 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00538 this->staticInterfaceName(), QLatin1String("SetLocalCodecs"));
00539 callMessage << QVariant::fromValue(codecs);
00540 return this->connection().asyncCall(callMessage, timeout);
00541 }
00542
00554 inline QDBusPendingReply<> StreamState(uint state, int timeout = -1)
00555 {
00556 if (!invalidationReason().isEmpty()) {
00557 return QDBusPendingReply<>(QDBusMessage::createError(
00558 invalidationReason(),
00559 invalidationMessage()
00560 ));
00561 }
00562
00563 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00564 this->staticInterfaceName(), QLatin1String("StreamState"));
00565 callMessage << QVariant::fromValue(state);
00566 return this->connection().asyncCall(callMessage, timeout);
00567 }
00568
00587 inline QDBusPendingReply<> SupportedCodecs(const Tp::MediaStreamHandlerCodecList& codecs, int timeout = -1)
00588 {
00589 if (!invalidationReason().isEmpty()) {
00590 return QDBusPendingReply<>(QDBusMessage::createError(
00591 invalidationReason(),
00592 invalidationMessage()
00593 ));
00594 }
00595
00596 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00597 this->staticInterfaceName(), QLatin1String("SupportedCodecs"));
00598 callMessage << QVariant::fromValue(codecs);
00599 return this->connection().asyncCall(callMessage, timeout);
00600 }
00601
00620 inline QDBusPendingReply<> CodecsUpdated(const Tp::MediaStreamHandlerCodecList& codecs, int timeout = -1)
00621 {
00622 if (!invalidationReason().isEmpty()) {
00623 return QDBusPendingReply<>(QDBusMessage::createError(
00624 invalidationReason(),
00625 invalidationMessage()
00626 ));
00627 }
00628
00629 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00630 this->staticInterfaceName(), QLatin1String("CodecsUpdated"));
00631 callMessage << QVariant::fromValue(codecs);
00632 return this->connection().asyncCall(callMessage, timeout);
00633 }
00634
00650 inline QDBusPendingReply<> HoldState(bool held, int timeout = -1)
00651 {
00652 if (!invalidationReason().isEmpty()) {
00653 return QDBusPendingReply<>(QDBusMessage::createError(
00654 invalidationReason(),
00655 invalidationMessage()
00656 ));
00657 }
00658
00659 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00660 this->staticInterfaceName(), QLatin1String("HoldState"));
00661 callMessage << QVariant::fromValue(held);
00662 return this->connection().asyncCall(callMessage, timeout);
00663 }
00664
00677 inline QDBusPendingReply<> UnholdFailure(int timeout = -1)
00678 {
00679 if (!invalidationReason().isEmpty()) {
00680 return QDBusPendingReply<>(QDBusMessage::createError(
00681 invalidationReason(),
00682 invalidationMessage()
00683 ));
00684 }
00685
00686 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00687 this->staticInterfaceName(), QLatin1String("UnholdFailure"));
00688 return this->connection().asyncCall(callMessage, timeout);
00689 }
00690
00691 Q_SIGNALS:
00707 void AddRemoteCandidate(const QString& candidateID, const Tp::MediaStreamHandlerTransportList& transports);
00708
00715 void Close();
00716
00728 void RemoveRemoteCandidate(const QString& candidateID);
00729
00737 void SetActiveCandidatePair(const QString& nativeCandidateID, const QString& remoteCandidateID);
00738
00750 void SetRemoteCandidateList(const Tp::MediaStreamHandlerCandidateList& remoteCandidates);
00751
00764 void SetRemoteCodecs(const Tp::MediaStreamHandlerCodecList& codecs);
00765
00775 void SetStreamPlaying(bool playing);
00776
00783 void SetStreamSending(bool sending);
00784
00795 void StartTelephonyEvent(uchar event);
00796
00816 void StartNamedTelephonyEvent(uchar event, uint codecID);
00817
00830 void StartSoundTelephonyEvent(uchar event);
00831
00838 void StopTelephonyEvent();
00839
00871 void SetStreamHeld(bool held);
00872
00873 protected:
00874 virtual void invalidate(Tp::DBusProxy *, const QString &, const QString &);
00875 };
00876 }
00877 }
00878 Q_DECLARE_METATYPE(Tp::Client::MediaStreamHandlerInterface*)