<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>309334</bug_id>
          
          <creation_ts>2012-10-31 18:25:00 +0000</creation_ts>
          <short_desc>Mute key doesn&apos;t mute</short_desc>
          <delta_ts>2012-11-14 23:26:55 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>2</classification_id>
          <classification>Applications</classification>
          <product>kmix</product>
          <component>QA and Testing</component>
          <version>unspecified</version>
          <rep_platform>Compiled Sources</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>NOR</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Thiago Macieira">thiago</reporter>
          <assigned_to name="Christian Esken">esken</assigned_to>
          <cc>daniel.eckl</cc>
          
          <cf_commitlink></cf_commitlink>
          <cf_versionfixedin>4.10</cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>0</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1311205</commentid>
    <comment_count>0</comment_count>
    <who name="Thiago Macieira">thiago</who>
    <bug_when>2012-10-31 18:25:00 +0000</bug_when>
    <thetext>The mute button is not muting the sound.

Reproducible: Always

Steps to Reproduce:
1. Press the mute button on the keyboard

Actual Results:  
OSD shows with the volume as it was. The loudspeaker indicator does not change, as it used to. The sound is not muted.

Expected Results:  
OSD shows with some indication that sound was muted, like greying out the loudspeaker icon. The sound is muted.

pulseaudio-1.1-9, on Fedora 17.

This is possibly related to bug 308300, but I cannot reproduce the issue reported there. If I click the mute button on the KMix interface, then sound is muted and the volume level goes down all the way to zero. Note also that clicking the button again unmutes, but does *not* bring the sound level back to where it was.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311210</commentid>
    <comment_count>1</comment_count>
    <who name="Thiago Macieira">thiago</who>
    <bug_when>2012-10-31 18:31:29 +0000</bug_when>
    <thetext>I also get this on ~/.xsession-errors. Maybe it&apos;s relevant:

kglobalaccel(1271) KGlobalAccelImpl::x11Event: Got XKeyPress event
kglobalaccel(1271) GlobalShortcutsRegistry::keyPressed: &quot;Volume Mute&quot; = &quot;mute&quot;
kmix(14267) Mixer::commitVolumeChange: commiting announces the change of:  &quot;alsa_output.pci-0000_00_1b.0.analog-stereo&quot;
kmix(14267) OSDWidget::setCurrentVolume: Meter is visible:  true
kmix(14267) ControlManager::announce: Listener  &quot;OSDWidget&quot;  is interested in  &quot;PulseAudio::Playback_Devices:1&quot; ,  &quot;Volume&quot;
kmix(14267) ViewSliders::controlsChange: NOW I WILL REFRESH VOLUME LEVELS. I AM  &quot;PulseAudio.Dispositivos_de_reprodução.1.default&quot;
kmix(14267) ControlManager::announce: Listener  &quot;ViewSliders.PulseAudio::Playback_Devices:1&quot;  is interested in  &quot;PulseAudio::Playback_Devices:1&quot; ,  &quot;Volume&quot;
kmix(14267) Volume::hasSwitch: Allow playback switch read once
kmix(14267) ControlManager::announce: Listener  &quot;ViewDockAreaPopup&quot;  is interested in  &quot;PulseAudio::Playback_Devices:1&quot; ,  &quot;Volume&quot;
kmix(14267) ControlManager::announce: Listener  &quot;KMixDockWidget&quot;  is interested in  &quot;PulseAudio::Playback_Devices:1&quot; ,  &quot;Volume&quot;
kmix(14267) ControlManager::announce: Announcing  &quot;Volume&quot;  for  &quot;PulseAudio::Playback_Devices:1&quot;  by  &quot;Mixer.commitVolumeChange()&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311211</commentid>
    <comment_count>2</comment_count>
    <who name="Thiago Macieira">thiago</who>
    <bug_when>2012-10-31 18:33:18 +0000</bug_when>
    <thetext>If I click the mute button on the mixer UI, .xsession-error contains:

