[maemo-commits] [maemo-commits] r8664 - in projects/haf/trunk/libosso: debian src

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Thu Dec 7 12:54:56 EET 2006
Author: kihamala
Date: 2006-12-07 12:54:55 +0200 (Thu, 07 Dec 2006)
New Revision: 8664

Modified:
   projects/haf/trunk/libosso/debian/changelog
   projects/haf/trunk/libosso/src/muali.h
   projects/haf/trunk/libosso/src/osso-hw.c
Log:
muali_set_event_handler split to two functions


Modified: projects/haf/trunk/libosso/debian/changelog
===================================================================
--- projects/haf/trunk/libosso/debian/changelog	2006-12-07 09:48:42 UTC (rev 8663)
+++ projects/haf/trunk/libosso/debian/changelog	2006-12-07 10:54:55 UTC (rev 8664)
@@ -10,6 +10,8 @@
     optional. Fixes: MB#824
   * Added super-cool syslog-logging and stderr-logging configure options.
   * Added libosso1-doc documentation package (and dependency to doxygen).
+  * Split muali_set_event_handler to two functions to make API more easy
+    to use.
 
  -- Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>  Thu, 09 Nov 2006 18:46:08 +0200
 

Modified: projects/haf/trunk/libosso/src/muali.h
===================================================================
--- projects/haf/trunk/libosso/src/muali.h	2006-12-07 09:48:42 UTC (rev 8663)
+++ projects/haf/trunk/libosso/src/muali.h	2006-12-07 10:54:55 UTC (rev 8664)
@@ -144,11 +144,8 @@
  * This function registers a handler for event, message, or signal.
  *
  * @param context Muali context.
- * @param info Structure specifying the type of events to handle,
- *             or #NULL if the event_type argument is provided.
- *             Providing this or the event_type argument is mandatory.
- * @param event_type Specifies the event to handle. Providing this or
- *                   the info argument is mandatory.
+ * @param event_type Specifies the event to handle (should be one of the
+ *                   MUALI_EVENT_* values).
  * @param handler The handler function to call when the event happens.
  * @param user_data Optional user data to pass to the handler when it
  *                  is called.
@@ -158,13 +155,31 @@
  * @return #MUALI_ERROR_SUCCESS on success.
  */
 muali_error_t muali_set_event_handler(muali_context_t *context,
-                                      const muali_event_info_t *info,
                                       int event_type,
                                       muali_handler_t *handler,
                                       void *user_data,
                                       int *handler_id);
 
 /**
+ * This function registers a handler for event, message, or signal.
+ *
+ * @param context Muali context.
+ * @param info Structure specifying the type of events to handle.
+ * @param handler The handler function to call when the event happens.
+ * @param user_data Optional user data to pass to the handler when it
+ *                  is called.
+ * @param handler_id Return location for the handler ID, which is used
+ *                   to unregister the handler.
+ *
+ * @return #MUALI_ERROR_SUCCESS on success.
+ */
+muali_error_t muali_set_event_handler_custom(muali_context_t *context,
+                                             const muali_event_info_t *info,
+                                             muali_handler_t *handler,
+                                             void *user_data,
+                                             int *handler_id);
+
+/**
  * This function unregisters a handler for event, message, or signal.
  *
  * @param context Muali context.

Modified: projects/haf/trunk/libosso/src/osso-hw.c
===================================================================
--- projects/haf/trunk/libosso/src/osso-hw.c	2006-12-07 09:48:42 UTC (rev 8663)
+++ projects/haf/trunk/libosso/src/osso-hw.c	2006-12-07 10:54:55 UTC (rev 8664)
@@ -854,7 +854,6 @@
 }
 
 muali_error_t muali_set_event_handler(muali_context_t *context,
-                                      const muali_event_info_t *info,
                                       int event_type,
                                       muali_handler_t *handler,
                                       void *user_data,
@@ -874,40 +873,13 @@
                 return MUALI_ERROR_INVALID;
         }
 
-        if (info == NULL && event_type == 0) {
-                ULOG_ERR_F("info or event_type must be provided");
+        if (event_type == MUALI_EVENT_NONE) {
+                ULOG_ERR_F("event_type must be provided");
                 return MUALI_ERROR_INVALID;
         }
 
         new_handler_id = context->next_handler_id++;
 
-        if (info != NULL) {
-                muali_error_t ret;
-
-                event_cb = generic_signal_handler;
-
-                ret = compose_match(info, &match);
-                ULOG_DEBUG_F("match='%s'", match);
-
-                if (ret == MUALI_ERROR_SUCCESS) {
-                        error = _set_handler(context,
-                                     info->service,
-                                     info->path,
-                                     info->interface,
-                                     info->name,
-                                     match,
-                                     event_cb,
-                                     0, /* event_type ignored */
-                                     handler,
-                                     user_data,
-                                     new_handler_id);
-                } else {
-                        error = ret;
-                }
-                *handler_id = new_handler_id;
-                return error;
-        }
-
         switch (event_type) {
                 case MUALI_EVENT_LOWMEM_BOTH:
                 case MUALI_EVENT_LOWMEM_OFF:
@@ -975,6 +947,62 @@
                         ULOG_ERR_F("unknown event type %d", event_type);
                         error = MUALI_ERROR_INVALID;
         }
-        *handler_id = new_handler_id;
+
+        if (handler_id != NULL) {
+                *handler_id = new_handler_id;
+        }
         return error;
 }
+
+muali_error_t muali_set_event_handler_custom(muali_context_t *context,
+                                      const muali_event_info_t *info,
+                                      muali_handler_t *handler,
+                                      void *user_data,
+                                      int *handler_id)
+{
+        muali_error_t error = MUALI_ERROR_SUCCESS;
+        _osso_handler_f *event_cb = NULL;
+        char *match = NULL;
+        int new_handler_id;
+        muali_error_t ret;
+
+        ULOG_DEBUG_F("entered");
+
+        if (context == NULL || handler == NULL) {
+                ULOG_ERR_F("invalid arguments");
+                return MUALI_ERROR_INVALID;
+        }
+
+        if (info == NULL) {
+                ULOG_ERR_F("info structure must be provided");
+                return MUALI_ERROR_INVALID;
+        }
+
+        new_handler_id = context->next_handler_id++;
+
+        event_cb = generic_signal_handler;
+
+        ret = compose_match(info, &match);
+        ULOG_DEBUG_F("match='%s'", match);
+
+        if (ret == MUALI_ERROR_SUCCESS) {
+                error = _set_handler(context,
+                                     info->service,
+                                     info->path,
+                                     info->interface,
+                                     info->name,
+                                     match,
+                                     event_cb,
+                                     0, /* event_type ignored */
+                                     handler,
+                                     user_data,
+                                     new_handler_id);
+        } else {
+                error = ret;
+        }
+
+        if (handler_id != NULL) {
+                *handler_id = new_handler_id;
+        }
+        return error;
+}


More information about the maemo-commits mailing list