merge application code from spin
[platform/core/csapi/tizenfx.git] / Tizen.Applications / Interop / Interop.Alarm.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
20 using Tizen.Internals.Errors;
21 using Tizen.Applications;
22
23 internal static partial class Interop
24 {
25     internal static partial class Alarm
26     {
27         [StructLayout(LayoutKind.Sequential)]
28         internal struct DateTime
29         {
30             internal int sec;
31             internal int min;
32             internal int hour;
33             internal int mday; /* day of the month, range 1 to 31*/
34             internal int mon;
35             internal int year;
36             internal int wday; /* day of the week, range 0 to 6*/
37             internal int yday; /* day in the year, range 0 to 365*/
38             internal int isdst; /* daylight saving time*/
39         };
40
41         [DllImport(Libraries.Alarm, EntryPoint = "alarm_schedule_after_delay")]
42         internal static extern int CreateAlarmAfterDelay(SafeAppControlHandle appControl, int delay, int period, out int alarmId);
43
44         [DllImport(Libraries.Alarm, EntryPoint = "alarm_schedule_once_after_delay")]
45         internal static extern int CreateAlarmOnceAfterDelay(SafeAppControlHandle appControl, int delay, out int alarmId);
46
47         [DllImport(Libraries.Alarm, EntryPoint = "alarm_schedule_once_at_date")]
48         internal static extern int CreateAlarmOnceAtDate(SafeAppControlHandle appControl, ref DateTime date, out int alarmId);
49
50         [DllImport(Libraries.Alarm, EntryPoint = "alarm_schedule_with_recurrence_week_flag")]
51         internal static extern int CreateAlarmRecurWeek(SafeAppControlHandle appControl, ref DateTime date, int week, out int alarmId);
52
53         [DllImport(Libraries.Alarm, EntryPoint = "alarm_get_scheduled_recurrence_week_flag")]
54         internal static extern int GetAlarmWeekFlag(int alarmId, out int weekFlag);
55
56         [DllImport(Libraries.Alarm, EntryPoint = "alarm_cancel")]
57         internal static extern int CancelAlarm(int alarmId);
58
59         [DllImport(Libraries.Alarm, EntryPoint = "alarm_cancel_all")]
60         internal static extern int CancelAllAlarms();
61
62         [DllImport(Libraries.Alarm, EntryPoint = "alarm_get_scheduled_date")]
63         internal static extern int GetAlarmScheduledDate(int alarmId, out DateTime date);
64
65         [DllImport(Libraries.Alarm, EntryPoint = "alarm_get_current_time")]
66         internal static extern int GetCurrentTime(out DateTime date);
67
68         [DllImport(Libraries.Alarm, EntryPoint = "alarm_get_app_control")]
69         internal static extern int GetAlarmAppControl(int alarmId, out SafeAppControlHandle control);
70
71         [DllImport(Libraries.Alarm, EntryPoint = "alarm_get_scheduled_period")]
72         internal static extern int GetAlarmScheduledPeriod(int alarmId, out int period);
73
74         [DllImport(Libraries.Alarm, EntryPoint = "alarm_set_global")]
75         internal static extern int SetAlarmGlobalFlag(int alarmId, bool global);
76
77         [DllImport(Libraries.Alarm, EntryPoint = "alarm_get_global")]
78         internal static extern int GetAlarmGlobalFlag(int alarmId, out bool global);
79
80         [DllImport(Libraries.Alarm, EntryPoint = "alarm_foreach_registered_alarm")]
81         internal static extern int GetAllRegisteredAlarms(RegisteredAlarmCallback callback, IntPtr userData);
82
83         //callback
84         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
85         internal delegate bool RegisteredAlarmCallback(int alarmId, IntPtr userData);
86     }
87 }