00001
00002
00003
00004
00005
00006
00007
00008 #ifndef IN_TP_QT_HEADER
00009 #error IN_TP_QT_HEADER
00010 #endif
00011
00012 #include <TelepathyQt/Types>
00013
00014 #include <QtGlobal>
00015
00016 #include <QString>
00017 #include <QObject>
00018 #include <QVariant>
00019
00020 #include <QDBusPendingReply>
00021
00022 #include <TelepathyQt/AbstractInterface>
00023 #include <TelepathyQt/DBusProxy>
00024 #include <TelepathyQt/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 TP_QT_EXPORT CallStreamInterface : public Tp::AbstractInterface
00045 {
00046 Q_OBJECT
00047
00048 public:
00055 static inline QLatin1String staticInterfaceName()
00056 {
00057 return QLatin1String("org.freedesktop.Telepathy.Call1.Stream");
00058 }
00059
00067 CallStreamInterface(
00068 const QString& busName,
00069 const QString& objectPath,
00070 QObject* parent = 0
00071 );
00072
00081 CallStreamInterface(
00082 const QDBusConnection& connection,
00083 const QString& busName,
00084 const QString& objectPath,
00085 QObject* parent = 0
00086 );
00087
00094 CallStreamInterface(Tp::DBusProxy *proxy);
00095
00109 inline Tp::PendingVariant *requestPropertyInterfaces() const
00110 {
00111 return internalRequestProperty(QLatin1String("Interfaces"));
00112 }
00113
00142 inline Tp::PendingVariant *requestPropertyRemoteMembers() const
00143 {
00144 return internalRequestProperty(QLatin1String("RemoteMembers"));
00145 }
00146
00158 inline Tp::PendingVariant *requestPropertyRemoteMemberIdentifiers() const
00159 {
00160 return internalRequestProperty(QLatin1String("RemoteMemberIdentifiers"));
00161 }
00162
00200 inline Tp::PendingVariant *requestPropertyLocalSendingState() const
00201 {
00202 return internalRequestProperty(QLatin1String("LocalSendingState"));
00203 }
00204
00220 inline Tp::PendingVariant *requestPropertyCanRequestReceiving() const
00221 {
00222 return internalRequestProperty(QLatin1String("CanRequestReceiving"));
00223 }
00224
00231 Tp::PendingVariantMap *requestAllProperties() const
00232 {
00233 return internalRequestAllProperties();
00234 }
00235
00236 public Q_SLOTS:
00262 inline QDBusPendingReply<> SetSending(bool send, int timeout = -1)
00263 {
00264 if (!invalidationReason().isEmpty()) {
00265 return QDBusPendingReply<>(QDBusMessage::createError(
00266 invalidationReason(),
00267 invalidationMessage()
00268 ));
00269 }
00270
00271 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00272 this->staticInterfaceName(), QLatin1String("SetSending"));
00273 callMessage << QVariant::fromValue(send);
00274 return this->connection().asyncCall(callMessage, timeout);
00275 }
00276
00302 inline QDBusPendingReply<> RequestReceiving(uint contact, bool receive, int timeout = -1)
00303 {
00304 if (!invalidationReason().isEmpty()) {
00305 return QDBusPendingReply<>(QDBusMessage::createError(
00306 invalidationReason(),
00307 invalidationMessage()
00308 ));
00309 }
00310
00311 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00312 this->staticInterfaceName(), QLatin1String("RequestReceiving"));
00313 callMessage << QVariant::fromValue(contact) << QVariant::fromValue(receive);
00314 return this->connection().asyncCall(callMessage, timeout);
00315 }
00316
00317 Q_SIGNALS:
00347 void RemoteMembersChanged(const Tp::ContactSendingStateMap& updates, const Tp::HandleIdentifierMap& identifiers, const Tp::UIntList& removed, const Tp::CallStateReason& reason);
00348
00364 void LocalSendingStateChanged(uint state, const Tp::CallStateReason& reason);
00365
00366 protected:
00367 virtual void invalidate(Tp::DBusProxy *, const QString &, const QString &);
00368 };
00369
00377 class TP_QT_EXPORT CallStreamInterfaceMediaInterface : public Tp::AbstractInterface
00378 {
00379 Q_OBJECT
00380
00381 public:
00388 static inline QLatin1String staticInterfaceName()
00389 {
00390 return QLatin1String("org.freedesktop.Telepathy.Call1.Stream.Interface.Media");
00391 }
00392
00400 CallStreamInterfaceMediaInterface(
00401 const QString& busName,
00402 const QString& objectPath,
00403 QObject* parent = 0
00404 );
00405
00414 CallStreamInterfaceMediaInterface(
00415 const QDBusConnection& connection,
00416 const QString& busName,
00417 const QString& objectPath,
00418 QObject* parent = 0
00419 );
00420
00427 CallStreamInterfaceMediaInterface(Tp::DBusProxy *proxy);
00428
00436 explicit CallStreamInterfaceMediaInterface(const Tp::Client::CallStreamInterface& mainInterface);
00437
00445 CallStreamInterfaceMediaInterface(const Tp::Client::CallStreamInterface& mainInterface, QObject* parent);
00446
00462 inline Tp::PendingVariant *requestPropertySendingState() const
00463 {
00464 return internalRequestProperty(QLatin1String("SendingState"));
00465 }
00466
00480 inline Tp::PendingVariant *requestPropertyReceivingState() const
00481 {
00482 return internalRequestProperty(QLatin1String("ReceivingState"));
00483 }
00484
00494 inline Tp::PendingVariant *requestPropertyTransport() const
00495 {
00496 return internalRequestProperty(QLatin1String("Transport"));
00497 }
00498
00508 inline Tp::PendingVariant *requestPropertyLocalCandidates() const
00509 {
00510 return internalRequestProperty(QLatin1String("LocalCandidates"));
00511 }
00512
00526 inline Tp::PendingVariant *requestPropertyLocalCredentials() const
00527 {
00528 return internalRequestProperty(QLatin1String("LocalCredentials"));
00529 }
00530
00552 inline Tp::PendingVariant *requestPropertySTUNServers() const
00553 {
00554 return internalRequestProperty(QLatin1String("STUNServers"));
00555 }
00556
00654 inline Tp::PendingVariant *requestPropertyRelayInfo() const
00655 {
00656 return internalRequestProperty(QLatin1String("RelayInfo"));
00657 }
00658
00678 inline Tp::PendingVariant *requestPropertyHasServerInfo() const
00679 {
00680 return internalRequestProperty(QLatin1String("HasServerInfo"));
00681 }
00682
00693 inline Tp::PendingVariant *requestPropertyEndpoints() const
00694 {
00695 return internalRequestProperty(QLatin1String("Endpoints"));
00696 }
00697
00708 inline Tp::PendingVariant *requestPropertyICERestartPending() const
00709 {
00710 return internalRequestProperty(QLatin1String("ICERestartPending"));
00711 }
00712
00719 Tp::PendingVariantMap *requestAllProperties() const
00720 {
00721 return internalRequestAllProperties();
00722 }
00723
00724 public Q_SLOTS:
00745 inline QDBusPendingReply<> CompleteSendingStateChange(uint state, int timeout = -1)
00746 {
00747 if (!invalidationReason().isEmpty()) {
00748 return QDBusPendingReply<>(QDBusMessage::createError(
00749 invalidationReason(),
00750 invalidationMessage()
00751 ));
00752 }
00753
00754 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00755 this->staticInterfaceName(), QLatin1String("CompleteSendingStateChange"));
00756 callMessage << QVariant::fromValue(state);
00757 return this->connection().asyncCall(callMessage, timeout);
00758 }
00759
00773 inline QDBusPendingReply<> ReportSendingFailure(uint reason, const QString& error, const QString& message, int timeout = -1)
00774 {
00775 if (!invalidationReason().isEmpty()) {
00776 return QDBusPendingReply<>(QDBusMessage::createError(
00777 invalidationReason(),
00778 invalidationMessage()
00779 ));
00780 }
00781
00782 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00783 this->staticInterfaceName(), QLatin1String("ReportSendingFailure"));
00784 callMessage << QVariant::fromValue(reason) << QVariant::fromValue(error) << QVariant::fromValue(message);
00785 return this->connection().asyncCall(callMessage, timeout);
00786 }
00787
00808 inline QDBusPendingReply<> CompleteReceivingStateChange(uint state, int timeout = -1)
00809 {
00810 if (!invalidationReason().isEmpty()) {
00811 return QDBusPendingReply<>(QDBusMessage::createError(
00812 invalidationReason(),
00813 invalidationMessage()
00814 ));
00815 }
00816
00817 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00818 this->staticInterfaceName(), QLatin1String("CompleteReceivingStateChange"));
00819 callMessage << QVariant::fromValue(state);
00820 return this->connection().asyncCall(callMessage, timeout);
00821 }
00822
00836 inline QDBusPendingReply<> ReportReceivingFailure(uint reason, const QString& error, const QString& message, int timeout = -1)
00837 {
00838 if (!invalidationReason().isEmpty()) {
00839 return QDBusPendingReply<>(QDBusMessage::createError(
00840 invalidationReason(),
00841 invalidationMessage()
00842 ));
00843 }
00844
00845 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00846 this->staticInterfaceName(), QLatin1String("ReportReceivingFailure"));
00847 callMessage << QVariant::fromValue(reason) << QVariant::fromValue(error) << QVariant::fromValue(message);
00848 return this->connection().asyncCall(callMessage, timeout);
00849 }
00850
00872 inline QDBusPendingReply<> SetCredentials(const QString& username, const QString& password, int timeout = -1)
00873 {
00874 if (!invalidationReason().isEmpty()) {
00875 return QDBusPendingReply<>(QDBusMessage::createError(
00876 invalidationReason(),
00877 invalidationMessage()
00878 ));
00879 }
00880
00881 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00882 this->staticInterfaceName(), QLatin1String("SetCredentials"));
00883 callMessage << QVariant::fromValue(username) << QVariant::fromValue(password);
00884 return this->connection().asyncCall(callMessage, timeout);
00885 }
00886
00903 inline QDBusPendingReply<> AddCandidates(const Tp::CandidateList& candidates, int timeout = -1)
00904 {
00905 if (!invalidationReason().isEmpty()) {
00906 return QDBusPendingReply<>(QDBusMessage::createError(
00907 invalidationReason(),
00908 invalidationMessage()
00909 ));
00910 }
00911
00912 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00913 this->staticInterfaceName(), QLatin1String("AddCandidates"));
00914 callMessage << QVariant::fromValue(candidates);
00915 return this->connection().asyncCall(callMessage, timeout);
00916 }
00917
00931 inline QDBusPendingReply<> FinishInitialCandidates(int timeout = -1)
00932 {
00933 if (!invalidationReason().isEmpty()) {
00934 return QDBusPendingReply<>(QDBusMessage::createError(
00935 invalidationReason(),
00936 invalidationMessage()
00937 ));
00938 }
00939
00940 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00941 this->staticInterfaceName(), QLatin1String("FinishInitialCandidates"));
00942 return this->connection().asyncCall(callMessage, timeout);
00943 }
00944
00960 inline QDBusPendingReply<> Fail(const Tp::CallStateReason& reason, int timeout = -1)
00961 {
00962 if (!invalidationReason().isEmpty()) {
00963 return QDBusPendingReply<>(QDBusMessage::createError(
00964 invalidationReason(),
00965 invalidationMessage()
00966 ));
00967 }
00968
00969 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00970 this->staticInterfaceName(), QLatin1String("Fail"));
00971 callMessage << QVariant::fromValue(reason);
00972 return this->connection().asyncCall(callMessage, timeout);
00973 }
00974
00975 Q_SIGNALS:
00988 void SendingStateChanged(uint state);
00989
00999 void ReceivingStateChanged(uint state);
01000
01010 void LocalCandidatesAdded(const Tp::CandidateList& candidates);
01011
01019 void LocalCredentialsChanged(const QString& username, const QString& password);
01020
01026 void RelayInfoChanged(const Tp::StringVariantMapList& relayInfo);
01027
01033 void STUNServersChanged(const Tp::SocketAddressIPList& servers);
01034
01045 void ServerInfoRetrieved();
01046
01060 void EndpointsChanged(const Tp::ObjectPathList& endpointsAdded, const Tp::ObjectPathList& endpointsRemoved);
01061
01069 void ICERestartRequested();
01070
01071 protected:
01072 virtual void invalidate(Tp::DBusProxy *, const QString &, const QString &);
01073 };
01074 }
01075 }
01076 Q_DECLARE_METATYPE(Tp::Client::CallStreamInterface*)
01077 Q_DECLARE_METATYPE(Tp::Client::CallStreamInterfaceMediaInterface*)