Release 4.0.0-preview1-00258
[platform/core/csapi/tizenfx.git] / src / Tizen.CallManager / Interop / Interop.CallManager.cs
1 /*
2  * Copyright (c) 2016 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.CallManager;
20
21 /// <summary>
22 /// Interop class for CallManager
23 /// </summary>
24 internal static partial class Interop
25 {
26     /// <summary>
27     /// CallManager Native Apis
28     /// </summary>
29     internal static partial class CallManager
30     {
31         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
32         internal delegate void CallStatusChangedCallback(CallStatus callStatus, IntPtr number, IntPtr userData);
33         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
34         internal delegate void CallMuteStatusChangedCallback(CallMuteStatus muteStatus, IntPtr userData);
35         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
36         internal delegate void DialStatusChangedCallback(DialStatus dialStatus, IntPtr userData);
37         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
38         internal delegate void DtmfIndicationChangedCallback(DtmfIndication indiType, string number, IntPtr userData);
39         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
40         internal delegate void AudioStateChangedCallback(AudioState state, IntPtr userData);
41         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
42         internal delegate void GoForegroundCallback(IntPtr userData);
43         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
44         internal delegate void VoiceRecordStatusChangedCallback(VrStatus vrStatus, VrStatusExtraType extraType, IntPtr userData);
45         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
46         internal delegate void CallEventNotificationCallback(CallEvent callEvent, IntPtr eventData, IntPtr userData);
47
48         [DllImport(Libraries.CallManager, EntryPoint = "cm_init")]
49         internal static extern int InitCm(out IntPtr handle);
50         [DllImport(Libraries.CallManager, EntryPoint = "cm_deinit")]
51         internal static extern int DeinitCm(IntPtr handle);
52         [DllImport(Libraries.CallManager, EntryPoint = "cm_reject_call")]
53         internal static extern int RejectCall(IntPtr handle);
54         [DllImport(Libraries.CallManager, EntryPoint = "cm_stop_alert")]
55         internal static extern int StopAlert(IntPtr handle);
56         [DllImport(Libraries.CallManager, EntryPoint = "cm_get_call_status")]
57         internal static extern int GetStatus(IntPtr handle, out CallStatus callStatus);
58         [DllImport(Libraries.CallManager, EntryPoint = "cm_set_call_status_cb")]
59         internal static extern int SetCallStatusCallback(IntPtr handle, CallStatusChangedCallback callback, IntPtr userData);
60         [DllImport(Libraries.CallManager, EntryPoint = "cm_unset_call_status_cb")]
61         internal static extern int UnsetCallstatusCallback(IntPtr handle);
62         [DllImport(Libraries.CallManager, EntryPoint = "cm_get_mute_status")]
63         internal static extern int GetMuteStatus(IntPtr handle, out CallMuteStatus muteStatus);
64         [DllImport(Libraries.CallManager, EntryPoint = "cm_set_mute_status_cb")]
65         internal static extern int SetCallMuteStatusCallback(IntPtr handle, CallMuteStatusChangedCallback callback, IntPtr userData);
66         [DllImport(Libraries.CallManager, EntryPoint = "cm_unset_mute_status_cb")]
67         internal static extern int UnsetCallMuteStatusCallback(IntPtr handle);
68         [DllImport(Libraries.CallManager, EntryPoint = "cm_enable_recovery")]
69         internal static extern int EnableRecovery(IntPtr handle, string appId);
70         [DllImport(Libraries.CallManager, EntryPoint = "cm_dial_call")]
71         internal static extern int DialCall(IntPtr handle, string number, CallType type, MultiSimSlot simSlot);
72         [DllImport(Libraries.CallManager, EntryPoint = "cm_swap_call")]
73         internal static extern int SwapCall(IntPtr handle);
74         [DllImport(Libraries.CallManager, EntryPoint = "cm_join_call")]
75         internal static extern int JoinCall(IntPtr handle);
76         [DllImport(Libraries.CallManager, EntryPoint = "cm_split_call")]
77         internal static extern int SplitCall(IntPtr handle, uint callId);
78         [DllImport(Libraries.CallManager, EntryPoint = "cm_transfer_call")]
79         internal static extern int TransferCall(IntPtr handle);
80         [DllImport(Libraries.CallManager, EntryPoint = "cm_answer_call_ex")]
81         internal static extern int AnswerCallEx(IntPtr handle, CallAnswerType answerType, CallType callType);
82         [DllImport(Libraries.CallManager, EntryPoint = "cm_answer_call")]
83         internal static extern int AnswerCall(IntPtr handle, CallAnswerType answerType);
84         [DllImport(Libraries.CallManager, EntryPoint = "cm_upgrade_call")]
85         internal static extern int UpgradeCall(IntPtr handle);
86         [DllImport(Libraries.CallManager, EntryPoint = "cm_downgrade_call")]
87         internal static extern int DowngradeCall(IntPtr handle);
88         [DllImport(Libraries.CallManager, EntryPoint = "cm_confirm_upgrade_call")]
89         internal static extern int ConfirmUpgradeCall(IntPtr handle, CallUpgradeResponseType respType);
90         [DllImport(Libraries.CallManager, EntryPoint = "cm_speaker_on")]
91         internal static extern int SpeakerOn(IntPtr handle);
92         [DllImport(Libraries.CallManager, EntryPoint = "cm_speaker_off")]
93         internal static extern int SpeakerOff(IntPtr handle);
94         [DllImport(Libraries.CallManager, EntryPoint = "cm_bluetooth_on")]
95         internal static extern int BluetoothOn(IntPtr handle);
96         [DllImport(Libraries.CallManager, EntryPoint = "cm_bluetooth_off")]
97         internal static extern int BluetoothOff(IntPtr handle);
98         [DllImport(Libraries.CallManager, EntryPoint = "cm_set_extra_vol")]
99         internal static extern int SetExtraVolume(IntPtr handle, bool isExtraVolume);
100         [DllImport(Libraries.CallManager, EntryPoint = "cm_set_noise_reduction")]
101         internal static extern int SetNoiseReduction(IntPtr handle, bool isNoiseReduction);
102         [DllImport(Libraries.CallManager, EntryPoint = "cm_set_mute_state")]
103         internal static extern int SetMuteState(IntPtr handle, bool isMuteState);
104         [DllImport(Libraries.CallManager, EntryPoint = "cm_start_dtmf")]
105         internal static extern int StartDtmf(IntPtr handle, byte dtmfDigit);
106         [DllImport(Libraries.CallManager, EntryPoint = "cm_stop_dtmf")]
107         internal static extern int StopDtmf(IntPtr handle);
108         [DllImport(Libraries.CallManager, EntryPoint = "cm_burst_dtmf")]
109         internal static extern int BurstDtmf(IntPtr handle, string dtmfDigits);
110         [DllImport(Libraries.CallManager, EntryPoint = "cm_send_dtmf_resp")]
111         internal static extern int SendDtmfResponse(IntPtr handle, DtmfResponseType respType);
112         [DllImport(Libraries.CallManager, EntryPoint = "cm_get_audio_state")]
113         internal static extern int GetAudioState(IntPtr handle, out AudioState state);
114         [DllImport(Libraries.CallManager, EntryPoint = "cm_activate_ui")]
115         internal static extern int ActivateUi(IntPtr handle);
116         [DllImport(Libraries.CallManager, EntryPoint = "cm_set_lcd_timeout")]
117         internal static extern int SetLcdTimeOut(IntPtr handle, LcdTimeOut timeOut);
118         [DllImport(Libraries.CallManager, EntryPoint = "cm_get_all_call_list")]
119         internal static extern int GetAllCallList(IntPtr handle, out IntPtr list);
120         [DllImport(Libraries.CallManager, EntryPoint = "cm_get_conference_call_list")]
121         internal static extern int GetConferenceCallList(IntPtr handle, out IntPtr list);
122         [DllImport(Libraries.CallManager, EntryPoint = "cm_get_all_calldata")]
123         internal static extern int GetAllCallData(IntPtr handle, out IntPtr incoming, out IntPtr active, out IntPtr held);
124         [DllImport(Libraries.CallManager, EntryPoint = "cm_start_voice_record")]
125         internal static extern int StartVoiceRecord(IntPtr handle, string number);
126         [DllImport(Libraries.CallManager, EntryPoint = "cm_stop_voice_record")]
127         internal static extern int StopVoiceRecord(IntPtr handle);
128         [DllImport(Libraries.CallManager, EntryPoint = "cm_set_dial_status_cb")]
129         internal static extern int SetDialStatusCb(IntPtr handle, DialStatusChangedCallback callback, IntPtr userData);
130         [DllImport(Libraries.CallManager, EntryPoint = "cm_unset_dial_status_cb")]
131         internal static extern int UnsetDialStatusCb(IntPtr handle);
132         [DllImport(Libraries.CallManager, EntryPoint = "cm_set_audio_state_changed_cb")]
133         internal static extern int SetAudioStateChangedCb(IntPtr handle, AudioStateChangedCallback callback, IntPtr userData);
134         [DllImport(Libraries.CallManager, EntryPoint = "cm_unset_audio_state_changed_cb")]
135         internal static extern int UnsetAudioStateChangedCb(IntPtr handle);
136         [DllImport(Libraries.CallManager, EntryPoint = "cm_set_dtmf_indication_cb")]
137         internal static extern int SetDtmfIndicationCb(IntPtr handle, DtmfIndicationChangedCallback callback, IntPtr userData);
138         [DllImport(Libraries.CallManager, EntryPoint = "cm_unset_dtmf_indication_cb")]
139         internal static extern int UnsetDtmfIndicationCb(IntPtr handle);
140         [DllImport(Libraries.CallManager, EntryPoint = "cm_set_foreground_cb")]
141         internal static extern int SetForegroundCb(IntPtr handle, GoForegroundCallback callback, IntPtr userData);
142         [DllImport(Libraries.CallManager, EntryPoint = "cm_unset_foreground_cb")]
143         internal static extern int UnsetForegroundCb(IntPtr handle);
144         [DllImport(Libraries.CallManager, EntryPoint = "cm_set_voice_record_status_cb")]
145         internal static extern int SetVoiceRecordStatusCb(IntPtr handle, VoiceRecordStatusChangedCallback callback, IntPtr userData);
146         [DllImport(Libraries.CallManager, EntryPoint = "cm_unset_voice_record_status_cb")]
147         internal static extern int UnsetVoiceRecordStatusCb(IntPtr handle);
148         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_data_get_person_id")]
149         internal static extern int GetPersonId(IntPtr handle, out int personId);
150         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_data_get_call_member_count")]
151         internal static extern int GetCallMemberCount(IntPtr handle, out int memberCount);
152         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_data_is_emergency_call")]
153         internal static extern int IsEmergencyCall(IntPtr handle, out bool isEmergency);
154         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_data_is_voicemail_number")]
155         internal static extern int IsVoiceMailNumber(IntPtr handle, out bool isVoiceMailNumber);
156         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_data_get_start_time")]
157         internal static extern int GetStartTime(IntPtr handle, out long startTime);
158         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_data_get_session_id")]
159         internal static extern int GetSessionId(IntPtr handle, out int sessionId);
160         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_data_get_hd_icon_state")]
161         internal static extern int GetHdIconState(IntPtr handle, out int IsHdEnable);
162         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_data_get_is_wifi_calling")]
163         internal static extern int IsWiFiCalling(IntPtr handle, out int isWiFiCalling);
164         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_data_get_upgrade_downgrade_state")]
165         internal static extern int GetUpgradeDowngradeState(IntPtr handle, out int isUpgradeDowngradeEnable);
166         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_data_get_is_added_to_conf")]
167         internal static extern int IsAddedToConference(IntPtr handle, out int isAddedToConf);
168         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_data_get_is_remote_on_hold")]
169         internal static extern int IsRemoteOnHold(IntPtr handle, out int isRemoteOnHold);
170         [DllImport(Libraries.CallManager, EntryPoint = "cm_conf_call_data_get_call_id")]
171         internal static extern int GetConfCallId(IntPtr handle, out uint callId);
172         [DllImport(Libraries.CallManager, EntryPoint = "cm_conf_call_data_get_call_number")]
173         internal static extern int GetConfCallNumber(IntPtr handle, out string number);
174         [DllImport(Libraries.CallManager, EntryPoint = "cm_conf_call_data_get_person_id")]
175         internal static extern int GetConfCallPersonId(IntPtr handle, out int personId);
176         [DllImport(Libraries.CallManager, EntryPoint = "cm_conf_call_data_get_name_mode")]
177         internal static extern int GetConfCallNameMode(IntPtr handle, out CallNameMode nameMode);
178         [DllImport(Libraries.CallManager, EntryPoint = "cm_conf_call_data_free")]
179         internal static extern int FreeConfCallData(IntPtr handle);
180         [DllImport(Libraries.CallManager, EntryPoint = "cm_set_lcd_state")]
181         internal static extern int SetLcdState(LcdControlState state);
182         [DllImport(Libraries.CallManager, EntryPoint = "cm_start_alert")]
183         internal static extern int StartAlert(IntPtr handle);
184         [DllImport(Libraries.CallManager, EntryPoint = "cm_set_call_event_cb")]
185         internal static extern int SetCallEventCb(IntPtr handle, CallEventNotificationCallback callback, IntPtr userData);
186         [DllImport(Libraries.CallManager, EntryPoint = "cm_unset_call_event_cb")]
187         internal static extern int UnsetCallEventCb(IntPtr handle);
188         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_data_free")]
189         internal static extern int FreeCallData(IntPtr handle);
190         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_data_get_call_id")]
191         internal static extern int GetCallId(IntPtr handle, out uint callId);
192         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_data_get_call_direction")]
193         internal static extern int GetCallDirection(IntPtr handle, out CallDirection direction);
194         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_data_get_call_number")]
195         internal static extern int GetCallNumber(IntPtr handle, out string number);
196         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_data_get_calling_name")]
197         internal static extern int GetCallingName(IntPtr handle, out string name);
198         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_data_get_call_type")]
199         internal static extern int GetCallType(IntPtr handle, out CallType type);
200         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_data_get_call_state")]
201         internal static extern int GetCallState(IntPtr handle, out CallState state);
202         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_data_get_call_domain")]
203         internal static extern int GetCallDomain(IntPtr handle, out CallDomain domain);
204         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_data_get_name_mode")]
205         internal static extern int GetNameMode(IntPtr handle, out CallNameMode nameMode);
206         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_data_get_mt_forwarded")]
207         internal static extern int IsForwardedCall(IntPtr handle, out bool isForwarded);
208         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_event_data_get_sim_slot")]
209         internal static extern int GetSimSlot(IntPtr handle, out MultiSimSlot simSlot);
210         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_event_data_get_incom_call")]
211         internal static extern int GetIncomingCallData(IntPtr handle, out IntPtr incomCall);
212         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_event_data_get_call_id")]
213         internal static extern int GetEventDataCallId(IntPtr handle, out uint callId);
214         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_event_data_get_active_call")]
215         internal static extern int GetActiveCall(IntPtr handle, out IntPtr activeCall);
216         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_event_data_get_held_call")]
217         internal static extern int GetHeldCall(IntPtr handle, out IntPtr heldCall);
218         [DllImport(Libraries.CallManager, EntryPoint = "cm_call_event_data_get_end_cause")]
219         internal static extern int GetEndCause(IntPtr handle, out CallEndCause endCause);
220         [DllImport(Libraries.CallManager, EntryPoint = "cm_hold_call")]
221         internal static extern int HoldCall(IntPtr handle);
222         [DllImport(Libraries.CallManager, EntryPoint = "cm_unhold_call")]
223         internal static extern int UnholdCall(IntPtr handle);
224         [DllImport(Libraries.CallManager, EntryPoint = "cm_end_call")]
225         internal static extern int EndCall(IntPtr handle, uint callId, CallReleaseType releaseType);
226     }
227 }