2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
18 using System.Runtime.InteropServices;
19 using Tizen.CallManager;
22 /// Interop class for CallManager
24 internal static partial class Interop
27 /// CallManager Native Apis
29 internal static partial class CallManager
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);
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);