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 CallContentInterface : public Tp::AbstractInterface
00045 {
00046 Q_OBJECT
00047
00048 public:
00055 static inline QLatin1String staticInterfaceName()
00056 {
00057 return QLatin1String("org.freedesktop.Telepathy.Call1.Content");
00058 }
00059
00067 CallContentInterface(
00068 const QString& busName,
00069 const QString& objectPath,
00070 QObject* parent = 0
00071 );
00072
00081 CallContentInterface(
00082 const QDBusConnection& connection,
00083 const QString& busName,
00084 const QString& objectPath,
00085 QObject* parent = 0
00086 );
00087
00094 CallContentInterface(Tp::DBusProxy *proxy);
00095
00111 inline Tp::PendingVariant *requestPropertyInterfaces() const
00112 {
00113 return internalRequestProperty(QLatin1String("Interfaces"));
00114 }
00115
00135 inline Tp::PendingVariant *requestPropertyName() const
00136 {
00137 return internalRequestProperty(QLatin1String("Name"));
00138 }
00139
00151 inline Tp::PendingVariant *requestPropertyType() const
00152 {
00153 return internalRequestProperty(QLatin1String("Type"));
00154 }
00155
00165 inline Tp::PendingVariant *requestPropertyDisposition() const
00166 {
00167 return internalRequestProperty(QLatin1String("Disposition"));
00168 }
00169
00195 inline Tp::PendingVariant *requestPropertyStreams() const
00196 {
00197 return internalRequestProperty(QLatin1String("Streams"));
00198 }
00199
00206 Tp::PendingVariantMap *requestAllProperties() const
00207 {
00208 return internalRequestAllProperties();
00209 }
00210
00211 public Q_SLOTS:
00224 inline QDBusPendingReply<> Remove(int timeout = -1)
00225 {
00226 if (!invalidationReason().isEmpty()) {
00227 return QDBusPendingReply<>(QDBusMessage::createError(
00228 invalidationReason(),
00229 invalidationMessage()
00230 ));
00231 }
00232
00233 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00234 this->staticInterfaceName(), QLatin1String("Remove"));
00235 return this->connection().asyncCall(callMessage, timeout);
00236 }
00237
00238 Q_SIGNALS:
00250 void StreamsAdded(const Tp::ObjectPathList& streams);
00251
00267 void StreamsRemoved(const Tp::ObjectPathList& streams, const Tp::CallStateReason& reason);
00268
00269 protected:
00270 virtual void invalidate(Tp::DBusProxy *, const QString &, const QString &);
00271 };
00272
00280 class TP_QT_EXPORT CallContentInterfaceAudioControlInterface : public Tp::AbstractInterface
00281 {
00282 Q_OBJECT
00283
00284 public:
00291 static inline QLatin1String staticInterfaceName()
00292 {
00293 return QLatin1String("org.freedesktop.Telepathy.Call1.Content.Interface.AudioControl");
00294 }
00295
00303 CallContentInterfaceAudioControlInterface(
00304 const QString& busName,
00305 const QString& objectPath,
00306 QObject* parent = 0
00307 );
00308
00317 CallContentInterfaceAudioControlInterface(
00318 const QDBusConnection& connection,
00319 const QString& busName,
00320 const QString& objectPath,
00321 QObject* parent = 0
00322 );
00323
00330 CallContentInterfaceAudioControlInterface(Tp::DBusProxy *proxy);
00331
00339 explicit CallContentInterfaceAudioControlInterface(const Tp::Client::CallContentInterface& mainInterface);
00340
00348 CallContentInterfaceAudioControlInterface(const Tp::Client::CallContentInterface& mainInterface, QObject* parent);
00349
00361 inline Tp::PendingVariant *requestPropertyRequestedInputVolume() const
00362 {
00363 return internalRequestProperty(QLatin1String("RequestedInputVolume"));
00364 }
00365
00377 inline Tp::PendingVariant *requestPropertyRequestedOutputVolume() const
00378 {
00379 return internalRequestProperty(QLatin1String("RequestedOutputVolume"));
00380 }
00381
00388 Tp::PendingVariantMap *requestAllProperties() const
00389 {
00390 return internalRequestAllProperties();
00391 }
00392
00393 public Q_SLOTS:
00411 inline QDBusPendingReply<> ReportInputVolume(int volume, int timeout = -1)
00412 {
00413 if (!invalidationReason().isEmpty()) {
00414 return QDBusPendingReply<>(QDBusMessage::createError(
00415 invalidationReason(),
00416 invalidationMessage()
00417 ));
00418 }
00419
00420 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00421 this->staticInterfaceName(), QLatin1String("ReportInputVolume"));
00422 callMessage << QVariant::fromValue(volume);
00423 return this->connection().asyncCall(callMessage, timeout);
00424 }
00425
00443 inline QDBusPendingReply<> ReportOutputVolume(int volume, int timeout = -1)
00444 {
00445 if (!invalidationReason().isEmpty()) {
00446 return QDBusPendingReply<>(QDBusMessage::createError(
00447 invalidationReason(),
00448 invalidationMessage()
00449 ));
00450 }
00451
00452 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00453 this->staticInterfaceName(), QLatin1String("ReportOutputVolume"));
00454 callMessage << QVariant::fromValue(volume);
00455 return this->connection().asyncCall(callMessage, timeout);
00456 }
00457
00458 protected:
00459 virtual void invalidate(Tp::DBusProxy *, const QString &, const QString &);
00460 };
00461
00469 class TP_QT_EXPORT CallContentInterfaceDTMFInterface : public Tp::AbstractInterface
00470 {
00471 Q_OBJECT
00472
00473 public:
00480 static inline QLatin1String staticInterfaceName()
00481 {
00482 return QLatin1String("org.freedesktop.Telepathy.Call1.Content.Interface.DTMF");
00483 }
00484
00492 CallContentInterfaceDTMFInterface(
00493 const QString& busName,
00494 const QString& objectPath,
00495 QObject* parent = 0
00496 );
00497
00506 CallContentInterfaceDTMFInterface(
00507 const QDBusConnection& connection,
00508 const QString& busName,
00509 const QString& objectPath,
00510 QObject* parent = 0
00511 );
00512
00519 CallContentInterfaceDTMFInterface(Tp::DBusProxy *proxy);
00520
00528 explicit CallContentInterfaceDTMFInterface(const Tp::Client::CallContentInterface& mainInterface);
00529
00537 CallContentInterfaceDTMFInterface(const Tp::Client::CallContentInterface& mainInterface, QObject* parent);
00538
00550 inline Tp::PendingVariant *requestPropertyCurrentlySendingTones() const
00551 {
00552 return internalRequestProperty(QLatin1String("CurrentlySendingTones"));
00553 }
00554
00572 inline Tp::PendingVariant *requestPropertyDeferredTones() const
00573 {
00574 return internalRequestProperty(QLatin1String("DeferredTones"));
00575 }
00576
00583 Tp::PendingVariantMap *requestAllProperties() const
00584 {
00585 return internalRequestAllProperties();
00586 }
00587
00588 public Q_SLOTS:
00612 inline QDBusPendingReply<> StartTone(uchar event, int timeout = -1)
00613 {
00614 if (!invalidationReason().isEmpty()) {
00615 return QDBusPendingReply<>(QDBusMessage::createError(
00616 invalidationReason(),
00617 invalidationMessage()
00618 ));
00619 }
00620
00621 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00622 this->staticInterfaceName(), QLatin1String("StartTone"));
00623 callMessage << QVariant::fromValue(event);
00624 return this->connection().asyncCall(callMessage, timeout);
00625 }
00626
00642 inline QDBusPendingReply<> StopTone(int timeout = -1)
00643 {
00644 if (!invalidationReason().isEmpty()) {
00645 return QDBusPendingReply<>(QDBusMessage::createError(
00646 invalidationReason(),
00647 invalidationMessage()
00648 ));
00649 }
00650
00651 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00652 this->staticInterfaceName(), QLatin1String("StopTone"));
00653 return this->connection().asyncCall(callMessage, timeout);
00654 }
00655
00701 inline QDBusPendingReply<> MultipleTones(const QString& tones, int timeout = -1)
00702 {
00703 if (!invalidationReason().isEmpty()) {
00704 return QDBusPendingReply<>(QDBusMessage::createError(
00705 invalidationReason(),
00706 invalidationMessage()
00707 ));
00708 }
00709
00710 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00711 this->staticInterfaceName(), QLatin1String("MultipleTones"));
00712 callMessage << QVariant::fromValue(tones);
00713 return this->connection().asyncCall(callMessage, timeout);
00714 }
00715
00716 Q_SIGNALS:
00743 void TonesDeferred(const QString& tones);
00744
00761 void SendingTones(const QString& tones);
00762
00774 void StoppedTones(bool cancelled);
00775
00776 protected:
00777 virtual void invalidate(Tp::DBusProxy *, const QString &, const QString &);
00778 };
00779
00787 class TP_QT_EXPORT CallContentInterfaceMediaInterface : public Tp::AbstractInterface
00788 {
00789 Q_OBJECT
00790
00791 public:
00798 static inline QLatin1String staticInterfaceName()
00799 {
00800 return QLatin1String("org.freedesktop.Telepathy.Call1.Content.Interface.Media");
00801 }
00802
00810 CallContentInterfaceMediaInterface(
00811 const QString& busName,
00812 const QString& objectPath,
00813 QObject* parent = 0
00814 );
00815
00824 CallContentInterfaceMediaInterface(
00825 const QDBusConnection& connection,
00826 const QString& busName,
00827 const QString& objectPath,
00828 QObject* parent = 0
00829 );
00830
00837 CallContentInterfaceMediaInterface(Tp::DBusProxy *proxy);
00838
00846 explicit CallContentInterfaceMediaInterface(const Tp::Client::CallContentInterface& mainInterface);
00847
00855 CallContentInterfaceMediaInterface(const Tp::Client::CallContentInterface& mainInterface, QObject* parent);
00856
00869 inline Tp::PendingVariant *requestPropertyRemoteMediaDescriptions() const
00870 {
00871 return internalRequestProperty(QLatin1String("RemoteMediaDescriptions"));
00872 }
00873
00884 inline Tp::PendingVariant *requestPropertyLocalMediaDescriptions() const
00885 {
00886 return internalRequestProperty(QLatin1String("LocalMediaDescriptions"));
00887 }
00888
00917 inline Tp::PendingVariant *requestPropertyMediaDescriptionOffer() const
00918 {
00919 return internalRequestProperty(QLatin1String("MediaDescriptionOffer"));
00920 }
00921
00933 inline Tp::PendingVariant *requestPropertyPacketization() const
00934 {
00935 return internalRequestProperty(QLatin1String("Packetization"));
00936 }
00937
00948 inline Tp::PendingVariant *requestPropertyCurrentDTMFEvent() const
00949 {
00950 return internalRequestProperty(QLatin1String("CurrentDTMFEvent"));
00951 }
00952
00963 inline Tp::PendingVariant *requestPropertyCurrentDTMFState() const
00964 {
00965 return internalRequestProperty(QLatin1String("CurrentDTMFState"));
00966 }
00967
00974 Tp::PendingVariantMap *requestAllProperties() const
00975 {
00976 return internalRequestAllProperties();
00977 }
00978
00979 public Q_SLOTS:
01000 inline QDBusPendingReply<> UpdateLocalMediaDescription(const QVariantMap& mediaDescription, int timeout = -1)
01001 {
01002 if (!invalidationReason().isEmpty()) {
01003 return QDBusPendingReply<>(QDBusMessage::createError(
01004 invalidationReason(),
01005 invalidationMessage()
01006 ));
01007 }
01008
01009 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
01010 this->staticInterfaceName(), QLatin1String("UpdateLocalMediaDescription"));
01011 callMessage << QVariant::fromValue(mediaDescription);
01012 return this->connection().asyncCall(callMessage, timeout);
01013 }
01014
01036 inline QDBusPendingReply<> AcknowledgeDTMFChange(uchar event, uint state, int timeout = -1)
01037 {
01038 if (!invalidationReason().isEmpty()) {
01039 return QDBusPendingReply<>(QDBusMessage::createError(
01040 invalidationReason(),
01041 invalidationMessage()
01042 ));
01043 }
01044
01045 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
01046 this->staticInterfaceName(), QLatin1String("AcknowledgeDTMFChange"));
01047 callMessage << QVariant::fromValue(event) << QVariant::fromValue(state);
01048 return this->connection().asyncCall(callMessage, timeout);
01049 }
01050
01065 inline QDBusPendingReply<> Fail(const Tp::CallStateReason& reason, int timeout = -1)
01066 {
01067 if (!invalidationReason().isEmpty()) {
01068 return QDBusPendingReply<>(QDBusMessage::createError(
01069 invalidationReason(),
01070 invalidationMessage()
01071 ));
01072 }
01073
01074 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
01075 this->staticInterfaceName(), QLatin1String("Fail"));
01076 callMessage << QVariant::fromValue(reason);
01077 return this->connection().asyncCall(callMessage, timeout);
01078 }
01079
01080 Q_SIGNALS:
01112 void NewMediaDescriptionOffer(const QDBusObjectPath& mediaDescription, const QVariantMap& properties);
01113
01125 void MediaDescriptionOfferDone();
01126
01142 void LocalMediaDescriptionChanged(const QVariantMap& updatedMediaDescription);
01143
01159 void RemoteMediaDescriptionsChanged(const Tp::ContactMediaDescriptionPropertiesMap& updatedMediaDescriptions);
01160
01179 void MediaDescriptionsRemoved(const Tp::UIntList& removedMediaDescriptions);
01180
01198 void DTMFChangeRequested(uchar event, uint state);
01199
01200 protected:
01201 virtual void invalidate(Tp::DBusProxy *, const QString &, const QString &);
01202 };
01203
01211 class TP_QT_EXPORT CallContentInterfaceVideoControlInterface : public Tp::AbstractInterface
01212 {
01213 Q_OBJECT
01214
01215 public:
01222 static inline QLatin1String staticInterfaceName()
01223 {
01224 return QLatin1String("org.freedesktop.Telepathy.Call1.Content.Interface.VideoControl");
01225 }
01226
01234 CallContentInterfaceVideoControlInterface(
01235 const QString& busName,
01236 const QString& objectPath,
01237 QObject* parent = 0
01238 );
01239
01248 CallContentInterfaceVideoControlInterface(
01249 const QDBusConnection& connection,
01250 const QString& busName,
01251 const QString& objectPath,
01252 QObject* parent = 0
01253 );
01254
01261 CallContentInterfaceVideoControlInterface(Tp::DBusProxy *proxy);
01262
01270 explicit CallContentInterfaceVideoControlInterface(const Tp::Client::CallContentInterface& mainInterface);
01271
01279 CallContentInterfaceVideoControlInterface(const Tp::Client::CallContentInterface& mainInterface, QObject* parent);
01280
01291 inline Tp::PendingVariant *requestPropertyVideoResolution() const
01292 {
01293 return internalRequestProperty(QLatin1String("VideoResolution"));
01294 }
01295
01306 inline Tp::PendingVariant *requestPropertyBitrate() const
01307 {
01308 return internalRequestProperty(QLatin1String("Bitrate"));
01309 }
01310
01321 inline Tp::PendingVariant *requestPropertyFramerate() const
01322 {
01323 return internalRequestProperty(QLatin1String("Framerate"));
01324 }
01325
01336 inline Tp::PendingVariant *requestPropertyMTU() const
01337 {
01338 return internalRequestProperty(QLatin1String("MTU"));
01339 }
01340
01350 inline Tp::PendingVariant *requestPropertyManualKeyFrames() const
01351 {
01352 return internalRequestProperty(QLatin1String("ManualKeyFrames"));
01353 }
01354
01361 Tp::PendingVariantMap *requestAllProperties() const
01362 {
01363 return internalRequestAllProperties();
01364 }
01365
01366 Q_SIGNALS:
01373 void KeyFrameRequested();
01374
01380 void VideoResolutionChanged(const Tp::VideoResolution& newResolution);
01381
01387 void BitrateChanged(uint newBitrate);
01388
01394 void FramerateChanged(uint newFramerate);
01395
01401 void MTUChanged(uint newMTU);
01402
01403 protected:
01404 virtual void invalidate(Tp::DBusProxy *, const QString &, const QString &);
01405 };
01406 }
01407 }
01408 Q_DECLARE_METATYPE(Tp::Client::CallContentInterface*)
01409 Q_DECLARE_METATYPE(Tp::Client::CallContentInterfaceAudioControlInterface*)
01410 Q_DECLARE_METATYPE(Tp::Client::CallContentInterfaceDTMFInterface*)
01411 Q_DECLARE_METATYPE(Tp::Client::CallContentInterfaceMediaInterface*)
01412 Q_DECLARE_METATYPE(Tp::Client::CallContentInterfaceVideoControlInterface*)