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.Telephony;
22 /// The Partial Interop class.
24 internal static partial class Interop
27 /// The Telephony Interop class.
29 internal static class Telephony
31 private const int TIZEN_ERROR_TELEPHONY = -0x02600000;
32 internal static string LogTag = "Tizen.Telephony";
33 internal enum TelephonyError
35 None = Tizen.Internals.Errors.ErrorCode.None,
36 OutOfMemory = Tizen.Internals.Errors.ErrorCode.OutOfMemory,
37 InvalidParameter = Tizen.Internals.Errors.ErrorCode.InvalidParameter,
38 PermissionDenied = Tizen.Internals.Errors.ErrorCode.PermissionDenied,
39 NotSupported = Tizen.Internals.Errors.ErrorCode.NotSupported,
40 OperationFailed = TIZEN_ERROR_TELEPHONY | 0x0001,
41 SIMNotAvailable = TIZEN_ERROR_TELEPHONY | 0x1001
44 [StructLayout(LayoutKind.Sequential)]
45 internal struct HandleList
48 internal IntPtr HandleArrayPointer;
51 [DllImport(Libraries.Telephony, EntryPoint = "telephony_set_noti_cb")]
52 internal static extern TelephonyError TelephonySetNotiCb(IntPtr handle, Tizen.Telephony.ChangeNotificationEventArgs.Notification notiId, NotificationCallback cb, IntPtr userData);
54 [DllImport(Libraries.Telephony, EntryPoint = "telephony_unset_noti_cb")]
55 internal static extern TelephonyError TelephonyUnsetNotiCb(IntPtr handle, Tizen.Telephony.ChangeNotificationEventArgs.Notification notiId);
57 [DllImport(Libraries.Telephony, EntryPoint = "telephony_init")]
58 internal static extern TelephonyError TelephonyInit(out HandleList list);
60 [DllImport(Libraries.Telephony, EntryPoint = "telephony_deinit")]
61 internal static extern TelephonyError TelephonyDeinit(ref HandleList list);
63 [DllImport(Libraries.Telephony, EntryPoint = "telephony_get_state")]
64 internal static extern TelephonyError TelephonyGetState(out State state);
66 [DllImport(Libraries.Telephony, EntryPoint = "telephony_set_state_changed_cb")]
67 internal static extern TelephonyError TelephonySetStateChangedCb(StateChangedCallback callback, IntPtr userData);
69 [DllImport(Libraries.Telephony, EntryPoint = "telephony_unset_state_changed_cb")]
70 internal static extern TelephonyError TelephonyUnsetStateChangedCb(StateChangedCallback callback);
72 [UnmanagedFunctionPointerAttribute(CallingConvention.Cdecl)]
73 internal delegate void NotificationCallback(IntPtr handle, ChangeNotificationEventArgs.Notification notiId, IntPtr data, IntPtr userData);
75 [UnmanagedFunctionPointerAttribute(CallingConvention.Cdecl)]
76 internal delegate void StateChangedCallback(State state, IntPtr userData);