[TCSACR-93] Add USB Host C# API
[platform/core/csapi/tizenfx.git] / src / Tizen.System.Usb / Interop / Interop.Interface.cs
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16
17 using System;
18 using System.Runtime.InteropServices;
19
20 internal static partial class Interop
21 {
22
23     [DllImport(Libraries.Usb, EntryPoint = "usb_host_claim_interface")]
24     internal static extern ErrorCode ClaimInterface(this UsbInterfaceHandle /* usb_host_interface_h */ usbInterface, bool force);
25
26     [DllImport(Libraries.Usb, EntryPoint = "usb_host_release_interface")]
27     internal static extern ErrorCode ReleaseInterface(this UsbInterfaceHandle /* usb_host_interface_h */ usbInterface);
28
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);
31
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);
34
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);
37
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);
40
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);
43
44
45     internal class UsbInterfaceHandle
46     {
47         private IntPtr _handle;
48         public UsbInterfaceHandle(IntPtr handle) { _handle = handle; }
49     }
50 }