I have fixed the bus_name parameter in
Gio::DBus::Connection::call() and call_sync() in the git
repository.
https://git.gnome.org/browse/glibmm/commit/?id=843547cfe72de8958b7cdd5cc1a3390fc5102657
Kjell
Den 2016-02-03 kl. 08:37, skrev Ian
Arkver:
On
03/02/16 01:31, Gerlof Fokkema wrote:
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
This looks similar to the DBus::Connection::signal_describe
problem from last September which required a patch from Murray to
fix...
https://git.gnome.org/browse/glibmm/commit/?id=ece1463f6d796c7c74da1e9d37a4e69904a9706e
Regards,
Ian.
|