Home | History | Annotate | Download | only in input

Lines Matching refs:iconn

110 		struct input_conn *iconn = list->data;
112 if (!strcasecmp(iconn->uuid, pattern))
113 return iconn;
115 if (!strcasecmp(iconn->alias, pattern))
116 return iconn;
122 static void input_conn_free(struct input_conn *iconn)
124 if (iconn->pending_connect)
125 dbus_message_unref(iconn->pending_connect);
127 if (iconn->ctrl_watch)
128 g_source_remove(iconn->ctrl_watch);
130 if (iconn->intr_watch)
131 g_source_remove(iconn->intr_watch);
133 if (iconn->intr_io)
134 g_io_channel_unref(iconn->intr_io);
136 if (iconn->ctrl_io)
137 g_io_channel_unref(iconn->ctrl_io);
139 g_free(iconn->uuid);
140 g_free(iconn->alias);
141 g_free(iconn->fake);
142 g_free(iconn);
319 struct input_conn *iconn = user_data;
320 struct input_device *idev = iconn->idev;
321 struct fake_input *fake = iconn->fake;
325 reply = btd_error_failed(iconn->pending_connect, err->message);
338 reply = btd_error_failed(iconn->pending_connect,
349 reply = dbus_message_new_method_return(iconn->pending_connect);
352 dbus_message_unref(iconn->pending_connect);
353 iconn->pending_connect = NULL;
359 dbus_message_unref(iconn->pending_connect);
360 iconn->pending_connect = NULL;
363 static gboolean rfcomm_connect(struct input_conn *iconn, GError **err)
365 struct input_device *idev = iconn->idev;
368 io = bt_io_connect(BT_IO_RFCOMM, rfcomm_connect_cb, iconn,
384 struct input_conn *iconn = data;
385 struct input_device *idev = iconn->idev;
391 if ((cond & (G_IO_HUP | G_IO_ERR)) && iconn->ctrl_watch)
400 iconn->intr_watch = 0;
402 g_io_channel_unref(iconn->intr_io);
403 iconn->intr_io = NULL;
406 if (iconn->ctrl_io && !(cond & G_IO_NVAL))
407 g_io_channel_shutdown(iconn->ctrl_io, TRUE, NULL);
414 struct input_conn *iconn = data;
419 if ((cond & (G_IO_HUP | G_IO_ERR)) && iconn->intr_watch)
422 iconn->ctrl_watch = 0;
424 g_io_channel_unref(iconn->ctrl_io);
425 iconn->ctrl_io = NULL;
428 if (iconn->intr_io && !(cond & G_IO_NVAL))
429 g_io_channel_shutdown(iconn->intr_io, TRUE, NULL);
434 static gboolean fake_hid_connect(struct input_conn *iconn, GError **err)
436 struct fake_hid *fhid = iconn->fake->priv;
438 return fhid->connect(iconn->fake, err);
441 static int fake_hid_disconnect(struct input_conn *iconn)
443 struct fake_hid *fhid = iconn->fake->priv;
445 return fhid->disconnect(iconn->fake);
573 const struct input_conn *iconn)
583 req->ctrl_sock = g_io_channel_unix_get_fd(iconn->ctrl_io);
584 req->intr_sock = g_io_channel_unix_get_fd(iconn->intr_io);
586 req->idle_to = iconn->timeout;
612 fake = fake_hid_connadd(fake, iconn->intr_io, fake_hid);
647 static int is_connected(struct input_conn *iconn)
649 struct input_device *idev = iconn->idev;
650 struct fake_input *fake = iconn->fake;
678 static int connection_disconnect(struct input_conn *iconn, uint32_t flags)
680 struct input_device *idev = iconn->idev;
681 struct fake_input *fake = iconn->fake;
688 err = fake->disconnect(iconn);
695 if (iconn->intr_io)
696 g_io_channel_shutdown(iconn->intr_io, TRUE, NULL);
697 if (iconn->ctrl_io)
698 g_io_channel_shutdown(iconn->ctrl_io, TRUE, NULL);
737 struct input_conn *iconn = NULL;
741 iconn = l->data;
743 if (is_connected(iconn))
747 if (!iconn)
750 return connection_disconnect(iconn, flags);
767 struct input_conn *iconn)
772 if (iconn->intr_io == NULL || iconn->ctrl_io == NULL)
775 err = hidp_add_connection(idev, iconn);
779 iconn->intr_watch = g_io_add_watch(iconn->intr_io,
781 intr_watch_cb, iconn);
782 iconn->ctrl_watch = g_io_add_watch(iconn->ctrl_io,
784 ctrl_watch_cb, iconn);
799 struct input_conn *iconn = user_data;
800 struct input_device *idev = iconn->idev;
810 err = input_device_connected(idev, iconn);
817 g_dbus_send_reply(idev->conn, iconn->pending_connect, DBUS_TYPE_INVALID);
819 dbus_message_unref(iconn->pending_connect);
820 iconn->pending_connect = NULL;
826 reply = btd_error_failed(iconn->pending_connect, err_msg);
833 g_io_channel_shutdown(iconn->intr_io, FALSE, NULL);
835 g_io_channel_unref(iconn->intr_io);
836 iconn->intr_io = NULL;
838 if (iconn->ctrl_io) {
839 g_io_channel_unref(iconn->ctrl_io);
840 iconn->ctrl_io = NULL;
847 struct input_conn *iconn = user_data;
848 struct input_device *idev = iconn->idev;
855 reply = btd_error_failed(iconn->pending_connect,
861 io = bt_io_connect(BT_IO_L2CAP, interrupt_connect_cb, iconn,
871 reply = btd_error_failed(iconn->pending_connect,
877 iconn->intr_io = io;
882 g_io_channel_unref(iconn->ctrl_io);
883 iconn->ctrl_io = NULL;
885 dbus_message_unref(iconn->pending_connect);
886 iconn->pending_connect = NULL;
889 static int fake_disconnect(struct input_conn *iconn)
891 struct fake_input *fake = iconn->fake;
916 struct input_conn *iconn;
921 iconn = find_connection(idev->connections, "HID");
922 if (!iconn)
925 if (iconn->pending_connect)
928 if (is_connected(iconn))
931 iconn->pending_connect = dbus_message_ref(msg);
932 fake = iconn->fake;
936 if (fake->connect(iconn, &err))
942 io = bt_io_connect(BT_IO_L2CAP, control_connect_cb, iconn,
950 iconn->ctrl_io = io;
957 dbus_message_unref(iconn->pending_connect);
958 iconn->pending_connect = NULL;
990 struct input_conn *iconn = a;
992 return !is_connected(iconn);
1078 struct input_conn *iconn;
1080 iconn = g_new0(struct input_conn, 1);
1081 iconn->timeout = timeout;
1082 iconn->uuid = g_strdup(uuid);
1083 iconn->alias = g_strdup(alias);
1084 iconn->idev = idev;
1086 return iconn;
1095 struct input_conn *iconn;
1105 iconn = input_conn_new(idev, uuid, "hid", timeout);
1106 if (!iconn)
1109 idev->connections = g_slist_append(idev->connections, iconn);
1119 struct input_conn *iconn;
1129 iconn = input_conn_new(idev, uuid, "hsp", 0);
1130 if (!iconn)
1133 iconn->fake = g_new0(struct fake_input, 1);
1134 iconn->fake->ch = channel;
1135 iconn->fake->connect = rfcomm_connect;
1136 iconn->fake->disconnect = fake_disconnect;
1138 idev->connections = g_slist_append(idev->connections, iconn);
1161 struct input_conn *iconn;
1167 iconn = find_connection(idev->connections, uuid);
1168 if (iconn == NULL)
1171 if (iconn->pending_connect) {
1176 idev->connections = g_slist_remove(idev->connections, iconn);
1177 input_conn_free(iconn);
1187 struct input_conn *iconn)
1191 err = input_device_connected(idev, iconn);
1198 if (iconn->ctrl_io) {
1199 g_io_channel_shutdown(iconn->ctrl_io, FALSE, NULL);
1200 g_io_channel_unref(iconn->ctrl_io);
1201 iconn->ctrl_io = NULL;
1203 if (iconn->intr_io) {
1204 g_io_channel_shutdown(iconn->intr_io, FALSE, NULL);
1205 g_io_channel_unref(iconn->intr_io);
1206 iconn->intr_io = NULL;
1216 struct input_conn *iconn;
1221 iconn = find_connection(idev->connections, "hid");
1222 if (!iconn)
1227 if (iconn->ctrl_io)
1229 iconn->ctrl_io = g_io_channel_ref(io);
1232 if (iconn->intr_io)
1234 iconn->intr_io = g_io_channel_ref(io);
1238 if (iconn->intr_io && iconn->ctrl_io)
1239 input_device_connadd(idev, iconn);
1247 struct input_conn *iconn;
1252 iconn = find_connection(idev->connections, "hid");
1253 if (!iconn)
1256 if (iconn->intr_io)
1257 g_io_channel_shutdown(iconn->intr_io, TRUE, NULL);
1259 if (iconn->ctrl_io)
1260 g_io_channel_shutdown(iconn->ctrl_io, TRUE, NULL);