QAudioOutput: Don't guess media role if one has not been provided in setCategory.
authorRobin Burchell <robin.burchell@jollamobile.com>
Thu, 16 Jan 2014 14:28:06 +0000 (15:28 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Fri, 7 Feb 2014 12:23:27 +0000 (13:23 +0100)
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>
src/plugins/pulseaudio/qaudiooutput_pulse.cpp

index cd32658..2b482ba 100644 (file)
@@ -277,16 +277,8 @@ bool QPulseAudioOutput::open()
     qint64 bytesPerSecond = m_format.sampleRate() * m_format.channelCount() * m_format.sampleSize() / 8;
 
     pa_proplist *propList = pa_proplist_new();
-    if (m_category.isNull()) {
-        // Meant to be one of the strings "video", "music", "game", "event", "phone", "animation", "production", "a11y", "test"
-        // 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());
+    if (!m_category.isNull())
+        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);
     pa_proplist_free(propList);