Home | History | Annotate | Download | only in hw

Lines Matching defs:hid

2  * QEMU Bluetooth HID Profile wrapper for USB HID.
77 /* HID interface requests */
383 struct bt_hid_device_s *hid = opaque;
385 bt_hid_control_transaction(hid, data, len);
390 struct bt_hid_device_s *hid = opaque;
395 if (hid->state == bt_state_suspend) {
396 hid->state = bt_state_ready;
399 if (bt_hid_in(hid) > 0)
402 bt_hid_send_data(hid->interrupt, BT_DATA_INPUT,
403 hid->datain.buffer, hid->datain.len);
408 struct bt_hid_device_s *hid = opaque;
415 if (hid->intr_state)
418 hid->data_type = BT_DATA_OUTPUT;
419 hid->intrdataout.len = 0;
421 if (!hid->intr_state)
426 memcpy(hid->intrdataout.buffer + hid->intrdataout.len, data + 1, len - 1);
427 hid->intrdataout.len += len - 1;
428 hid->intr_state = (len == BT_HID_MTU);
429 if (!hid->intr_state) {
430 memcpy(hid->dataout.buffer, hid->intrdataout.buffer,
431 hid->dataout.len = hid->intrdataout.len);
432 bt_hid_out(hid);
442 static void bt_hid_connected_update(struct bt_hid_device_s *hid)
444 int prev = hid->connected;
446 hid->connected = hid->control && hid->interrupt;
449 hid->btdev.device.page_scan = !hid->connected;
450 hid->btdev.device.inquiry_scan = !hid->connected;
452 if (hid->connected && !prev) {
453 hid->usbdev->handle_reset(hid->usbdev);
454 hid->proto = BT_HID_PROTO_REPORT;
463 struct bt_hid_device_s *hid = opaque;
465 hid->control = NULL;
466 bt_hid_connected_update(hid);
471 struct bt_hid_device_s *hid = opaque;
473 hid->interrupt = NULL;
474 bt_hid_connected_update(hid);
480 struct bt_hid_device_s *hid = (struct bt_hid_device_s *) dev;
482 if (hid->control)
485 hid->control = params;
486 hid->control->opaque = hid;
487 hid->control->close = bt_hid_close_control;
488 hid->control->sdu_in = bt_hid_control_sdu;
490 bt_hid_connected_update(hid);
498 struct bt_hid_device_s *hid = (struct bt_hid_device_s *) dev;
500 if (hid->interrupt)
503 hid->interrupt = params;
504 hid->interrupt->opaque = hid;
505 hid->interrupt->close = bt_hid_close_interrupt;
506 hid->interrupt->sdu_in = bt_hid_interrupt_sdu;
508 bt_hid_connected_update(hid);
515 struct bt_hid_device_s *hid = (struct bt_hid_device_s *) dev;
517 if (hid->connected)
518 bt_hid_send_control(hid, BT_HC_VIRTUAL_CABLE_UNPLUG);
519 bt_l2cap_device_done(&hid->btdev);
521 hid->usbdev->handle_destroy(hid->usbdev);
523 qemu_free(hid);