diff options
author | Yoann Lopes <yoann.lopes@digia.com> | 2013-10-04 13:43:03 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-10-09 19:02:13 +0200 |
commit | c2f95891c09cc35c483f09643cc45433e69dcaa1 (patch) | |
tree | 1da674e784571c285c10162af2a382909d20a2c8 /src/plugins/audiocapture/audiomediarecordercontrol.cpp | |
parent | b49746b588a84c250a99f1af912940ee8dea5dcd (diff) |
Refactored AudioCapture plugin.
Change-Id: I025588d7d2afc8d8137a258d86f6dab5b00b234a
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Diffstat (limited to 'src/plugins/audiocapture/audiomediarecordercontrol.cpp')
-rw-r--r-- | src/plugins/audiocapture/audiomediarecordercontrol.cpp | 72 |
1 files changed, 21 insertions, 51 deletions
diff --git a/src/plugins/audiocapture/audiomediarecordercontrol.cpp b/src/plugins/audiocapture/audiomediarecordercontrol.cpp index c2b590fb3..9bc040246 100644 --- a/src/plugins/audiocapture/audiomediarecordercontrol.cpp +++ b/src/plugins/audiocapture/audiomediarecordercontrol.cpp @@ -44,15 +44,22 @@ #include <QtCore/qdebug.h> +QT_BEGIN_NAMESPACE + AudioMediaRecorderControl::AudioMediaRecorderControl(QObject *parent) - :QMediaRecorderControl(parent) - , m_state(QMediaRecorder::StoppedState) - , m_prevStatus(QMediaRecorder::UnloadedStatus) + : QMediaRecorderControl(parent) { m_session = qobject_cast<AudioCaptureSession*>(parent); - connect(m_session,SIGNAL(positionChanged(qint64)),this,SIGNAL(durationChanged(qint64))); - connect(m_session,SIGNAL(stateChanged(QMediaRecorder::State)), this,SLOT(updateStatus())); - connect(m_session,SIGNAL(error(int,QString)),this,SLOT(handleSessionError(int,QString))); + connect(m_session, SIGNAL(positionChanged(qint64)), + this, SIGNAL(durationChanged(qint64))); + connect(m_session, SIGNAL(stateChanged(QMediaRecorder::State)), + this, SIGNAL(stateChanged(QMediaRecorder::State))); + connect(m_session, SIGNAL(statusChanged(QMediaRecorder::Status)), + this, SIGNAL(statusChanged(QMediaRecorder::Status))); + connect(m_session, SIGNAL(actualLocationChanged(QUrl)), + this, SIGNAL(actualLocationChanged(QUrl))); + connect(m_session, SIGNAL(error(int,QString)), + this, SIGNAL(error(int,QString))); } AudioMediaRecorderControl::~AudioMediaRecorderControl() @@ -71,21 +78,12 @@ bool AudioMediaRecorderControl::setOutputLocation(const QUrl& sink) QMediaRecorder::State AudioMediaRecorderControl::state() const { - return (QMediaRecorder::State)m_session->state(); + return m_session->state(); } QMediaRecorder::Status AudioMediaRecorderControl::status() const { - static QMediaRecorder::Status statusTable[3][3] = { - //Stopped recorder state: - { QMediaRecorder::LoadedStatus, QMediaRecorder::FinalizingStatus, QMediaRecorder::FinalizingStatus }, - //Recording recorder state: - { QMediaRecorder::StartingStatus, QMediaRecorder::RecordingStatus, QMediaRecorder::PausedStatus }, - //Paused recorder state: - { QMediaRecorder::StartingStatus, QMediaRecorder::RecordingStatus, QMediaRecorder::PausedStatus } - }; - - return statusTable[m_state][m_session->state()]; + return m_session->status(); } qint64 AudioMediaRecorderControl::duration() const @@ -106,47 +104,19 @@ qreal AudioMediaRecorderControl::volume() const void AudioMediaRecorderControl::setState(QMediaRecorder::State state) { - if (m_state == state) - return; - - m_state = state; - - switch (state) { - case QMediaRecorder::StoppedState: - m_session->stop(); - break; - case QMediaRecorder::PausedState: - m_session->pause(); - break; - case QMediaRecorder::RecordingState: - m_session->record(); - break; - } - - updateStatus(); + m_session->setState(state); } -void AudioMediaRecorderControl::setMuted(bool) +void AudioMediaRecorderControl::setMuted(bool muted) { + if (muted) + qWarning("Muting the audio recording is not supported."); } void AudioMediaRecorderControl::setVolume(qreal volume) { if (!qFuzzyCompare(volume, qreal(1.0))) - qWarning() << "Media service doesn't support recorder audio gain."; -} - -void AudioMediaRecorderControl::updateStatus() -{ - QMediaRecorder::Status newStatus = status(); - if (m_prevStatus != newStatus) { - m_prevStatus = newStatus; - emit statusChanged(m_prevStatus); - } + qWarning("Changing the audio recording volume is not supported."); } -void AudioMediaRecorderControl::handleSessionError(int code, const QString &description) -{ - emit error(code, description); - setState(QMediaRecorder::StoppedState); -} +QT_END_NAMESPACE |