[pulseaudio-discuss] Receiving signals from server in C

Greg Knoll gregknoll at gmail.com
Fri May 30 05:19:11 PDT 2014

This is my first time sending a message to this list, so I apologize if I
do not follow the protocols correctly.

I have successfully called other methods by first getting a DBUS session
connection and using the server_lookup1 object.  However, I am having
trouble receiving signals from the pulse server using the !ListenForSignal
method in C/C++.    If I want, for instance, to listen for new modules.
 The documentation says that the ListenForSignal method takes a string and
an array of object paths as arguments, sa[o], but that the array can be
empty to receive messages from all objects.

So far I have this:

       msg = dbus_message_new_method_call(

            "org.PulseAudio1", 				//Destination

            "/org/pulseaudio/core1",                    //Object path to call on

            "org.PulseAudio.Core1",                     //Interface to call on

            "ListenForSignal");                         //Method

    //Add arguments: s, []

    dbus_message_iter_init_append(msg, &msgIter);


        dbus_message_iter_append_basic(&msgIter, DBUS_TYPE_STRING,&signalName);

        //empty array to listen to all


        dbus_message_iter_close_container(&msgIter, &arrayIter);

I don't get any errors from DBUS about incorrect signatures or objects
not being found.  However, where/how do I listen for the signal?  I
also tried setting a dbus match rule:

"type='signal',interface='org.PulseAudio.Core1'", &err);

It listens on the system bus, but I've also tried listening on the pulse
server session bus.  I still don't receive anything.

Can someone point me in the right direction?  Thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20140530/6f6be7b3/attachment-0001.html>

More information about the pulseaudio-discuss mailing list