diff options
author | Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com> | 2012-05-21 12:09:50 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-07-19 09:08:53 +0200 |
commit | 36ff2fe85e418e7cf82f6c6a67d49a2f16998853 (patch) | |
tree | 5d64120ddcffa9415149e1ebc3ebc7bbf86ac9bb /src/multimedia | |
parent | 0d0e89b1e89589812a91ee8d202de2576d6ae89f (diff) |
Added volume property to QMediaRecorder
Change-Id: I19f727107651c9f640ca1c010a3764f05aef8820
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Diffstat (limited to 'src/multimedia')
-rw-r--r-- | src/multimedia/controls/qmediarecordercontrol.cpp | 17 | ||||
-rw-r--r-- | src/multimedia/controls/qmediarecordercontrol.h | 3 | ||||
-rw-r--r-- | src/multimedia/recording/qmediarecorder.cpp | 26 | ||||
-rw-r--r-- | src/multimedia/recording/qmediarecorder.h | 4 |
4 files changed, 50 insertions, 0 deletions
diff --git a/src/multimedia/controls/qmediarecordercontrol.cpp b/src/multimedia/controls/qmediarecordercontrol.cpp index aa12bfc8d..a60eb6827 100644 --- a/src/multimedia/controls/qmediarecordercontrol.cpp +++ b/src/multimedia/controls/qmediarecordercontrol.cpp @@ -159,6 +159,17 @@ QMediaRecorderControl::~QMediaRecorderControl() Sets the \a muted state of a media recorder. */ +/*! + \fn qreal QMediaRecorderControl::volume() const + + Returns the linear audio gain of media recorder. +*/ + +/*! + \fn void QMediaRecorderControl::setVolume(qreal gain) + + Sets the linear audio \a gain of a media recorder. +*/ /*! \fn void QMediaRecorderControl::stateChanged(QMediaRecorder::State state) @@ -188,6 +199,12 @@ QMediaRecorderControl::~QMediaRecorderControl() */ /*! + \fn void QMediaRecorderControl::volume(qreal gain) + + Signals that the audio \a gain value has changed. +*/ + +/*! \fn void QMediaRecorderControl::actualLocationChanged(const QUrl &location) Signals that the actual media \a location has changed. diff --git a/src/multimedia/controls/qmediarecordercontrol.h b/src/multimedia/controls/qmediarecordercontrol.h index f997889ae..560c3b3e8 100644 --- a/src/multimedia/controls/qmediarecordercontrol.h +++ b/src/multimedia/controls/qmediarecordercontrol.h @@ -75,6 +75,7 @@ public: virtual qint64 duration() const = 0; virtual bool isMuted() const = 0; + virtual qreal volume() const = 0; virtual void applySettings() = 0; @@ -83,12 +84,14 @@ Q_SIGNALS: void statusChanged(QMediaRecorder::Status status); void durationChanged(qint64 position); void mutedChanged(bool muted); + void volumeChanged(qreal volume); void actualLocationChanged(const QUrl &location); void error(int error, const QString &errorString); public Q_SLOTS: virtual void setState(QMediaRecorder::State state) = 0; virtual void setMuted(bool muted) = 0; + virtual void setVolume(qreal volume) = 0; protected: QMediaRecorderControl(QObject* parent = 0); diff --git a/src/multimedia/recording/qmediarecorder.cpp b/src/multimedia/recording/qmediarecorder.cpp index 12279c4bd..d876addee 100644 --- a/src/multimedia/recording/qmediarecorder.cpp +++ b/src/multimedia/recording/qmediarecorder.cpp @@ -285,6 +285,9 @@ bool QMediaRecorder::setMediaObject(QMediaObject *object) disconnect(d->control, SIGNAL(mutedChanged(bool)), this, SIGNAL(mutedChanged(bool))); + disconnect(d->control, SIGNAL(volumeChanged(qreal)), + this, SIGNAL(volumeChanged(qreal))); + disconnect(d->control, SIGNAL(durationChanged(qint64)), this, SIGNAL(durationChanged(qint64))); @@ -388,6 +391,9 @@ bool QMediaRecorder::setMediaObject(QMediaObject *object) connect(d->control, SIGNAL(mutedChanged(bool)), this, SIGNAL(mutedChanged(bool))); + connect(d->control, SIGNAL(volumeChanged(qreal)), + this, SIGNAL(volumeChanged(qreal))); + connect(d->control, SIGNAL(durationChanged(qint64)), this, SIGNAL(durationChanged(qint64))); @@ -553,6 +559,26 @@ void QMediaRecorder::setMuted(bool muted) } /*! + \property QMediaRecorder::volume + + \brief the linear audio gain of media recorder. +*/ + +qreal QMediaRecorder::volume() const +{ + return d_func()->control ? d_func()->control->volume() : 1.0; +} + + +void QMediaRecorder::setVolume(qreal volume) +{ + Q_D(QMediaRecorder); + + if (d->control) + d->control->setVolume(volume); +} + +/*! Returns a list of supported container formats. */ QStringList QMediaRecorder::supportedContainers() const diff --git a/src/multimedia/recording/qmediarecorder.h b/src/multimedia/recording/qmediarecorder.h index 3363811ad..31ebc85da 100644 --- a/src/multimedia/recording/qmediarecorder.h +++ b/src/multimedia/recording/qmediarecorder.h @@ -81,6 +81,7 @@ class Q_MULTIMEDIA_EXPORT QMediaRecorder : public QObject, public QMediaBindable Q_PROPERTY(QUrl outputLocation READ outputLocation WRITE setOutputLocation) Q_PROPERTY(QUrl actualLocation READ actualLocation NOTIFY actualLocationChanged) Q_PROPERTY(bool muted READ isMuted WRITE setMuted NOTIFY mutedChanged) + Q_PROPERTY(qreal volume READ volume WRITE setVolume NOTIFY volumeChanged) Q_PROPERTY(bool metaDataAvailable READ isMetaDataAvailable NOTIFY metaDataAvailableChanged) Q_PROPERTY(bool metaDataWritable READ isMetaDataWritable NOTIFY metaDataWritableChanged) public: @@ -133,6 +134,7 @@ public: qint64 duration() const; bool isMuted() const; + qreal volume() const; QStringList supportedContainers() const; QString containerDescription(const QString &format) const; @@ -176,12 +178,14 @@ public Q_SLOTS: void pause(); void stop(); void setMuted(bool muted); + void setVolume(qreal volume); Q_SIGNALS: void stateChanged(QMediaRecorder::State state); void statusChanged(QMediaRecorder::Status status); void durationChanged(qint64 duration); void mutedChanged(bool muted); + void volumeChanged(qreal volume); void actualLocationChanged(const QUrl &location); void error(QMediaRecorder::Error error); |