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