summaryrefslogtreecommitdiffstats
path: root/src/plugins/audiocapture/audiomediarecordercontrol.cpp
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@digia.com>2013-10-04 13:43:03 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-10-09 19:02:13 +0200
commitc2f95891c09cc35c483f09643cc45433e69dcaa1 (patch)
tree1da674e784571c285c10162af2a382909d20a2c8 /src/plugins/audiocapture/audiomediarecordercontrol.cpp
parentb49746b588a84c250a99f1af912940ee8dea5dcd (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.cpp72
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