2 using System.Runtime.InteropServices;
4 namespace Tizen.Multimedia
6 internal static partial class Interop
8 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
9 internal delegate void SoundStreamFocusStateChangedCallback(IntPtr streamInfo, AudioStreamFocusOptions focusMask, AudioStreamFocusState focusState, int reason, int audioStreamBehavior, string extraInfo, IntPtr userData);
11 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
12 internal delegate void SoundStreamFocusStateWatchCallback(int id, AudioStreamFocusOptions focusMask, AudioStreamFocusState focusState, AudioStreamFocusChangedReason reason, string extraInfo, IntPtr userData);
14 internal static partial class AudioStreamPolicy
16 [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_create_stream_information")]
17 internal static extern int CreateStreamInformation(int streamType, SoundStreamFocusStateChangedCallback callback, IntPtr userData, out IntPtr streamInfo);
19 [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_destroy_stream_information")]
20 internal static extern int DestroyStreamInformation(IntPtr streamInfo);
22 [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_add_device_for_stream_routing")]
23 internal static extern int AddDeviceForStreamRouting(IntPtr streamInfo, IntPtr device);
25 [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_remove_device_for_stream_routing")]
26 internal static extern int RemoveDeviceForStreamRouting(IntPtr streamInfo, IntPtr device);
28 [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_apply_stream_routing")]
29 internal static extern int ApplyStreamRouting(IntPtr streamInfo);
31 [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_acquire_focus")]
32 internal static extern int AcquireFocus(IntPtr streamInfo, AudioStreamFocusOptions focusMask, int audioStreamBehavior, string extraInfo);
34 [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_release_focus")]
35 internal static extern int ReleaseFocus(IntPtr streamInfo, AudioStreamFocusOptions focusMask, int audioStreamBehavior, string extraInfo);
37 [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_get_focus_state")]
38 internal static extern int GetFocusState(IntPtr streaInfo, out AudioStreamFocusState stateForPlayback, out AudioStreamFocusState stateForRecording);
40 [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_set_focus_reacquisition")]
41 internal static extern int SetFocusReacquisition(IntPtr streamInfo, bool enable);
43 [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_get_focus_reacquisition")]
44 internal static extern int GetFocusReacquisition(IntPtr streamInfo, out bool enabled);
46 [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_get_sound_type")]
47 internal static extern int GetSoundType(IntPtr streamInfo, out AudioVolumeType soundType);
49 [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_add_focus_state_watch_cb")]
50 internal static extern int AddFocusStateWatchCallback(AudioStreamFocusOptions focusMask, SoundStreamFocusStateWatchCallback callback, IntPtr userData, out int id);
52 [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_remove_focus_state_watch_cb")]
53 internal static extern int RemoveFocusStateWatchCallback(int id);