2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 using System.Runtime.InteropServices;
20 internal static partial class Interop
23 [DllImport(Libraries.Usb, EntryPoint = "usb_host_claim_interface")]
24 internal static extern ErrorCode ClaimInterface(this UsbInterfaceHandle /* usb_host_interface_h */ usbInterface, bool force);
26 [DllImport(Libraries.Usb, EntryPoint = "usb_host_release_interface")]
27 internal static extern ErrorCode ReleaseInterface(this UsbInterfaceHandle /* usb_host_interface_h */ usbInterface);
29 [DllImport(Libraries.Usb, EntryPoint = "usb_host_interface_get_number")]
30 internal static extern ErrorCode GetNumber(this UsbInterfaceHandle /* usb_host_interface_h */ usbInterface, out int number);
32 [DllImport(Libraries.Usb, EntryPoint = "usb_host_interface_get_num_endpoints")]
33 internal static extern ErrorCode GetNumEndpoints(this UsbInterfaceHandle /* usb_host_interface_h */ usbInterface, out int numEndpoints);
35 [DllImport(Libraries.Usb, EntryPoint = "usb_host_interface_get_endpoint")]
36 internal static extern ErrorCode GetEndpoint(this UsbInterfaceHandle /* usb_host_interface_h */ usbInterface, int epIndex, out UsbEndpointHandle /* usb_host_endpoint_h */ ep);
38 [DllImport(Libraries.Usb, EntryPoint = "usb_host_interface_set_altsetting")]
39 internal static extern ErrorCode SetAltsetting(this UsbInterfaceHandle /* usb_host_interface_h */ usbInterface, int altsetting);
41 [DllImport(Libraries.Usb, EntryPoint = "usb_host_interface_get_str")]
42 internal static extern ErrorCode GetStr(this UsbInterfaceHandle /* usb_host_interface_h */ usbInterface, ref int length, byte[] data);
45 internal class UsbInterfaceHandle
47 private IntPtr _handle;
48 public UsbInterfaceHandle(IntPtr handle) { _handle = handle; }