summaryrefslogtreecommitdiff
path: root/usbredirtestclient/usbredirtestclient.c
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2011-07-13 14:48:56 +0200
committerHans de Goede <hdegoede@redhat.com>2011-07-13 14:48:56 +0200
commitd80e30cdd7f6aa44f93488e0578510a19ba7ad52 (patch)
tree155f30bd166d87d225f52c35c6ee96101990d9f1 /usbredirtestclient/usbredirtestclient.c
parenta794dd7cef57f1b372fce755fc0463d99ceeb2c0 (diff)
Add device / interface class info
And add a new usb_redir_interface_info packet type which contains the interface info.
Diffstat (limited to 'usbredirtestclient/usbredirtestclient.c')
-rw-r--r--usbredirtestclient/usbredirtestclient.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/usbredirtestclient/usbredirtestclient.c b/usbredirtestclient/usbredirtestclient.c
index 1929469..a124a8a 100644
--- a/usbredirtestclient/usbredirtestclient.c
+++ b/usbredirtestclient/usbredirtestclient.c
@@ -46,6 +46,8 @@
static void usbredirtestclient_device_connect(void *priv,
struct usb_redir_device_connect_header *device_connect);
static void usbredirtestclient_device_disconnect(void *priv);
+static void usbredirtestclient_interface_info(void *priv,
+ struct usb_redir_interface_info_header *interface_info);
static void usbredirtestclient_ep_info(void *priv,
struct usb_redir_ep_info_header *ep_info);
static void usbredirtestclient_configuration_status(void *priv, uint32_t id,
@@ -272,6 +274,7 @@ int main(int argc, char *argv[])
parser->write_func = usbredirtestclient_write;
parser->device_connect_func = usbredirtestclient_device_connect;
parser->device_disconnect_func = usbredirtestclient_device_disconnect;
+ parser->interface_info_func = usbredirtestclient_interface_info;
parser->ep_info_func = usbredirtestclient_ep_info;
parser->configuration_status_func = usbredirtestclient_configuration_status;
parser->alt_setting_status_func = usbredirtestclient_alt_setting_status;
@@ -439,6 +442,11 @@ static void usbredirtestclient_device_connect(void *priv,
default:
printf("device info: speed: unknown\n");
}
+ printf(" class %2d subclass %2d protocol %2d\n",
+ device_connect->device_class, device_connect->device_subclass,
+ device_connect->device_protocol);
+ printf(" vendor 0x%04x product %04x\n",
+ device_connect->vendor_id, device_connect->product_id);
}
static void usbredirtestclient_device_disconnect(void *priv)
@@ -448,6 +456,18 @@ static void usbredirtestclient_device_disconnect(void *priv)
client_fd = -1;
}
+static void usbredirtestclient_interface_info(void *priv,
+ struct usb_redir_interface_info_header *info)
+{
+ int i;
+
+ for (i = 0; i < info->interface_count; i++) {
+ printf("interface %d class %2d subclass %2d protocol %2d\n",
+ info->interface[i], info->interface_class[i],
+ info->interface_subclass[i], info->interface_protocol[i]);
+ }
+}
+
static void usbredirtestclient_ep_info(void *priv,
struct usb_redir_ep_info_header *ep_info)
{