Hello mailing list,

I'm trying to use the glibmm interface to connect to the PulseAudio DBus
socket.
So far, I've managed to connect to the DBus Session bus and retrieve the
socket address, and I've also managed to set up a connection to that DBus
socket.

Source is here:
https://github.com/gfokkema/equalizer/blob/master/src/pa-equalizer.cpp

I'm having trouble calling DBus methods on the PulseAudio DBus socket,
because of what I think is a bug in the glibmm bindings.

https://github.com/gfokkema/equalizer/blob/master/src/pa-equalizer.cpp#L52
---------------------------------------------------------------------------------------------------
auto sinks_result = this->conn->call_sync (
"/org/pulseaudio/equalizing1",
"org.freedesktop.DBus.Properties",
"Get",
parameters,
"org.PulseAudio"
);

There is a QTPython application that also connects to this socket, but it
leaves the busname empty
(link:
https://github.com/mkbosmans/pulseaudio/blob/master/src/utils/qpaeq#L229).
Calling this method without specifying bus_name also works when using glib,
allowing the result to be converted glibmm.
See branch develop on the same git repository for example.

Am I correct in my understanding that because this is a standalone DBus
socket,
the busname can be empty?
And if so, why doesn't glibmm allow the busname to be 0 or NULL, while the
documentation does say that is acceptable input?

When I change the bus_name, "org.PulseAudio" to NULL, my program crashes
with:
# ./project
> terminate called after throwing an instance of 'std::logic_error'
> what(): basic_string::_M_construct null not valid
> Aborted (core dumped)


Thanks in advance,

Gerlof Fokkema
_______________________________________________
gtkmm-list mailing list
gtkmm-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to