Unknown signal over the DBus



Hi all,

This question is tied a bit to libindicate (on Ubuntu) but I need to
narrow down what my error message means, and I don't think that is
libindicate-specific. (Well, I'm just trying to work out whether my
error lies with libindicate or just with my limited understanding of
dbus + gjs).

Basically, I'm trying to listen over Dbus but am getting the following error:
    JS ERROR: !!!   Exception was: Error: Unknown signal.
    JS ERROR: !!!     lineNumber = '0'
    JS ERROR: !!!     fileName = '"gjs_throw"'
    JS ERROR: !!!     stack = '"("Unknown signal.")@gjs_throw:0
"'
    JS ERROR: !!!     message = '"Unknown signal."'

What does this usually mean? Do I have to register signals I expect to
receive somehow?

Further information:

I'm trying to use libindicate (on Ubuntu) through which I can listen
to message/chat notifications from applications that are registered.
(This is what Ubuntu's messaging menu uses to show pending
chats/emails/etc).

As far as I can tell, I instantiate an Indicate.Listener which listens
to (?? something ??) over Dbus and gives me signals whenever a new
chat/mail application registers itself with libindicate, etc.

I set up as follows:

    const Indicate = imports.gi.Indicate; // need
gobject-introspection and libindicate-dev packages, Ubuntu only
    let listener = Indicate.Listener.ref_default(); // create and
Indicate.Listener, which listens to things over Dbus and gives me
signals to connect to
    listener.connect(Indicate.LISTENER_SIGNAL_SERVER_ADDED,
onServerAdded); // example of a signal I connect to

This all executes fine.

However, when I (say) open Thunderbird which sends things over Dbus
which the listener catches and then (potentially) fires the
"SERVER_ADDED" signal from the listener object (via g_signal_emit),
and I get the "Unknown signal" error.

Is there any obvious step I seem to have overlooked (on the javascript
side)? Do I just need to make some call to `Dbus.[something]`  to tell
it what the dbus signals are (I thought this would have been handled
in the Indicate.listener class)? One thing to note is that what the
listener listens to over the Dbus do not correspond to the
Indicate.LISTENER_SIGNAL_SERVER_ADDED signals; the listener *class*
listens to a whole bunch of signals over dbus and after some
combination might fire a SERVER_ADDED signal (via g_signal_emit, not
over Dbus).

cheers!


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]