Release 4.0.0-preview1-00051
[platform/core/csapi/tizenfx.git] / src / Tizen.Network.Mtp / Interop / Interop.Mtp.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     internal static partial class Mtp
23     {
24         //Callback for event
25         //mtp_event_cb
26         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
27         internal delegate void MptStateChangedCallback(int eventType, int eventParameter, IntPtr userData);
28
29         //capi-network-mtp-1.3.16-2.3.armv7l.rpm
30         ////Mtp Manager
31         [DllImport(Libraries.Mtp, EntryPoint = "mtp_initialize")]
32         internal static extern int Initialize();
33         [DllImport(Libraries.Mtp, EntryPoint = "mtp_deinitialize")]
34         internal static extern int Deinitialize();
35         [DllImport(Libraries.Mtp, EntryPoint = "mtp_get_devices")]
36         internal static extern int GetDevices(out IntPtr devices, out int count);
37         [DllImport(Libraries.Mtp, EntryPoint = "mtp_get_storages")]
38         internal static extern int GetStorages(int device, out IntPtr storages, out int count);
39         [DllImport(Libraries.Mtp, EntryPoint = "mtp_get_object_handles")]
40         internal static extern int GetObjectHandles(int device, int storage, int fileType, int parentHandle, out IntPtr objectHandle, out int count);
41         [DllImport(Libraries.Mtp, EntryPoint = "mtp_get_object")]
42         internal static extern bool GetObject(int device, int objectHandle, string fileDestinationPath);
43         [DllImport(Libraries.Mtp, EntryPoint = "mtp_get_thumbnail")]
44         internal static extern int getThumbnail(int device, int objectHandle, string fileDestinationPath);
45
46         [DllImport(Libraries.Mtp, EntryPoint = "mtp_add_mtp_event_cb")]
47         internal static extern int AddMtpStateChangedCallback(MptStateChangedCallback callback, IntPtr userData);
48         [DllImport(Libraries.Mtp, EntryPoint = "mtp_remove_mtp_event_cb")]
49         internal static extern int RemoveMtpStateChangedCallback(MptStateChangedCallback callback);
50
51         internal static class DeviceInfomation
52         {
53             [DllImport(Libraries.Mtp, EntryPoint = "mtp_deviceinfo_get_manufacturer_name")]
54             internal static extern int GetManufacturerName(int device, out IntPtr manufacturerName);
55             [DllImport(Libraries.Mtp, EntryPoint = "mtp_deviceinfo_get_model_name")]
56             internal static extern int GetModelName(int device, out IntPtr modelName);
57             [DllImport(Libraries.Mtp, EntryPoint = "mtp_deviceinfo_get_serial_number")]
58             internal static extern int GetSerialNumber(int device, out IntPtr serialNumber);
59             [DllImport(Libraries.Mtp, EntryPoint = "mtp_deviceinfo_get_device_version")]
60             internal static extern int GetDeviceVersion(int device, out IntPtr deviceVersion);
61         }
62
63         internal static class StorageInformation
64         {
65             [DllImport(Libraries.Mtp, EntryPoint = "mtp_storageinfo_get_description")]
66             internal static extern int GetDescription(int device, int storage, out IntPtr description);
67             [DllImport(Libraries.Mtp, EntryPoint = "mtp_storageinfo_get_free_space")]
68             internal static extern int GetFreeSpace(int device, int storage, out UInt64 freeSpace);
69             [DllImport(Libraries.Mtp, EntryPoint = "mtp_storageinfo_get_max_capacity")]
70             internal static extern int GetMaxCapacity(int device, int storage, out UInt64 maxCapacity);
71             [DllImport(Libraries.Mtp, EntryPoint = "mtp_storageinfo_get_storage_type")]
72             internal static extern int GetStorageType(int device, int storage, out int storageType);
73             [DllImport(Libraries.Mtp, EntryPoint = "mtp_storageinfo_get_volume_identifier")]
74             internal static extern int GetVolumeIdentifier(int device, int storage, out IntPtr volumeIdentifier);
75         }
76
77         internal static class ObjectInformation
78         {
79             [DllImport(Libraries.Mtp, EntryPoint = "mtp_objectinfo_get_file_name")]
80             internal static extern int GetFileName(int device, int objectHandle, out IntPtr fileName);
81             [DllImport(Libraries.Mtp, EntryPoint = "mtp_objectinfo_get_keywords")]
82             internal static extern int GetKeywords(int device, int objectHandle, out IntPtr keyWords);
83             [DllImport(Libraries.Mtp, EntryPoint = "mtp_objectinfo_get_association_desc")]
84             internal static extern int GetAssociationDescription(int device, int objectHandle, out int associationDescription);
85             [DllImport(Libraries.Mtp, EntryPoint = "mtp_objectinfo_get_association_type")]
86             internal static extern int GetAssociationType(int device, int objectHandle, out int associationType);
87             [DllImport(Libraries.Mtp, EntryPoint = "mtp_objectinfo_get_size")]
88             internal static extern int GetSize(int device, int objectHandle, out int size);
89             [DllImport(Libraries.Mtp, EntryPoint = "mtp_objectinfo_get_parent_object_handle")]
90             internal static extern int GetParentObjectHandle(int device, int objectHandle, out int parentObjectHandle);
91             [DllImport(Libraries.Mtp, EntryPoint = "mtp_objectinfo_get_storage")]
92             internal static extern int GetStorage(int device, int objectHandle, out int stroage);
93             [DllImport(Libraries.Mtp, EntryPoint = "mtp_objectinfo_get_date_created")]
94             internal static extern int GetDateCreated(int device, int objectHandle, out int dateCreated);
95             [DllImport(Libraries.Mtp, EntryPoint = "mtp_objectinfo_get_date_modified")]
96             internal static extern int GetDateModified(int device, int objectHandle, out int dateModified);
97             [DllImport(Libraries.Mtp, EntryPoint = "mtp_objectinfo_get_file_type")]
98             internal static extern int GetFileType(int device, int objectHandle, out int fileType);
99             [DllImport(Libraries.Mtp, EntryPoint = "mtp_objectinfo_get_image_bit_depth")]
100             internal static extern int GetImageBitDepth(int device, int objectHandle, out int depth);
101             [DllImport(Libraries.Mtp, EntryPoint = "mtp_objectinfo_get_image_pix_width")]
102             internal static extern int GetImagePixWidth(int device, int objectHandle, out int width);
103             [DllImport(Libraries.Mtp, EntryPoint = "mtp_objectinfo_get_image_pix_height")]
104             internal static extern int GetImagePixHeight(int device, int objectHandle, out int height);
105             [DllImport(Libraries.Mtp, EntryPoint = "mtp_objectinfo_get_thumbnail_size")]
106             internal static extern int GetThumbnailSize(int device, int objectHandle, out int size);
107             [DllImport(Libraries.Mtp, EntryPoint = "mtp_objectinfo_get_thumbnail_file_type")]
108             internal static extern int GetThumbnailFileType(int device, int objectHandle, out int fileType);
109             [DllImport(Libraries.Mtp, EntryPoint = "mtp_objectinfo_get_thumbnail_pix_height")]
110             internal static extern int GetThumbnailPixHeight(int device, int objectHandle, out int height);
111             [DllImport(Libraries.Mtp, EntryPoint = "mtp_objectinfo_get_thumbnail_pix_width")]
112             internal static extern int GetThumbnailPixWidth(int device, int objectHandle, out int width);
113         }
114
115     }
116 }