[maemo-commits] [maemo-commits] r9229 - in projects/haf/trunk/libosso: debian src
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Mon Jan 22 17:59:45 EET 2007
- Previous message: [maemo-commits] r9228 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . src
- Next message: [maemo-commits] r9230 - in projects/haf/trunk/libosso: debian src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: kihamala Date: 2007-01-22 17:59:44 +0200 (Mon, 22 Jan 2007) New Revision: 9229 Modified: projects/haf/trunk/libosso/debian/changelog projects/haf/trunk/libosso/src/libosso.h projects/haf/trunk/libosso/src/muali.h projects/haf/trunk/libosso/src/osso-application-init.c projects/haf/trunk/libosso/src/osso-hw.c projects/haf/trunk/libosso/src/osso-init.c projects/haf/trunk/libosso/src/osso-internal.h projects/haf/trunk/libosso/src/osso-rpc.c Log: new muali stuff + some API cleanup Modified: projects/haf/trunk/libosso/debian/changelog =================================================================== --- projects/haf/trunk/libosso/debian/changelog 2007-01-22 13:50:52 UTC (rev 9228) +++ projects/haf/trunk/libosso/debian/changelog 2007-01-22 15:59:44 UTC (rev 9229) @@ -1,5 +1,6 @@ -libosso (2.0-1unreleased1) unstable; urgency=low +libosso (2.0-1) unstable; urgency=low + * UNRELEASED * Branched the code (1.x branch is the maintenance branch). * Compilation fixes for the case that LIBOSSO_DEBUG is defined. * Const keyword fixes from Murray Cumming <murrayc at murrayc.com>. @@ -15,8 +16,12 @@ * Made lot of muali development, design fixes, and tested code. * Implemented muali_reply_string (not sure if *_string functions make sense...) and muali_reply_error. + * The old API does not use muali filter anymore. + * Removed unused API (as part of Hildon API cleanup): osso_tasknav_* and + osso_application_initialize. + * (Contains some untested muali code.) - -- Kimmo Hämäläinen <kimmo.hamalainen at nokia.com> Wed, 03 Jan 2007 09:43:15 +0200 + -- Kimmo Hämäläinen <kimmo.hamalainen at nokia.com> Mon, 22 Jan 2007 18:00:35 +0200 libosso (1.20-1) unstable; urgency=low Modified: projects/haf/trunk/libosso/src/libosso.h =================================================================== --- projects/haf/trunk/libosso/src/libosso.h 2007-01-22 13:50:52 UTC (rev 9228) +++ projects/haf/trunk/libosso/src/libosso.h 2007-01-22 15:59:44 UTC (rev 9229) @@ -1356,6 +1356,7 @@ */ void osso_state_close(osso_context_t *osso, gint fd); +#if 0 /* Hildon API cleanup */ /** This function adds a mail to be displayed in the * mail popup of the tasknavigator. * @@ -1425,6 +1426,7 @@ const gchar *version, osso_application_top_cb_f *cb, gpointer callback_data); +#endif /*@}*/ Modified: projects/haf/trunk/libosso/src/muali.h =================================================================== --- projects/haf/trunk/libosso/src/muali.h 2007-01-22 13:50:52 UTC (rev 9228) +++ projects/haf/trunk/libosso/src/muali.h 2007-01-22 15:59:44 UTC (rev 9229) @@ -61,12 +61,10 @@ the length of the data */ union { int b; /* MUALI_TYPE_BOOL */ + char by; /* MUALI_TYPE_BYTE */ int i; /* MUALI_TYPE_INT */ unsigned int u; /* MUALI_TYPE_UINT */ - long l; /* MUALI_TYPE_LONG */ - unsigned long ul; /* MUALI_TYPE_ULONG */ double d; /* MUALI_TYPE_DOUBLE */ - char c; /* MUALI_TYPE_CHAR */ char *s; /* MUALI_TYPE_STRING */ void *data; /* MUALI_TYPE_DATA */ } value; @@ -76,14 +74,12 @@ * come later. */ #define MUALI_TYPE_INVALID 0 #define MUALI_TYPE_BOOL 1 -#define MUALI_TYPE_INT 2 -#define MUALI_TYPE_UINT 3 -#define MUALI_TYPE_LONG 4 -#define MUALI_TYPE_ULONG 5 -#define MUALI_TYPE_DOUBLE 6 -#define MUALI_TYPE_CHAR 7 -#define MUALI_TYPE_STRING 8 -#define MUALI_TYPE_DATA 9 +#define MUALI_TYPE_BYTE 2 +#define MUALI_TYPE_INT 3 +#define MUALI_TYPE_UINT 4 +#define MUALI_TYPE_DOUBLE 5 +#define MUALI_TYPE_STRING 6 +#define MUALI_TYPE_DATA 7 typedef enum { MUALI_BUS_IRRELEVANT = 0, Modified: projects/haf/trunk/libosso/src/osso-application-init.c =================================================================== --- projects/haf/trunk/libosso/src/osso-application-init.c 2007-01-22 13:50:52 UTC (rev 9228) +++ projects/haf/trunk/libosso/src/osso-application-init.c 2007-01-22 15:59:44 UTC (rev 9229) @@ -27,6 +27,7 @@ #include "libosso.h" #include <assert.h> +#if 0 /* Hildon API cleanup */ static void _run_main_loop( void ); @@ -88,6 +89,7 @@ g_main_loop_quit( (GMainLoop *)data); return 0; } +#endif const gchar * osso_application_name_get(osso_context_t *osso) { Modified: projects/haf/trunk/libosso/src/osso-hw.c =================================================================== --- projects/haf/trunk/libosso/src/osso-hw.c 2007-01-22 13:50:52 UTC (rev 9228) +++ projects/haf/trunk/libosso/src/osso-hw.c 2007-01-22 15:59:44 UTC (rev 9229) @@ -519,8 +519,6 @@ int i; unsigned int u; - long l; - unsigned long ul; double d; char c, *s; @@ -543,18 +541,6 @@ arg_array[idx].value.u = u; ++idx; break; - case DBUS_TYPE_INT64: - arg_array[idx].type = MUALI_TYPE_LONG; - dbus_message_iter_get_basic(iter, &l); - arg_array[idx].value.l = l; - ++idx; - break; - case DBUS_TYPE_UINT64: - arg_array[idx].type = MUALI_TYPE_ULONG; - dbus_message_iter_get_basic(iter, &ul); - arg_array[idx].value.ul = ul; - ++idx; - break; case DBUS_TYPE_DOUBLE: arg_array[idx].type = MUALI_TYPE_DOUBLE; dbus_message_iter_get_basic(iter, &d); @@ -562,9 +548,9 @@ ++idx; break; case DBUS_TYPE_BYTE: - arg_array[idx].type = MUALI_TYPE_CHAR; + arg_array[idx].type = MUALI_TYPE_BYTE; dbus_message_iter_get_basic(iter, &c); - arg_array[idx].value.c = c; + arg_array[idx].value.by = c; ++idx; break; case DBUS_TYPE_STRING: Modified: projects/haf/trunk/libosso/src/osso-init.c =================================================================== --- projects/haf/trunk/libosso/src/osso-init.c 2007-01-22 13:50:52 UTC (rev 9228) +++ projects/haf/trunk/libosso/src/osso-init.c 2007-01-22 15:59:44 UTC (rev 9229) @@ -171,6 +171,7 @@ _deinit(osso); return NULL; } + osso->muali_filters_setup = TRUE; osso->cur_conn = NULL; return (muali_context_t*)osso; } @@ -471,21 +472,6 @@ ULOG_ERR_F("dbus_connection_add_filter failed"); goto dbus_conn_error4; } - /* FIXME: there are two filters because semantics in the new - * muali API are slightly different (stricter matching) */ - if (bus_type == DBUS_BUS_SESSION) { - if (!dbus_connection_add_filter(conn, _muali_filter_session, osso, - NULL)) { - ULOG_ERR_F("dbus_connection_add_filter failed"); - goto dbus_conn_error4; - } - } else { - if (!dbus_connection_add_filter(conn, _muali_filter_system, osso, - NULL)) { - ULOG_ERR_F("dbus_connection_add_filter failed"); - goto dbus_conn_error4; - } - } dprint("My base service is '%s'", dbus_bus_get_unique_name(conn)); @@ -570,8 +556,10 @@ osso->conn = NULL; } dbus_connection_remove_filter(conn, _msg_handler, osso); - dbus_connection_remove_filter(conn, _muali_filter_session, osso); - dbus_connection_remove_filter(conn, _muali_filter_system, osso); + if (osso->muali_filters_setup) { + dbus_connection_remove_filter(conn, _muali_filter_session, osso); + dbus_connection_remove_filter(conn, _muali_filter_system, osso); + } #ifdef LIBOSSO_DEBUG dbus_connection_remove_filter(conn, _debug_filter, NULL); #endif Modified: projects/haf/trunk/libosso/src/osso-internal.h =================================================================== --- projects/haf/trunk/libosso/src/osso-internal.h 2007-01-22 13:50:52 UTC (rev 9228) +++ projects/haf/trunk/libosso/src/osso-internal.h 2007-01-22 15:59:44 UTC (rev 9229) @@ -175,6 +175,7 @@ int next_handler_id; /* next available handler id, unique in this context */ const DBusMessage *reply_dummy, *error_dummy; + gboolean muali_filters_setup; } _osso_af_context_t, _muali_context_t; typedef struct _muali_context_t { @@ -204,6 +205,7 @@ int next_handler_id; /* next available handler id, unique in this context */ const DBusMessage *reply_dummy, *error_dummy; + gboolean muali_filters_setup; } _muali_this_type_is_not_used_t; # ifdef LIBOSSO_DEBUG Modified: projects/haf/trunk/libosso/src/osso-rpc.c =================================================================== --- projects/haf/trunk/libosso/src/osso-rpc.c 2007-01-22 13:50:52 UTC (rev 9228) +++ projects/haf/trunk/libosso/src/osso-rpc.c 2007-01-22 15:59:44 UTC (rev 9229) @@ -1274,21 +1274,95 @@ return MUALI_ERROR_SUCCESS; } -muali_error_t muali_send_string(muali_context_t *context, - muali_handler_t *reply_handler, - const void *user_data, - muali_bus_type bus_type, - const char *destination, - const char *message_name, - const char *string_to_send) +static muali_error_t _muali_append_args(DBusMessage *msg, int type, + va_list var_args) { + muali_error_t rc = MUALI_ERROR_SUCCESS; + + while (type != MUALI_TYPE_INVALID && rc == MUALI_ERROR_SUCCESS) { + dbus_bool_t ret; + char *s; + const char *empty_str = ""; + int i; + unsigned int u; + double d; + + switch (type) { + case MUALI_TYPE_BOOL: + i = va_arg(var_args, int); + ret = dbus_message_append_args(msg, DBUS_TYPE_BOOLEAN, + &i, DBUS_TYPE_INVALID); + if (!ret) rc = MUALI_ERROR; + break; + case MUALI_TYPE_BYTE: + i = va_arg(var_args, int); + ret = dbus_message_append_args(msg, DBUS_TYPE_BYTE, + &i, DBUS_TYPE_INVALID); + if (!ret) rc = MUALI_ERROR; + break; + case MUALI_TYPE_INT: + i = va_arg(var_args, int); + ret = dbus_message_append_args(msg, DBUS_TYPE_INT32, + &i, DBUS_TYPE_INVALID); + if (!ret) rc = MUALI_ERROR; + break; + case MUALI_TYPE_UINT: + u = va_arg(var_args, unsigned int); + ret = dbus_message_append_args(msg, DBUS_TYPE_UINT32, + &u, DBUS_TYPE_INVALID); + if (!ret) rc = MUALI_ERROR; + break; + case MUALI_TYPE_DOUBLE: + d = va_arg(var_args, double); + ret = dbus_message_append_args(msg, DBUS_TYPE_DOUBLE, + &d, DBUS_TYPE_INVALID); + if (!ret) rc = MUALI_ERROR; + break; + case MUALI_TYPE_STRING: + s = va_arg(var_args, char *); + if (s == NULL) { + ret = dbus_message_append_args(msg, + DBUS_TYPE_STRING, &empty_str, + DBUS_TYPE_INVALID); + } else { + ret = dbus_message_append_args(msg, + DBUS_TYPE_STRING, &s, DBUS_TYPE_INVALID); + } + if (!ret) rc = MUALI_ERROR; + break; + case MUALI_TYPE_DATA: + i = va_arg(var_args, int); /* length of the data */ + s = va_arg(var_args, char *); + ret = dbus_message_append_args(msg, + DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE, + &s, i, DBUS_TYPE_INVALID); + if (!ret) rc = MUALI_ERROR; + break; + default: + ULOG_ERR_F("unknown type %d", type); + rc = MUALI_ERROR_INVALID; + break; + } + type = va_arg(var_args, int); + } + return rc; +} + +static +muali_error_t _muali_send_helper(muali_context_t *context, + muali_handler_t *reply_handler, + const void *user_data, + muali_bus_type bus_type, + const char *destination, + const char *message_name, + int arg_type, va_list va_args) +{ char service[MAX_SVC_LEN + 1], path[MAX_OP_LEN + 1], interface[MAX_IF_LEN + 1]; _osso_callback_data_t *cb_data; DBusMessage *msg; DBusConnection *conn; int msg_serial = 0, handler_id; - dbus_bool_t ret; if (context == NULL) { return MUALI_ERROR_INVALID; @@ -1334,14 +1408,12 @@ goto _muali_send_oom; } - if (string_to_send != NULL) { - ret = dbus_message_append_args(msg, DBUS_TYPE_STRING, - &string_to_send, - DBUS_TYPE_INVALID); - if (!ret) { - ULOG_ERR_F("dbus_message_append_args failed"); + if (arg_type != MUALI_TYPE_INVALID) { + muali_error_t rc; + rc = _muali_append_args(msg, arg_type, va_args); + if (rc != MUALI_ERROR_SUCCESS) { dbus_message_unref(msg); - goto _muali_send_oom; + return rc; } } @@ -1409,10 +1481,33 @@ const char *message_name, int arg_type, ...) { - /* TODO */ - return MUALI_ERROR_OOM; + va_list va_args; + muali_error_t rc; + + va_start(va_args, arg_type); + rc = _muali_send_helper(context, reply_handler, user_data, + bus_type, destination, message_name, + arg_type, va_args); + va_end(va_args); + return rc; } +muali_error_t muali_send_string(muali_context_t *context, + muali_handler_t *reply_handler, + const void *user_data, + muali_bus_type bus_type, + const char *destination, + const char *message_name, + const char *string_to_send) +{ + muali_error_t rc; + rc = muali_send_varargs(context, reply_handler, user_data, + bus_type, destination, message_name, + MUALI_TYPE_STRING, string_to_send, + MUALI_TYPE_INVALID); + return rc; +} + muali_error_t muali_reply_string(muali_context_t *context, const char *message_id, const char *string)
- Previous message: [maemo-commits] r9228 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . src
- Next message: [maemo-commits] r9230 - in projects/haf/trunk/libosso: debian src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]