2 using System.Runtime.InteropServices;
3 using Tizen.Applications;
4 using Tizen.Multimedia.MediaController;
6 internal static partial class Interop
8 internal static partial class MediaControllerClient
10 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
11 internal delegate void ServerUpdatedCallback(string serverName, MediaControllerServerState serverState, IntPtr userData);
13 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
14 internal delegate void PlaybackUpdatedCallback(string serverName, IntPtr playback, IntPtr userData);
16 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
17 internal delegate void MetadataUpdatedCallback(string serverName, IntPtr metadata, IntPtr userData);
19 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
20 internal delegate void ShuffleModeUpdatedCallback(string serverName, MediaControllerShuffleMode shuffleMode, IntPtr userData);
22 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
23 internal delegate void RepeatModeUpdatedCallback(string serverName, MediaControllerRepeatMode repeatMode, IntPtr userData);
25 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
26 internal delegate void CommandReplyRecievedCallback(string serverName, int result, IntPtr bundle, IntPtr userData);
28 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
29 internal delegate bool SubscribedServerCallback(string serverName, IntPtr userData);
31 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
32 internal delegate bool ActivatedServerCallback(string serverName, IntPtr userData);
34 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_create")]
35 internal static extern MediaControllerError Create(out IntPtr handle);
37 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_destroy")]
38 internal static extern MediaControllerError Destroy(IntPtr handle);
40 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_set_server_update_cb")]
41 internal static extern MediaControllerError SetServerUpdatedCb(IntPtr handle, ServerUpdatedCallback callback, IntPtr userData);
43 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_unset_server_update_cb")]
44 internal static extern MediaControllerError UnsetServerUpdatedCb(IntPtr handle);
46 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_set_playback_update_cb")]
47 internal static extern MediaControllerError SetPlaybackUpdatedCb(IntPtr handle, PlaybackUpdatedCallback callback, IntPtr userData);
49 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_unset_playback_update_cb")]
50 internal static extern MediaControllerError UnsetPlaybackUpdatedCb(IntPtr handle);
52 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_set_metadata_update_cb")]
53 internal static extern MediaControllerError SetMetadataUpdatedCb(IntPtr handle, MetadataUpdatedCallback callback, IntPtr userData);
55 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_unset_metadata_update_cb")]
56 internal static extern MediaControllerError UnsetMetadataUpdatedCb(IntPtr handle);
58 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_set_shuffle_mode_update_cb")]
59 internal static extern MediaControllerError SetShuffleModeUpdatedCb(IntPtr handle, ShuffleModeUpdatedCallback callback, IntPtr userData);
61 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_unset_shuffle_mode_update_cb")]
62 internal static extern MediaControllerError UnsetShuffleModeUpdatedCb(IntPtr handle);
64 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_set_repeat_mode_update_cb")]
65 internal static extern MediaControllerError SetRepeatModeUpdatedCb(IntPtr handle, RepeatModeUpdatedCallback callback, IntPtr userData);
67 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_unset_repeat_mode_update_cb")]
68 internal static extern MediaControllerError UnsetRepeatModeUpdatedCb(IntPtr handle);
70 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_subscribe")]
71 internal static extern MediaControllerError Subscribe(IntPtr handle, MediaControllerSubscriptionType subscriptionType, string serverName);
73 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_unsubscribe")]
74 internal static extern MediaControllerError Unsubscribe(IntPtr handle, MediaControllerSubscriptionType subscriptionType, string serverName);
76 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_get_playback_state")]
77 internal static extern MediaControllerError GetPlaybackState(IntPtr playback, out MediaControllerPlaybackState state);
79 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_get_playback_position")]
80 internal static extern MediaControllerError GetPlaybackPosition(IntPtr playback, out ulong position);
82 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_destroy_playback")]
83 internal static extern MediaControllerError DestroyPlayback(IntPtr playback);
85 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_get_metadata")]
86 internal static extern MediaControllerError GetMetadata(IntPtr metadata, MediaControllerAttributes attribute, out string value);
88 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_destroy_metadata")]
89 internal static extern MediaControllerError DestroyMetadata(IntPtr metadata);
91 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_get_latest_server_info")]
92 internal static extern MediaControllerError GetLatestServer(IntPtr handle, out string serverName, out MediaControllerServerState serverState);
94 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_get_server_playback_info")]
95 internal static extern MediaControllerError GetServerPlayback(IntPtr handle, string serverName, out IntPtr playback);
97 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_get_server_metadata")]
98 internal static extern MediaControllerError GetServerMetadata(IntPtr handle, string serverName, out IntPtr metadata);
100 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_get_server_shuffle_mode")]
101 internal static extern MediaControllerError GetServerShuffleMode(IntPtr handle, string serverName, out MediaControllerShuffleMode mode);
103 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_get_server_repeat_mode")]
104 internal static extern MediaControllerError GetServerRepeatMode(IntPtr handle, string serverName, out MediaControllerRepeatMode mode);
106 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_send_playback_state_command")]
107 internal static extern MediaControllerError SendPlaybackStateCommand(IntPtr handle, string serverName, MediaControllerPlaybackState state);
109 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_send_custom_command")]
110 internal static extern MediaControllerError SendCustomCommand(IntPtr handle, string serverName, string command, SafeBundleHandle bundle, CommandReplyRecievedCallback callback, IntPtr userData);
112 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_foreach_server_subscribed")]
113 internal static extern MediaControllerError ForeachSubscribedServer(IntPtr handle, MediaControllerSubscriptionType subscriptionType, SubscribedServerCallback callback, IntPtr userData);
115 [DllImport(Libraries.MediaController, EntryPoint = "mc_client_foreach_server")]
116 internal static extern MediaControllerError ForeachActivatedServer(IntPtr handle, ActivatedServerCallback callback, IntPtr userData);
119 internal static partial class MediaControllerServer
121 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
122 internal delegate void PlaybackStateCommandRecievedCallback(string clientName, MediaControllerPlaybackState state, IntPtr userData);
124 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
125 internal delegate void CustomCommandRecievedCallback(string clientName, string command, IntPtr bundle, IntPtr userData);
127 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_create")]
128 internal static extern MediaControllerError Create(out IntPtr handle);
130 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_destroy")]
131 internal static extern MediaControllerError Destroy(IntPtr handle);
133 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_playback_state")]
134 internal static extern MediaControllerError SetPlaybackState(IntPtr handle, MediaControllerPlaybackState state);
136 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_playback_position")]
137 internal static extern MediaControllerError SetPlaybackPosition(IntPtr handle, ulong position);
139 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_update_playback_info")]
140 internal static extern MediaControllerError UpdatePlayback(IntPtr handle);
142 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_metadata")]
143 internal static extern MediaControllerError SetMetadata(IntPtr handle, MediaControllerAttributes attribute, string value);
145 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_update_metadata")]
146 internal static extern MediaControllerError UpdateMetadata(IntPtr handle);
148 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_update_shuffle_mode")]
149 internal static extern MediaControllerError UpdateShuffleMode(IntPtr handle, MediaControllerShuffleMode mode);
151 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_update_repeat_mode")]
152 internal static extern MediaControllerError UpdateRepeatMode(IntPtr handle, MediaControllerRepeatMode mode);
154 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_playback_state_command_received_cb")]
155 internal static extern MediaControllerError SetPlaybackStateCmdRecvCb(IntPtr handle, PlaybackStateCommandRecievedCallback callback, IntPtr userData);
157 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_playback_state_command_received_cb")]
158 internal static extern MediaControllerError UnsetPlaybackStateCmdRecvCb(IntPtr handle);
160 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_set_custom_command_received_cb")]
161 internal static extern MediaControllerError SetCustomCmdRecvCb(IntPtr handle, CustomCommandRecievedCallback callback, IntPtr userData);
163 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_unset_custom_command_received_cb")]
164 internal static extern MediaControllerError UnsetCustomCmdRecvCb(IntPtr handle);
166 [DllImport(Libraries.MediaController, EntryPoint = "mc_server_send_command_reply")]
167 internal static extern MediaControllerError SendCommandReply(IntPtr handle, string clientName, int result, SafeBundleHandle bundle);