[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.org
Date: Fri Dec 15 16:53:18 EET 2006
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);
   }
 }
 


More information about the maemo-commits mailing list