QAudioOutput: Don't guess media role if one has not been provided in setCategory.

Trying to heuristically guess this kind of thing is almost always a bad idea.
Expect the creator of the output to explicitly tell us the category instead
of guessing.

This fixes QAudioOutput not respecting system volume on Sailfish.

Change-Id: If1d05192f513eb54fdfbd1df217286f329b2bfe8
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
This commit is contained in:
Robin Burchell
2014-01-16 15:28:06 +01:00
committed by The Qt Project
parent 1e23440457
commit 87b8b4489a

View File

@@ -277,16 +277,8 @@ bool QPulseAudioOutput::open()
qint64 bytesPerSecond = m_format.sampleRate() * m_format.channelCount() * m_format.sampleSize() / 8; qint64 bytesPerSecond = m_format.sampleRate() * m_format.channelCount() * m_format.sampleSize() / 8;
pa_proplist *propList = pa_proplist_new(); pa_proplist *propList = pa_proplist_new();
if (m_category.isNull()) { if (!m_category.isNull())
// Meant to be one of the strings "video", "music", "game", "event", "phone", "animation", "production", "a11y", "test" pa_proplist_sets(propList, PA_PROP_MEDIA_ROLE, m_category.toLatin1().constData());
// We choose music unless the buffer size is small, where we choose game..
if (m_bufferSize > 0 && bytesPerSecond > 0 && (m_bufferSize * 1000LL / bytesPerSecond <= LowLatencyBufferSizeMs)) {
m_category = LOW_LATENCY_CATEGORY_NAME;
} else {
m_category = "music";
}
}
pa_proplist_sets(propList, PA_PROP_MEDIA_ROLE, m_category.toLatin1().constData());
m_stream = pa_stream_new_with_proplist(pulseEngine->context(), m_streamName.constData(), &spec, 0, propList); m_stream = pa_stream_new_with_proplist(pulseEngine->context(), m_streamName.constData(), &spec, 0, propList);
pa_proplist_free(propList); pa_proplist_free(propList);