<div dir="ltr"><div><div><div>hi everyone,<br><br></div>Here where I'm stuck : In my audio app, for a new functionality I would like to control volume. Now I'm trying to get a response (dbus signal) when user is changing volume with button (physical).<br></div>My app has mpris2 control, I monitoring a read to the volume property (of  org.mpris.MediaPlayer2.Player ) but never a write. I tried to look for a propertiesChanged in org.freedesktop.DBus.Properties, I'm seeing response in playback status, position, metadata, etc.. but never from volume change.<br><br></div>Right now, I'm looking into pulseaudio with com.meego.mainvolume2<br><h3><span style="font-weight:normal"><a href="https://wiki.merproject.org/wiki/Nemo/Audio/MainVolume">https://wiki.merproject.org/wiki/Nemo/Audio/MainVolume</a></span></h3><p>I connect to pulse, I read current volume (CurrentStep), I can see it's changing between my tests, but my slot to the StepsUpdated signal never been called. <br></p><p>Here my current code :</p><p>//******************************************</p><p>QDBusConnection bus = QDBusConnection::sessionBus();<br>QDBusMessage call = QDBusMessage::createMethodCall("org.PulseAudio1",<br>                                                       "/org/pulseaudio/server_lookup1",<br>                                                       "org.freedesktop.DBus.Properties",<br>                                                       "Get" );<br>call << "org.PulseAudio.ServerLookup1" << "Address";<br>QDBusReply<QDBusVariant> r = bus.call(call);</p><p>if (r.isValid()) {<br>        pulse = new QDBusConnection(QDBusConnection::connectToPeer(<br>                           r.value().variant().toString(), "org.PulseAudio1"));<br><br>         //****** this is working ****<br>        call = QDBusMessage::createMethodCall("",<br>                                              "/com/meego/mainvolume2",<br>                                              "org.freedesktop.DBus.Properties",<br>                                              "Get");<br>        call << "com.Meego.MainVolume2" << "CurrentStep";<br>        qDebug() << "CurrentStep : " << pulse->call(call).value().variant().toUInt();<br></p><p>//***** connect, but never raise a callback ****<br>//***** doing something similar with org.nemomobile.voicecall.VoiceCall and it's working fine          <br>         pulse->connect("",<br>                                   "/com/meego/mainvolume2",<br>                                   "com.Meego.MainVolume2",<br>                                   "StepsUpdated",<br>                                   this, SLOT(StepsUpdated(uint,uint)));<br>}<br></p><p>// *** my public slot code, never getting an answer<br>void modeNuitService::StepsUpdated(uint StepCount, uint CurrentStep) {<br>    qDebug() << "StepsUpdated " << StepCount << " " << CurrentStep;<br>}<br></p><p>//******************************************</p><p>What do you think ? bad argument, bad method signature  or just bad solution ?<br></p></div>