Re: [RFC generichid 5/5]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

On Fri, Jul 20, 2012 at 6:30 PM, Nathaniel Haggard <natester@xxxxxxxxx> wrote:
> Clean up newlines and adds the reconnect and disconnect device functions.

Please do not mix whitespace cleanups and code-changes. If you need
the cleanup, then do it as a separate patch. And then do only
cleanups. Anyway, why did you introduce these empty lines in the
previous patches?

>  input/generichid.c |   92 +++++++++++++++++++++++++++++++++++++++++-----------
>  1 files changed, 73 insertions(+), 19 deletions(-)
>
> diff --git a/input/generichid.c b/input/generichid.c
> index 42d6a29..7957774 100644
> --- a/input/generichid.c
> +++ b/input/generichid.c
> @@ -130,7 +130,6 @@ struct user_data {
>         func_ptr func;
>  };
>
> -
>  static void add_lang_attr(sdp_record_t *r)
>  {
>         sdp_lang_attr_t base_lang;
> @@ -145,7 +144,6 @@ static void add_lang_attr(sdp_record_t *r)
>         sdp_list_free(langs, 0);
>  }
>
> -
>  static int sdp_keyboard_service(struct adapter_data *adapt)
>  {
>         bdaddr_t src;
> @@ -347,7 +345,6 @@ static int sdp_keyboard_service(struct adapter_data *adapt)
>         return 0;
>  }
>
> -
>  static void initiate_keyboard(struct keyboard_state *keyboard)
>  {
>         keyboard->value[0] = 0xa1;
> @@ -459,8 +456,6 @@ static DBusMessage *send_report(GIOChannel *chan,
>         return NULL;
>  }
>
> -
> -
>  static DBusMessage *keyboard_event(GIOChannel *chan, DBusMessage *msg,
>                                         struct keyboard_state *keyboard,
>                                         unsigned char code,
> @@ -502,8 +497,6 @@ static DBusMessage *keyboard_event(GIOChannel
> *chan, DBusMessage *msg,
>         return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
>  }
>
> -
> -
>  static DBusMessage *send_event(DBusConnection *conn,
>                 DBusMessage *msg, void *data)
>  {
> @@ -573,7 +566,6 @@ static gboolean set_protocol_listener(GIOChannel
> *chan, GIOCondition condition,
>         return TRUE;
>  }
>
> -
>  static gboolean channel_listener(GIOChannel *chan, GIOCondition condition,
>                                         gpointer data)
>  {
> @@ -596,7 +588,6 @@ static gboolean channel_listener(GIOChannel *chan,
> GIOCondition condition,
>         return FALSE;
>  }
>
> -
>  static void interrupt_connect_cb(GIOChannel *chan, GError *conn_err,
>                                         void *data)
>  {
> @@ -648,8 +639,6 @@ failed:
>         }
>  }
>
> -
> -
>  static void control_connect_cb(GIOChannel *chan, GError *conn_err,
>                                         void *data)
>  {
> @@ -691,16 +680,88 @@ failed:
>         dev->ctrl = NULL;
>  }
>
> -
>  static DBusMessage *reconnect_device(DBusConnection *conn, DBusMessage *msg,
>                                         gpointer data)
>  {
> +       GError *err = NULL;
> +       GIOChannel *io;
> +       bdaddr_t src;
> +       struct adapter_data *adapt = data;
> +       struct device_data *dev = adapt->dev;
> +       struct user_data *info;
> +
> +       if (adapt->pending)
> +               return btd_error_in_progress(msg);
> +
> +       if (dev->intr != NULL)
> +               return btd_error_already_connected(msg);
> +
> +       info = g_try_new(struct user_data, 1);
> +       if (info == NULL)
> +               return btd_error_failed(msg, strerror(-ENOMEM));
> +
> +       info->adapt = adapt;
> +       info->func = NULL;
> +
> +       adapter_get_address(adapt->adapter, &src);
> +
> +       io = bt_io_connect(BT_IO_L2CAP, control_connect_cb, info,
> +                               NULL, &err,
> +                               BT_IO_OPT_SOURCE_BDADDR, &src,
> +                               BT_IO_OPT_DEST_BDADDR, &(dev->dst),
> +                               BT_IO_OPT_PSM, L2CAP_PSM_HIDP_CTRL,
> +                               BT_IO_OPT_INVALID);
> +
> +       /* TODO: treat plug failed even with errors from cb */
> +       if (err != NULL)
> +               error("%s", err->message);
> +
> +       if (io == NULL) {
> +               if (info != NULL)
> +                       g_free(info);
> +
> +               return btd_error_failed(msg, "Failed to plug the device");
> +       }
> +
> +       dev->ctrl = io;
> +       return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
>  }
>
>
>  static DBusMessage *disconnect_device(DBusConnection *conn, DBusMessage *msg,
>                                         gpointer data)
>  {
> +       struct adapter_data *adapt = data;
> +       struct device_data *dev = adapt->dev;
> +
> +       if (dev->intr != NULL) {
> +               g_io_channel_shutdown(dev->intr, TRUE, NULL);
> +               g_io_channel_unref(dev->intr);
> +               dev->intr = NULL;
> +
> +               g_source_remove(dev->intr_watch);
> +       }
> +
> +       if (dev->ctrl != NULL) {
> +               g_io_channel_shutdown(dev->ctrl, TRUE, NULL);
> +               g_io_channel_unref(dev->ctrl);
> +               dev->ctrl = NULL;
> +       }
> +
> +       g_dbus_unregister_interface(conn, dev->input_path,
> +                                       GENERIC_INPUT_DEVICE);
> +
> +       if (dev->input_path != NULL) {
> +               g_free(dev->input_path);
> +               dev->input_path = NULL;
> +       }
> +
> +       g_dbus_emit_signal(connection, adapter_get_path(adapt->adapter),
> +                               GENERIC_HID_INTERFACE, "DeviceReleased",
> +                               DBUS_TYPE_INVALID);
> +
> +       return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
> +
>  }
>
>  static const GDBusSignalTable ghid_input_device_signals[] = {
> @@ -716,7 +777,6 @@ static const GDBusMethodTable
> ghid_input_device_methods[] = {
>         {}
>  };
>
> -
>  static void generic_input_device_path(char *path, struct btd_adapter *adapter)
>  {
>         char *adapt;
> @@ -826,20 +886,17 @@ static DBusMessage
> *connect_device(DBusConnection *conn, DBusMessage *msg,
>
>  }
>
> -
>  static const GDBusSignalTable ghid_adapter_signals[] = {
>         { GDBUS_SIGNAL("IncomingConnection", NULL) },
>         { GDBUS_SIGNAL("DeviceReleased", NULL) },
>         { }
>  };
>
> -
>  static const GDBusMethodTable ghid_adapter_methods[] = {
>         { GDBUS_METHOD("Connect", GDBUS_ARGS({"path", "s"}), NULL, connect_device) },
>         { }
>  };
>
> -
>  static void register_interface(const char *path, struct adapter_data *adapt)
>  {
>         if (g_dbus_register_interface(connection, path, GENERIC_HID_INTERFACE,
> @@ -854,7 +911,6 @@ static void register_interface(const char *path,
> struct adapter_data *adapt)
>
>  }
>
> -
>  static void unregister_interface(const char *path)
>  {
>         btd_debug("path %s", path);
> @@ -862,7 +918,6 @@ static void unregister_interface(const char *path)
>         g_dbus_unregister_interface(connection, path, GENERIC_HID_INTERFACE);
>  }
>
> -
>  static void connect_cb(GIOChannel *chan, GError *err, gpointer data)
>  {
>         uint16_t psm;
> @@ -935,7 +990,6 @@ failed:
>         }
>  }
>
> -
>  static void confirm_event_cb(GIOChannel *chan, GError *err, gpointer data)
>  {
>         uint16_t psm;
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux