[maemo-commits] [maemo-commits] r8783 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . libhildondesktop libhildonwm
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Fri Dec 15 16:53:18 EET 2006
- Previous message: [maemo-commits] r8782 - in projects/haf/branches/gtk+/maemo-gtk-2-10: . gtk
- Next message: [maemo-commits] r8784 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . libhildondesktop
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: moimart Date: 2006-12-15 16:53:16 +0200 (Fri, 15 Dec 2006) New Revision: 8783 Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hn-app-switcher.c projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildonwm/hd-wm.c Log: * libhildondesktop/hn-app-switcher.c: * libhildonwm/hd-wm.c: - Moved bgkill and lowmem handlers from appswitcher to HDWM. * ChangeLog udpated. Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog =================================================================== --- projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog 2006-12-15 12:57:25 UTC (rev 8782) +++ projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog 2006-12-15 14:53:16 UTC (rev 8783) @@ -1,3 +1,9 @@ +2006-12-15 Moises Martinez <moises.martinzes at nokia.com> + + * libhildondesktop/hn-app-switcher.c: + * libhildonwm/hd-wm.c: + - Moved bgkill and lowmem handlers from appswitcher to HDWM. + 2006-12-15 Johan Bilien <johan.bilien at nokia.com> * libhildondesktop/desktop-panel-window.c: Fixed a warning Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hn-app-switcher.c =================================================================== --- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hn-app-switcher.c 2006-12-15 12:57:25 UTC (rev 8782) +++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hn-app-switcher.c 2006-12-15 14:53:16 UTC (rev 8783) @@ -130,24 +130,6 @@ #define AS_INTERNAL_PADDING 10 #define AS_SEPARATOR_HEIGHT 10 -/* lowmem signals */ -#define LOWMEM_ON_SIGNAL_INTERFACE "com.nokia.ke_recv.lowmem_on" -#define LOWMEM_ON_SIGNAL_PATH "/com/nokia/ke_recv/lowmem_on" -#define LOWMEM_ON_SIGNAL_NAME "lowmem_on" - -#define LOWMEM_OFF_SIGNAL_INTERFACE "com.nokia.ke_recv.lowmem_off" -#define LOWMEM_OFF_SIGNAL_PATH "/com/nokia/ke_recv/lowmem_off" -#define LOWMEM_OFF_SIGNAL_NAME "lowmem_off" - -/* bgkill signals */ -#define BGKILL_ON_SIGNAL_INTERFACE "com.nokia.ke_recv.bgkill_on" -#define BGKILL_ON_SIGNAL_PATH "/com/nokia/ke_recv/bgkill_on" -#define BGKILL_ON_SIGNAL_NAME "bgkill_on" - -#define BGKILL_OFF_SIGNAL_INTERFACE "com.nokia.ke_recv.bgkill_off" -#define BGKILL_OFF_SIGNAL_PATH "/com/nokia/ke_recv/bgkill_off" -#define BGKILL_OFF_SIGNAL_NAME "bgkill_off" - /* sound samples */ #define HN_WINDOW_OPEN_SOUND DATADIR"/sounds/ui-window_open.wav" #define HN_WINDOW_CLOSE_SOUND DATADIR"/sounds/ui-window_close.wav" @@ -285,80 +267,6 @@ G_DEFINE_TYPE (HNAppSwitcher, hn_app_switcher, TASKNAVIGATOR_TYPE_ITEM); -static guint app_switcher_signals[LAST_SIGNAL] = { 0 }; - - -/* LOWMEM signals handler: listen to LOWMEM_ON and LOWMEM_OFF events, - * and relays them through the HNAppSwitcher "lowmem" signal. - */ -static DBusHandlerResult -lowmem_handler (DBusConnection *conn, - DBusMessage *msg, - void *data) -{ - HNAppSwitcher *app_switcher = HN_APP_SWITCHER (data); - const gchar *member; - - if (dbus_message_get_type (msg) != DBUS_MESSAGE_TYPE_SIGNAL) - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; - - member = dbus_message_get_member (msg); - if (!member || member[0] == '\0') - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; - - if (strcmp (LOWMEM_ON_SIGNAL_NAME, member) == 0) - { - g_signal_emit (app_switcher, app_switcher_signals[LOWMEM], 0, TRUE); - - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; - } - - if (strcmp (LOWMEM_OFF_SIGNAL_NAME, member) == 0) - { - g_signal_emit (app_switcher, app_switcher_signals[LOWMEM], 0, FALSE); - - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; - } - - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; -} - -/* BGKILL signals handler: listens to the BGKILL_ON and BGKILL_OFF - * events, and relays them through the HNAppSwitcher "bgkill" - * signal - */ -static DBusHandlerResult -bgkill_handler (DBusConnection *conn, - DBusMessage *msg, - void *data) -{ - HNAppSwitcher *app_switcher = HN_APP_SWITCHER (data); - const gchar *member; - - if (dbus_message_get_type (msg) != DBUS_MESSAGE_TYPE_SIGNAL) - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; - - member = dbus_message_get_member (msg); - if (!member || member[0] == '\0') - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; - - if (strcmp (BGKILL_ON_SIGNAL_NAME, member) == 0) - { - g_signal_emit (app_switcher, app_switcher_signals[BGKILL], 0, TRUE); - - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; - } - - if (strcmp (BGKILL_OFF_SIGNAL_NAME, member) == 0) - { - g_signal_emit (app_switcher, app_switcher_signals[BGKILL], 0, FALSE); - - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; - } - - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; -} - static gint get_app_button_pos (GtkWidget *button) { @@ -1147,9 +1055,6 @@ hn_app_switcher_osso_initialize (HNAppSwitcher *app_switcher) { HNAppSwitcherPrivate *priv = app_switcher->priv; - DBusConnection *conn = NULL; - DBusObjectPathVTable lowmem_vtable, bgkill_vtable; - gboolean res; osso_hw_state_t hs = {0}; priv->osso = osso_initialize ("AS_DIMMED_infoprint", "0.1", FALSE, NULL); @@ -1166,70 +1071,8 @@ hn_app_osso_hw_cb, app_switcher); - /* Set up the monitoring of MCE events in order to be able - * to top Home or open the menu - */ - conn = osso_get_sys_dbus_connection (priv->osso); - if (!conn) - { - osso_log (LOG_ERR, "Failed getting connection to system bus"); - return; } - -#define MAKE_SIGNAL_RULE(_iface) "type=\'signal\', interface=\'" _iface "\'" - - lowmem_vtable.message_function = lowmem_handler; - lowmem_vtable.unregister_function = NULL; - - res = dbus_connection_register_object_path (conn, LOWMEM_ON_SIGNAL_PATH, - &lowmem_vtable, - app_switcher); - if (res) - { - dbus_bus_add_match (conn, MAKE_SIGNAL_RULE (LOWMEM_ON_SIGNAL_INTERFACE), NULL); - dbus_connection_flush (conn); - } - else - osso_log(LOG_ERR, "Failed registering LOWMEM_ON handler"); - - res = dbus_connection_register_object_path (conn, LOWMEM_OFF_SIGNAL_PATH, - &lowmem_vtable, - app_switcher); - if (res) - { - dbus_bus_add_match (conn, MAKE_SIGNAL_RULE (LOWMEM_OFF_SIGNAL_INTERFACE), NULL); - dbus_connection_flush (conn); - } - else - osso_log(LOG_ERR, "Failed registering LOWMEM_OFF handler"); - - bgkill_vtable.message_function = bgkill_handler; - bgkill_vtable.unregister_function = NULL; - - res = dbus_connection_register_object_path (conn, BGKILL_ON_SIGNAL_PATH, - &bgkill_vtable, - app_switcher); - if (res) - { - dbus_bus_add_match (conn, MAKE_SIGNAL_RULE (BGKILL_ON_SIGNAL_INTERFACE), NULL); - dbus_connection_flush (conn); - } - else - osso_log(LOG_ERR, "Failed registering BGKILL_ON handler"); - - res = dbus_connection_register_object_path (conn, BGKILL_OFF_SIGNAL_PATH, - &bgkill_vtable, - app_switcher); - if (res) - { - dbus_bus_add_match (conn, MAKE_SIGNAL_RULE (BGKILL_OFF_SIGNAL_INTERFACE), NULL); - dbus_connection_flush (conn); - } - else - osso_log(LOG_ERR, "Failed registering BGKILL_OFF handler"); -} - /* We must override the "show-all" method, as we may have stuff we don't want * to show, like the main button or the application buttons */ Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildonwm/hd-wm.c =================================================================== --- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildonwm/hd-wm.c 2006-12-15 12:57:25 UTC (rev 8782) +++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildonwm/hd-wm.c 2006-12-15 14:53:16 UTC (rev 8783) @@ -60,9 +60,30 @@ #define TASKNAV_SERVICE_NAME "com.nokia.tasknav" #define TASKNAV_INSENSITIVE_INTERFACE "com.nokia.tasknav.tasknav_insensitive" #define TASKNAV_SENSITIVE_INTERFACE "com.nokia.tasknav.tasknav_sensitive" + #define MCE_SERVICE "com.nokia.mce" #define MCE_SIGNAL_INTERFACE "com.nokia.mce.signal" #define MCE_SIGNAL_PATH "/com/nokia/mce/signal" + +/* lowmem signals */ +#define LOWMEM_ON_SIGNAL_INTERFACE "com.nokia.ke_recv.lowmem_on" +#define LOWMEM_ON_SIGNAL_PATH "/com/nokia/ke_recv/lowmem_on" +#define LOWMEM_ON_SIGNAL_NAME "lowmem_on" + +#define LOWMEM_OFF_SIGNAL_INTERFACE "com.nokia.ke_recv.lowmem_off" +#define LOWMEM_OFF_SIGNAL_PATH "/com/nokia/ke_recv/lowmem_off" +#define LOWMEM_OFF_SIGNAL_NAME "lowmem_off" + +/* bgkill signals */ +#define BGKILL_ON_SIGNAL_INTERFACE "com.nokia.ke_recv.bgkill_on" +#define BGKILL_ON_SIGNAL_PATH "/com/nokia/ke_recv/bgkill_on" +#define BGKILL_ON_SIGNAL_NAME "bgkill_on" + +#define BGKILL_OFF_SIGNAL_INTERFACE "com.nokia.ke_recv.bgkill_off" +#define BGKILL_OFF_SIGNAL_PATH "/com/nokia/ke_recv/bgkill_off" +#define BGKILL_OFF_SIGNAL_NAME "bgkill_off" + + /* hardware signals */ #define HOME_LONG_PRESS "sig_home_key_pressed_long_ind" #define HOME_PRESS "sig_home_key_pressed_ind" @@ -461,6 +482,74 @@ } static DBusHandlerResult +lowmem_handler (DBusConnection *conn, + DBusMessage *msg, + void *data) +{ + const gchar *member; + HDWM *hdwm = HD_WM (data); + + if (dbus_message_get_type (msg) != DBUS_MESSAGE_TYPE_SIGNAL) + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + + member = dbus_message_get_member (msg); + if (!member || member[0] == '\0') + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + + if (strcmp (LOWMEM_ON_SIGNAL_NAME, member) == 0) + { + hd_wm_memory_lowmem_func (TRUE); + g_signal_emit_by_name (hdwm,"entry_info_changed"); + + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } + + if (strcmp (LOWMEM_OFF_SIGNAL_NAME, member) == 0) + { + hd_wm_memory_lowmem_func (FALSE); + g_signal_emit_by_name (hdwm,"entry_info_changed"); + + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } + + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static DBusHandlerResult +bgkill_handler (DBusConnection *conn, + DBusMessage *msg, + void *data) +{ + const gchar *member; + HDWM *hdwm = HD_WM (data); + + if (dbus_message_get_type (msg) != DBUS_MESSAGE_TYPE_SIGNAL) + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + + member = dbus_message_get_member (msg); + if (!member || member[0] == '\0') + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + + if (strcmp (BGKILL_ON_SIGNAL_NAME, member) == 0) + { + hd_wm_memory_bgkill_func (TRUE); + g_signal_emit_by_name (hdwm,"entry_info_changed"); + + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } + + if (strcmp (BGKILL_OFF_SIGNAL_NAME, member) == 0) + { + hd_wm_memory_bgkill_func (FALSE); + g_signal_emit_by_name (hdwm,"entry_info_changed"); + + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } + + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static DBusHandlerResult mce_handler (DBusConnection *conn, DBusMessage *msg, void *data) @@ -513,18 +602,14 @@ return 1; if (strcmp(operation, "lru") == 0) - { - return hd_wm_memory_kill_lru(); - } - else if (strcmp(operation, "all") == 0) - { - return hd_wm_memory_kill_all_watched(TRUE); - } - else if (strcmp(operation, "app") != 0 || (arguments->len < 2) ) - { - return 1; - } - + return hd_wm_memory_kill_lru (); + else + if (strcmp(operation, "all") == 0) + return hd_wm_memory_kill_all_watched (TRUE); + else + if (strcmp(operation, "app") != 0 || (arguments->len < 2) ) + return 1; + /* Kill a certain application */ appname = (gchar *)g_array_index(arguments, osso_rpc_t, 1).value.s; @@ -595,8 +680,8 @@ NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, - 1, - G_TYPE_POINTER); + 1, + G_TYPE_POINTER); hdwm_signals[HDWM_SHOW_A_MENU_SIGNAL] = g_signal_new("show_menu", @@ -609,6 +694,35 @@ } +static void hd_wm_register_object_path (HDWM *hdwm, + DBusConnection *conn, + DBusObjectPathMessageFunction func, + gchar *interface, + gchar *path) +{ + DBusObjectPathVTable vtable; + gchar *match_rule; + gboolean res; + + vtable.message_function = func; + vtable.unregister_function = NULL; + + match_rule = g_strdup_printf("type='signal', interface='%s'", interface); + + res = dbus_connection_register_object_path (conn, path, &vtable, hdwm); + + if (res) + { + g_debug ("%s Registered",interface); + dbus_bus_add_match (conn, match_rule, NULL); + dbus_connection_flush(conn); + } + else + g_debug ("I couldn't register %s",interface); + + g_free (match_rule); +} + static void hd_wm_init (HDWM *hdwm) { @@ -616,17 +730,13 @@ DBusError error,sys_error; gchar *match_rule = NULL; GdkKeymap *keymap; - gboolean res; - DBusObjectPathVTable mce_vtable; hdwm->priv = hdwmpriv = HD_WM_GET_PRIVATE (hdwm); - /*memset(&(hdwm->priv), 0, sizeof(HDWMPrivate));*/ + memset(hdwm->priv, 0, sizeof(HDWMPrivate)); osso_manager_t *osso_man = osso_manager_singleton_get_instance(); - /*hdwm->priv->app_switcher = as;*/ - /* Check for configurable lowmem values. */ hdwm->priv->lowmem_min_distance @@ -648,11 +758,6 @@ #if 0 application_switcher_set_dnotify_handler (as, &hd_wm_dnotify_func); application_switcher_set_shutdown_handler (as, &hd_wm_shutdown_func); - application_switcher_set_lowmem_handler (as, &hd_wm_memory_lowmem_func); - application_switcher_set_bgkill_handler (as, &hd_wm_memory_bgkill_func); - - g_signal_connect (as, "lowmem", G_CALLBACK (hd_wm_lowmem_cb), NULL); - g_signal_connect (as, "bgkill", G_CALLBACK (hd_wm_bgkill_cb), NULL); #endif /* build our hash of watchable apps via .desktop key/values */ @@ -758,27 +863,35 @@ } else { - mce_vtable.message_function = mce_handler; - mce_vtable.unregister_function = NULL; + hd_wm_register_object_path (hdwm, + sys_connection, + mce_handler, + MCE_SIGNAL_INTERFACE, + MCE_SIGNAL_PATH); - match_rule = g_strdup_printf("type='signal', interface='%s'", MCE_SIGNAL_INTERFACE); + hd_wm_register_object_path (hdwm, + sys_connection, + bgkill_handler, + BGKILL_ON_SIGNAL_INTERFACE, + BGKILL_ON_SIGNAL_PATH); - res = dbus_connection_register_object_path (sys_connection, - MCE_SIGNAL_PATH, - &mce_vtable, - hdwm); - - if (res) - { - g_debug ("MCE Registered"); - dbus_bus_add_match (sys_connection, match_rule, NULL); - } - else - g_debug ("I couldn't register MCE"); + hd_wm_register_object_path (hdwm, + sys_connection, + bgkill_handler, + BGKILL_OFF_SIGNAL_INTERFACE, + BGKILL_OFF_SIGNAL_PATH); - g_free(match_rule); + hd_wm_register_object_path (hdwm, + sys_connection, + lowmem_handler, + LOWMEM_ON_SIGNAL_INTERFACE, + LOWMEM_ON_SIGNAL_PATH); - dbus_connection_flush(sys_connection); + hd_wm_register_object_path (hdwm, + sys_connection, + lowmem_handler, + LOWMEM_OFF_SIGNAL_INTERFACE, + LOWMEM_OFF_SIGNAL_PATH); } }
- Previous message: [maemo-commits] r8782 - in projects/haf/branches/gtk+/maemo-gtk-2-10: . gtk
- Next message: [maemo-commits] r8784 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . libhildondesktop
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]