libusb_set_interface_alt_setting()做了什么?

时间:2013-07-09 11:09:54

标签: c libusb-1.0

libusb提供了libusb_set_interface_alt_setting()方法,用于为接口提供备用设置。我的问题是为接口设置备用设置的含义是什么。

if ((ret = libusb_claim_interface(handle, interface))  == LIBUSB_SUCCESS)
       {
           printf("%s: interface %d claimed.\n", __FUNCTION__, interface);

           /* Set alternate interface */
           if ((ret = libusb_set_interface_alt_setting(handle, interface, alternate)) == LIBUSB_SUCCESS)
           {
              printf("%s: alternate interface %d set.\n", __FUNCTION__, alternate);
              return CIMAX_USB_NO_ERROR;
           }
           else
             printf("%s: setting alternate interface %d failed (%s)!\n", __FUNCTION__, alternate, libusb_error_name(ret));
        }
        else
          printf("%s: claim interface %d failed (%s)!\n", __FUNCTION__, interface, libusb_error_name(ret));

2 个答案:

答案 0 :(得分:0)

备用界面设置适用于多功能设备。要使用特定功能或界面,您需要选择界面和相关的备用设置。

例如,摄像机需要初始化两个接口设置,一个用于音频,另一个用于视频。

答案 1 :(得分:0)

USB设备支持单个设备中的多个接口。此API根据功能用户空间应用程序的要求设置当前接口的活动备用设置。在内部,它使用IOCTL_USB_SETINTF将应用程序的需求传达给Linux USB主机框架的usbcore模块。