[MediaContent] Removed members in MediaInfo classes which are deprecated in Native.
[platform/core/csapi/tizenfx.git] / src / Tizen.Content.MediaContent / Interop / Interop.MediaInfo.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 using Tizen.Content.MediaContent;
20
21 internal static partial class Interop
22 {
23     internal static partial class MediaInfo
24     {
25         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
26         internal delegate void ThumbnailCompletedCallback(MediaContentError error, string filePath, IntPtr userData);
27
28         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
29         internal delegate void FaceDetectionCompletedCallback(MediaContentError error, int count, IntPtr userData);
30
31         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
32         internal delegate void InsertCompletedCallback(MediaContentError error, IntPtr userData);
33
34         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_insert_to_db")]
35         internal static extern MediaContentError Insert(string filePath, out MediaInfoHandle info);
36
37         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_insert_batch_to_db")]
38         internal static extern MediaContentError BatchInsert(string[] filePathArray, int arrayLength,
39             InsertCompletedCallback callback, IntPtr userData = default(IntPtr));
40
41         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_delete_from_db")]
42         internal static extern MediaContentError Delete(string mediaId);
43
44         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_destroy")]
45         internal static extern MediaContentError Destroy(IntPtr handle);
46
47         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_media_count_from_db")]
48         internal static extern MediaContentError GetMediaCount(FilterHandle filter, out int mediaCount);
49
50         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_foreach_media_from_db")]
51         internal static extern MediaContentError ForeachMedia(FilterHandle filter, Common.ItemCallback callback,
52             IntPtr userData = default(IntPtr));
53
54         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_tag_count_from_db")]
55         internal static extern MediaContentError GetTagCount(string mediaId, FilterHandle filter, out int tagCount);
56
57         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_foreach_tag_from_db")]
58         internal static extern MediaContentError ForeachTags(string mediaId, FilterHandle filter,
59             Common.ItemCallback callback, IntPtr userData = default(IntPtr));
60
61         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_bookmark_count_from_db")]
62         internal static extern MediaContentError GetBookmarkCount(string mediaId, FilterHandle filter, out int bookmarkCount);
63
64         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_foreach_bookmark_from_db")]
65         internal static extern MediaContentError ForeachBookmarks(string mediaId, FilterHandle filter,
66             Common.ItemCallback callback, IntPtr userData = default(IntPtr));
67
68         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_face_count_from_db")]
69         internal static extern MediaContentError GetFaceCount(string mediaId, FilterHandle filter, out int bookmarkCount);
70
71         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_foreach_face_from_db")]
72         internal static extern MediaContentError ForeachFaces(string mediaId, FilterHandle filter,
73             Common.ItemCallback callback, IntPtr userData = default(IntPtr));
74
75         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_image")]
76         internal static extern MediaContentError GetImage(MediaInfoHandle handle, out IntPtr imageHandle);
77
78         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_video")]
79         internal static extern MediaContentError GetVideo(MediaInfoHandle handle, out IntPtr videoHandle);
80
81         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_audio")]
82         internal static extern MediaContentError GetAudio(MediaInfoHandle handle, out IntPtr audioHandle);
83
84         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_media_id")]
85         internal static extern MediaContentError GetMediaId(MediaInfoHandle mediaInformationHandle, out IntPtr mediaId);
86
87         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_file_path")]
88         internal static extern MediaContentError GetFilePath(MediaInfoHandle mediaInformationHandle, out IntPtr filePath);
89
90         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_display_name")]
91         internal static extern MediaContentError GetDisplayName(MediaInfoHandle mediaInformationHandle, out IntPtr name);
92
93         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_media_type")]
94         internal static extern MediaContentError GetMediaType(MediaInfoHandle mediaInformationHandle, out MediaType type);
95
96         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_mime_type")]
97         internal static extern MediaContentError GetMimeType(MediaInfoHandle mediaInformationHandle, out IntPtr mimeType);
98
99         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_size")]
100         internal static extern MediaContentError GetSize(MediaInfoHandle mediaInformationHandle, out long size);
101
102         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_added_time")]
103         internal static extern MediaContentError GetAddedTime(MediaInfoHandle handle, out IntPtr posixTime);
104
105         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_modified_time")]
106         internal static extern MediaContentError GetModifiedTime(MediaInfoHandle handle, out IntPtr posixTime);
107
108         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_timeline")]
109         internal static extern MediaContentError GetTimeline(MediaInfoHandle handle, out IntPtr posixTime);
110
111         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_thumbnail_path")]
112         internal static extern MediaContentError GetThumbnailPath(MediaInfoHandle mediaInformationHandle, out IntPtr filePath);
113
114         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_description")]
115         internal static extern MediaContentError GetDescription(MediaInfoHandle mediaInformationHandle, out IntPtr description);
116
117         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_longitude")]
118         internal static extern MediaContentError GetLongitude(MediaInfoHandle mediaInformationHandle, out double longitude);
119
120         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_latitude")]
121         internal static extern MediaContentError GetLatitude(MediaInfoHandle mediaInformationHandle, out double latitude);
122
123         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_altitude")]
124         internal static extern MediaContentError GetAltitude(MediaInfoHandle mediaInformationHandle, out double altitude);
125
126         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_rating")]
127         internal static extern MediaContentError GetRating(MediaInfoHandle mediaInformationHandle, out int rating);
128
129         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_favorite")]
130         internal static extern MediaContentError GetFavorite(MediaInfoHandle mediaInformationHandle, out bool favorite);
131
132         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_title")]
133         internal static extern MediaContentError GetTitle(MediaInfoHandle mediaInformationHandle, out IntPtr title);
134
135         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_storage_id")]
136         internal static extern MediaContentError GetStorageId(MediaInfoHandle mediaInformationHandle, out IntPtr storageId);
137
138         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_is_drm")]
139         internal static extern MediaContentError IsDrm(MediaInfoHandle mediaInformationHandle, out bool isDrm);
140
141         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_storage_type")]
142         internal static extern MediaContentError GetStorageType(MediaInfoHandle mediaInformationHandle, out StorageType storageType);
143
144         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_get_media_from_db")]
145         internal static extern MediaContentError GetMediaFromDB(string mediaId, out MediaInfoHandle handle);
146
147         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_set_favorite")]
148         internal static extern MediaContentError SetFavorite(MediaInfoHandle mediaInformationHandle, bool favorite);
149
150         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_update_to_db")]
151         internal static extern MediaContentError UpdateToDB(MediaInfoHandle mediaInformationHandle);
152
153         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_move_to_db")]
154         internal static extern MediaContentError MoveToDB(MediaInfoHandle mediaInformationHandle, string dstPath);
155
156         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_create_thumbnail")]
157         internal static extern MediaContentError CreateThumbnail(MediaInfoHandle handle,
158             ThumbnailCompletedCallback callback, IntPtr userData = default(IntPtr));
159
160         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_cancel_thumbnail")]
161         internal static extern MediaContentError CancelThumbnail(MediaInfoHandle mediaInformationHandle);
162
163         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_start_face_detection")]
164         internal static extern MediaContentError StartFaceDetection(MediaInfoHandle handle,
165             FaceDetectionCompletedCallback callback, IntPtr userData = default(IntPtr));
166
167         [DllImport(Libraries.MediaContent, EntryPoint = "media_info_cancel_face_detection")]
168         internal static extern MediaContentError CancelFaceDetection(MediaInfoHandle handle);
169     }
170
171     internal sealed class MediaInfoHandle : SafeHandle
172     {
173         public MediaInfoHandle()
174             : base(IntPtr.Zero, true)
175         {
176         }
177
178         public MediaInfoHandle(IntPtr handle)
179             : this()
180         {
181             SetHandle(handle);
182         }
183
184         public override bool IsInvalid
185         {
186             get { return handle == IntPtr.Zero; }
187         }
188
189         protected override bool ReleaseHandle()
190         {
191             MediaInfo.Destroy(handle);
192             return true;
193         }
194     }
195 }