[maemo-commits] [maemo-commits] r18868 - in projects/haf/trunk/ke-recv: debian src
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Fri Jul 17 15:54:58 EEST 2009
- Previous message: [maemo-commits] r18867 - projects/haf/trunk
- Next message: [maemo-commits] r18869 - projects/haf/trunk
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: kihamala Date: 2009-07-17 15:54:56 +0300 (Fri, 17 Jul 2009) New Revision: 18868 Modified: projects/haf/trunk/ke-recv/debian/changelog projects/haf/trunk/ke-recv/src/ke-recv.c Log: add interface for the USB plugin Modified: projects/haf/trunk/ke-recv/debian/changelog =================================================================== --- projects/haf/trunk/ke-recv/debian/changelog 2009-07-17 12:50:53 UTC (rev 18867) +++ projects/haf/trunk/ke-recv/debian/changelog 2009-07-17 12:54:56 UTC (rev 18868) @@ -8,6 +8,7 @@ - Do not insert any USB module in startup: wait for the cable - Do not keep g_nada inserted, it is only used temporarily on cable connection + - Add USB mode signal and querying interface for the USB plugin - NOTE: requires infonote and infobanner interfaces to be provided on the system bus also Modified: projects/haf/trunk/ke-recv/src/ke-recv.c =================================================================== --- projects/haf/trunk/ke-recv/src/ke-recv.c 2009-07-17 12:50:53 UTC (rev 18867) +++ projects/haf/trunk/ke-recv/src/ke-recv.c 2009-07-17 12:54:56 UTC (rev 18868) @@ -484,6 +484,46 @@ return DBUS_HANDLER_RESULT_HANDLED; } +static DBusHandlerResult get_usb_mode_handler(DBusConnection *c, + DBusMessage *m, void *data) +{ + DBusMessage *r; + char buf[20], *buf_p; + dbus_bool_t ret; + buf_p = buf; + + ULOG_DEBUG_F("entered"); + + if (usb_state == S_PERIPHERAL_WAIT || + usb_state == S_PCSUITE || + usb_state == S_MASS_STORAGE) { + strcpy(buf, "peripheral"); + } else { + strcpy(buf, "disconnected"); + } + + r = dbus_message_new_method_return(m); + if (r == NULL) { + ULOG_ERR_F("couldn't create message"); + return DBUS_HANDLER_RESULT_HANDLED; + } + ret = dbus_message_append_args(r, DBUS_TYPE_STRING, &buf_p, + DBUS_TYPE_INVALID); + if (!ret) { + ULOG_ERR_F("couldn't append arguments"); + dbus_message_unref(r); + return DBUS_HANDLER_RESULT_HANDLED; + } + + ret = dbus_connection_send(sys_conn, r, NULL); + dbus_message_unref(r); + if (!ret) { + ULOG_ERR_F("sending failed"); + } + + return DBUS_HANDLER_RESULT_HANDLED; +} + static DBusHandlerResult enable_mmc_swap_handler(DBusConnection *c, DBusMessage *m, void *data) @@ -980,6 +1020,35 @@ } #endif +static void send_usb_mode_signal(void) +{ + DBusMessage *m; + dbus_bool_t ret; + + ULOG_DEBUG_F("entering"); + + if (usb_state == S_PERIPHERAL_WAIT || + usb_state == S_PCSUITE || + usb_state == S_MASS_STORAGE) { + m = dbus_message_new_signal("/com/nokia/ke_recv/usb_mode", + "com.nokia.ke_recv.usb_mode", + "peripheral"); + } else { + m = dbus_message_new_signal("/com/nokia/ke_recv/usb_mode", + "com.nokia.ke_recv.usb_mode", + "disconnected"); + } + if (m == NULL) { + ULOG_ERR_F("dbus_message_new_signal failed"); + return; + } + ret = dbus_connection_send(sys_conn, m, NULL); + if (!ret) { + ULOG_ERR_F("dbus_connection_send failed"); + } + dbus_message_unref(m); +} + void send_error(const char* n) { DBusMessage* e = NULL; @@ -1970,15 +2039,10 @@ usb_state = S_MASS_STORAGE; /* should reset gconf keys here */ } else { - ULOG_DEBUG_F("peripheral but cards not " - "USB-shared, assuming charging mode"); - usb_state = S_CHARGING; - /* - if (do_e_plugged) { - handle_usb_event( - E_ENTER_PERIPHERAL_WAIT_MODE); - } - */ + /* this is startup time, so charger probe + * should succeed since no other g_* modules + * should be in use */ + handle_usb_event(E_ENTER_CHARGER_PROBE); } set_usb_mode_key("peripheral"); } else { @@ -2085,7 +2149,9 @@ } else { int val; + /* ULOG_DEBUG_F("udi %s modified %s", udi, key); + */ if (strcmp("volume.is_mounted", key) == 0) { return; @@ -3154,6 +3220,7 @@ usb_state); } usb_state = S_CABLE_DETACHED; + send_usb_mode_signal(); break; case E_EJECT: if (usb_state == S_HOST) { @@ -3225,7 +3292,7 @@ " in DETACHED, WAIT or PROBE state"); dismantle_charger_probe_timeout(); usb_state = S_PERIPHERAL_WAIT; - /* FIXME: dialogi? */ + send_usb_mode_signal(); } else { ULOG_WARN_F("E_ENTER_PERIPHERAL_WAIT_MODE" " in %d!", usb_state); @@ -3477,6 +3544,10 @@ vtable.message_function = format_handler; register_op(sys_conn, &vtable, FORMAT_OP, NULL); + /* register D-BUS interface for USB mode (used by USB plugin) */ + vtable.message_function = get_usb_mode_handler; + register_op(sys_conn, &vtable, "/com/nokia/ke_recv/get_usb_mode", NULL); + /* register D-BUS interface for enabling swapping on MMC */ vtable.message_function = enable_mmc_swap_handler; /* FIXME
- Previous message: [maemo-commits] r18867 - projects/haf/trunk
- Next message: [maemo-commits] r18869 - projects/haf/trunk
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]