kmix(14267) Mixer::commitVolumeChange: commiting announces the change of:  &quot;alsa_output.pci-0000_00_1b.0.analog-stereo&quot;
kmix(14267) OSDWidget::setCurrentVolume: Meter is visible:  true
kmix(14267) ControlManager::announce: Listener  &quot;OSDWidget&quot;  is interested in  &quot;PulseAudio::Playback_Devices:1&quot; ,  &quot;Volume&quot;
kmix(14267) ViewSliders::controlsChange: NOW I WILL REFRESH VOLUME LEVELS. I AM  &quot;PulseAudio.Dispositivos_de_reprodução.1.default&quot;
kmix(14267) ControlManager::announce: Listener  &quot;ViewSliders.PulseAudio::Playback_Devices:1&quot;  is interested in  &quot;PulseAudio::Playback_Devices:1&quot; ,  &quot;Volume&quot;
kmix(14267) Volume::hasSwitch: Allow playback switch read once
kmix(14267) ControlManager::announce: Listener  &quot;ViewDockAreaPopup&quot;  is interested in  &quot;PulseAudio::Playback_Devices:1&quot; ,  &quot;Volume&quot;
kmix(14267) ControlManager::announce: Listener  &quot;KMixDockWidget&quot;  is interested in  &quot;PulseAudio::Playback_Devices:1&quot; ,  &quot;Volume&quot;
kmix(14267) ControlManager::announce: Announcing  &quot;Volume&quot;  for  &quot;PulseAudio::Playback_Devices:1&quot;  by  &quot;Mixer.commitVolumeChange()&quot;
kded(1262)/kmix Mixer_Backend::readSetFromHW: Announcing the readSetFromHW()
kded(1262)/kmix ControlManager::announce: Announcing  &quot;Volume&quot;  for  &quot;PulseAudio::Playback_Devices:1&quot;  by  &quot;Mixer.fromHW&quot;
kded(1262)/kmix Mixer_Backend::readSetFromHW: Announcing the readSetFromHW()
kded(1262)/kmix ControlManager::announce: Announcing  &quot;Volume&quot;  for  &quot;PulseAudio::Playback_Devices:1&quot;  by  &quot;Mixer.fromHW&quot;
kmix(14267) Mixer_Backend::readSetFromHW: Announcing the readSetFromHW()
kmix(14267) OSDWidget::setCurrentVolume: Meter is visible:  true
kmix(14267) ControlManager::announce: Listener  &quot;OSDWidget&quot;  is interested in  &quot;PulseAudio::Playback_Devices:1&quot; ,  &quot;Volume&quot;
kmix(14267) ViewSliders::controlsChange: NOW I WILL REFRESH VOLUME LEVELS. I AM  &quot;PulseAudio.Dispositivos_de_reprodução.1.default&quot;
kmix(14267) ControlManager::announce: Listener  &quot;ViewSliders.PulseAudio::Playback_Devices:1&quot;  is interested in  &quot;PulseAudio::Playback_Devices:1&quot; ,  &quot;Volume&quot;
kmix(14267) Volume::hasSwitch: Allow playback switch read once
kmix(14267) ControlManager::announce: Listener  &quot;ViewDockAreaPopup&quot;  is interested in  &quot;PulseAudio::Playback_Devices:1&quot; ,  &quot;Volume&quot;
kmix(14267) ControlManager::announce: Listener  &quot;KMixDockWidget&quot;  is interested in  &quot;PulseAudio::Playback_Devices:1&quot; ,  &quot;Volume&quot;
kmix(14267) ControlManager::announce: Announcing  &quot;Volume&quot;  for  &quot;PulseAudio::Playback_Devices:1&quot;  by  &quot;Mixer.fromHW&quot;
kmix(14267) Mixer_Backend::readSetFromHW: Announcing the readSetFromHW()
kmix(14267) OSDWidget::setCurrentVolume: Meter is visible:  true
kmix(14267) ControlManager::announce: Listener  &quot;OSDWidget&quot;  is interested in  &quot;PulseAudio::Playback_Devices:1&quot; ,  &quot;Volume&quot;
kmix(14267) ViewSliders::controlsChange: NOW I WILL REFRESH VOLUME LEVELS. I AM  &quot;PulseAudio.Dispositivos_de_reprodução.1.default&quot;
kmix(14267) ControlManager::announce: Listener  &quot;ViewSliders.PulseAudio::Playback_Devices:1&quot;  is interested in  &quot;PulseAudio::Playback_Devices:1&quot; ,  &quot;Volume&quot;
kmix(14267) Volume::hasSwitch: Allow playback switch read once
kmix(14267) ControlManager::announce: Listener  &quot;ViewDockAreaPopup&quot;  is interested in  &quot;PulseAudio::Playback_Devices:1&quot; ,  &quot;Volume&quot;
kmix(14267) ControlManager::announce: Listener  &quot;KMixDockWidget&quot;  is interested in  &quot;PulseAudio::Playback_Devices:1&quot; ,  &quot;Volume&quot;
kmix(14267) ControlManager::announce: Announcing  &quot;Volume&quot;  for  &quot;PulseAudio::Playback_Devices:1&quot;  by  &quot;Mixer.fromHW&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311908</commentid>
    <comment_count>3</comment_count>
    <who name="Christian Esken">esken</who>
    <bug_when>2012-11-03 00:37:26 +0000</bug_when>
    <thetext>In current trunk the mute button is under refactoring and heavily broken. I guess you are using trunk, do you?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311912</commentid>
    <comment_count>4</comment_count>
    <who name="Thiago Macieira">thiago</who>
    <bug_when>2012-11-03 01:33:29 +0000</bug_when>
    <thetext>Yes, this is trunk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314932</commentid>
    <comment_count>5</comment_count>
    <who name="Christian Esken">esken</who>
    <bug_when>2012-11-12 21:19:46 +0000</bug_when>
    <thetext>*** Bug 309336 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314933</commentid>
    <comment_count>6</comment_count>
    <who name="Christian Esken">esken</who>
    <bug_when>2012-11-12 21:22:21 +0000</bug_when>
    <thetext>Git commit 4f7ac8db6514d4f539521a45a5d3d45e9c193e05 by Christian Esken.
