From: tanya Date: Wed, 11 Aug 2010 11:23:10 +0000 (+0300) Subject: debuging dbus X-Git-Url: http://git.maemo.org/git/?p=xscreensaver;a=commitdiff_plain;h=392e81dc1f7b4a895b1838457380c376a80f9186 debuging dbus --- 392e81dc1f7b4a895b1838457380c376a80f9186 diff --cc xscreensaver/hacks/screenhack.c index 5515ad4,0f11991..8414e54 --- a/xscreensaver/hacks/screenhack.c +++ b/xscreensaver/hacks/screenhack.c @@@ -541,9 -539,8 +541,11 @@@ run_screenhack_table (Display *dpy DBusMessage* msg; DBusConnection* conn; DBusError err; ++ DBusMessageIter args; int ret; char pause = 0; + int param = 0; ++ int start_frame = 200; /* Kludge: even though the init_cb functions are declared to take 2 args, actually call them with 3, for the benefit of xlockmore_init() and @@@ -582,15 -579,14 +584,16 @@@ } dbus_bus_add_match (conn, "type='signal', interface='org.maemo.livewp'", &err); ++ dbus_connection_flush(conn); if (dbus_error_is_set(&err)){ fprintf(stderr,"dbus_bus_add_match failed: %s", err.message); dbus_error_free(&err); exit (1); } - DBusMessageIter args; ++ while (1) { -- if (pause == 0){ ++ if (pause == 0){ unsigned long delay = ft->draw_cb (dpy, window, closure); #ifdef DEBUG_PAIR unsigned long delay2 = 0; @@@ -611,35 -607,17 +614,59 @@@ break; } ++ if (start_frame > 0) { ++ start_frame--; ++ continue; ++ } + if (pause == 0) /* non blocking read of the next available message */ - dbus_connection_read_write(conn, 0); - msg = dbus_connection_pop_message(conn); - if (NULL == msg) - continue; + dbus_connection_read_write(conn, 0); + else + /* blocking read of the next available message */ + dbus_connection_read_write(conn, -1); - msg = dbus_connection_pop_message(conn); ++ /*fprintf(stderr, "111111\n");*/ ++ msg = dbus_connection_borrow_message(conn); ++ /*msg = dbus_connection_pop_message(conn);*/ ++ ++ /*fprintf(stderr, "2222222\n");*/ + if (NULL == msg){ + ++ /*fprintf(stderr, "333333\n");*/ + continue; + } ++ dbus_connection_steal_borrowed_message(conn, msg); ++ /* fprintf (stderr, "APPLICATION PATH11111111111111111111 %s %s %s\n", dbus_message_get_path(msg), dbus_message_get_interface (msg), dbus_message_get_member (msg));*/ ++ /*dbus_connection_return_message(conn, msg);*/ + if (dbus_message_is_signal(msg, LIVEWP_SIGNAL_INTERFACE, LIVEWP_PAUSE_LIVEBG_ON_VIEW) || + dbus_message_is_signal(msg, LIVEWP_SIGNAL_INTERFACE, LIVEWP_PLAY_LIVEBG_ON_VIEW)){ + if (!dbus_message_iter_init(msg, &args)) + fprintf(stderr, "dbus message has no param\n"); + else if (DBUS_TYPE_INT32 != dbus_message_iter_get_arg_type(&args)) + fprintf(stderr, "dbus message param is not int \n"); + else{ + dbus_message_iter_get_basic(&args, ¶m); + fprintf(stderr, "dbus param = %i\n", param); + } + if (param == view){ + if (dbus_message_is_signal(msg, LIVEWP_SIGNAL_INTERFACE, LIVEWP_PAUSE_LIVEBG_ON_VIEW)){ + fprintf(stderr, "dbus Pause scene visible %i\n", param); + pause = 1; + } + if (dbus_message_is_signal(msg, LIVEWP_SIGNAL_INTERFACE, LIVEWP_PLAY_LIVEBG_ON_VIEW)){ + fprintf(stderr, "dbus Play scene visible %i\n", param); + pause = 0; + } ++ /*msg = dbus_connection_pop_message(conn);*/ ++ fprintf(stderr, "dbus steal message\n"); ++ /*dbus_connection_steal_borrowed_message(conn, msg);*/ ++ }else{ ++ fprintf(stderr, "dbus return message\n"); ++ /*dbus_connection_return_message(conn, msg);*/ + } + } ++ /* check this is a method call for the right interface & method */ + /* if ((view == 1 && dbus_message_is_signal(msg, LIVEWP_SIGNAL_INTERFACE, LIVEWP_PAUSE_LIVEBG_ON_VIEW1))|| (view == 2 && dbus_message_is_signal(msg, LIVEWP_SIGNAL_INTERFACE, LIVEWP_PAUSE_LIVEBG_ON_VIEW2))|| (view == 3 && dbus_message_is_signal(msg, LIVEWP_SIGNAL_INTERFACE, LIVEWP_PAUSE_LIVEBG_ON_VIEW3))|| @@@ -654,9 -633,10 +682,12 @@@ (view == 4 && dbus_message_is_signal(msg, LIVEWP_SIGNAL_INTERFACE, LIVEWP_PLAY_LIVEBG_ON_VIEW4))){ fprintf(stderr, "Play scene visible %i\n", view); pause = 0; + dbus_message_unref (msg); + continue; } - dbus_message_unref (msg); +*/ + ++ /*dbus_message_unref (msg);*/ } ft->free_cb (dpy, window, closure);