Replaced QMediaRecorderControl::play/stop/pause with setState

This allows to introduce new states without breaking BC.

Change-Id: I03c064cec92d6745b251a51cfb301e7f01f4b765
Reviewed-by: Ling Hu <ling.hu@nokia.com>
This commit is contained in:
Dmytro Poplavskiy
2012-05-02 11:15:44 +10:00
committed by Qt by Nokia
parent b7935a84d7
commit b36e2f5209
8 changed files with 62 additions and 51 deletions

View File

@@ -135,21 +135,9 @@ QMediaRecorderControl::~QMediaRecorderControl()
*/
/*!
\fn void QMediaRecorderControl::record()
\fn void QMediaRecorderControl::setState(QMediaRecorder::State state)
Start recording.
*/
/*!
\fn void QMediaRecorderControl::pause()
Pause recording.
*/
/*!
\fn void QMediaRecorderControl::stop()
Stop recording.
Set the media recorder \a state.
*/
/*!

View File

@@ -84,9 +84,7 @@ Q_SIGNALS:
void error(int error, const QString &errorString);
public Q_SLOTS:
virtual void record() = 0;
virtual void pause() = 0;
virtual void stop() = 0;
virtual void setState(QMediaRecorder::State state) = 0;
virtual void setMuted(bool muted) = 0;
protected:

View File

@@ -841,7 +841,7 @@ void QMediaRecorder::record()
d->errorString = QString();
if (d->control)
d->control->record();
d->control->setState(RecordingState);
}
/*!
@@ -857,7 +857,7 @@ void QMediaRecorder::pause()
{
Q_D(QMediaRecorder);
if (d->control)
d->control->pause();
d->control->setState(PausedState);
}
/*!
@@ -870,7 +870,7 @@ void QMediaRecorder::stop()
{
Q_D(QMediaRecorder);
if (d->control)
d->control->stop();
d->control->setState(StoppedState);
}
/*!

View File

@@ -93,38 +93,33 @@ qint64 AudioMediaRecorderControl::duration() const
return m_session->position();
}
void AudioMediaRecorderControl::record()
{
if (m_state != QMediaRecorder::RecordingState) {
m_state = QMediaRecorder::RecordingState;
m_session->record();
updateStatus();
}
}
void AudioMediaRecorderControl::pause()
{
if (m_state != QMediaRecorder::PausedState) {
m_state = QMediaRecorder::PausedState;
m_session->pause();
updateStatus();
}
}
void AudioMediaRecorderControl::stop()
{
if (m_state != QMediaRecorder::StoppedState) {
m_state = QMediaRecorder::StoppedState;
m_session->pause();
updateStatus();
}
}
bool AudioMediaRecorderControl::isMuted() const
{
return false;
}
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();
}
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);
}

View File

@@ -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:

View File

@@ -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)

View File

@@ -71,6 +71,7 @@ public:
void applySettings();
public slots:
void setState(QMediaRecorder::State state);
void record();
void pause();
void stop();

View File

@@ -130,6 +130,22 @@ public slots:
emit statusChanged(m_status);
}
void setState(QMediaRecorder::State state)
{
switch (state) {
case QMediaRecorder::StoppedState:
stop();
break;
case QMediaRecorder::PausedState:
pause();
break;
case QMediaRecorder::RecordingState:
record();
break;
}
}
void setMuted(bool muted)
{
if (m_muted != muted)