summaryrefslogtreecommitdiffstats
path: root/src/imports
diff options
context:
space:
mode:
authorDmytro Poplavskiy <dmytro.poplavskiy@nokia.com>2012-05-01 13:10:33 +1000
committerQt by Nokia <qt-info@nokia.com>2012-05-02 03:15:01 +0200
commitb7935a84d71b479f5320e5b062274d344835ba26 (patch)
treee72ac1774590d91f621ed9b21cf0c0ab2c87903b /src/imports
parentaf932e8653b024c93ed49ba30d6f06839ecfced6 (diff)
Added QMediaRecorder::status property
QMediaRecorder::state property represents the user request and changed synchronously during record(), pause() or stop() calls. Recorder status is changed asynchronously and represents the actual status of media recorder. This also makes API more consistent with QMediaPlayer and QCamera. Change-Id: I80b4aaa70bb88e555c492908da8c29d0fc5ed5ea Reviewed-by: Ling Hu <ling.hu@nokia.com>
Diffstat (limited to 'src/imports')
-rw-r--r--src/imports/multimedia/qdeclarativecamerarecorder.cpp34
-rw-r--r--src/imports/multimedia/qdeclarativecamerarecorder_p.h16
2 files changed, 50 insertions, 0 deletions
diff --git a/src/imports/multimedia/qdeclarativecamerarecorder.cpp b/src/imports/multimedia/qdeclarativecamerarecorder.cpp
index 294a499db..ce83598cf 100644
--- a/src/imports/multimedia/qdeclarativecamerarecorder.cpp
+++ b/src/imports/multimedia/qdeclarativecamerarecorder.cpp
@@ -81,6 +81,8 @@ QDeclarativeCameraRecorder::QDeclarativeCameraRecorder(QCamera *camera, QObject
m_recorder = new QMediaRecorder(camera, this);
connect(m_recorder, SIGNAL(stateChanged(QMediaRecorder::State)),
SLOT(updateRecorderState(QMediaRecorder::State)));
+ connect(m_recorder, SIGNAL(statusChanged(QMediaRecorder::Status)),
+ SIGNAL(recorderStatusChanged()));
connect(m_recorder, SIGNAL(error(QMediaRecorder::Error)),
SLOT(updateRecorderError(QMediaRecorder::Error)));
connect(m_recorder, SIGNAL(mutedChanged(bool)), SIGNAL(mutedChanged(bool)));
@@ -383,6 +385,38 @@ QDeclarativeCameraRecorder::RecorderState QDeclarativeCameraRecorder::recorderSt
return RecorderState(state);
}
+
+/*!
+ \qmlproperty enumeration QtMultimedia5::CameraRecorder::recorderStatus
+
+ The actual current status of media recording.
+
+ \table
+ \header \li Value \li Description
+ \row \li UnavailableStatus
+ \li Recording is not supported by the camera.
+ \row \li UnloadedStatus
+ \li The recorder is available but not loaded.
+ \row \li LoadingStatus
+ \li The recorder is initializing.
+ \row \li LoadedStatus
+ \li The recorder is initialized and ready to record media.
+ \row \li StartingStatus
+ \li Recording is requested but not active yet.
+ \row \li RecordingStatus
+ \li Recording is active.
+ \row \li PausedStatus
+ \li Recording is paused.
+ \row \li FinalizingStatus
+ \li Recording is stopped with media being finalized.
+ \endtable
+*/
+
+QDeclarativeCameraRecorder::RecorderStatus QDeclarativeCameraRecorder::recorderStatus() const
+{
+ return RecorderStatus(m_recorder->status());
+}
+
/*!
\qmlmethod QtMultimedia5::CameraRecorder::record()
diff --git a/src/imports/multimedia/qdeclarativecamerarecorder_p.h b/src/imports/multimedia/qdeclarativecamerarecorder_p.h
index dbafbabbd..e896b7a41 100644
--- a/src/imports/multimedia/qdeclarativecamerarecorder_p.h
+++ b/src/imports/multimedia/qdeclarativecamerarecorder_p.h
@@ -67,9 +67,11 @@ class QDeclarativeCameraRecorder : public QObject
{
Q_OBJECT
Q_ENUMS(RecorderState)
+ Q_ENUMS(RecorderStatus)
Q_ENUMS(EncodingMode)
Q_PROPERTY(RecorderState recorderState READ recorderState WRITE setRecorderState NOTIFY recorderStateChanged)
+ Q_PROPERTY(RecorderStatus recorderStatus READ recorderStatus NOTIFY recorderStatusChanged)
Q_PROPERTY(QString videoCodec READ videoCodec WRITE setVideoCodec NOTIFY videoCodecChanged)
Q_PROPERTY(QSize resolution READ captureResolution WRITE setCaptureResolution NOTIFY captureResolutionChanged)
@@ -98,6 +100,18 @@ public:
RecordingState = QMediaRecorder::RecordingState
};
+ enum RecorderStatus
+ {
+ UnavailableStatus = QMediaRecorder::UnavailableStatus,
+ UnloadedStatus = QMediaRecorder::UnloadedStatus,
+ LoadingStatus = QMediaRecorder::LoadingStatus,
+ LoadedStatus = QMediaRecorder::LoadedStatus,
+ StartingStatus = QMediaRecorder::StartingStatus,
+ RecordingStatus = QMediaRecorder::RecordingStatus,
+ PausedStatus = QMediaRecorder::PausedStatus,
+ FinalizingStatus = QMediaRecorder::FinalizingStatus
+ };
+
enum EncodingMode
{
ConstantQualityEncoding = QtMultimedia::ConstantQualityEncoding,
@@ -108,6 +122,7 @@ public:
~QDeclarativeCameraRecorder();
RecorderState recorderState() const;
+ RecorderStatus recorderStatus() const;
QSize captureResolution();
@@ -159,6 +174,7 @@ public Q_SLOTS:
Q_SIGNALS:
void recorderStateChanged(QDeclarativeCameraRecorder::RecorderState state);
+ void recorderStatusChanged();
void durationChanged(qint64 duration);
void mutedChanged(bool muted);
void outputLocationChanged(const QString &location);