[NUI] Sync dalihub/TizenFX and Samsung/TizenFX (#530)
[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_state_command_received_cb")]
105         internal static extern MediaControllerError SetPlaybackStateCommandReceivedCb(IntPtr handle,
106             PlaybackStateCommandReceivedCallback callback, IntPtr userData = default(IntPtr));
107
108         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_playback_state_command_received_cb")]
109         internal static extern MediaControllerError UnsetPlaybackStateCmdRecvCb(IntPtr handle);
110
111         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_playback_action_cmd_received_cb")]
112         internal static extern MediaControllerError SetPlaybackActionCommandReceivedCb(IntPtr handle,
113             PlaybackActionCommandReceivedCallback callback, IntPtr userData = default(IntPtr));
114
115         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_playback_action_cmd_received_cb")]
116         internal static extern MediaControllerError UnsetPlaybackActionCommandReceivedCb(IntPtr handle);
117
118         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_playback_position_cmd_received_cb")]
119         internal static extern MediaControllerError SetPlaybackPosotionCommandReceivedCb(IntPtr handle,
120             PlaybackPositionCommandReceivedCallback callback, IntPtr userData = default(IntPtr));
121
122         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_playback_position_cmd_received_cb")]
123         internal static extern MediaControllerError UnsetPlaybackPositionCommandReceivedCb(IntPtr handle);
124
125         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_playlist_cmd_received_cb")]
126         internal static extern MediaControllerError SetPlaylistCommandReceivedCb(IntPtr handle,
127             PlaylistCommandReceivedCallback callback, IntPtr userData = default(IntPtr));
128
129         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_playlist_cmd_received_cb")]
130         internal static extern MediaControllerError UnsetPlaylistCommandReceivedCb(IntPtr handle);
131
132         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_shuffle_mode_cmd_received_cb")]
133         internal static extern MediaControllerError SetShuffleModeCommandReceivedCb(IntPtr handle,
134             ShuffleModeCommandReceivedCallback callback, IntPtr userData = default(IntPtr));
135
136         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_shuffle_mode_cmd_received_cb")]
137         internal static extern MediaControllerError UnsetShuffleModeCommandReceivedCb(IntPtr handle);
138
139         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_repeat_mode_cmd_received_cb")]
140         internal static extern MediaControllerError SetRepeatModeCommandReceivedCb(IntPtr handle,
141             RepeatModeCommandReceivedCallback callback, IntPtr userData = default(IntPtr));
142
143         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_repeat_mode_cmd_received_cb")]
144         internal static extern MediaControllerError UnsetRepeatModeCommandReceivedCb(IntPtr handle);
145
146         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_custom_cmd_received_cb")]
147         internal static extern MediaControllerError SetCustomCommandReceivedCb(IntPtr handle,
148             CustomCommandReceivedCallback callback, IntPtr userData = default(IntPtr));
149
150         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_custom_cmd_received_cb")]
151         internal static extern MediaControllerError UnsetCustomCommandReceivedCb(IntPtr handle);
152
153         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_search_cmd_received_cb")]
154         internal static extern MediaControllerError SetSearchCommandReceivedCb(IntPtr handle,
155             SearchCommandReceivedCallback callback, IntPtr userData = default(IntPtr));
156
157         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_search_cmd_received_cb")]
158         internal static extern MediaControllerError UnsetSearchCommandReceivedCb(IntPtr handle);
159
160         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_send_cmd_reply")]
161         internal static extern MediaControllerError SendCommandReplyBundle(IntPtr handle,
162             string appId, string requestID, int result, SafeBundleHandle bundleHandle);
163
164         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_send_cmd_reply")]
165         internal static extern MediaControllerError SendCommandReply(IntPtr handle,
166             string appId, string requestID, int result, IntPtr bundleHandle);
167
168         [DllImport(Libraries.MediaController, EntryPoint = "mc_db_connect")]
169         internal static extern MediaControllerError ConnectDb(out IntPtr dbHandle);
170
171         [DllImport(Libraries.MediaController, EntryPoint = "mc_db_disconnect")]
172         internal static extern MediaControllerError DisconnectDb(IntPtr dbHandle);
173
174         [DllImport(Libraries.MediaController, EntryPoint = "mc_db_check_server_table_exist")]
175         internal static extern MediaControllerError CheckServerExist(IntPtr dbHandle, string appId, out bool value);
176
177         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_create_playlist")]
178         internal static extern MediaControllerError CreatePlaylist(IntPtr handle, string name, out IntPtr playlist);
179
180         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_delete_playlist")]
181         internal static extern MediaControllerError DeletePlaylist(IntPtr handle, IntPtr playlist);
182
183         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_foreach_playlist")]
184         internal static extern MediaControllerError ForeachPlaylist(IntPtr handle, PlaylistCallback callback, IntPtr userData);
185
186         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_playlist_item_index")]
187         internal static extern MediaControllerError SetIndexOfCurrentPlayingMedia(IntPtr handle, string index);
188
189         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_playlist_item_info")]
190         internal static extern MediaControllerError SetInfoOfCurrentPlayingMedia(IntPtr handle, string name, string index);
191
192         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_add_item_to_playlist")]
193         internal static extern MediaControllerError AddItemToPlaylist(IntPtr handle,
194             IntPtr playlist, string index, MediaControllerNativeAttribute attribute, string value);
195
196         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_update_playlist_done")]
197         internal static extern MediaControllerError SavePlaylist(IntPtr handle, IntPtr playlist);
198
199         // Playlist API. but this need to server handle so have to be here.
200         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_get_playlist")]
201         internal static extern MediaControllerError GetPlaylistHandle(IntPtr handle, string name, out IntPtr playbackHandle);
202
203         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_foreach_client")]
204         internal static extern MediaControllerError ForeachActivatedClient(IntPtr handle, ActivatedClientCallback callback,
205             IntPtr userData = default(IntPtr));
206
207         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_send_custom_event")]
208         internal static extern MediaControllerError SendCustomEvent(IntPtr handle, string appId, string customEvent,
209             IntPtr bundle, out string requestId);
210
211         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_send_custom_event")]
212         internal static extern MediaControllerError SendCustomEventBundle(IntPtr handle, string appId, string customEvent,
213             SafeBundleHandle bundle, out string requestId);
214
215         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_event_reply_received_cb")]
216         internal static extern MediaControllerError SetEventReceivedCb(IntPtr handle, CommandCompletedCallback callback,
217             IntPtr userData = default(IntPtr));
218
219         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_event_reply_received_cb")]
220         internal static extern MediaControllerError UnsetEventReceivedCb(IntPtr handle);
221
222         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_content_age_rating")]
223         internal static extern MediaControllerError SetAgeRating(IntPtr handle, int rating);
224
225
226         #region Capability
227         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_playback_content_type")]
228         internal static extern MediaControllerError SetPlaybackContentType(IntPtr serverHandle,
229             MediaControlContentType type);
230
231         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_icon")]
232         internal static extern MediaControllerError SetIconPath(IntPtr serverHandle, string uri);
233
234         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_playback_ability")]
235         internal static extern MediaControllerError SetPlaybackCapability(IntPtr serverHandle,
236             MediaControllerNativePlaybackAction action, MediaControlCapabilitySupport support);
237
238         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_update_playback_ability")]
239         internal static extern MediaControllerError SaveAndNotifyPlaybackCapabilityUpdated(IntPtr serverHandle);
240
241         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_shuffle_ability")]
242         internal static extern MediaControllerError SetShuffleModeCapability(IntPtr serverHandle,
243             MediaControlCapabilitySupport support);
244
245         [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_repeat_ability")]
246         internal static extern MediaControllerError SetRepeatModeCapability(IntPtr serverHandle,
247             MediaControlCapabilitySupport support);
248         #endregion Capability
249
250         #region Search
251         [DllImport(Libraries.MediaController, EntryPoint = "mc_search_foreach_condition")]
252         internal static extern MediaControllerError ForeachSearchCondition(IntPtr serverHandle,
253             SearchItemCallback callback, IntPtr userData = default(IntPtr));
254
255         [DllImport(Libraries.MediaController, EntryPoint = "mc_search_clone")]
256         internal static extern MediaControllerError CloneSearchHandle(IntPtr srcHandle, out IntPtr dstHandle);
257
258         [DllImport(Libraries.MediaController, EntryPoint = "mc_search_destroy")]
259         internal static extern MediaControllerError DestroySearchHandle(IntPtr searchHandle);
260
261         #endregion Search
262     }
263 }