summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2013-11-29 16:03:52 +0100
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2013-11-29 16:03:52 +0100
commitc5706f05a8315c10398a53ba3b269a2b22d01a7d (patch)
tree54f83c3f0bd4ce7325adbd767a46bb146f1fdab6 /src
parent0c8be637087a3c7aa038cf72f3a3ed6f7aca0510 (diff)
parent9b7fd8c7691981bb1d89704f595ebf50daf8876e (diff)
Merge remote-tracking branch 'origin/stable' into dev
Conflicts: .qmake.conf Change-Id: I6ea9c40c69f55fa733fd9000a57d570fff21f1e9
Diffstat (limited to 'src')
-rw-r--r--src/imports/multimedia/qmldir1
-rw-r--r--src/multimedia/audio/qsoundeffect.cpp10
-rw-r--r--src/multimedia/audio/qsoundeffect_pulse_p.cpp8
-rw-r--r--src/multimedia/audio/qsoundeffect_pulse_p.h6
-rw-r--r--src/multimedia/audio/qsoundeffect_qaudio_p.cpp14
-rw-r--r--src/multimedia/audio/qsoundeffect_qaudio_p.h6
-rw-r--r--src/multimedia/playback/qmediaplayer.cpp5
-rw-r--r--src/plugins/plugins.pro3
-rw-r--r--src/plugins/qnx/mediaplayer/mmrenderermetadatareadercontrol.cpp2
-rw-r--r--src/plugins/wmf/player/mfaudioendpointcontrol.cpp7
10 files changed, 37 insertions, 25 deletions
diff --git a/src/imports/multimedia/qmldir b/src/imports/multimedia/qmldir
index 428bfc8d5..3d2d7c460 100644
--- a/src/imports/multimedia/qmldir
+++ b/src/imports/multimedia/qmldir
@@ -3,4 +3,3 @@ plugin declarative_multimedia
classname QMultimediaDeclarativeModule
typeinfo plugins.qmltypes
Video 5.0 Video.qml
-classname QMultimediaDeclarativeModule
diff --git a/src/multimedia/audio/qsoundeffect.cpp b/src/multimedia/audio/qsoundeffect.cpp
index 437d3a4e6..cd7a9ad5d 100644
--- a/src/multimedia/audio/qsoundeffect.cpp
+++ b/src/multimedia/audio/qsoundeffect.cpp
@@ -265,7 +265,7 @@ int QSoundEffect::loopsRemaining() const
*/
qreal QSoundEffect::volume() const
{
- return qreal(d->volume()) / 100;
+ return d->volume();
}
/*!
@@ -273,15 +273,15 @@ qreal QSoundEffect::volume() const
*/
void QSoundEffect::setVolume(qreal volume)
{
- if (volume < 0 || volume > 1) {
+ if (volume < qreal(0.0) || volume > qreal(1.0)) {
qWarning("SoundEffect: volume should be between 0.0 and 1.0");
return;
}
- int iVolume = qRound(volume * 100);
- if (d->volume() == iVolume)
+
+ if (qFuzzyCompare(d->volume(), volume))
return;
- d->setVolume(iVolume);
+ d->setVolume(volume);
}
/*!
diff --git a/src/multimedia/audio/qsoundeffect_pulse_p.cpp b/src/multimedia/audio/qsoundeffect_pulse_p.cpp
index 328a3b0b3..8bac6c998 100644
--- a/src/multimedia/audio/qsoundeffect_pulse_p.cpp
+++ b/src/multimedia/audio/qsoundeffect_pulse_p.cpp
@@ -382,7 +382,7 @@ QSoundEffectPrivate::QSoundEffectPrivate(QObject* parent):
m_muted(false),
m_playQueued(false),
m_stopping(false),
- m_volume(100),
+ m_volume(1.0),
m_loopCount(1),
m_runningCount(0),
m_reloadCategory(false),
@@ -517,12 +517,12 @@ void QSoundEffectPrivate::setLoopCount(int loopCount)
m_loopCount = loopCount;
}
-int QSoundEffectPrivate::volume() const
+qreal QSoundEffectPrivate::volume() const
{
return m_volume;
}
-void QSoundEffectPrivate::setVolume(int volume)
+void QSoundEffectPrivate::setVolume(qreal volume)
{
m_volume = volume;
emit volumeChanged();
@@ -537,7 +537,7 @@ void QSoundEffectPrivate::updateVolume()
pa_cvolume volume;
volume.channels = m_pulseSpec.channels;
if (pulseDaemon()->context())
- pa_operation_unref(pa_context_set_sink_input_volume(pulseDaemon()->context(), m_sinkInputId, pulseDaemon()->calcVolume(&volume, m_volume), setvolume_callback, m_ref->getRef()));
+ pa_operation_unref(pa_context_set_sink_input_volume(pulseDaemon()->context(), m_sinkInputId, pulseDaemon()->calcVolume(&volume, qRound(m_volume * 100)), setvolume_callback, m_ref->getRef()));
Q_ASSERT(pa_cvolume_valid(&volume));
#ifdef QT_PA_DEBUG
qDebug() << this << "updateVolume =" << pa_cvolume_max(&volume);
diff --git a/src/multimedia/audio/qsoundeffect_pulse_p.h b/src/multimedia/audio/qsoundeffect_pulse_p.h
index 4dc58f0b6..042679180 100644
--- a/src/multimedia/audio/qsoundeffect_pulse_p.h
+++ b/src/multimedia/audio/qsoundeffect_pulse_p.h
@@ -80,8 +80,8 @@ public:
int loopCount() const;
int loopsRemaining() const;
void setLoopCount(int loopCount);
- int volume() const;
- void setVolume(int volume);
+ qreal volume() const;
+ void setVolume(qreal volume);
bool isMuted() const;
void setMuted(bool muted);
bool isLoaded() const;
@@ -153,7 +153,7 @@ private:
bool m_muted;
bool m_playQueued;
bool m_stopping;
- int m_volume;
+ qreal m_volume;
int m_loopCount;
int m_runningCount;
QUrl m_source;
diff --git a/src/multimedia/audio/qsoundeffect_qaudio_p.cpp b/src/multimedia/audio/qsoundeffect_qaudio_p.cpp
index 2de1b0067..aed8a7aea 100644
--- a/src/multimedia/audio/qsoundeffect_qaudio_p.cpp
+++ b/src/multimedia/audio/qsoundeffect_qaudio_p.cpp
@@ -175,20 +175,20 @@ void QSoundEffectPrivate::setLoopCount(int loopCount)
d->m_runningCount = loopCount;
}
-int QSoundEffectPrivate::volume() const
+qreal QSoundEffectPrivate::volume() const
{
if (d->m_audioOutput && !d->m_muted)
- return d->m_audioOutput->volume()*100.0f;
+ return d->m_audioOutput->volume();
return d->m_volume;
}
-void QSoundEffectPrivate::setVolume(int volume)
+void QSoundEffectPrivate::setVolume(qreal volume)
{
d->m_volume = volume;
if (d->m_audioOutput && !d->m_muted)
- d->m_audioOutput->setVolume(volume/100.0f);
+ d->m_audioOutput->setVolume(volume);
emit volumeChanged();
}
@@ -203,7 +203,7 @@ void QSoundEffectPrivate::setMuted(bool muted)
if (muted && d->m_audioOutput)
d->m_audioOutput->setVolume(0);
else if (!muted && d->m_audioOutput && d->m_muted)
- d->m_audioOutput->setVolume(d->m_volume/100.0f);
+ d->m_audioOutput->setVolume(d->m_volume);
d->m_muted = muted;
emit mutedChanged();
@@ -314,7 +314,7 @@ PrivateSoundSource::PrivateSoundSource(QSoundEffectPrivate* s):
m_audioOutput(0),
m_sample(0),
m_muted(false),
- m_volume(100),
+ m_volume(1.0),
m_sampleReady(false),
m_offset(0)
{
@@ -337,7 +337,7 @@ void PrivateSoundSource::sampleReady()
m_audioOutput = new QAudioOutput(m_sample->format());
connect(m_audioOutput,SIGNAL(stateChanged(QAudio::State)), this, SLOT(stateChanged(QAudio::State)));
if (!m_muted)
- m_audioOutput->setVolume(m_volume/100.0f);
+ m_audioOutput->setVolume(m_volume);
else
m_audioOutput->setVolume(0);
}
diff --git a/src/multimedia/audio/qsoundeffect_qaudio_p.h b/src/multimedia/audio/qsoundeffect_qaudio_p.h
index 8dfd7826a..c1762672d 100644
--- a/src/multimedia/audio/qsoundeffect_qaudio_p.h
+++ b/src/multimedia/audio/qsoundeffect_qaudio_p.h
@@ -88,7 +88,7 @@ private:
QAudioOutput *m_audioOutput;
QSample *m_sample;
bool m_muted;
- int m_volume;
+ qreal m_volume;
bool m_sampleReady;
qint64 m_offset;
QString m_category;
@@ -113,8 +113,8 @@ public:
int loopCount() const;
int loopsRemaining() const;
void setLoopCount(int loopCount);
- int volume() const;
- void setVolume(int volume);
+ qreal volume() const;
+ void setVolume(qreal volume);
bool isMuted() const;
void setMuted(bool muted);
bool isLoaded() const;
diff --git a/src/multimedia/playback/qmediaplayer.cpp b/src/multimedia/playback/qmediaplayer.cpp
index eaac82820..bf6294a1e 100644
--- a/src/multimedia/playback/qmediaplayer.cpp
+++ b/src/multimedia/playback/qmediaplayer.cpp
@@ -864,6 +864,11 @@ void QMediaPlayer::setPlaybackRate(qreal rate)
Setting the media to a null QMediaContent will cause the player to discard all
information relating to the current media source and to cease all I/O operations related
to that media.
+
+ \note This function returns immediately after recording the specified source of the media.
+ It does not wait for the media to finish loading and does not check for errors. Listen for
+ the mediaStatusChanged() and error() signals to be notified when the media is loaded and
+ when an error occurs during loading.
*/
void QMediaPlayer::setMedia(const QMediaContent &media, QIODevice *stream)
diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro
index 4c70e3d11..d947f3b25 100644
--- a/src/plugins/plugins.pro
+++ b/src/plugins/plugins.pro
@@ -13,7 +13,8 @@ android {
}
qnx {
- SUBDIRS += qnx audiocapture
+ config_mmrenderer: SUBDIRS += qnx
+ SUBDIRS += audiocapture
}
qnx:!blackberry {
diff --git a/src/plugins/qnx/mediaplayer/mmrenderermetadatareadercontrol.cpp b/src/plugins/qnx/mediaplayer/mmrenderermetadatareadercontrol.cpp
index c0fe7d085..5ffa7a093 100644
--- a/src/plugins/qnx/mediaplayer/mmrenderermetadatareadercontrol.cpp
+++ b/src/plugins/qnx/mediaplayer/mmrenderermetadatareadercontrol.cpp
@@ -57,7 +57,7 @@ QVariant MmRendererMetaDataReaderControl::metaData(const QString &key) const
{
if (key == QMediaMetaData::Title)
return m_metaData.title();
- else if (key == QMediaMetaData::Author)
+ else if (key == QMediaMetaData::AlbumArtist)
return m_metaData.artist();
else if (key == QMediaMetaData::Comment)
return m_metaData.comment();
diff --git a/src/plugins/wmf/player/mfaudioendpointcontrol.cpp b/src/plugins/wmf/player/mfaudioendpointcontrol.cpp
index 39fc41c5f..c04e47f72 100644
--- a/src/plugins/wmf/player/mfaudioendpointcontrol.cpp
+++ b/src/plugins/wmf/player/mfaudioendpointcontrol.cpp
@@ -60,6 +60,8 @@ void MFAudioEndpointControl::clear()
foreach (LPWSTR wstrID, m_devices)
CoTaskMemFree(wstrID);
+ m_devices.clear();
+
if (m_currentActivate)
m_currentActivate->Release();
m_currentActivate = NULL;
@@ -130,6 +132,11 @@ IMFActivate* MFAudioEndpointControl::createActivate()
clear();
updateEndpoints();
+
+ // Check if an endpoint is available ("Default" is always inserted)
+ if (m_devices.count() <= 1)
+ return NULL;
+
setActiveOutput(m_defaultEndpoint);
return m_currentActivate;