if (!edbus_message_arguments_get(msg, "sss", &bus, &older_id, &new_id))
printf("Error getting arguments from NameOwnerChanged");
- printf("on_name_owner_changed_by_id bus = %s older=%s new=%s\n\n",
- bus, older_id, new_id);
-
- if (!new_id[0])
- edbus_signal_handler_unref(sh3);
+ printf("banshee started on id=%s\n", new_id);
}
static void
printf("Error getting arguments from NameOwnerChanged");
printf("bus = %s older=%s new=%s\n\n", bus, older_id, new_id);
-
- if (new_id[0])
- {
- sh4 = edbus_signal_handler_add(conn,
- EDBUS_FDO_BUS,
- EDBUS_FDO_PATH,
- EDBUS_FDO_INTERFACE,
- "NameOwnerChanged",
- on_name_owner_changed_by_id,
- NULL);
- edbus_signal_handler_match_extra_set(sh4, "arg1", new_id, NULL);
- }
}
int
NULL);
edbus_signal_handler_match_extra_set(sh3, "arg0", "org.bansheeproject.Banshee", NULL);
+ sh4 = edbus_signal_handler_add(conn,
+ EDBUS_FDO_BUS,
+ EDBUS_FDO_PATH,
+ EDBUS_FDO_INTERFACE,
+ "NameOwnerChanged",
+ on_name_owner_changed_by_id,
+ NULL);
+ edbus_signal_handler_match_extra_set(sh4,
+ "arg0", "org.bansheeproject.Banshee",
+ "arg1", "", NULL);
+
ecore_timer_add(50, _timer1_cb, NULL);
ecore_main_loop_begin();
static void
_match_append(Eina_Strbuf *match, const char *key, const char *value)
{
- if (value == NULL || !value[0]) return;
+ if (!value) return;
if ((eina_strbuf_length_get(match) + strlen(",=''") + strlen(key) + strlen(value))
>= DBUS_MAXIMUM_MATCH_RULE_LENGTH)
edbus_signal_handler_match_extra_set(EDBus_Signal_Handler *sh, ...)
{
va_list ap;
- char *key = NULL, *value;
+ char *key = NULL, *read;
Signal_Argument *arg;
DBusError err;
EINA_SAFETY_ON_TRUE_RETURN_VAL(dbus_error_is_set(&err), EINA_FALSE);
va_start(ap, sh);
- do
+ for (read = va_arg(ap, char *); read; read = va_arg(ap, char *))
{
if (!key)
{
- key = va_arg(ap, char *);
+ key = read;
continue;
}
- value = va_arg(ap, char *);
arg = calloc(1, sizeof(Signal_Argument));
EINA_SAFETY_ON_NULL_GOTO(arg, error);
-
if (!strncmp(key, ARGX, strlen(ARGX)))
{
- int id = atoi(key+strlen(ARGX)-1);
- arg->index = (unsigned short)id;
- arg->value = eina_stringshare_add(value);
+ int id = atoi(key + strlen(ARGX));
+ arg->index = (unsigned short) id;
+ arg->value = eina_stringshare_add(read);
sh->args = eina_inlist_sorted_state_insert(sh->args,
EINA_INLIST_GET(arg),
_sort_arg,
sh->state_args);
- _match_append(sh->match, key, value);
+ _match_append(sh->match, key, read);
+ }
+ else
+ {
+ ERR("%s not supported", key);
+ free(arg);
}
key = NULL;
- } while(key);
+ }
va_end(ap);
dbus_error_init(&err);