Home · All Classes · All Namespaces · Modules · Functions · Files
base-call.h
00001 
00023 #ifndef _TelepathyQt_base_call_h_HEADER_GUARD_
00024 #define _TelepathyQt_base_call_h_HEADER_GUARD_
00025 
00026 #ifndef IN_TP_QT_HEADER
00027 #error IN_TP_QT_HEADER
00028 #endif
00029 
00030 
00031 #include <TelepathyQt/DBusService>
00032 #include <TelepathyQt/Global>
00033 #include <TelepathyQt/Types>
00034 #include <TelepathyQt/Callbacks>
00035 #include <TelepathyQt/Constants>
00036 #include <TelepathyQt/BaseChannel>
00037 
00038 #include <QDBusConnection>
00039 
00040 class QString;
00041 
00042 namespace Tp
00043 {
00044 
00045 class TP_QT_EXPORT AbstractCallContentInterface : public AbstractDBusServiceInterface
00046 {
00047     Q_OBJECT
00048     Q_DISABLE_COPY(AbstractCallContentInterface)
00049 
00050 public:
00051     AbstractCallContentInterface(const QString &interfaceName);
00052     virtual ~AbstractCallContentInterface();
00053 
00054 private:
00055     friend class BaseCallContent;
00056 
00057     class Private;
00058     friend class Private;
00059     Private *mPriv;
00060 };
00061 
00062 class TP_QT_EXPORT BaseCallContent : public DBusService
00063 {
00064     Q_OBJECT
00065     Q_DISABLE_COPY(BaseCallContent)
00066 
00067 public:
00068     static BaseCallContentPtr create(const QDBusConnection &dbusConnection,
00069                                      BaseChannel* channel,
00070                                      const QString &name,
00071                                      const Tp::MediaStreamType &type,
00072                                      const Tp::MediaStreamDirection &direction) {
00073         return BaseCallContentPtr(new BaseCallContent(dbusConnection, channel, name, type, direction));
00074     }
00075 
00076     virtual ~BaseCallContent();
00077     QVariantMap immutableProperties() const;
00078     bool registerObject(DBusError *error = NULL);
00079     virtual QString uniqueName() const;
00080 
00081     QList<AbstractCallContentInterfacePtr> interfaces() const;
00082     AbstractCallContentInterfacePtr interface(const QString &interfaceName) const;
00083     bool plugInterface(const AbstractCallContentInterfacePtr &interface);
00084 
00085     QString name() const;
00086     Tp::MediaStreamType type() const;
00087     Tp::CallContentDisposition disposition() const;
00088     Tp::ObjectPathList streams() const;
00089 protected:
00090     BaseCallContent(const QDBusConnection &dbusConnection,
00091                     BaseChannel* channel,
00092                     const QString &name,
00093                     const Tp::MediaStreamType &type,
00094                     const Tp::MediaStreamDirection &direction);
00095 
00096     virtual bool registerObject(const QString &busName, const QString &objectPath,
00097                                 DBusError *error);
00098     void remove();
00099 
00100 private:
00101     class Adaptee;
00102     friend class Adaptee;
00103     struct Private;
00104     friend struct Private;
00105     Private *mPriv;
00106 };
00107 
00108 class TP_QT_EXPORT BaseCallMuteInterface : public AbstractChannelInterface
00109 {
00110     Q_OBJECT
00111     Q_DISABLE_COPY(BaseCallMuteInterface)
00112 
00113 public:
00114     static BaseCallMuteInterfacePtr create() {
00115         return BaseCallMuteInterfacePtr(new BaseCallMuteInterface());
00116     }
00117     template<typename BaseCallMuteInterfaceSubclass>
00118     static SharedPtr<BaseCallMuteInterfaceSubclass> create() {
00119         return SharedPtr<BaseCallMuteInterfaceSubclass>(
00120                    new BaseCallMuteInterfaceSubclass());
00121     }
00122     virtual ~BaseCallMuteInterface();
00123 
00124     QVariantMap immutableProperties() const;
00125 
00126     Tp::LocalMuteState localMuteState() const;
00127     void setMuteState(const Tp::LocalMuteState &state);
00128 
00129     typedef Callback2<void, const Tp::LocalMuteState&, DBusError*> SetMuteStateCallback;
00130     void setSetMuteStateCallback(const SetMuteStateCallback &cb);
00131 Q_SIGNALS:
00132     void muteStateChanged(const Tp::LocalMuteState &state);
00133 private:
00134     BaseCallMuteInterface();
00135     void createAdaptor();
00136 
00137     class Adaptee;
00138     friend class Adaptee;
00139     struct Private;
00140     friend struct Private;
00141     Private *mPriv;
00142 };
00143 
00144 class TP_QT_EXPORT BaseCallContentDTMFInterface : public AbstractCallContentInterface
00145 {
00146     Q_OBJECT
00147     Q_DISABLE_COPY(BaseCallContentDTMFInterface)
00148 
00149 public:
00150     static BaseCallContentDTMFInterfacePtr create() {
00151         return BaseCallContentDTMFInterfacePtr(new BaseCallContentDTMFInterface());
00152     }
00153     template<typename BaseCallContentDTMFInterfaceSubclass>
00154     static SharedPtr<BaseCallContentDTMFInterfaceSubclass> create() {
00155         return SharedPtr<BaseCallContentDTMFInterfaceSubclass>(
00156                    new BaseCallContentDTMFInterfaceSubclass());
00157     }
00158     virtual ~BaseCallContentDTMFInterface();
00159 
00160     QVariantMap immutableProperties() const;
00161 
00162     bool currentlySendingTones() const;
00163     void setCurrentlySendingTones(bool sendingTones);
00164 
00165     QString deferredTones() const;
00166     void setDeferredTones(const QString &deferredTones);
00167 
00168 
00169     typedef Callback2<void, uchar, DBusError*> StartToneCallback;
00170     void setStartToneCallback(const StartToneCallback &cb);
00171     typedef Callback1<void, DBusError*> StopToneCallback;
00172     void setStopToneCallback(const StopToneCallback &cb);
00173     typedef Callback2<void, const QString&, DBusError*> MultipleTonesCallback;
00174     void setMultipleTonesCallback(const MultipleTonesCallback &cb);
00175 Q_SIGNALS:
00176 
00177 private:
00178     BaseCallContentDTMFInterface();
00179     void createAdaptor();
00180 
00181     class Adaptee;
00182     friend class Adaptee;
00183     struct Private;
00184     friend struct Private;
00185     Private *mPriv;
00186 };
00187 
00188 
00189 }
00190 #endif


Copyright © 2008-2011 Collabora Ltd. and Nokia Corporation
Telepathy-Qt 0.9.6.1