summaryrefslogtreecommitdiffstats
path: root/src/multimedia/audio/qaudioprobe.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/audio/qaudioprobe.cpp')
-rw-r--r--src/multimedia/audio/qaudioprobe.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/multimedia/audio/qaudioprobe.cpp b/src/multimedia/audio/qaudioprobe.cpp
index 9a71b65d6..d23b0d10e 100644
--- a/src/multimedia/audio/qaudioprobe.cpp
+++ b/src/multimedia/audio/qaudioprobe.cpp
@@ -98,8 +98,10 @@ QAudioProbe::~QAudioProbe()
{
if (d->source) {
// Disconnect
- if (d->probee)
+ if (d->probee) {
disconnect(d->probee.data(), SIGNAL(audioBufferProbed(QAudioBuffer)), this, SIGNAL(audioBufferProbed(QAudioBuffer)));
+ disconnect(d->probee.data(), SIGNAL(flush()), this, SIGNAL(flush()));
+ }
d->source.data()->service()->releaseControl(d->probee.data());
}
}
@@ -127,6 +129,7 @@ bool QAudioProbe::setSource(QMediaObject *source)
if (d->source) {
Q_ASSERT(d->probee);
disconnect(d->probee.data(), SIGNAL(audioBufferProbed(QAudioBuffer)), this, SIGNAL(audioBufferProbed(QAudioBuffer)));
+ disconnect(d->probee.data(), SIGNAL(flush()), this, SIGNAL(flush()));
d->source.data()->service()->releaseControl(d->probee.data());
d->source.clear();
d->probee.clear();
@@ -140,6 +143,7 @@ bool QAudioProbe::setSource(QMediaObject *source)
if (d->probee) {
connect(d->probee.data(), SIGNAL(audioBufferProbed(QAudioBuffer)), this, SIGNAL(audioBufferProbed(QAudioBuffer)));
+ connect(d->probee.data(), SIGNAL(flush()), this, SIGNAL(flush()));
d->source = source;
}
}
@@ -187,4 +191,19 @@ bool QAudioProbe::isActive() const
return d->probee != 0;
}
+/*!
+ \fn QAudioProbe::audioBufferProbed(const QAudioBuffer &buffer)
+
+ This signal should be emitted when an audio buffer is processed in the
+ media service.
+*/
+
+
+/*!
+ \fn QAudioProbe::flush()
+
+ This signal should be emitted when it is required to release all buffers.
+ Application must release all outstanding references to audio buffers.
+*/
+
QT_END_NAMESPACE