upload tizen1.0 source
[framework/telephony/libslp-tapi.git] / include / common / TelMisc.h
1 /*
2  * libslp-tapi
3  *
4  * Copyright (c) 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Ja-young Gu <jygu@samsung.com>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20
21 /**
22  * @internal
23  * @ingroup             TelephonyAPI
24  * @addtogroup  MISC_TAPI       MISC
25  * @{
26  *
27  * @file TelMisc.h
28
29  @brief This file serves as a "C" header file defines structures for Tapi Misc Services. \n
30  It contains a sample set of constants, enums, structs that would be required by applications.
31
32  */
33
34 #ifndef _TEL_MISC_H_
35 #define _TEL_MISC_H_
36
37 #include <sys/time.h>
38 #include <TelDefines.h>
39
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43
44 #define MAX_VERSION_LEN 32    /**< Maximum version length *///sw version, hw version, rf cal date, me sn
45 #define FUS_DUMMY_DATA_SIZE 2     /**< Data Size*/
46
47 #define MMICHECK_CALL_RELEASE_NOTI      "User.LauncherUi.RequestTermination"
48 #define MMICHECK_END_ALL_NOTI           "User.LauncherUi.RequestTermination"
49 #define MMICHECK_DIALER_KEY_NOTI        "User.LauncherUi.DialerKeyInsert"
50 #define MMICHECK_ACTIVITY_VIEW_NOTI     "User.MMICheck.ActivityView.ChangeStatus"
51
52 #define TAPI_MISC_ME_SN_LEN_MAX                         32
53 #define TAPI_MISC_PRODUCT_CODE_LEN_MAX          32
54 #define TAPI_MISC_MODEL_ID_LEN_MAX                      17
55 #define TAPI_MISC_PRL_ERI_VER_LEN_MAX           17
56
57 #define TAPI_MISC_MCC_LEN_MAX                           3
58 #define TAPI_MISC_MNC_LEN_MAX                           2
59 #define TAPI_MISC_MIN_LEN_MAX                           10
60 #define TAPI_MISC_MDN_LEN_MAX                           15
61 #define TAPI_MISC_NAME_LEN_MAX                          17
62
63 /**
64  * @enum TelMiscApplicationKey_t
65  * This enumeration defines mmi check key values
66  */
67 typedef enum {
68         MMI_CHECK_DIAL_STAR             =       0x2A,   //      20 00 2A AF 4B 7E
69         MMI_CHECK_DIAL_SHARP    =       0x23,   //      20 00 23 6E D6 7E
70         MMI_CHECK_DIAL_0                =       0x30,   //      20 00 30 74 F4 7E
71         MMI_CHECK_DIAL_1,                                       //      20 00 31 FD E5 7E
72         MMI_CHECK_DIAL_2,                                       //      20 00 32 66 D7 7E
73         MMI_CHECK_DIAL_3,                                       //      20 00 33 EF C6 7E
74         MMI_CHECK_DIAL_4,                                       //      20 00 34 50 B2 7E
75         MMI_CHECK_DIAL_5,                                       //      20 00 35 D9 A3 7E
76         MMI_CHECK_DIAL_6,                                       //      20 00 36 42 91 7E
77         MMI_CHECK_DIAL_7,                                       //      20 00 37 CB 80 7E
78         MMI_CHECK_DIAL_8,                                       //      20 00 38 3C 78 7E
79         MMI_CHECK_DIAL_9,                                       //      20 00 39 B5 69 7E
80
81         MMI_CHECK_END_ALL               =       0x41,   //
82
83         MMI_CHECK_CALL                  =       0x50,   //      20 00 50 72 97 7E
84         MMI_CHECK_END                   =       0x51,   //      20 00 51 FB 86 7E
85         MMI_CHECK_CANCEL                =       0x52,   //      20 00 52 60 B4 7E
86         MMI_CHECK_RIGHT                 =       0x53,   //      20 00 5C 1E 5D 7E
87         MMI_CHECK_SIDE_UP               =       0x54,   //      20 00 54 56 D1 7E
88         MMI_CHECK_SIDE_DOWN             =       0x55,   //      20 00 55 DF C0 7E
89
90         MMI_CHECK_LEFT                  =       0x5B,   //      20 00 5B A1 29 7E
91         MMI_CHECK_ARROW_UP              =       0x63,   //      20 00 63 6A 94 7E
92         MMI_CHECK_ARROW_DOWN    =       0x64,   //      20 00 64 D5 E0 7E
93         MMI_CHECK_ARROW_LEFT    =       0x65,   //      20 00 65 5C F1 7E
94         MMI_CHECK_ARROW_RIGHT   =       0x66,   //      20 00 66 C7 C3 7E
95
96         MMI_CHECK_WAP                   =       0x8C,   //      20 00 53 E9 A5 7E
97         MMI_CHECK_CAMERA                =       0x8D,   //      20 01 8D C2 83 7E
98         MMI_CHECK_MP3                   =       0xDD,   //      20 00 DD 9F C8 7E
99         MMI_CHECK_POWER                 =       0x95,   //      20 00 95 D3 06 7E
100         MMI_CHECK_LONG_PRESS    =       0xFF
101 } TelMiscMMICHECK_t;
102
103 /**
104  * @enum TelMiscApplicationKey_t
105  * This enumeration defines application key type
106  */
107 typedef enum {
108         KEY_EXT_DIAL_0 = 0,
109         KEY_EXT_DIAL_1,
110         KEY_EXT_DIAL_2,
111         KEY_EXT_DIAL_3,
112         KEY_EXT_DIAL_4,
113         KEY_EXT_DIAL_5,
114         KEY_EXT_DIAL_6,
115         KEY_EXT_DIAL_7,
116         KEY_EXT_DIAL_8,
117         KEY_EXT_DIAL_9,
118         KEY_EXT_DIAL_STAR,      // 10 : *
119         KEY_EXT_DIAL_SHARP,     // 11 : #
120
121         KEY_EXT_DIAL_BACK,      // 12 : <- (backkey)
122         KEY_EXT_DIAL_HIDE,      // 13 :�� (hidekey)
123         KEY_EXT_DIAL_P,         // 14 : p
124         KEY_EXT_DIAL_PLUS,      // 15 : +
125         KEY_EXT_DIAL_MUTE,      // 16 : mute
126
127         KEY_EXT_DIAL_CALL                       =       100,            // 100 : BTN1 (call)
128         KEY_EXT_DIAL_MESSAGE,                                           // 101 : BTN2 (message)
129         KEY_EXT_DIAL_VIDEO_CALL,                                        // 102 : BTN3 (video call)
130         KEY_EXT_DIAL_SAVE,                                                      // 103 : BTN4 (save)
131         KEY_EXT_DIAL_CALL_END,                                          // noti publish
132         KEY_EXT_TERMINATE_ALL,
133
134         KEY_EXT_PAGEDOWN                        =       114,            // Volume down
135         KEY_EXT_PAGEUP                          =       115,            // Volume up
136         KEY_EXT_POWER                           =       116,            // Power short
137         KEY_EXT_PEOPLE_VIEW                     =       132,            // People view
138         KEY_EXT_TIMELINE                        =       169,            // Lifedrive
139         KEY_EXT_PREPARE_CAMERA          =       171,            // Prepare Camera
140         KEY_EXT_ACTIVITY_VIEW           =       174,            // Activity view
141         KEY_EXT_CAMERA                          =       212,            // Camera
142         KEY_EXT_SEARCH                          =       217,            // Phone Search
143         KEY_EXT_POWER_LONG                      =       356,            // Power off
144
145         KEY_EXT_INVALID_KEY                     =       500
146 } TelMiscApplicationKey_t;
147
148 /**
149  * @enum TelMiscDiagTouchEventType_t
150  * This enumeration defines the touch event type
151  */
152 typedef enum {
153         TAPI_DIAG_TOUCH_CLICK_DOWN = 0x000F, /**< 0x0F00: Click Down */
154         TAPI_DIAG_TOUCH_MOVE = 0x0010, /**< 0x1000: Move  */
155         TAPI_DIAG_TOUCH_CLICK_UP = 0x0011, /**< 0x1100: Click Up */
156         TAPI_DIAG_TOUCH_HOLD = 0x0012 /**< 0x1200: Hold */
157 } TelMiscDiagTouchEventType_t;
158
159 /**
160  * @enum  TelMiscAlarmMode_t
161  * Enum type for Validity of the Alarm booting
162  */
163 typedef enum {
164         TAPI_MISC_ALARMBOOT_INACTIVATE, /**< 0x00: Inactivated */
165         TAPI_MISC_ALARMBOOT_ACTIVATE /**< 0x00: Activated */
166 } TelMiscAlarmMode_t;
167
168 typedef enum {
169         TAPI_MISC_ME_IMEI = 0x00, /**< 0x00: IMEI, GSM/UMTS device */
170         TAPI_MISC_ME_ESN = 0x01, /**< 0x01: ESN(Electronic Serial Number), It`s essentially run out. CDMA device */
171         TAPI_MISC_ME_MEID = 0x02, /**< 0x02: MEID, This value can have hexa decimal digits. CDMA device */
172         TAPI_MISC_ME_MAX = 0xff /**< 0xff: reserved */
173 } TelMiscSNIndexType_t;
174
175 /**
176  * NAM Information MASK fiel
177  */
178 typedef enum {
179         TAPI_MISC_NAM_INFO_MASK_TOTAL                   = 0x0001,
180         TAPI_MISC_NAM_INFO_MASK_CURRENT_INDEX   = 0x0002,
181         TAPI_MISC_NAM_INFO_MASK_REQUEST_INDEX   = 0x0004,
182         TAPI_MISC_NAM_INFO_MASK_AUTONAM         = 0x0008,
183         TAPI_MISC_NAM_INFO_MASK_MCC                     = 0x0010,
184         TAPI_MISC_NAM_INFO_MASK_MNC                     = 0x0020,
185         TAPI_MISC_NAM_INFO_MASK_MIN                     = 0x0040,
186         TAPI_MISC_NAM_INFO_MASK_MDN                     = 0x0080,
187         TAPI_MISC_NAM_INFO_MASK_NAM_NAME                = 0x0100,
188         TAPI_MISC_NAM_INFO_MASK_NAM_CHANGE              = 0x0200,
189         TAPI_MISC_NAM_INFO_MASK_NAM_NUM         = 0x0400,
190         TAPI_MISC_NAM_INFO_MASK_ALL                     = 0x8000
191 } TelMiscNamInfoMaskType_t;
192
193 /**
194  * NAMIndex Field
195  */
196 typedef enum {
197         TAPI_MISC_NAM_1 = 0x00,
198         TAPI_MISC_NAM_2,
199         TAPI_MISC_NAM_3,
200         TAPI_MISC_NAM_4,
201         TAPI_MISC_NAM_5
202 } TelMiscNamIndex_t;
203
204
205 /**
206  * @enum  tapi_misc_nitz_dayofweek_t
207  * Enum type for day of week
208  */
209 typedef enum {
210         TAPI_MISC_NITZ_DOW_SUN = 0x00, /**< Sunday */
211         TAPI_MISC_NITZ_DOW_MON = 0x01, /**< Monday */
212         TAPI_MISC_NITZ_DOW_TUE = 0x02, /**< Tuesday */
213         TAPI_MISC_NITZ_DOW_WED = 0x03, /**< Wednesday */
214         TAPI_MISC_NITZ_DOW_THU = 0x04, /**< Thursday */
215         TAPI_MISC_NITZ_DOW_FRI = 0X05, /**< Friday */
216         TAPI_MISC_NITZ_DOW_SAT = 0x06  /**< Saturday */
217 } tapi_misc_nitz_dayofweek_t;
218
219 /**
220  * @enum  tapi_misc_nitz_daylight_t
221  * Enum type for daylight
222  */
223 typedef enum {
224         TAPI_MISC_NITZ_NOADJUST = 0x00, /**< No daylight adjustment */
225         TAPI_MISC_NITZ_ONE_HR = 0x01, /**< One hour */
226         TAPI_MISC_NITZ_TW0_HR = 0x02  /**< two hours */
227 } tapi_misc_nitz_daylight_t;
228
229 /**
230  * @enum  tapi_misc_nitz_timeinfo_t
231  * Enum type for types of data
232  */
233 typedef enum {
234         TAPI_MISC_NITZ_INVALID                  = 0x00, /**< Invalid */
235         TAPI_MISC_NITZ_TIMEINFO_NW_CDMA = 0x01, /**< Time info network */
236         TAPI_MISC_NITZ_TIMEINFO_NW_GSM  = 0x02, /**< Time info network */
237         TAPI_MISC_NITZ_RTC_INFO_LINE    = 0x03, /**< RTC Info line */
238         TAPI_MISC_NITZ_RTC_BKUP_PHONE   = 0x04, /**< RTC Backup phone */
239         TAPI_MISC_NITZ_NO_TIME_INFO     = 0x05  /**< No time info */
240 } tapi_misc_nitz_timeinfo_t;
241
242 /**
243  * Mobile Equipment Version Information
244  */
245 typedef struct {
246         unsigned char ver_mask; /**< version mask  - 0x01:SW_ver, 0x02:HW_ver, 0x04:RF_CAL_date, 0x08:Product_code, 0x10:Model_ID, 0x20:PRL, 0x04:ERI, 0xff:all */
247         unsigned char szSwVersion[MAX_VERSION_LEN]; /**< Software version, null termination */
248         unsigned char szHwVersion[MAX_VERSION_LEN]; /**< Hardware version, null termination */
249         unsigned char szRfCalDate[MAX_VERSION_LEN]; /**< Calculation Date, null termination */
250         unsigned char szProductCode[TAPI_MISC_PRODUCT_CODE_LEN_MAX]; /**< product code, null termination */
251         unsigned char szModelId[TAPI_MISC_MODEL_ID_LEN_MAX]; /**< model id (only for CDMA), null termination */
252         unsigned char prl_nam_num; /**< number of PRL NAM fields */
253         unsigned char szPrlVersion[TAPI_MISC_PRL_ERI_VER_LEN_MAX * 3];/**< prl version (only for CDMA), null termination */
254         unsigned char eri_nam_num; /**< number of PRL NAM fields */
255         unsigned char szEriVersion[TAPI_MISC_PRL_ERI_VER_LEN_MAX * 3];/**< eri version (only for CDMA), null termination */
256 } TelMiscVersionInformation;
257
258 /**
259  * Mobile Equipment Serial Number Information
260  */
261 typedef struct {
262         TelMiscSNIndexType_t sn_index; /**< serial number index */
263         int sn_len; /**< Length */
264         unsigned char szNumber[TAPI_MISC_ME_SN_LEN_MAX]; /**< Number */
265 } TelMiscSNInformation;
266
267 /**
268  * Event delivery - event type
269  */
270 typedef struct {
271         struct timeval time; /**< Time information */
272         unsigned short type; /**< Type of event */
273         unsigned short code; /**< Code */
274         long value; /**< Value */
275 } input_event_t;
276
277 /**
278  * Diagnostic Key Code Information
279  */
280 typedef struct {
281         unsigned char keycode; /**< Key Code */
282         unsigned char keyhold; /**< Key Hold */
283 } TelMiscDiagKeyCodeInfomation;
284
285 /**
286  * Struct for alarm info
287  */
288 typedef struct {
289         unsigned char year; /**< year */
290         unsigned char month; /**< month */
291         unsigned char day; /**< day */
292         unsigned char hour; /**< hour */
293         unsigned char minute; /**< minute */
294         unsigned char second; /**< second */
295         unsigned char time_zone; /**< time zone */
296         tapi_misc_nitz_dayofweek_t day_of_week; /**< day of week */
297 } TelMiscAlarmInfo_t;
298
299 /**
300  * Struct for alarm response
301  */
302 typedef struct {
303         TelMiscAlarmMode_t validity; /**< validity */
304         TelMiscAlarmInfo_t alarm_info; /**< alarm info */
305 } TelMiscAlarmStatus_t;
306
307 /**
308  * @struct  TelMiscNamInfo_t
309  * struct type for nam info
310  */
311 typedef struct {
312         unsigned short nam_info_mask;
313         unsigned char nam_total; // this field is not used in case of nam set req.
314         unsigned char nam_current_index;
315         unsigned char nam_req_index;
316         unsigned char nam_auto;
317         unsigned char nam_mcc[TAPI_MISC_MCC_LEN_MAX+1];
318         unsigned char nam_mnc[TAPI_MISC_MCC_LEN_MAX+1];
319         unsigned char nam_min[TAPI_MISC_MIN_LEN_MAX+1];
320         unsigned char nam_mdn[TAPI_MISC_MDN_LEN_MAX+1];
321         unsigned char nam_name[TAPI_MISC_NAME_LEN_MAX+1];
322 } TelMiscNamInfo_t;
323
324 /**
325  * Struct for time info
326  */
327 typedef struct {
328         tapi_misc_nitz_timeinfo_t time_zone_valid; /**< time zone */
329         int bDaylight_valid; /**< day light */
330         unsigned char year; /**< year */
331         unsigned char month; /**< month */
332         unsigned char day; /**< day */
333         unsigned char hour; /**< hour */
334         unsigned char minute; /**< minute */
335         unsigned char second; /**< second */
336         unsigned char time_zone; /**< time zone */
337         tapi_misc_nitz_daylight_t daylight_adjust; /**< day light adjust */
338         tapi_misc_nitz_dayofweek_t day_of_week; /**< day of week */
339         unsigned long plmn; /**< day of week */
340 } tapi_misc_time_zone_info_type;
341
342 #ifdef __cplusplus
343 }
344 #endif
345
346 #endif // _TEL_MISC_H_
347 /**
348  *  @}
349  */