Committed on 12/11/2012 at 22:20.
Pushed by esken into branch &apos;master&apos;.

Fix volume switch for controls with a virtual/simulated mute switch.

M  +38   -11   backends/mixer_alsa9.cpp
M  +7    -0    core/mixdevice.cpp
M  +1    -0    core/mixdevice.h
M  +4    -1    core/volume.cpp
M  +11   -36   core/volume.h

http://commits.kde.org/kmix/4f7ac8db6514d4f539521a45a5d3d45e9c193e05</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314938</commentid>
    <comment_count>7</comment_count>
    <who name="Christian Esken">esken</who>
    <bug_when>2012-11-12 21:45:51 +0000</bug_when>
    <thetext>Volume switch has undergone a redesign to allow a mute switch for ALL playback controls, even those w/o a hardware playback switch. It should now work again.

It requires a change in all backends, for two reasons:
 - They must respect that there is a playback switch that does not exist according to their knowledge.
 - They must not feed back the 0 volume back to KMix, otherwise after unmuting the volume would stay at 0.

I left the implementation detail to the Backends, as they know best how to mute a control. Setting a volume to 0 might not always be the best solution. Backend state:
 - ALSA : Implemented, and tested succesfully against alsamixer.
 - Pulseaudio: As far as I saw, each playback control has a mute switch. So it should simply continue working. Also it seems to works for me. I have tested against pavucontrol.
 - MPRIS2 : TODO
 - OSS : Not yet implemented. Strangely enough, it seems to work w/o explicitely cahngeing the backend.
 - Solaris : Misses maintainer
 - OSSv4 : Misses maintainer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314941</commentid>
    <comment_count>8</comment_count>
    <who name="Christian Esken">esken</who>
    <bug_when>2012-11-12 22:15:55 +0000</bug_when>
    <thetext>Git commit c742a9b7eebc2f2288a52385fc3dba89cf83960c by Christian Esken.
Committed on 12/11/2012 at 23:12.
Pushed by esken into branch &apos;master&apos;.

Implement virtual mute switch for MPRIS2 backend.

M  +42   -34   backends/mixer_mpris2.cpp
M  +1    -0    backends/mixer_mpris2.h

http://commits.kde.org/kmix/c742a9b7eebc2f2288a52385fc3dba89cf83960c</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314943</commentid>
    <comment_count>9</comment_count>
    <who name="Christian Esken">esken</who>
    <bug_when>2012-11-12 22:18:11 +0000</bug_when>
    <thetext>Support in MPRIS2 now also added. All viable backends have now been adapted.

