Release 4.0.0-preview1-00051
[platform/core/csapi/tizenfx.git] / src / Tizen.Telephony / Interop / Interop.Telephony.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.Telephony;
20
21 /// <summary>
22 /// Partial Interop Class
23 /// </summary>
24 internal static partial class Interop
25 {
26     /// <summary>
27     /// Telephony Interop Class
28     /// </summary>
29     internal static class Telephony
30   {
31     private const int TIZEN_ERROR_TELEPHONY = -0x02600000;
32     internal static string LogTag = "Tizen.Telephony";
33     internal enum TelephonyError
34     {
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
42     };
43
44     [StructLayout(LayoutKind.Sequential)]
45     internal struct HandleList
46     {
47       internal uint Count;
48       internal IntPtr HandleArrayPointer;
49     };
50
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);
53
54     [DllImport(Libraries.Telephony, EntryPoint = "telephony_unset_noti_cb")]
55     internal static extern TelephonyError TelephonyUnsetNotiCb(IntPtr handle, Tizen.Telephony.ChangeNotificationEventArgs.Notification notiId);
56
57     [DllImport(Libraries.Telephony, EntryPoint = "telephony_init")]
58     internal static extern TelephonyError TelephonyInit(out HandleList list);
59
60     [DllImport(Libraries.Telephony, EntryPoint = "telephony_deinit")]
61     internal static extern TelephonyError TelephonyDeinit(ref HandleList list);
62
63     [DllImport(Libraries.Telephony, EntryPoint = "telephony_get_state")]
64     internal static extern TelephonyError TelephonyGetState(out State state);
65
66     [DllImport(Libraries.Telephony, EntryPoint = "telephony_set_state_changed_cb")]
67     internal static extern TelephonyError TelephonySetStateChangedCb(StateChangedCallback callback, IntPtr userData);
68
69     [DllImport(Libraries.Telephony, EntryPoint = "telephony_unset_state_changed_cb")]
70     internal static extern TelephonyError TelephonyUnsetStateChangedCb(StateChangedCallback callback);
71
72     [UnmanagedFunctionPointerAttribute(CallingConvention.Cdecl)]
73     internal delegate void NotificationCallback(IntPtr handle, ChangeNotificationEventArgs.Notification notiId, IntPtr data, IntPtr userData);
74
75     [UnmanagedFunctionPointerAttribute(CallingConvention.Cdecl)]
76     internal delegate void StateChangedCallback(State state, IntPtr userData);
77   }
78 }