qtmobility/src/multimedia/qmediarecorder.h
changeset 14 6fbed849b4f4
parent 11 06b8e2af4411
child 15 1f895d8a5b2b
equal deleted inserted replaced
11:06b8e2af4411 14:6fbed849b4f4
    40 ****************************************************************************/
    40 ****************************************************************************/
    41 
    41 
    42 #ifndef QMEDIARECORDER_H
    42 #ifndef QMEDIARECORDER_H
    43 #define QMEDIARECORDER_H
    43 #define QMEDIARECORDER_H
    44 
    44 
    45 #include "qmediaobject.h"
    45 #include <qmediaobject.h>
    46 #include "qmediaserviceprovider.h"
    46 #include <qmediaserviceprovider.h>
    47 #include "qmediaencodersettings.h"
    47 #include <qmediaencodersettings.h>
       
    48 #include <qmediabindableinterface.h>
    48 
    49 
    49 #include <QtCore/qpair.h>
    50 #include <QtCore/qpair.h>
    50 
    51 
    51 QT_BEGIN_NAMESPACE
    52 QT_BEGIN_NAMESPACE
    52 class QUrl;
    53 class QUrl;
    59 class QMediaRecorderService;
    60 class QMediaRecorderService;
    60 class QAudioEncoderSettings;
    61 class QAudioEncoderSettings;
    61 class QVideoEncoderSettings;
    62 class QVideoEncoderSettings;
    62 
    63 
    63 class QMediaRecorderPrivate;
    64 class QMediaRecorderPrivate;
    64 class Q_MEDIA_EXPORT QMediaRecorder : public QMediaObject
    65 class Q_MULTIMEDIA_EXPORT QMediaRecorder : public QObject, public QMediaBindableInterface
    65 {
    66 {
    66     Q_OBJECT
    67     Q_OBJECT
       
    68     Q_INTERFACES(QMediaBindableInterface)
    67     Q_ENUMS(State)
    69     Q_ENUMS(State)
    68     Q_ENUMS(Error)    
    70     Q_ENUMS(Error)
    69     Q_PROPERTY(qint64 duration READ duration NOTIFY durationChanged)
    71     Q_PROPERTY(qint64 duration READ duration NOTIFY durationChanged)
    70     Q_PROPERTY(QUrl outputLocation READ outputLocation WRITE setOutputLocation)
    72     Q_PROPERTY(QUrl outputLocation READ outputLocation WRITE setOutputLocation)
       
    73     Q_PROPERTY(bool muted READ isMuted WRITE setMuted NOTIFY mutedChanged)
       
    74     Q_PROPERTY(bool metaDataAvailable READ isMetaDataAvailable NOTIFY metaDataAvailableChanged)
       
    75     Q_PROPERTY(bool metaDataWritable READ isMetaDataWritable NOTIFY metaDataWritableChanged)
    71 public:
    76 public:
    72 
    77 
    73     enum State
    78     enum State
    74     {
    79     {
    75         StoppedState,
    80         StoppedState,
    85     };
    90     };
    86 
    91 
    87     QMediaRecorder(QMediaObject *mediaObject, QObject *parent = 0);
    92     QMediaRecorder(QMediaObject *mediaObject, QObject *parent = 0);
    88     ~QMediaRecorder();
    93     ~QMediaRecorder();
    89 
    94 
       
    95     QMediaObject *mediaObject() const;
       
    96 
    90     bool isAvailable() const;
    97     bool isAvailable() const;
    91     QtMediaServices::AvailabilityError availabilityError() const;
    98     QtMultimedia::AvailabilityError availabilityError() const;
    92 
    99 
    93     QUrl outputLocation() const;
   100     QUrl outputLocation() const;
    94     bool setOutputLocation(const QUrl &location);
   101     bool setOutputLocation(const QUrl &location);
    95 
   102 
    96     State state() const;
   103     State state() const;
    97 
   104 
    98     Error error() const;
   105     Error error() const;
    99     QString errorString() const;
   106     QString errorString() const;
   100 
   107 
   101     qint64 duration() const;
   108     qint64 duration() const;
       
   109 
       
   110     bool isMuted() const;
   102 
   111 
   103     QStringList supportedContainers() const;
   112     QStringList supportedContainers() const;
   104     QString containerDescription(const QString &containerMimeType) const;
   113     QString containerDescription(const QString &containerMimeType) const;
   105 
   114 
   106     QStringList supportedAudioCodecs() const;
   115     QStringList supportedAudioCodecs() const;
   124 
   133 
   125     void setEncodingSettings(const QAudioEncoderSettings &audioSettings,
   134     void setEncodingSettings(const QAudioEncoderSettings &audioSettings,
   126                              const QVideoEncoderSettings &videoSettings = QVideoEncoderSettings(),
   135                              const QVideoEncoderSettings &videoSettings = QVideoEncoderSettings(),
   127                              const QString &containerMimeType = QString());
   136                              const QString &containerMimeType = QString());
   128 
   137 
       
   138 
       
   139     bool isMetaDataAvailable() const;
       
   140     bool isMetaDataWritable() const;
       
   141 
       
   142     QVariant metaData(QtMultimedia::MetaData key) const;
       
   143     void setMetaData(QtMultimedia::MetaData key, const QVariant &value);
       
   144     QList<QtMultimedia::MetaData> availableMetaData() const;
       
   145 
       
   146     QVariant extendedMetaData(const QString &key) const;
       
   147     void setExtendedMetaData(const QString &key, const QVariant &value);
       
   148     QStringList availableExtendedMetaData() const;
       
   149 
   129 public Q_SLOTS:
   150 public Q_SLOTS:
   130     void record();
   151     void record();
   131     void pause();
   152     void pause();
   132     void stop();
   153     void stop();
       
   154     void setMuted(bool muted);
   133 
   155 
   134 Q_SIGNALS:
   156 Q_SIGNALS:
   135     void stateChanged(QMediaRecorder::State state);
   157     void stateChanged(QMediaRecorder::State state);
   136     void durationChanged(qint64 duration);
   158     void durationChanged(qint64 duration);
       
   159     void mutedChanged(bool muted);
   137 
   160 
   138     void error(QMediaRecorder::Error error);
   161     void error(QMediaRecorder::Error error);
   139 
   162 
       
   163     void metaDataAvailableChanged(bool available);
       
   164     void metaDataWritableChanged(bool writable);
       
   165     void metaDataChanged();
       
   166 
       
   167 protected:
       
   168     bool setMediaObject(QMediaObject *object);
       
   169 
   140 private:
   170 private:
       
   171     QMediaRecorderPrivate *d_ptr;
   141     Q_DISABLE_COPY(QMediaRecorder)
   172     Q_DISABLE_COPY(QMediaRecorder)
   142     Q_DECLARE_PRIVATE(QMediaRecorder)
   173     Q_DECLARE_PRIVATE(QMediaRecorder)
   143     Q_PRIVATE_SLOT(d_func(), void _q_stateChanged(QMediaRecorder::State))
   174     Q_PRIVATE_SLOT(d_func(), void _q_stateChanged(QMediaRecorder::State))
   144     Q_PRIVATE_SLOT(d_func(), void _q_error(int, const QString &))
   175     Q_PRIVATE_SLOT(d_func(), void _q_error(int, const QString &))
       
   176     Q_PRIVATE_SLOT(d_func(), void _q_serviceDestroyed())
   145 };
   177 };
   146 
   178 
   147 QT_END_NAMESPACE
   179 QT_END_NAMESPACE
   148 
   180 
   149 Q_DECLARE_METATYPE(QMediaRecorder::State)
   181 Q_DECLARE_METATYPE(QMediaRecorder::State)