dbus_bool_t spi_dbus_demarshal_deviceEvent(DBusMessage *message, Accessibility_DeviceEvent *e)
{
DBusMessageIter iter;
- dbus_uint16_t hw_code;
- dbus_uint16_t modifiers;
dbus_message_iter_init(message, &iter);
if (spi_dbus_message_iter_get_struct(&iter, DBUS_TYPE_UINT32, &e->type, DBUS_TYPE_INT32, &e->id, DBUS_TYPE_INT32, &e->hw_code, DBUS_TYPE_INT32, &e->modifiers, DBUS_TYPE_INT32, &e->timestamp, DBUS_TYPE_STRING, &e->event_string, DBUS_TYPE_BOOLEAN, &e->is_text, DBUS_TYPE_INVALID))
return TRUE;
- /* TODO: Perhaps remove the below code for 2.1 */
- if (!spi_dbus_message_iter_get_struct(&iter, DBUS_TYPE_UINT32, &e->type, DBUS_TYPE_INT32, &e->id, DBUS_TYPE_INT16, &hw_code, DBUS_TYPE_INT16, &modifiers, DBUS_TYPE_INT32, &e->timestamp, DBUS_TYPE_STRING, &e->event_string, DBUS_TYPE_BOOLEAN, &e->is_text, DBUS_TYPE_INVALID))
- return FALSE;
- e->hw_code = hw_code;
- e->modifiers = modifiers;
return TRUE;
}
GSList *keys = NULL;
dbus_int32_t mask, type;
Accessibility_EventListenerMode *mode;
- dbus_bool_t ret;
+ dbus_bool_t ret;
DBusMessage *reply = NULL;
char *keystring;
- char *sig;
+
+ if (strcmp (dbus_message_get_signature (message), "oa(iisi)uu(bbb)") != 0)
+ return invalid_arguments_error (message);
dbus_message_iter_init(message, &iter);
- // TODO: verify type signature
dbus_message_iter_get_basic(&iter, &path);
dbus_message_iter_next(&iter);
dbus_message_iter_recurse(&iter, &iter_array);
dbus_message_iter_next(&iter);
dbus_message_iter_get_basic(&iter, &mask);
dbus_message_iter_next(&iter);
- sig = dbus_message_iter_get_signature (&iter);
- if (sig && !strcmp (sig, "u"))
- dbus_message_iter_get_basic(&iter, &type);
- else
- {
- dbus_message_iter_recurse(&iter, &iter_array);
- while (dbus_message_iter_get_arg_type(&iter_array) != DBUS_TYPE_INVALID)
- {
- dbus_uint32_t t;
- dbus_message_iter_get_basic (&iter_array, &t);
- type |= (1 << t);
- dbus_message_iter_next (&iter_array);
- }
- dbus_message_iter_next (&iter_array);
- }
- dbus_free (sig);
+ dbus_message_iter_get_basic(&iter, &type);
dbus_message_iter_next(&iter);
mode = (Accessibility_EventListenerMode *)g_malloc(sizeof(Accessibility_EventListenerMode));
if (mode)
DBusMessage *reply = NULL;
dbus_message_iter_init(message, &iter);
- // TODO: verify type signature
+ if (strcmp (dbus_message_get_signature (message), "oa(iisi)uu") != 0)
dbus_message_iter_get_basic(&iter, &path);
dbus_message_iter_next(&iter);
dbus_message_iter_recurse(&iter, &iter_array);