From b36e2f5209e1278eb3b671cd14d23dc565ee2bae Mon Sep 17 00:00:00 2001 From: Dmytro Poplavskiy Date: Wed, 2 May 2012 11:15:44 +1000 Subject: Replaced QMediaRecorderControl::play/stop/pause with setState This allows to introduce new states without breaking BC. Change-Id: I03c064cec92d6745b251a51cfb301e7f01f4b765 Reviewed-by: Ling Hu --- .../audiocapture/audiomediarecordercontrol.cpp | 41 ++++++++++------------ .../audiocapture/audiomediarecordercontrol.h | 4 +-- .../mediacapture/qgstreamerrecordercontrol.cpp | 15 ++++++++ .../mediacapture/qgstreamerrecordercontrol.h | 1 + 4 files changed, 35 insertions(+), 26 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/audiocapture/audiomediarecordercontrol.cpp b/src/plugins/audiocapture/audiomediarecordercontrol.cpp index e17157c6a..d5d094198 100644 --- a/src/plugins/audiocapture/audiomediarecordercontrol.cpp +++ b/src/plugins/audiocapture/audiomediarecordercontrol.cpp @@ -93,36 +93,31 @@ qint64 AudioMediaRecorderControl::duration() const return m_session->position(); } -void AudioMediaRecorderControl::record() +bool AudioMediaRecorderControl::isMuted() const { - if (m_state != QMediaRecorder::RecordingState) { - m_state = QMediaRecorder::RecordingState; - m_session->record(); - updateStatus(); - } + return false; } -void AudioMediaRecorderControl::pause() +void AudioMediaRecorderControl::setState(QMediaRecorder::State state) { - if (m_state != QMediaRecorder::PausedState) { - m_state = QMediaRecorder::PausedState; - m_session->pause(); - updateStatus(); - } -} + if (m_state == state) + return; -void AudioMediaRecorderControl::stop() -{ - if (m_state != QMediaRecorder::StoppedState) { - m_state = QMediaRecorder::StoppedState; + m_state = state; + + switch (state) { + case QMediaRecorder::StoppedState: + m_session->stop(); + break; + case QMediaRecorder::PausedState: m_session->pause(); - updateStatus(); + break; + case QMediaRecorder::RecordingState: + m_session->record(); + break; } -} -bool AudioMediaRecorderControl::isMuted() const -{ - return false; + updateStatus(); } void AudioMediaRecorderControl::setMuted(bool) @@ -141,5 +136,5 @@ void AudioMediaRecorderControl::updateStatus() void AudioMediaRecorderControl::handleSessionError(int code, const QString &description) { emit error(code, description); - stop(); + setState(QMediaRecorder::StoppedState); } diff --git a/src/plugins/audiocapture/audiomediarecordercontrol.h b/src/plugins/audiocapture/audiomediarecordercontrol.h index edd54ec83..2e9f91786 100644 --- a/src/plugins/audiocapture/audiomediarecordercontrol.h +++ b/src/plugins/audiocapture/audiomediarecordercontrol.h @@ -71,9 +71,7 @@ public: void applySettings() {} public slots: - void record(); - void pause(); - void stop(); + void setState(QMediaRecorder::State state); void setMuted(bool); private slots: diff --git a/src/plugins/gstreamer/mediacapture/qgstreamerrecordercontrol.cpp b/src/plugins/gstreamer/mediacapture/qgstreamerrecordercontrol.cpp index 700517a1c..2b7d77513 100644 --- a/src/plugins/gstreamer/mediacapture/qgstreamerrecordercontrol.cpp +++ b/src/plugins/gstreamer/mediacapture/qgstreamerrecordercontrol.cpp @@ -126,6 +126,21 @@ qint64 QGstreamerRecorderControl::duration() const return m_session->duration(); } +void QGstreamerRecorderControl::setState(QMediaRecorder::State state) +{ + switch (state) { + case QMediaRecorder::StoppedState: + stop(); + break; + case QMediaRecorder::PausedState: + pause(); + break; + case QMediaRecorder::RecordingState: + record(); + break; + } +} + void QGstreamerRecorderControl::record() { if (m_state == QMediaRecorder::RecordingState) diff --git a/src/plugins/gstreamer/mediacapture/qgstreamerrecordercontrol.h b/src/plugins/gstreamer/mediacapture/qgstreamerrecordercontrol.h index c765c55fd..4696e1118 100644 --- a/src/plugins/gstreamer/mediacapture/qgstreamerrecordercontrol.h +++ b/src/plugins/gstreamer/mediacapture/qgstreamerrecordercontrol.h @@ -71,6 +71,7 @@ public: void applySettings(); public slots: + void setState(QMediaRecorder::State state); void record(); void pause(); void stop(); -- cgit v1.2.3