Release 4.0.0-preview1-00051
[platform/core/csapi/tizenfx.git] / src / Tizen.Content.MediaContent / Interop / Interop.MediaPlaylist.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
18 using System;
19 using System.Runtime.InteropServices;
20 using Tizen.Content.MediaContent;
21
22 internal static partial class Interop
23 {
24     internal static partial class Playlist
25     {
26         [DllImport(Libraries.MediaContent, EntryPoint = "media_playlist_get_playlist_count_from_db")]
27         internal static extern MediaContentError GetPlaylistCountFromDb(IntPtr filter, out int playlist_count);
28
29         [DllImport(Libraries.MediaContent, EntryPoint = "media_playlist_get_media_count_from_db")]
30         internal static extern MediaContentError GetMediaCountFromDb(int playlist_id, IntPtr filter, out int media_count);
31
32         [DllImport(Libraries.MediaContent, EntryPoint = "media_playlist_insert_to_db")]
33         internal static extern MediaContentError InsertToDb(string name, out IntPtr playlist);
34
35         [DllImport(Libraries.MediaContent, EntryPoint = "media_playlist_delete_from_db")]
36         internal static extern MediaContentError DeleteFromDb(int playlist_id);
37
38         [DllImport(Libraries.MediaContent, EntryPoint = "media_playlist_get_playlist_from_db")]
39         internal static extern MediaContentError GetPlaylistFromDb(int playlist_id, out IntPtr playlist);
40
41         [DllImport(Libraries.MediaContent, EntryPoint = "media_playlist_destroy")]
42         internal static extern MediaContentError Destroy(IntPtr playlist);
43
44         [DllImport(Libraries.MediaContent, EntryPoint = "media_playlist_clone")]
45         internal static extern MediaContentError Clone(out IntPtr dst, IntPtr src);
46
47         [DllImport(Libraries.MediaContent, EntryPoint = "media_playlist_get_playlist_id")]
48         internal static extern MediaContentError GetPlaylistId(IntPtr playlist, out int playlist_id);
49
50         [DllImport(Libraries.MediaContent, EntryPoint = "media_playlist_get_name")]
51         internal static extern MediaContentError GetName(IntPtr playlist, out IntPtr playlist_name);
52
53         [DllImport(Libraries.MediaContent, EntryPoint = "media_playlist_set_name")]
54         internal static extern MediaContentError SetName(IntPtr playlist, string playlist_name);
55
56         [DllImport(Libraries.MediaContent, EntryPoint = "media_playlist_get_thumbnail_path")]
57         internal static extern MediaContentError GetThumbnailPath(IntPtr playlist, out IntPtr filePath);
58
59         [DllImport(Libraries.MediaContent, EntryPoint = "media_playlist_set_thumbnail_path")]
60         internal static extern MediaContentError SetThumbnailPath(IntPtr playlist, string filePath);
61
62         [DllImport(Libraries.MediaContent, EntryPoint = "media_playlist_set_play_order")]
63         internal static extern MediaContentError SetPlayOrder(IntPtr playlist, int playlist_member_id, int play_order);
64
65         [DllImport(Libraries.MediaContent, EntryPoint = "media_playlist_add_media")]
66         internal static extern MediaContentError AddMedia(IntPtr playlist, string media_id);
67
68         [DllImport(Libraries.MediaContent, EntryPoint = "media_playlist_remove_media")]
69         internal static extern MediaContentError RemoveMedia(IntPtr playlist, int playlist_member_id);
70
71         [DllImport(Libraries.MediaContent, EntryPoint = "media_playlist_get_play_order")]
72         internal static extern MediaContentError GetPlayOrder(IntPtr playlist, int playlist_member_id, out int play_order);
73
74         [DllImport(Libraries.MediaContent, EntryPoint = "media_playlist_update_to_db")]
75         internal static extern MediaContentError UpdateToDb(IntPtr playlist);
76
77         [DllImport(Libraries.MediaContent, EntryPoint = "media_playlist_import_from_file")]
78         internal static extern MediaContentError ImportFromFile(string playlist_name, string filePath, out IntPtr playlist);
79
80         [DllImport(Libraries.MediaContent, EntryPoint = "media_playlist_export_to_file")]
81         internal static extern MediaContentError ExportToFile(IntPtr playlist, string filePath);
82
83         //Callbacks
84         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
85         internal delegate bool MediaPlaylistCallback(IntPtr playListHandle, IntPtr data);
86
87         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
88         internal delegate bool PlaylistMemberCallback(int playListMemberId, IntPtr mediaInformation, IntPtr data);
89
90         [DllImport(Libraries.MediaContent, EntryPoint = "media_playlist_foreach_playlist_from_db")]
91         internal static extern MediaContentError ForeachPlaylistFromDb(IntPtr filter, MediaPlaylistCallback callback, IntPtr user_data);
92
93         [DllImport(Libraries.MediaContent, EntryPoint = "media_playlist_foreach_media_from_db")]
94         internal static extern MediaContentError ForeachMediaFromDb(int playlist_id, IntPtr filter, PlaylistMemberCallback callback, IntPtr user_data);
95     }
96 }