qtmobility/src/multimedia/qmediarecorder.h
changeset 14 6fbed849b4f4
parent 11 06b8e2af4411
child 15 1f895d8a5b2b
--- a/qtmobility/src/multimedia/qmediarecorder.h	Fri Jun 11 14:26:25 2010 +0300
+++ b/qtmobility/src/multimedia/qmediarecorder.h	Wed Jun 23 19:08:38 2010 +0300
@@ -42,9 +42,10 @@
 #ifndef QMEDIARECORDER_H
 #define QMEDIARECORDER_H
 
-#include "qmediaobject.h"
-#include "qmediaserviceprovider.h"
-#include "qmediaencodersettings.h"
+#include <qmediaobject.h>
+#include <qmediaserviceprovider.h>
+#include <qmediaencodersettings.h>
+#include <qmediabindableinterface.h>
 
 #include <QtCore/qpair.h>
 
@@ -61,13 +62,17 @@
 class QVideoEncoderSettings;
 
 class QMediaRecorderPrivate;
-class Q_MEDIA_EXPORT QMediaRecorder : public QMediaObject
+class Q_MULTIMEDIA_EXPORT QMediaRecorder : public QObject, public QMediaBindableInterface
 {
     Q_OBJECT
+    Q_INTERFACES(QMediaBindableInterface)
     Q_ENUMS(State)
-    Q_ENUMS(Error)    
+    Q_ENUMS(Error)
     Q_PROPERTY(qint64 duration READ duration NOTIFY durationChanged)
     Q_PROPERTY(QUrl outputLocation READ outputLocation WRITE setOutputLocation)
+    Q_PROPERTY(bool muted READ isMuted WRITE setMuted NOTIFY mutedChanged)
+    Q_PROPERTY(bool metaDataAvailable READ isMetaDataAvailable NOTIFY metaDataAvailableChanged)
+    Q_PROPERTY(bool metaDataWritable READ isMetaDataWritable NOTIFY metaDataWritableChanged)
 public:
 
     enum State
@@ -87,8 +92,10 @@
     QMediaRecorder(QMediaObject *mediaObject, QObject *parent = 0);
     ~QMediaRecorder();
 
+    QMediaObject *mediaObject() const;
+
     bool isAvailable() const;
-    QtMediaServices::AvailabilityError availabilityError() const;
+    QtMultimedia::AvailabilityError availabilityError() const;
 
     QUrl outputLocation() const;
     bool setOutputLocation(const QUrl &location);
@@ -100,6 +107,8 @@
 
     qint64 duration() const;
 
+    bool isMuted() const;
+
     QStringList supportedContainers() const;
     QString containerDescription(const QString &containerMimeType) const;
 
@@ -126,22 +135,45 @@
                              const QVideoEncoderSettings &videoSettings = QVideoEncoderSettings(),
                              const QString &containerMimeType = QString());
 
+
+    bool isMetaDataAvailable() const;
+    bool isMetaDataWritable() const;
+
+    QVariant metaData(QtMultimedia::MetaData key) const;
+    void setMetaData(QtMultimedia::MetaData key, const QVariant &value);
+    QList<QtMultimedia::MetaData> availableMetaData() const;
+
+    QVariant extendedMetaData(const QString &key) const;
+    void setExtendedMetaData(const QString &key, const QVariant &value);
+    QStringList availableExtendedMetaData() const;
+
 public Q_SLOTS:
     void record();
     void pause();
     void stop();
+    void setMuted(bool muted);
 
 Q_SIGNALS:
     void stateChanged(QMediaRecorder::State state);
     void durationChanged(qint64 duration);
+    void mutedChanged(bool muted);
 
     void error(QMediaRecorder::Error error);
 
+    void metaDataAvailableChanged(bool available);
+    void metaDataWritableChanged(bool writable);
+    void metaDataChanged();
+
+protected:
+    bool setMediaObject(QMediaObject *object);
+
 private:
+    QMediaRecorderPrivate *d_ptr;
     Q_DISABLE_COPY(QMediaRecorder)
     Q_DECLARE_PRIVATE(QMediaRecorder)
     Q_PRIVATE_SLOT(d_func(), void _q_stateChanged(QMediaRecorder::State))
     Q_PRIVATE_SLOT(d_func(), void _q_error(int, const QString &))
+    Q_PRIVATE_SLOT(d_func(), void _q_serviceDestroyed())
 };
 
 QT_END_NAMESPACE