Release 4.0.0-preview1-00051
[platform/core/csapi/tizenfx.git] / src / Tizen.Multimedia / Interop / Interop.StreamPolicy.cs
1 using System;
2 using System.Runtime.InteropServices;
3
4 namespace Tizen.Multimedia
5 {
6     internal static partial class Interop
7     {
8         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
9         internal delegate void SoundStreamFocusStateChangedCallback(IntPtr streamInfo, AudioStreamFocusOptions focusMask, AudioStreamFocusState focusState, int reason, int audioStreamBehavior, string extraInfo, IntPtr userData);
10
11         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
12         internal delegate void SoundStreamFocusStateWatchCallback(int id, AudioStreamFocusOptions focusMask, AudioStreamFocusState focusState, AudioStreamFocusChangedReason reason, string extraInfo, IntPtr userData);
13
14         internal static partial class AudioStreamPolicy
15         {
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);
18
19             [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_destroy_stream_information")]
20             internal static extern int DestroyStreamInformation(IntPtr streamInfo);
21
22             [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_add_device_for_stream_routing")]
23             internal static extern int AddDeviceForStreamRouting(IntPtr streamInfo, IntPtr device);
24
25             [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_remove_device_for_stream_routing")]
26             internal static extern int RemoveDeviceForStreamRouting(IntPtr streamInfo, IntPtr device);
27
28             [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_apply_stream_routing")]
29             internal static extern int ApplyStreamRouting(IntPtr streamInfo);
30
31             [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_acquire_focus")]
32             internal static extern int AcquireFocus(IntPtr streamInfo, AudioStreamFocusOptions focusMask, int audioStreamBehavior, string extraInfo);
33
34             [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_release_focus")]
35             internal static extern int ReleaseFocus(IntPtr streamInfo, AudioStreamFocusOptions focusMask, int audioStreamBehavior, string extraInfo);
36
37             [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_get_focus_state")]
38             internal static extern int GetFocusState(IntPtr streaInfo, out AudioStreamFocusState stateForPlayback, out AudioStreamFocusState stateForRecording);
39
40             [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_set_focus_reacquisition")]
41             internal static extern int SetFocusReacquisition(IntPtr streamInfo, bool enable);
42
43             [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_get_focus_reacquisition")]
44             internal static extern int GetFocusReacquisition(IntPtr streamInfo, out bool enabled);
45
46             [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_get_sound_type")]
47             internal static extern int GetSoundType(IntPtr streamInfo, out AudioVolumeType soundType);
48
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);
51
52             [DllImportAttribute(Libraries.SoundManager, EntryPoint = "sound_manager_remove_focus_state_watch_cb")]
53             internal static extern int RemoveFocusStateWatchCallback(int id);
54         }
55     }
56 }