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. Set the media recorder \a state.
*/
/*!
\fn void QMediaRecorderControl::pause()
Pause recording.
*/
/*!
\fn void QMediaRecorderControl::stop()
Stop recording.
*/ */
/*! /*!

View File

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

View File

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

View File

@@ -93,38 +93,33 @@ qint64 AudioMediaRecorderControl::duration() const
return m_session->position(); 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 bool AudioMediaRecorderControl::isMuted() const
{ {
return false; 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) void AudioMediaRecorderControl::setMuted(bool)
{ {
} }
@@ -141,5 +136,5 @@ void AudioMediaRecorderControl::updateStatus()
void AudioMediaRecorderControl::handleSessionError(int code, const QString &description) void AudioMediaRecorderControl::handleSessionError(int code, const QString &description)
{ {
emit error(code, description); emit error(code, description);
stop(); setState(QMediaRecorder::StoppedState);
} }

View File

@@ -71,9 +71,7 @@ public:
void applySettings() {} void applySettings() {}
public slots: public slots:
void record(); void setState(QMediaRecorder::State state);
void pause();
void stop();
void setMuted(bool); void setMuted(bool);
private slots: private slots:

View File

@@ -126,6 +126,21 @@ qint64 QGstreamerRecorderControl::duration() const
return m_session->duration(); 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() void QGstreamerRecorderControl::record()
{ {
if (m_state == QMediaRecorder::RecordingState) if (m_state == QMediaRecorder::RecordingState)

View File

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

View File

@@ -130,6 +130,22 @@ public slots:
emit statusChanged(m_status); 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) void setMuted(bool muted)
{ {
if (m_muted != muted) if (m_muted != muted)