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.Internals;
20 using Tizen.Telephony;
23 /// The Partial Interop class.
25 internal static partial class Interop
28 /// The Telephony Interop class.
30 internal static class Telephony
32 private const int TIZEN_ERROR_TELEPHONY = -0x02600000;
33 internal static string LogTag = "Tizen.Telephony";
34 internal enum TelephonyError
36 None = Tizen.Internals.Errors.ErrorCode.None,
37 OutOfMemory = Tizen.Internals.Errors.ErrorCode.OutOfMemory,
38 InvalidParameter = Tizen.Internals.Errors.ErrorCode.InvalidParameter,
39 PermissionDenied = Tizen.Internals.Errors.ErrorCode.PermissionDenied,
40 NotSupported = Tizen.Internals.Errors.ErrorCode.NotSupported,
41 OperationFailed = TIZEN_ERROR_TELEPHONY | 0x0001,
42 SIMNotAvailable = TIZEN_ERROR_TELEPHONY | 0x1001
45 [NativeStruct("telephony_handle_list_s", Include="telephony_common.h", PkgConfig="capi-telephony")]
46 [StructLayout(LayoutKind.Sequential)]
47 internal struct HandleList
50 internal IntPtr HandleArrayPointer;
53 [DllImport(Libraries.Telephony, EntryPoint = "telephony_set_noti_cb")]
54 internal static extern TelephonyError TelephonySetNotiCb(IntPtr handle, Tizen.Telephony.ChangeNotificationEventArgs.Notification notiId, NotificationCallback cb, IntPtr userData);
56 [DllImport(Libraries.Telephony, EntryPoint = "telephony_unset_noti_cb")]
57 internal static extern TelephonyError TelephonyUnsetNotiCb(IntPtr handle, Tizen.Telephony.ChangeNotificationEventArgs.Notification notiId);
59 [DllImport(Libraries.Telephony, EntryPoint = "telephony_init")]
60 internal static extern TelephonyError TelephonyInit(out HandleList list);
62 [DllImport(Libraries.Telephony, EntryPoint = "telephony_deinit")]
63 internal static extern TelephonyError TelephonyDeinit(ref HandleList list);
65 [DllImport(Libraries.Telephony, EntryPoint = "telephony_get_state")]
66 internal static extern TelephonyError TelephonyGetState(out State state);
68 [DllImport(Libraries.Telephony, EntryPoint = "telephony_set_state_changed_cb")]
69 internal static extern TelephonyError TelephonySetStateChangedCb(StateChangedCallback callback, IntPtr userData);
71 [DllImport(Libraries.Telephony, EntryPoint = "telephony_unset_state_changed_cb")]
72 internal static extern TelephonyError TelephonyUnsetStateChangedCb(StateChangedCallback callback);
74 [UnmanagedFunctionPointerAttribute(CallingConvention.Cdecl)]
75 internal delegate void NotificationCallback(IntPtr handle, ChangeNotificationEventArgs.Notification notiId, IntPtr data, IntPtr userData);
77 [UnmanagedFunctionPointerAttribute(CallingConvention.Cdecl)]
78 internal delegate void StateChangedCallback(State state, IntPtr userData);