Linux [Solved] Conflict between diffrent sound controller
#1
I have this setup:

Kodi 17 running on Gentoo Gnome3 with systemd and pulseaudio

This is my problem

If i press my mediakeys for volume gnome is set the global volume

if i press the kodi keys for volume the kodi sink is set

if i use an androidapp to control the kodi-volume the kodi sink is set

Therefore i have two different audio volumes to control with is very very annoying

Now could i deactivate the gnome volume-control but i would like to control the same volumesink inside and outside of kodi so im looking for any solution to get kodi setting the global volume not the intern volume.

I would patch the source code too but i have no idea were to start.
Reply
#2
Kodi's pulseaudio implementation uses a "stream" which is the way pulseaudio wants it to be implemented. I would suggest you unmap the kodi volume keys (+ and - right?) and only use the global keys.
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Reply
#3
Saddly thats the second worst workaround. I will still have the Problem that Android apps for kodi controll will set the Volumen inside kodi.

Why is GNOME allowed to control all streams but kodi only bis own? Isnt there any way to give kodi the ability to control other streams the same way GNOME and KDE is doing
Reply
#4
Kodi is an application
Gnome is your desktop manager
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Reply
#5
Code:
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkPULSE.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkPULSE.cpp
index c651ed5..f77ff54 100644
--- a/xbmc/cores/AudioEngine/Sinks/AESinkPULSE.cpp
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkPULSE.cpp
@@ -928,14 +928,14 @@ void CAESinkPULSE::SetVolume(float volume)
     }

     pa_volume_t pavolume = per_cent_volume * PA_VOLUME_NORM;
-    unsigned int sink_input_idx = pa_stream_get_index(m_Stream);
+    unsigned int sink_idx = pa_stream_get_device_index(m_Stream);

     if ( pavolume <= 0 )
       pa_cvolume_mute(&m_Volume, m_Channels);
     else
       pa_cvolume_set(&m_Volume, m_Channels, pavolume);

-      pa_operation *op = pa_context_set_sink_input_volume(m_Context, sink_input_idx, &m_Volume, NULL, NULL);
+      pa_operation *op = pa_context_set_sink_volume_by_index(m_Context, sink_idx, &m_Volume, NULL, NULL);
       if (op == NULL)
         CLog::Log(LOGERROR, "PulseAudio: Failed to set volume");
       else
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Reply
#6
Yeah thats what i want. I need to test it a longer period but i think it is "fixed" for me.

Thank you very much
Reply

Logout Mark Read Team Forum Stats Members Help
[Solved] Conflict between diffrent sound controller0