a4f19382241aadbbd7813dae0a8d9223cd71530d
[platform/core/csapi/tizenfx.git] / src / Tizen.Multimedia.Remoting / Interop / Interop.MediaControllerServer.cs
1 /*
2  * Copyright (c) 2018 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.Applications;
20 using Tizen.Multimedia.Remoting;
21
22 internal static partial class Interop
23 {
24     internal static partial class MediaControllerServer
25     {
26         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
27         internal delegate void PlaybackStateCommandReceivedCallback(string clientName,
28             MediaControllerNativePlaybackAction nativeAction, IntPtr userData);
29
30         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
31         internal delegate void PlaybackActionCommandReceivedCallback(string clientName,
32             string requestId, MediaControllerNativePlaybackAction nativeAction, IntPtr userData);
33
34         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
35         internal delegate void PlaybackPositionCommandReceivedCallback(string clientName,
36             string requestId, ulong playbackPosition, IntPtr userData);
37
38         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
39         internal delegate void PlaylistCommandReceivedCallback(string clientName,
40             string requestId, string playlistName, string index, MediaControllerNativePlaybackAction nativeAction,
41             ulong playbackPosition, IntPtr userData);
42
43         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
44         internal delegate void ShuffleModeCommandReceivedCallback(string clientName,
45             string requestId, MediaControllerNativeShuffleMode shuffleMode, IntPtr userData);
46
47         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
48         internal delegate void RepeatModeCommandReceivedCallback(string clientName,
49             string requestId, MediaControllerNativeRepeatMode repeatMode, IntPtr userData);
50
51         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
52         internal delegate void CustomCommandReceivedCallback(string clientName,
53             string requestId, string customCommand, IntPtr bundleHandle, IntPtr userData);
54
55         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
56         internal delegate bool PlaylistCallback(IntPtr handle, IntPtr userData);
57
58         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
59         internal delegate bool ActivatedClientCallback(string clientName, IntPtr userData);
60
61         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
62         internal delegate void CommandCompletedCallback(string clientName, string requestId, MediaControllerError result, IntPtr bundleHandle,
63             IntPtr userData = default(IntPtr));
64
65         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
66         internal delegate void SearchCommandReceivedCallback(string clientName, string requestId, IntPtr searchHandle,
67             IntPtr userData = default(IntPtr));
68
69         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
70         internal delegate bool SearchItemCallback(MediaControlContentType type, MediaControlSearchCategory category,
71             string keyword, IntPtr bundleHandle, IntPtr userData = default(IntPtr));
72
73
74         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_create")]
75         internal static extern MediaControllerError Create(out IntPtr handle);
76
77         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_destroy")]
78         internal static extern MediaControllerError Destroy(IntPtr handle);
79
80         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_playback_state")]
81         internal static extern MediaControllerError SetPlaybackState(IntPtr handle,
82             MediaControllerNativePlaybackState state);
83
84         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_playback_position")]
85         internal static extern MediaControllerError SetPlaybackPosition(IntPtr handle, ulong position);
86
87         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_update_playback_info")]
88         internal static extern MediaControllerError UpdatePlayback(IntPtr handle);
89
90         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_metadata")]
91         internal static extern MediaControllerError SetMetadata(IntPtr handle,
92             MediaControllerNativeAttribute attribute, string value);
93
94         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_update_metadata")]
95         internal static extern MediaControllerError UpdateMetadata(IntPtr handle);
96
97         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_update_shuffle_mode")]
98         internal static extern MediaControllerError UpdateShuffleMode(IntPtr handle,
99             MediaControllerNativeShuffleMode mode);
100
101         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_update_repeat_mode")]
102         internal static extern MediaControllerError UpdateRepeatMode(IntPtr handle, MediaControllerNativeRepeatMode mode);
103
104         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_playback_action_cmd_received_cb")]
105         internal static extern MediaControllerError SetPlaybackActionCommandReceivedCb(IntPtr handle,
106             PlaybackActionCommandReceivedCallback callback, IntPtr userData = default(IntPtr));
107
108         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_playback_action_cmd_received_cb")]
109         internal static extern MediaControllerError UnsetPlaybackActionCommandReceivedCb(IntPtr handle);
110
111         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_playback_position_cmd_received_cb")]
112         internal static extern MediaControllerError SetPlaybackPosotionCommandReceivedCb(IntPtr handle,
113             PlaybackPositionCommandReceivedCallback callback, IntPtr userData = default(IntPtr));
114
115         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_playback_position_cmd_received_cb")]
116         internal static extern MediaControllerError UnsetPlaybackPositionCommandReceivedCb(IntPtr handle);
117
118         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_playlist_cmd_received_cb")]
119         internal static extern MediaControllerError SetPlaylistCommandReceivedCb(IntPtr handle,
120             PlaylistCommandReceivedCallback callback, IntPtr userData = default(IntPtr));
121
122         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_playlist_cmd_received_cb")]
123         internal static extern MediaControllerError UnsetPlaylistCommandReceivedCb(IntPtr handle);
124
125         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_shuffle_mode_cmd_received_cb")]
126         internal static extern MediaControllerError SetShuffleModeCommandReceivedCb(IntPtr handle,
127             ShuffleModeCommandReceivedCallback callback, IntPtr userData = default(IntPtr));
128
129         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_shuffle_mode_cmd_received_cb")]
130         internal static extern MediaControllerError UnsetShuffleModeCommandReceivedCb(IntPtr handle);
131
132         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_repeat_mode_cmd_received_cb")]
133         internal static extern MediaControllerError SetRepeatModeCommandReceivedCb(IntPtr handle,
134             RepeatModeCommandReceivedCallback callback, IntPtr userData = default(IntPtr));
135
136         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_repeat_mode_cmd_received_cb")]
137         internal static extern MediaControllerError UnsetRepeatModeCommandReceivedCb(IntPtr handle);
138
139         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_custom_cmd_received_cb")]
140         internal static extern MediaControllerError SetCustomCommandReceivedCb(IntPtr handle,
141             CustomCommandReceivedCallback callback, IntPtr userData = default(IntPtr));
142
143         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_custom_cmd_received_cb")]
144         internal static extern MediaControllerError UnsetCustomCommandReceivedCb(IntPtr handle);
145
146         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_search_cmd_received_cb")]
147         internal static extern MediaControllerError SetSearchCommandReceivedCb(IntPtr handle,
148             SearchCommandReceivedCallback callback, IntPtr userData = default(IntPtr));
149
150         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_search_cmd_received_cb")]
151         internal static extern MediaControllerError UnsetSearchCommandReceivedCb(IntPtr handle);
152
153         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_send_cmd_reply")]
154         internal static extern MediaControllerError SendCommandReplyBundle(IntPtr handle,
155             string appId, string requestID, int result, SafeBundleHandle bundleHandle);
156
157         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_send_cmd_reply")]
158         internal static extern MediaControllerError SendCommandReply(IntPtr handle,
159             string appId, string requestID, int result, IntPtr bundleHandle);
160
161         [DllImport(Libraries.MediaController, EntryPoint = "mc_db_connect")]
162         internal static extern MediaControllerError ConnectDb(out IntPtr dbHandle);
163
164         [DllImport(Libraries.MediaController, EntryPoint = "mc_db_disconnect")]
165         internal static extern MediaControllerError DisconnectDb(IntPtr dbHandle);
166
167         [DllImport(Libraries.MediaController, EntryPoint = "mc_db_check_server_table_exist")]
168         internal static extern MediaControllerError CheckServerExist(IntPtr dbHandle, string appId, out bool value);
169
170         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_create_playlist")]
171         internal static extern MediaControllerError CreatePlaylist(IntPtr handle, string name, out IntPtr playlist);
172
173         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_delete_playlist")]
174         internal static extern MediaControllerError DeletePlaylist(IntPtr handle, IntPtr playlist);
175
176         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_foreach_playlist")]
177         internal static extern MediaControllerError ForeachPlaylist(IntPtr handle, PlaylistCallback callback, IntPtr userData);
178
179         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_playlist_item_index")]
180         internal static extern MediaControllerError SetIndexOfCurrentPlayingMedia(IntPtr handle, string index);
181
182         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_playlist_item_info")]
183         internal static extern MediaControllerError SetInfoOfCurrentPlayingMedia(IntPtr handle, string name, string index);
184
185         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_add_item_to_playlist")]
186         internal static extern MediaControllerError AddItemToPlaylist(IntPtr handle,
187             IntPtr playlist, string index, MediaControllerNativeAttribute attribute, string value);
188
189         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_update_playlist_done")]
190         internal static extern MediaControllerError SavePlaylist(IntPtr handle, IntPtr playlist);
191
192         // Playlist API. but this need to server handle so have to be here.
193         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_get_playlist")]
194         internal static extern MediaControllerError GetPlaylistHandle(IntPtr handle, string name, out IntPtr playbackHandle);
195
196         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_foreach_client")]
197         internal static extern MediaControllerError ForeachActivatedClient(IntPtr handle, ActivatedClientCallback callback,
198             IntPtr userData = default(IntPtr));
199
200         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_send_custom_event")]
201         internal static extern MediaControllerError SendCustomEvent(IntPtr handle, string appId, string customEvent,
202             IntPtr bundle, out string requestId);
203
204         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_send_custom_event")]
205         internal static extern MediaControllerError SendCustomEventBundle(IntPtr handle, string appId, string customEvent,
206             SafeBundleHandle bundle, out string requestId);
207
208         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_event_reply_received_cb")]
209         internal static extern MediaControllerError SetEventReceivedCb(IntPtr handle, CommandCompletedCallback callback,
210             IntPtr userData = default(IntPtr));
211
212         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_event_reply_received_cb")]
213         internal static extern MediaControllerError UnsetEventReceivedCb(IntPtr handle);
214
215         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_content_age_rating")]
216         internal static extern MediaControllerError SetAgeRating(IntPtr handle, int rating);
217
218
219         #region Capability
220         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_playback_content_type")]
221         internal static extern MediaControllerError SetPlaybackContentType(IntPtr serverHandle,
222             MediaControlContentType type);
223
224         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_icon")]
225         internal static extern MediaControllerError SetIconPath(IntPtr serverHandle, string uri);
226
227         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_playback_ability")]
228         internal static extern MediaControllerError SetPlaybackCapability(IntPtr serverHandle,
229             MediaControllerNativePlaybackAction action, MediaControlCapabilitySupport support);
230
231         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_update_playback_ability")]
232         internal static extern MediaControllerError SaveAndNotifyPlaybackCapabilityUpdated(IntPtr serverHandle);
233
234         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_shuffle_ability")]
235         internal static extern MediaControllerError SetShuffleModeCapability(IntPtr serverHandle,
236             MediaControlCapabilitySupport support);
237
238         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_repeat_ability")]
239         internal static extern MediaControllerError SetRepeatModeCapability(IntPtr serverHandle,
240             MediaControlCapabilitySupport support);
241         #endregion Capability
242
243         #region Search
244         [DllImport(Libraries.MediaController, EntryPoint = "mc_search_foreach_condition")]
245         internal static extern MediaControllerError ForeachSearchCondition(IntPtr serverHandle,
246             SearchItemCallback callback, IntPtr userData = default(IntPtr));
247
248         [DllImport(Libraries.MediaController, EntryPoint = "mc_search_clone")]
249         internal static extern MediaControllerError CloneSearchHandle(IntPtr srcHandle, out IntPtr dstHandle);
250
251         [DllImport(Libraries.MediaController, EntryPoint = "mc_search_destroy")]
252         internal static extern MediaControllerError DestroySearchHandle(IntPtr searchHandle);
253
254         #endregion Search
255     }
256 }