I’m developing an application on c++ language on linux. I want to send a signal as this:
<signal name="EmitSignal">
<arg type="(u(i)uussssu)" name="t_struct_of_signal" direction="out" />
</signal>
The second parameter in type="(u(i)uussssu)" is an enum type.
I’m trying to register a struct
#define STRUCT_OF_SIGNAL (dbus_g_type_get_struct ("GValueArray", \
G_TYPE_UINT, \
G_TYPE_POINTER, \
G_TYPE_UINT, \
G_TYPE_UINT, \
G_TYPE_STRING, \
G_TYPE_STRING, \
G_TYPE_STRING, \
G_TYPE_STRING, \
G_TYPE_UINT, \
G_TYPE_INVALID))
but I’ve some errors :
** (process:21792): WARNING **: No marshaller registered for type "gpointer"
** (process:21792): WARNING **: failed to marshal parameter 1 for signal EmitSignal
Can someone help me?
Thanks so much
I resolved it: I changed
G_TYPE_VALUE_ARRAYtodbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_INVALID)Then, this was:
Now, it is:
Probably, the
G_TYPE_VALUE_ARRAYand theGValueArraystruct aren’t compatible.