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
22 internal static partial class Mtp
26 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
27 internal delegate void MptStateChangedCallback(int eventType, int eventParameter, IntPtr userData);
29 //capi-network-mtp-1.3.16-2.3.armv7l.rpm
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);
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);
51 internal static class DeviceInfomation
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);
63 internal static class StorageInformation
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);
77 internal static class ObjectInformation
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);