4 * Copyright (c) 2011 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Ja-young Gu <jygu@samsung.com>
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
12 * http://www.apache.org/licenses/LICENSE-2.0
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.
24 #include <TapiUtility.h>
26 #include <ITapiMisc.h>
28 #include "tel_cs_conn.h"
29 #include "tapi_proxy_internal.h"
32 static int _tel_check_tapi_state()
37 vconf_ret = vconf_get_int(VCONFKEY_TELEPHONY_TAPI_STATE, (int *) &tapi_state);
39 if (vconf_ret != 0 || tapi_state != 1) {
40 TAPI_LIB_DEBUG(LEVEL_ALERT, "FAIL TO GET VCONFKEY_TELEPHONY_TAPI_STATE or SERVICE NOT READY");
41 return TAPI_API_SERVICE_NOT_READY;
47 TS_BOOL __tel_check_misc_valid(tapi_misc_time_zone_info_type *zone_info)
49 TAPI_LIB_DEBUG(LEVEL_DEBUG, "Func Entrance");
51 if (0x00 > zone_info->time_zone_valid || zone_info->time_zone_valid > 0x04)
54 if (1 > zone_info->month || zone_info->month > 12)
56 if (1 > zone_info->day || zone_info->day > 31)
58 if (0 > (int) zone_info->hour || (int) zone_info->hour > 23)
60 if ((int) zone_info->minute > 59)
62 if ((int) zone_info->second > 59)
65 //no need check (TS_UINT8)zone_info->time_zone
67 if (0x00 > zone_info->daylight_adjust || zone_info->daylight_adjust > 0x02)
69 if (0x00 > zone_info->day_of_week || zone_info->day_of_week > 0x06)
75 EXPORT_API int tel_get_misc_timezone_mode(int* bTimezone_valid)
78 int api_err = TAPI_API_SUCCESS;
80 TAPI_LIB_DEBUG(LEVEL_DEBUG, "Func Entrance ");
82 if (_tel_check_tapi_state() != 0)
83 return TAPI_API_SERVICE_NOT_READY;
85 TAPI_GLIB_INIT_PARAMS();
86 TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status_internal(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
87 TAPI_GLIB_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param1, out_param2, out_param3, out_param4);
89 ret = tapi_send_request_internal(TAPI_CS_SERVICE_MISC, TAPI_CS_MISC_TIMEZONE_GETMODE,
90 in_param1, in_param2, in_param3, in_param4,
91 &out_param1, &out_param2, &out_param3, &out_param4);
94 *bTimezone_valid = g_array_index(out_param3,int ,0);
95 api_err = TAPI_API_SUCCESS;
98 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
101 TAPI_GLIB_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param1, out_param2, out_param3, out_param4);
106 EXPORT_API int tel_get_misc_timezone_info(void)
109 int api_err = TAPI_API_SUCCESS;
111 TAPI_LIB_DEBUG(LEVEL_DEBUG, "Func Entrance ");
113 if (_tel_check_tapi_state() != 0)
114 return TAPI_API_SERVICE_NOT_READY;
116 TAPI_GLIB_INIT_PARAMS();
117 TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status_internal(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
118 TAPI_GLIB_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param1, out_param2, out_param3, out_param4);
120 ret = tapi_send_request_internal(TAPI_CS_SERVICE_MISC, TAPI_CS_MISC_TIMEZONE_GETINFO,
121 in_param1, in_param2, in_param3, in_param4,
122 &out_param1, &out_param2, &out_param3, &out_param4);
125 api_err = TAPI_API_SUCCESS;
128 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
131 TAPI_GLIB_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param1, out_param2, out_param3, out_param4);
136 EXPORT_API int tel_set_misc_timezone_info(tapi_misc_time_zone_info_type *timezone_info)
138 TS_BOOL bValid = FALSE;
140 int api_err = TAPI_API_SUCCESS;
142 TAPI_LIB_DEBUG(LEVEL_DEBUG, "Func Entrance ");
144 if (_tel_check_tapi_state() != 0)
145 return TAPI_API_SERVICE_NOT_READY;
147 TAPI_RETURN_VAL_IF_FAIL(timezone_info, TAPI_API_MISC_INPUTPARM_ERROR);
149 //check validity of variable.
150 bValid = __tel_check_misc_valid(timezone_info);
151 if (bValid == FALSE) {
152 TAPI_LIB_DEBUG(LEVEL_ALERT, "TAPI_API_MISC_VALIDITY_ERROR");
153 return TAPI_API_MISC_VALIDITY_ERROR;
156 TAPI_GLIB_INIT_PARAMS();
157 TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status_internal(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
158 TAPI_GLIB_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param1, out_param2, out_param3, out_param4);
160 g_array_append_vals(in_param1, timezone_info, sizeof(tapi_misc_time_zone_info_type));
162 ret = tapi_send_request_internal(TAPI_CS_SERVICE_MISC, TAPI_CS_MISC_TIMEZONE_SETINFO,
163 in_param1, in_param2, in_param3, in_param4,
164 &out_param1, &out_param2, &out_param3, &out_param4);
167 api_err = TAPI_API_SUCCESS;
170 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
173 TAPI_GLIB_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param1, out_param2, out_param3, out_param4);
178 EXPORT_API int tel_confirm_misc_timezone_Info(tapi_misc_time_zone_info_type *timezone_info)
181 int api_err = TAPI_API_SUCCESS;
183 TAPI_LIB_DEBUG(LEVEL_DEBUG, "Func Entrance ");
185 if (_tel_check_tapi_state() != 0)
186 return TAPI_API_SERVICE_NOT_READY;
188 TAPI_RETURN_VAL_IF_FAIL(timezone_info, TAPI_API_MISC_INPUTPARM_ERROR);
189 TAPI_GLIB_INIT_PARAMS();
190 TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status_internal(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
192 TAPI_GLIB_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param1, out_param2, out_param3, out_param4);
194 g_array_append_vals(in_param1, timezone_info, sizeof(tapi_misc_time_zone_info_type));
196 ret = tapi_send_request_internal(TAPI_CS_SERVICE_MISC, TAPI_CS_MISC_TIMEZONE_CONFIRMINFO,
197 in_param1, in_param2, in_param3, in_param4,
198 &out_param1, &out_param2, &out_param3, &out_param4);
201 api_err = TAPI_API_SUCCESS;
204 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
207 TAPI_GLIB_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param1, out_param2, out_param3, out_param4);
212 EXPORT_API int tel_get_misc_me_version(TelMiscVersionInformation* ver_info)
215 int api_err = TAPI_API_SUCCESS;
217 TAPI_LIB_DEBUG(LEVEL_DEBUG, "Func Entrance ");
219 if (_tel_check_tapi_state() != 0)
220 return TAPI_API_SERVICE_NOT_READY;
222 TAPI_GLIB_INIT_PARAMS();
223 TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status_internal(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
224 TAPI_GLIB_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param1, out_param2, out_param3, out_param4);
226 ret = tapi_send_request_internal(TAPI_CS_SERVICE_MISC, TAPI_CS_MISC_ME_VERSION_GET,
227 in_param1, in_param2, in_param3, in_param4,
228 &out_param1, &out_param2, &out_param3, &out_param4);
231 api_err = g_array_index(out_param1, int ,0);
233 if (api_err == TAPI_API_SUCCESS) {
234 *ver_info = g_array_index(out_param2, TelMiscVersionInformation, 0);
236 TAPI_LIB_DEBUG(LEVEL_DEBUG, "ver_mask[0x%02x]", ver_info->ver_mask);
237 TAPI_LIB_DEBUG(LEVEL_DEBUG, "szHwVersion[%s]", ver_info->szHwVersion);
238 TAPI_LIB_DEBUG(LEVEL_DEBUG, "szSwVersion[%s]", ver_info->szSwVersion);
239 TAPI_LIB_DEBUG(LEVEL_DEBUG, "szRfCalDate[%s]", ver_info->szRfCalDate);
240 TAPI_LIB_DEBUG(LEVEL_DEBUG, "szProductCode[%s]", ver_info->szProductCode);
243 TAPI_LIB_DEBUG(LEVEL_DEBUG, "api_err[%d]", api_err);
247 TAPI_LIB_DEBUG(LEVEL_DEBUG, "tapi_send_request_internal fail");
248 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
251 TAPI_GLIB_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param1, out_param2, out_param3, out_param4);
256 EXPORT_API int tel_get_misc_me_sn(TelMiscSNIndexType_t sn_index, TelMiscSNInformation* sn_info)
259 int api_err = TAPI_API_SUCCESS;
261 TAPI_LIB_DEBUG(LEVEL_DEBUG, "Func Entrance");
263 if (_tel_check_tapi_state() != 0)
264 return TAPI_API_SERVICE_NOT_READY;
266 TAPI_GLIB_INIT_PARAMS();
267 TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status_internal(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
268 TAPI_GLIB_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param1, out_param2, out_param3, out_param4);
270 g_array_append_vals(in_param1, &sn_index, sizeof(TelMiscSNIndexType_t));
272 ret = tapi_send_request_internal(TAPI_CS_SERVICE_MISC, TAPI_CS_MISC_SERIAL_NUMBER_GET,
273 in_param1, in_param2, in_param3, in_param4,
274 &out_param1, &out_param2, &out_param3, &out_param4);
277 api_err = g_array_index(out_param1, int ,0);
279 if (api_err == TAPI_API_SUCCESS) {
280 *sn_info = g_array_index(out_param2, TelMiscSNInformation, 0);
282 TAPI_LIB_DEBUG(LEVEL_DEBUG, "sn_index[%d]", sn_info->sn_index);
283 TAPI_LIB_DEBUG(LEVEL_DEBUG, "sn_len[%d]", sn_info->sn_len);
284 TAPI_LIB_DEBUG(LEVEL_DEBUG, "szNumber[%s]", sn_info->szNumber);
287 TAPI_LIB_DEBUG(LEVEL_DEBUG, "api_err[%d]", api_err);
291 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
294 TAPI_GLIB_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param1, out_param2, out_param3, out_param4);
299 EXPORT_API int tel_get_misc_nam_info(unsigned short nam_info_mask, TelMiscNamIndex_t nam_index)
302 int api_err = TAPI_API_SUCCESS;
304 TAPI_LIB_DEBUG(LEVEL_DEBUG, "Func Entrance");
306 if (_tel_check_tapi_state() != 0)
307 return TAPI_API_SERVICE_NOT_READY;
309 TAPI_GLIB_INIT_PARAMS();
310 TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status_internal(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
311 TAPI_GLIB_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param1, out_param2, out_param3, out_param4);
313 g_array_append_vals(in_param1, &nam_info_mask, sizeof(unsigned short));
314 g_array_append_vals(in_param2, &nam_index, sizeof(TelMiscNamIndex_t));
316 ret = tapi_send_request_internal(TAPI_CS_SERVICE_MISC, TAPI_CS_MISC_NAM_INFO_GET,
317 in_param1, in_param2, in_param3, in_param4,
318 &out_param1, &out_param2, &out_param3, &out_param4);
321 api_err = TAPI_API_SUCCESS;
324 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
327 TAPI_GLIB_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param1, out_param2, out_param3, out_param4);
332 EXPORT_API int tel_set_misc_nam_info(TelMiscNamInfo_t *nam_info)
335 int api_err = TAPI_API_SUCCESS;
337 TAPI_LIB_DEBUG(LEVEL_DEBUG, "Func Entrance");
339 if (_tel_check_tapi_state() != 0)
340 return TAPI_API_SERVICE_NOT_READY;
342 TAPI_GLIB_INIT_PARAMS();
343 TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status_internal(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
344 TAPI_GLIB_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param1, out_param2, out_param3, out_param4);
346 g_array_append_vals(in_param1, nam_info, sizeof(TelMiscNamInfo_t));
348 ret = tapi_send_request_internal(TAPI_CS_SERVICE_MISC, TAPI_CS_MISC_NAM_INFO_SET,
349 in_param1, in_param2, in_param3, in_param4,
350 &out_param1, &out_param2, &out_param3, &out_param4);
353 api_err = TAPI_API_SUCCESS;
356 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
359 TAPI_GLIB_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param1, out_param2, out_param3, out_param4);
364 EXPORT_API int tel_set_misc_emergency_mode(int mode) {
365 TAPI_LIB_DEBUG(LEVEL_DEBUG, "Func Entrance with request mode[%d]", mode);
367 if (_tel_check_tapi_state() != 0)
368 return TAPI_API_SERVICE_NOT_READY;
370 if (mode != 0 && mode != 1)
371 return TAPI_API_INVALID_INPUT;
373 if (vconf_set_int("db/telephony/emergency", mode) != 0) {
374 TAPI_LIB_DEBUG(LEVEL_ERR, "[FAIL]UPDATE db/telephony/emergency");
375 return TAPI_API_OPERATION_FAILED;
377 return TAPI_API_SUCCESS;
380 EXPORT_API int tel_get_misc_emergency_mode(int *mode) {
381 TAPI_LIB_DEBUG(LEVEL_DEBUG, "Func Entrance");
383 if (_tel_check_tapi_state() != 0)
384 return TAPI_API_SERVICE_NOT_READY;
386 if (vconf_get_int("db/telephony/emergency", mode) != 0) {
387 TAPI_LIB_DEBUG(LEVEL_ERR, "[FAIL]GET db/telephony/emergency");
388 return TAPI_API_OPERATION_FAILED;
390 TAPI_LIB_DEBUG(LEVEL_DEBUG, "emergency mode[%d]", *mode);
391 return TAPI_API_SUCCESS;