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.
26 #include "TelDefines.h"
27 #include "tel_cs_conn.h"
28 #include "tapi_proxy.h"
29 #include "TelUtility.h"
30 #include "TapiUtility.h"
33 extern tapi_dbus_connection_name conn_name;
37 * To send envelope command (MENU SELECTION) to USIM.
39 * @return values in enum TapiResult_t.
40 * @param[in] TelSatMenuSelectionReqInfo_t menu selection evelope data.
41 * @Interface Asynchronous.
43 * @Refer TelSatMenuSelectionReqInfo_t
45 EXPORT_API int tel_select_sat_menu(TelSatMenuSelectionReqInfo_t *pMenuSelect, int *pRequestId)
50 TAPI_GLIB_INIT_PARAMS();
52 if (pMenuSelect == NULL)
53 return TAPI_API_INVALID_PTR;
55 if (pRequestId == NULL)
56 return TAPI_API_INVALID_PTR;
58 if (conn_name.length_of_name == 0) {
59 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
60 return TAPI_API_OPERATION_FAILED;
63 TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
65 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,
66 out_param1,out_param2,out_param3,out_param4);
68 g_array_append_vals(in_param1, pMenuSelect, sizeof(TelSatMenuSelectionReqInfo_t));
70 TAPI_LIB_DEBUG(LEVEL_DEBUG, " Send env cmd... menu selection");
72 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
74 ret = tapi_send_request(TAPI_CS_SERVICE_SIMATK, TAPI_CS_SIMATK_SEND_MENU_SELECTION_ENVELOPE, in_param1, in_param2,
75 in_param3, in_param4, &out_param1, &out_param2, &out_param3, &out_param4);
78 ret_val = g_array_index(out_param1, int, 0);
79 *pRequestId = g_array_index(out_param2, int, 0);
82 ret_val = TAPI_API_SYSTEM_RPC_LINK_DOWN;
83 *pRequestId = INVALID_REQUEST_ID;
86 TAPI_LIB_DEBUG(LEVEL_DEBUG, " ret: %d \n", ret);
88 TAPI_LIB_DEBUG(LEVEL_DEBUG, " ret_val: %d \n", ret_val);
90 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,
91 out_param1,out_param2,out_param3,out_param4);
98 * API to send event download to SIM.
100 * @return values in enum TapiResult_t.
101 * @param[in] TelSatEventDownloadReqInfo_t event download data.
102 * @Interface Asynchronous.
104 * @Refer TelSatEventDownloadReqInfo_t
106 EXPORT_API int tel_download_sat_event(TelSatEventDownloadReqInfo_t *pEventData, int *pRequestId)
108 TAPI_LIB_DEBUG(LEVEL_DEBUG, "Enter");
113 return TAPI_API_NOT_SUPPORTED;
115 TAPI_GLIB_INIT_PARAMS();
117 if (pEventData == NULL){
118 TAPI_LIB_DEBUG(LEVEL_ERR, "Error: 1st param is NULL");
119 return TAPI_API_INVALID_PTR;
122 if (pRequestId == NULL){
123 TAPI_LIB_DEBUG(LEVEL_ERR, "Error: 2nd param is NULL");
124 return TAPI_API_INVALID_PTR;
127 if (conn_name.length_of_name == 0) {
128 TAPI_LIB_DEBUG(LEVEL_ERR, "Error: No dbus connection name");
129 return TAPI_API_OPERATION_FAILED;
132 TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
134 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,
135 out_param1,out_param2,out_param3,out_param4);
137 g_array_append_vals(in_param1, pEventData, sizeof(TelSatEventDownloadReqInfo_t));
138 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
140 TAPI_LIB_DEBUG(LEVEL_DEBUG, " event download: event=0x%x", pEventData->eventDownloadType);
142 ret = tapi_send_request(TAPI_CS_SERVICE_SIMATK, TAPI_CS_SIMATK_SEND_EVENT_DOWNLOAD, in_param1, in_param2,
143 in_param3, in_param4, &out_param1, &out_param2, &out_param3, &out_param4);
146 ret_val = g_array_index(out_param1, int, 0);
147 *pRequestId = g_array_index(out_param2, int, 0);
150 ret_val = TAPI_API_SYSTEM_RPC_LINK_DOWN;
151 *pRequestId = INVALID_REQUEST_ID;
154 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,
155 out_param1,out_param2,out_param3,out_param4);
163 * API to get main menu information.
165 * @return values in enum TapiResult_t.
166 * @param[out] TelSatSetupMenuInfo_t main menu data.
167 * @Interface Synchronous.
169 * @Refer TelSatSetupMenuInfo_t
171 EXPORT_API int tel_get_sat_main_menu_info(TelSatSetupMenuInfo_t *pMainMenu)
173 TAPI_LIB_DEBUG(LEVEL_DEBUG, " Get Main Menu Information");
177 TAPI_GLIB_INIT_PARAMS();
179 if (pMainMenu == NULL)
180 return TAPI_API_INVALID_PTR;
182 TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
184 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,
185 out_param1,out_param2,out_param3,out_param4);
187 g_array_append_vals(in_param1, pMainMenu, sizeof(TelSatSetupMenuInfo_t));
188 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
190 ret = tapi_send_request(TAPI_CS_SERVICE_SIMATK, TAPI_CS_SIMATK_GET_MAIN_MENU_INFO, in_param1, in_param2, in_param3,
191 in_param4, &out_param1, &out_param2, &out_param3, &out_param4);
194 ret_val = g_array_index(out_param1, int, 0);
195 if (ret_val == TAPI_API_SUCCESS)
196 *pMainMenu = g_array_index(out_param2,TelSatSetupMenuInfo_t,0);
199 ret_val = TAPI_API_SYSTEM_RPC_LINK_DOWN;
202 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,
203 out_param1,out_param2,out_param3,out_param4);
210 * API to send application excution result.
212 * @return values in enum TapiResult_t.
213 * @param[in] TelSatAppsRetInfo_t application result information data.
214 * @Interface Asynchronous.
216 * @Refer TelSatAppsRetInfo_t
218 EXPORT_API int tel_send_sat_app_exec_result(TelSatAppsRetInfo_t *pAppRetInfo)
220 TAPI_LIB_DEBUG(LEVEL_DEBUG, " tel_send_sat_app_exec_result");
224 TAPI_GLIB_INIT_PARAMS();
226 if (pAppRetInfo == NULL)
227 return TAPI_API_INVALID_PTR;
229 TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
231 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,
232 out_param1,out_param2,out_param3,out_param4);
234 g_array_append_vals(in_param1, pAppRetInfo, sizeof(TelSatAppsRetInfo_t));
235 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
237 ret = tapi_send_request(TAPI_CS_SERVICE_SIMATK, TAPI_CS_SIMATK_SEND_APP_EXEC_RESULT, in_param1, in_param2,
238 in_param3, in_param4, &out_param1, &out_param2, &out_param3, &out_param4);
241 ret_val = g_array_index(out_param1, int, 0);
244 ret_val = TAPI_API_SYSTEM_RPC_LINK_DOWN;
247 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,
248 out_param1,out_param2,out_param3,out_param4);
255 * API to send UI display status.
257 * @return values in enum TapiResult_t.
258 * @param[in] TelSatUiDisplayStatusType_t display status data.
259 command_id command identifier
260 * @Interface Asynchronous.
262 * @Refer TelSatUiDisplayStatusType_t
264 EXPORT_API int tel_send_ui_display_status(int commandId, TelSatUiDisplayStatusType_t status)
266 TAPI_LIB_DEBUG(LEVEL_DEBUG, " tel_send_ui_display_status");
267 TAPI_LIB_DEBUG(LEVEL_DEBUG,"status [%d]\n", status);
271 return TAPI_API_NOT_SUPPORTED;
274 TAPI_GLIB_INIT_PARAMS();
277 TAPI_LIB_DEBUG(LOG_DEBUG,"command id should be positive");
278 return TAPI_API_SAT_INVALID_COMMAND_ID;
281 if ((status != TAPI_SAT_DISPLAY_SUCCESS) && (status != TAPI_SAT_DISPLAY_FAIL)) {
282 TAPI_LIB_DEBUG(LOG_DEBUG,"invalid status sent");
283 return TAPI_API_INVALID_INPUT;
286 TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
288 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,
289 out_param1,out_param2,out_param3,out_param4);
291 g_array_append_vals(in_param1, &commandId, sizeof(int));
292 g_array_append_vals(in_param1, &status, sizeof(TelSatUiDisplayStatusType_t));
293 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
295 ret = tapi_send_request(TAPI_CS_SERVICE_SIMATK, TAPI_CS_UI_DISPLAY_STATUS, in_param1, in_param2, in_param3,
296 in_param4, &out_param1, &out_param2, &out_param3, &out_param4);
298 ret_val = g_array_index(out_param1, int, 0);
301 ret_val = TAPI_API_SYSTEM_RPC_LINK_DOWN;
304 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,
305 out_param1,out_param2,out_param3,out_param4);
313 * API to send UI user confirmation data.
315 * @return values in enum TapiResult_t.
316 * @param[in] command_id command identifier
317 command_type command type
318 key_type user confirmation value
319 addtional_data addtional data
321 * @Interface Asynchronous.
325 EXPORT_API int tel_send_sat_ui_user_confirm(TelSatUiUserConfirmInfo_t *pUserConfirmData)
327 TAPI_LIB_DEBUG(LEVEL_DEBUG, " tel_send_sat_ui_user_confirm");
330 TelSatTextInfo_t add_data;
332 TAPI_GLIB_INIT_PARAMS();
334 if (pUserConfirmData == NULL) {
335 TAPI_LIB_DEBUG(LEVEL_DEBUG, " pUserConfirmData is NULL");
336 return TAPI_API_INVALID_PTR;
339 if (pUserConfirmData->commandId < 0) {
340 TAPI_LIB_DEBUG(LOG_DEBUG,"command id should be positive");
341 return TAPI_API_SAT_INVALID_COMMAND_ID;
344 if (pUserConfirmData->dataLen < 0) {
345 TAPI_LIB_DEBUG(LOG_DEBUG,"data length should not be negative [%d]", pUserConfirmData->dataLen);
346 return TAPI_API_INVALID_INPUT;
349 if ((pUserConfirmData->keyType < TAPI_SAT_USER_CONFIRM_YES) || (pUserConfirmData->keyType
350 > TAPI_SAT_USER_CONFIRM_TIMEOUT)) {
351 TAPI_LIB_DEBUG(LOG_DEBUG,"invalid key type");
352 return TAPI_API_INVALID_INPUT;
355 if ((pUserConfirmData->pAdditionalData == NULL && pUserConfirmData->dataLen != 0)) {
356 TAPI_LIB_DEBUG(LOG_DEBUG,"essential data(pAdditionalData or dataLen) is absent");
357 return TAPI_API_INVALID_INPUT;
360 TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
362 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,
363 out_param1,out_param2,out_param3,out_param4);
365 g_array_append_vals(in_param1, &pUserConfirmData->commandId, sizeof(int));
366 g_array_append_vals(in_param1, &pUserConfirmData->commandType, sizeof(int));
367 g_array_append_vals(in_param1, &pUserConfirmData->keyType, sizeof(int));
368 g_array_append_vals(in_param1, &pUserConfirmData->dataLen, sizeof(int));
370 if (pUserConfirmData->pAdditionalData != NULL && pUserConfirmData->dataLen != 0) {
371 memset(&add_data, 0x00, sizeof(TelSatTextInfo_t));
372 memcpy(add_data.string, pUserConfirmData->pAdditionalData, pUserConfirmData->dataLen);
373 add_data.stringLen = pUserConfirmData->dataLen;
374 g_array_append_vals(in_param2, &add_data, sizeof(TelSatTextInfo_t));
377 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
379 ret = tapi_send_request(TAPI_CS_SERVICE_SIMATK, TAPI_CS_UI_USER_CONFIRM, in_param1, in_param2, in_param3,
380 in_param4, &out_param1, &out_param2, &out_param3, &out_param4);
382 ret_val = g_array_index(out_param1, int, 0);
385 ret_val = TAPI_API_SYSTEM_RPC_LINK_DOWN;
388 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,
389 out_param1,out_param2,out_param3,out_param4);
391 if (ret_val == TAPI_API_SUCCESS) {