All pastes #249744 Raw Edit

Miscellany

public text v1 · immutable
#249744 ·published 2006-11-16 02:46 UTC
rendered paste body

#define GETNEXT(iter, type, var) \
  if (!err) \
  { \
    if (dbus_message_iter_get_arg_type(&iter) == type) \
    { \
      dbus_message_iter_get_basic(&iter, &var); \
      dbus_message_iter_next(&iter); \
    } \
    else err = 1; \
  }

      if (!err && dbus_message_iter_get_arg_type(&sub2) == DBUS_TYPE_VARIANT) 
      {
        dbus_message_iter_recurse(&sub2, &sub3);
        if (!strcmp(key, "urgency"))
        {
          GETNEXT(sub3, DBUS_TYPE_BYTE, urgency);
        }
        else if (!strcmp(key, "category"))
        {
          GETNEXT(sub3, DBUS_TYPE_STRING, category);
        }
        else if (!strcmp(key, "desktop-entry"))
        {
          GETNEXT(sub3, DBUS_TYPE_STRING, desktop);
        }
        else if (!strcmp(key, "sound-file"))
        {
          GETNEXT(sub3, DBUS_TYPE_STRING, sound_file);
        }
        else if (!strcmp(key, "supress-sound"))
        {
          GETNEXT(sub3, DBUS_TYPE_BOOLEAN, suppress_sound);
        }
        else if (!strcmp(key, "x"))
        {
          GETNEXT(sub3, DBUS_TYPE_INT32, x);
        }
        else if (!strcmp(key, "y"))
        {
          GETNEXT(sub3, DBUS_TYPE_INT32, y);
        }
        // XXX read in image data
      }