2 * Copyright (c) 2018 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;
19 using Tizen.Applications;
20 using Tizen.Multimedia.Remoting;
22 internal static partial class Interop
24 internal static partial class MediaControllerServer
26 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
27 internal delegate void PlaybackStateCommandReceivedCallback(string clientName,
28 MediaControllerNativePlaybackAction nativeAction, IntPtr userData);
30 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
31 internal delegate void PlaybackActionCommandReceivedCallback(string clientName,
32 string requestId, MediaControllerNativePlaybackAction nativeAction, IntPtr userData);
34 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
35 internal delegate void PlaybackPositionCommandReceivedCallback(string clientName,
36 string requestId, ulong playbackPosition, IntPtr userData);
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);
43 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
44 internal delegate void ShuffleModeCommandReceivedCallback(string clientName,
45 string requestId, MediaControllerNativeShuffleMode shuffleMode, IntPtr userData);
47 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
48 internal delegate void RepeatModeCommandReceivedCallback(string clientName,
49 string requestId, MediaControllerNativeRepeatMode repeatMode, IntPtr userData);
51 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
52 internal delegate void CustomCommandReceivedCallback(string clientName,
53 string requestId, string customCommand, IntPtr bundleHandle, IntPtr userData);
55 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
56 internal delegate bool PlaylistCallback(IntPtr handle, IntPtr userData);
58 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
59 internal delegate bool ActivatedClientCallback(string clientName, IntPtr userData);
61 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
62 internal delegate void CommandCompletedCallback(string clientName, string requestId, MediaControllerError result, IntPtr bundleHandle,
63 IntPtr userData = default(IntPtr));
65 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
66 internal delegate void SearchCommandReceivedCallback(string clientName, string requestId, IntPtr searchHandle,
67 IntPtr userData = default(IntPtr));
69 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
70 internal delegate bool SearchItemCallback(MediaControlContentType type, MediaControlSearchCategory category,
71 string keyword, IntPtr bundleHandle, IntPtr userData = default(IntPtr));
74 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_create")]
75 internal static extern MediaControllerError Create(out IntPtr handle);
77 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_destroy")]
78 internal static extern MediaControllerError Destroy(IntPtr handle);
80 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_playback_state")]
81 internal static extern MediaControllerError SetPlaybackState(IntPtr handle,
82 MediaControllerNativePlaybackState state);
84 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_playback_position")]
85 internal static extern MediaControllerError SetPlaybackPosition(IntPtr handle, ulong position);
87 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_update_playback_info")]
88 internal static extern MediaControllerError UpdatePlayback(IntPtr handle);
90 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_metadata")]
91 internal static extern MediaControllerError SetMetadata(IntPtr handle,
92 MediaControllerNativeAttribute attribute, string value);
94 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_update_metadata")]
95 internal static extern MediaControllerError UpdateMetadata(IntPtr handle);
97 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_update_shuffle_mode")]
98 internal static extern MediaControllerError UpdateShuffleMode(IntPtr handle,
99 MediaControllerNativeShuffleMode mode);
101 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_update_repeat_mode")]
102 internal static extern MediaControllerError UpdateRepeatMode(IntPtr handle, MediaControllerNativeRepeatMode mode);
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));
108 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_playback_action_cmd_received_cb")]
109 internal static extern MediaControllerError UnsetPlaybackActionCommandReceivedCb(IntPtr handle);
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));
115 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_playback_position_cmd_received_cb")]
116 internal static extern MediaControllerError UnsetPlaybackPositionCommandReceivedCb(IntPtr handle);
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));
122 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_playlist_cmd_received_cb")]
123 internal static extern MediaControllerError UnsetPlaylistCommandReceivedCb(IntPtr handle);
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));
129 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_shuffle_mode_cmd_received_cb")]
130 internal static extern MediaControllerError UnsetShuffleModeCommandReceivedCb(IntPtr handle);
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));
136 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_repeat_mode_cmd_received_cb")]
137 internal static extern MediaControllerError UnsetRepeatModeCommandReceivedCb(IntPtr handle);
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));
143 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_custom_cmd_received_cb")]
144 internal static extern MediaControllerError UnsetCustomCommandReceivedCb(IntPtr handle);
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));
150 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_search_cmd_received_cb")]
151 internal static extern MediaControllerError UnsetSearchCommandReceivedCb(IntPtr handle);
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);
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);
161 [DllImport(Libraries.MediaController, EntryPoint = "mc_db_connect")]
162 internal static extern MediaControllerError ConnectDb(out IntPtr dbHandle);
164 [DllImport(Libraries.MediaController, EntryPoint = "mc_db_disconnect")]
165 internal static extern MediaControllerError DisconnectDb(IntPtr dbHandle);
167 [DllImport(Libraries.MediaController, EntryPoint = "mc_db_check_server_table_exist")]
168 internal static extern MediaControllerError CheckServerExist(IntPtr dbHandle, string appId, out bool value);
170 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_create_playlist")]
171 internal static extern MediaControllerError CreatePlaylist(IntPtr handle, string name, out IntPtr playlist);
173 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_delete_playlist")]
174 internal static extern MediaControllerError DeletePlaylist(IntPtr handle, IntPtr playlist);
176 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_foreach_playlist")]
177 internal static extern MediaControllerError ForeachPlaylist(IntPtr handle, PlaylistCallback callback, IntPtr userData);
179 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_playlist_item_index")]
180 internal static extern MediaControllerError SetIndexOfCurrentPlayingMedia(IntPtr handle, string index);
182 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_playlist_item_info")]
183 internal static extern MediaControllerError SetInfoOfCurrentPlayingMedia(IntPtr handle, string name, string index);
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);
189 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_update_playlist_done")]
190 internal static extern MediaControllerError SavePlaylist(IntPtr handle, IntPtr playlist);
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);
196 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_foreach_client")]
197 internal static extern MediaControllerError ForeachActivatedClient(IntPtr handle, ActivatedClientCallback callback,
198 IntPtr userData = default(IntPtr));
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);
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);
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));
212 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_event_reply_received_cb")]
213 internal static extern MediaControllerError UnsetEventReceivedCb(IntPtr handle);
215 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_content_age_rating")]
216 internal static extern MediaControllerError SetAgeRating(IntPtr handle, int rating);
220 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_playback_content_type")]
221 internal static extern MediaControllerError SetPlaybackContentType(IntPtr serverHandle,
222 MediaControlContentType type);
224 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_icon")]
225 internal static extern MediaControllerError SetIconPath(IntPtr serverHandle, string uri);
227 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_playback_ability")]
228 internal static extern MediaControllerError SetPlaybackCapability(IntPtr serverHandle,
229 MediaControllerNativePlaybackAction action, MediaControlCapabilitySupport support);
231 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_update_playback_ability")]
232 internal static extern MediaControllerError SaveAndNotifyPlaybackCapabilityUpdated(IntPtr serverHandle);
234 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_shuffle_ability")]
235 internal static extern MediaControllerError SetShuffleModeCapability(IntPtr serverHandle,
236 MediaControlCapabilitySupport support);
238 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_repeat_ability")]
239 internal static extern MediaControllerError SetRepeatModeCapability(IntPtr serverHandle,
240 MediaControlCapabilitySupport support);
241 #endregion Capability
244 [DllImport(Libraries.MediaController, EntryPoint = "mc_search_foreach_condition")]
245 internal static extern MediaControllerError ForeachSearchCondition(IntPtr serverHandle,
246 SearchItemCallback callback, IntPtr userData = default(IntPtr));
248 [DllImport(Libraries.MediaController, EntryPoint = "mc_search_clone")]
249 internal static extern MediaControllerError CloneSearchHandle(IntPtr srcHandle, out IntPtr dstHandle);
251 [DllImport(Libraries.MediaController, EntryPoint = "mc_search_destroy")]
252 internal static extern MediaControllerError DestroySearchHandle(IntPtr searchHandle);