Please test, especially I would need feedback from Pulseaudio users.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315633</commentid>
    <comment_count>10</comment_count>
    <who name="Daniel Eckl">daniel.eckl</who>
    <bug_when>2012-11-14 20:23:19 +0000</bug_when>
    <thetext>No change for pulseaudio here running Kubuntu 12.10, KDE 4.9.3 and kmix git from a few minutes ago (20121114). Pressing mute button only shows the OSD, but does not mute.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315648</commentid>
    <comment_count>11</comment_count>
    <who name="Daniel Eckl">daniel.eckl</who>
    <bug_when>2012-11-14 20:43:51 +0000</bug_when>
    <thetext>Some debug output that might be helpful:

in .xsession-errors, when i press mute, I get this line:
QDBusConnection: error: could not send signal path &quot;/Mixers/PulseAudio::Playback_Devices:1&quot; interface &quot;org.kde.KMix.Mixer&quot; member &quot;controlChanged&quot;: Invalid object path: /Mixers/PulseAudio::Playback_Devices:1

I&apos;m not experienced in dbus, but I don&apos;t see any &quot;Pulseaudio&quot; object below &quot;Mixers&quot;:

&gt; qdbus org.kde.kmix /Mixers/Pulseaudio
Error: org.freedesktop.DBus.Error.UnknownObject
No such object path &apos;/Mixers/Pulseaudio&apos;

The contents of &quot;Mixers&quot; object is:

&gt; qdbus org.kde.kmix /Mixers
property read QString org.kde.KMix.MixSet.currentMasterControl
property read QString org.kde.KMix.MixSet.currentMasterMixer
property read QStringList org.kde.KMix.MixSet.mixers
property read QString org.kde.KMix.MixSet.preferredMasterControl
property read QString org.kde.KMix.MixSet.preferredMasterMixer
signal void org.kde.KMix.MixSet.mixersChanged()
method void org.kde.KMix.MixSet.setCurrentMaster(QString mixer, QString control)
method void org.kde.KMix.MixSet.setPreferredMaster(QString mixer, QString control)
method QDBusVariant org.freedesktop.DBus.Properties.Get(QString interface_name, QString property_name)
method QVariantMap org.freedesktop.DBus.Properties.GetAll(QString interface_name)
method void org.freedesktop.DBus.Properties.Set(QString interface_name, QString property_name, QDBusVariant value)
method QString org.freedesktop.DBus.Introspectable.Introspect()
method QString org.freedesktop.DBus.Peer.GetMachineId()
method void org.freedesktop.DBus.Peer.Ping()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315653</commentid>
    <comment_count>12</comment_count>
    <who name="Christian Esken">esken</who>
    <bug_when>2012-11-14 20:57:49 +0000</bug_when>
    <thetext>Git commit e89db3c5097092347ec9b25780f7b2ecf05b11f8 by Christian Esken.
Committed on 14/11/2012 at 21:56.
Pushed by esken into branch &apos;master&apos;.

Fix toggle mute.

M  +1    -1    core/mixdevice.cpp

http://commits.kde.org/kmix/e89db3c5097092347ec9b25780f7b2ecf05b11f8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315655</commentid>
    <comment_count>13</comment_count>
    <who name="Christian Esken">esken</who>
    <bug_when>2012-11-14 21:03:32 +0000</bug_when>
    <thetext>It looks like yesterday I fixed a different mute bug. Sorry about that. ;-)
It should work now. It was a stupid typo. Another test would still be appreciated.

The DBUS thing is bug 308014, which I fixed today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315657</commentid>
    <comment_count>14</comment_count>
    <who name="Daniel Eckl">daniel.eckl</who>
    <bug_when>2012-11-14 21:06:41 +0000</bug_when>
    <thetext>Tested and bug is fixed for me. Thanks for looking into this so fast :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315660</commentid>
    <comment_count>15</comment_count>
    <who name="Christian Esken">esken</who>
    <bug_when>2012-11-14 21:15:27 +0000</bug_when>
    <thetext>Well, the beta is due tomorrow. I am trying to fix as much as I can until then.
Thanks for the test. Closing ticket.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>