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/Client/AbstractInterface>
00023 #include <TelepathyQt4/Client/DBusProxy>
00024
00025
00026 #ifndef TELEPATHY_GNUC_DEPRECATED
00027 # if defined(Q_CC_GNUC) && __GNUC__ >= 4
00028 # define TELEPATHY_GNUC_DEPRECATED __attribute__((__deprecated__))
00029 # else
00030 # define TELEPATHY_GNUC_DEPRECATED
00031 # endif
00032 #endif
00033 namespace Telepathy
00034 {
00035 namespace Client
00036 {
00037
00045 class MediaStreamHandlerInterface : public Telepathy::Client::AbstractInterface
00046 {
00047 Q_OBJECT
00048
00049 public:
00056 static inline const char *staticInterfaceName()
00057 {
00058 return "org.freedesktop.Telepathy.Media.StreamHandler";
00059 }
00060
00068 MediaStreamHandlerInterface(
00069 const QString& serviceName,
00070 const QString& objectPath,
00071 QObject* parent = 0
00072 );
00073
00082 MediaStreamHandlerInterface(
00083 const QDBusConnection& connection,
00084 const QString& serviceName,
00085 const QString& objectPath,
00086 QObject* parent = 0
00087 );
00088
00095 MediaStreamHandlerInterface(Telepathy::Client::DBusProxy *proxy);
00096
00097 public Q_SLOTS:
00103 inline QDBusPendingReply<> CodecChoice(uint codecID)
00104 {
00105 if (!invalidationReason().isEmpty()) {
00106 return QDBusPendingReply<>(QDBusMessage::createError(
00107 invalidationReason(),
00108 invalidationMessage()
00109 ));
00110 }
00111
00112
00113 QList<QVariant> argumentList;
00114 argumentList << QVariant::fromValue(codecID);
00115 return asyncCallWithArgumentList(QLatin1String("CodecChoice"), argumentList);
00116 }
00117
00133 inline QDBusPendingReply<> Error(uint errorCode, const QString& message)
00134 {
00135 if (!invalidationReason().isEmpty()) {
00136 return QDBusPendingReply<>(QDBusMessage::createError(
00137 invalidationReason(),
00138 invalidationMessage()
00139 ));
00140 }
00141
00142
00143 QList<QVariant> argumentList;
00144 argumentList << QVariant::fromValue(errorCode) << QVariant::fromValue(message);
00145 return asyncCallWithArgumentList(QLatin1String("Error"), argumentList);
00146 }
00147
00154 inline QDBusPendingReply<> NativeCandidatesPrepared()
00155 {
00156 if (!invalidationReason().isEmpty()) {
00157 return QDBusPendingReply<>(QDBusMessage::createError(
00158 invalidationReason(),
00159 invalidationMessage()
00160 ));
00161 }
00162
00163
00164 return asyncCall(QLatin1String("NativeCandidatesPrepared"));
00165 }
00166
00173 inline QDBusPendingReply<> NewActiveCandidatePair(const QString& nativeCandidateID, const QString& remoteCandidateID)
00174 {
00175 if (!invalidationReason().isEmpty()) {
00176 return QDBusPendingReply<>(QDBusMessage::createError(
00177 invalidationReason(),
00178 invalidationMessage()
00179 ));
00180 }
00181
00182
00183 QList<QVariant> argumentList;
00184 argumentList << QVariant::fromValue(nativeCandidateID) << QVariant::fromValue(remoteCandidateID);
00185 return asyncCallWithArgumentList(QLatin1String("NewActiveCandidatePair"), argumentList);
00186 }
00187
00215 inline QDBusPendingReply<> NewNativeCandidate(const QString& candidateID, const Telepathy::MediaStreamHandlerTransportList& transports)
00216 {
00217 if (!invalidationReason().isEmpty()) {
00218 return QDBusPendingReply<>(QDBusMessage::createError(
00219 invalidationReason(),
00220 invalidationMessage()
00221 ));
00222 }
00223
00224
00225 QList<QVariant> argumentList;
00226 argumentList << QVariant::fromValue(candidateID) << QVariant::fromValue(transports);
00227 return asyncCallWithArgumentList(QLatin1String("NewNativeCandidate"), argumentList);
00228 }
00229
00240 inline QDBusPendingReply<> Ready(const Telepathy::MediaStreamHandlerCodecList& codecs)
00241 {
00242 if (!invalidationReason().isEmpty()) {
00243 return QDBusPendingReply<>(QDBusMessage::createError(
00244 invalidationReason(),
00245 invalidationMessage()
00246 ));
00247 }
00248
00249
00250 QList<QVariant> argumentList;
00251 argumentList << QVariant::fromValue(codecs);
00252 return asyncCallWithArgumentList(QLatin1String("Ready"), argumentList);
00253 }
00254
00277 inline QDBusPendingReply<> SetLocalCodecs(const Telepathy::MediaStreamHandlerCodecList& codecs)
00278 {
00279 if (!invalidationReason().isEmpty()) {
00280 return QDBusPendingReply<>(QDBusMessage::createError(
00281 invalidationReason(),
00282 invalidationMessage()
00283 ));
00284 }
00285
00286
00287 QList<QVariant> argumentList;
00288 argumentList << QVariant::fromValue(codecs);
00289 return asyncCallWithArgumentList(QLatin1String("SetLocalCodecs"), argumentList);
00290 }
00291
00298 inline QDBusPendingReply<> StreamState(uint state)
00299 {
00300 if (!invalidationReason().isEmpty()) {
00301 return QDBusPendingReply<>(QDBusMessage::createError(
00302 invalidationReason(),
00303 invalidationMessage()
00304 ));
00305 }
00306
00307
00308 QList<QVariant> argumentList;
00309 argumentList << QVariant::fromValue(state);
00310 return asyncCallWithArgumentList(QLatin1String("StreamState"), argumentList);
00311 }
00312
00326 inline QDBusPendingReply<> SupportedCodecs(const Telepathy::MediaStreamHandlerCodecList& codecs)
00327 {
00328 if (!invalidationReason().isEmpty()) {
00329 return QDBusPendingReply<>(QDBusMessage::createError(
00330 invalidationReason(),
00331 invalidationMessage()
00332 ));
00333 }
00334
00335
00336 QList<QVariant> argumentList;
00337 argumentList << QVariant::fromValue(codecs);
00338 return asyncCallWithArgumentList(QLatin1String("SupportedCodecs"), argumentList);
00339 }
00340
00354 inline QDBusPendingReply<> CodecsUpdated(const Telepathy::MediaStreamHandlerCodecList& codecs)
00355 {
00356 if (!invalidationReason().isEmpty()) {
00357 return QDBusPendingReply<>(QDBusMessage::createError(
00358 invalidationReason(),
00359 invalidationMessage()
00360 ));
00361 }
00362
00363
00364 QList<QVariant> argumentList;
00365 argumentList << QVariant::fromValue(codecs);
00366 return asyncCallWithArgumentList(QLatin1String("CodecsUpdated"), argumentList);
00367 }
00368
00379 inline QDBusPendingReply<> HoldState(bool held)
00380 {
00381 if (!invalidationReason().isEmpty()) {
00382 return QDBusPendingReply<>(QDBusMessage::createError(
00383 invalidationReason(),
00384 invalidationMessage()
00385 ));
00386 }
00387
00388
00389 QList<QVariant> argumentList;
00390 argumentList << QVariant::fromValue(held);
00391 return asyncCallWithArgumentList(QLatin1String("HoldState"), argumentList);
00392 }
00393
00401 inline QDBusPendingReply<> UnholdFailure()
00402 {
00403 if (!invalidationReason().isEmpty()) {
00404 return QDBusPendingReply<>(QDBusMessage::createError(
00405 invalidationReason(),
00406 invalidationMessage()
00407 ));
00408 }
00409
00410
00411 return asyncCall(QLatin1String("UnholdFailure"));
00412 }
00413
00414 Q_SIGNALS:
00430 void AddRemoteCandidate(const QString& candidateID, const Telepathy::MediaStreamHandlerTransportList& transports);
00431
00438 void Close();
00439
00451 void RemoveRemoteCandidate(const QString& candidateID);
00452
00460 void SetActiveCandidatePair(const QString& nativeCandidateID, const QString& remoteCandidateID);
00461
00473 void SetRemoteCandidateList(const Telepathy::MediaStreamHandlerCandidateList& remoteCandidates);
00474
00487 void SetRemoteCodecs(const Telepathy::MediaStreamHandlerCodecList& codecs);
00488
00498 void SetStreamPlaying(bool playing);
00499
00506 void SetStreamSending(bool sending);
00507
00518 void StartTelephonyEvent(uchar event);
00519
00526 void StopTelephonyEvent();
00527
00559 void SetStreamHeld(bool held);
00560
00561 protected:
00562 virtual void invalidate(Telepathy::Client::DBusProxy *, const QString &, const QString &);
00563 };
00564 }
00565 }