Fixed N_SE-8702(Swap issue)
authorJungmin Kim <jm15.kim@samsung.com>
Tue, 4 Sep 2012 00:18:47 +0000 (09:18 +0900)
committerJungmin Kim <jm15.kim@samsung.com>
Tue, 4 Sep 2012 00:18:47 +0000 (09:18 +0900)
call-engine/core/include/vc-core-callagent.h
call-engine/core/vc-core-callagent.c
call-engine/core/vc-core-engine.c
call-engine/core/vc-core-tapi-evnt.c
ui/CMakeLists.txt
ui/src/vcui-view-elements.c

index 47e3db0..9608155 100755 (executable)
@@ -39,11 +39,9 @@ typedef enum {
        CALL_VC_CA_STATE_WAIT_SPLIT,                                            /**< Waiting for call split state */
        CALL_VC_CA_STATE_DROP_CALLBOX,                                          /**< Call drop state */
        CALL_VC_CA_STATE_WAIT_DROP,                                                     /**< Waiting for drop state */
-#ifdef SWAP_SUPPORT
        CALL_VC_CA_STATE_WAIT_SWAP_HOLD_OR_ACTIVATE,            /**< Wait for swapping activce/hold call state */
        CALL_VC_CA_STATE_WAIT_SWAP_HOLD,                                        /**< Wait for swapping held call state */
        CALL_VC_CA_STATE_WAIT_SWAP_ACTIVE,                                      /**< Wait for swapping active call state */
-#endif
        CALL_VC_CA_STATE_WAIT_SWAP,                                                     /**< Wait for swap state */
        CALL_VC_CA_STATE_WAIT_HOLD,                                                     /**< Wait for hold state */
        CALL_VC_CA_STATE_WAIT_UNHOLD,                                           /**< Wait for unhold state */
index 91941ec..d600832 100755 (executable)
@@ -58,11 +58,9 @@ char *gszcall_vc_ca_state[CALL_VC_CA_STATE_MAX_NUM] = {
        "CA_STATE_WAIT_SPLIT",
        "CA_STATE_DROP_CALLBOX",
        "CA_STATE_WAIT_DROP",
-#ifdef SWAP_SUPPORT
        "CA_STATE_WAIT_SWAP_HOLD_OR_ACTIVATE",
        "CA_STATE_WAIT_SWAP_HOLD",
        "CA_STATE_WAIT_SWAP_ACTIVATE",
-#endif                         /*                */
        "CA_STATE_WAIT_SWAP",
        "CA_STATE_WAIT_HOLD",
        "CA_STATE_WAIT_UNHOLD",
index d7a8bd9..d232cf2 100755 (executable)
@@ -2051,10 +2051,8 @@ voicecall_error_t _vc_core_engine_swap_calls(voicecall_engine_t *pvoicecall_agen
        }
 
        if (TRUE == _vc_core_tapi_rqst_swap_calls(pagent)) {
-#ifdef SWAP_SUPPORT
+#ifdef VC_WITHOUT_SWAP_CNF
                _vc_core_ca_change_agent_state(pagent, CALL_VC_CA_STATE_WAIT_SWAP_HOLD_OR_ACTIVATE);
-#else
-               _vc_core_ca_change_agent_state(pagent, CALL_VC_CA_STATE_WAIT_SWAP);
 #endif
                return ERROR_VOICECALL_NONE;
        }
@@ -2994,7 +2992,24 @@ void _vc_core_engine_active_call_resp_cb(TapiHandle *handle, int result, void *t
 
 void _vc_core_engine_swap_call_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data)
 {
-       CALL_ENG_DEBUG(ENG_DEBUG, "_vc_core_engine_swap_call_resp_cb : %d", result);
+       call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE;
+       call_vc_callagent_state_t *pagent = gpcall_agent_for_callback;
+       TelCallSwapCnf_t callSwapInfo;
+
+       CALL_ENG_DEBUG(ENG_DEBUG, "result:%d, handle:%d", result);
+
+       if (TAPI_CAUSE_SUCCESS == result) {
+               memset(&callSwapInfo, 0, sizeof(TelCallSwapCnf_t));
+               memcpy(&callSwapInfo, tapi_data, sizeof(TelCallSwapCnf_t));
+               call_handle = callSwapInfo.id;
+
+               _vc_core_cm_swap_group_state(&pagent->call_manager);
+               _vc_core_ca_send_event_to_client(pagent, VC_CALL_SS_SWAP, call_handle, 0, NULL);
+       } else {
+               /*Reset the Call Agent State*/
+               _vc_core_ca_change_agent_state(pagent, CALL_VC_CA_STATE_NORMAL);
+               _vc_core_ca_send_event_to_client(pagent, VC_ERROR_OCCURED, ERROR_VOICECALL_SWAP_FAILED, 0, NULL);
+       }
 }
 
 void _vc_core_engine_join_call_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data)
index 799d4c0..bba6149 100755 (executable)
@@ -807,7 +807,6 @@ gboolean _vc_core_tapi_event_handle_call_held_event(call_vc_callagent_state_t *p
                }
 
                switch (pcall_agent->callagent_state) {
-#ifdef SWAP_SUPPORT
                case CALL_VC_CA_STATE_WAIT_SWAP_HOLD_OR_ACTIVATE:
                        {
                                /* Reset the Agent State */
@@ -815,7 +814,6 @@ gboolean _vc_core_tapi_event_handle_call_held_event(call_vc_callagent_state_t *p
                                _vc_core_ca_send_event_to_client(pcall_agent, VC_ERROR_OCCURED, ERROR_VOICECALL_SWAP_FAILED, 0, NULL);
                        }
                        break;
-#endif
                case CALL_VC_CA_STATE_WAIT_SWAP:
                        {
                                /* Reset the Agent State */
@@ -908,7 +906,6 @@ gboolean _vc_core_tapi_event_handle_call_held_event(call_vc_callagent_state_t *p
                }
 
                switch (pcall_agent->callagent_state) {
-#ifdef SWAP_SUPPORT
                case CALL_VC_CA_STATE_WAIT_SWAP_HOLD_OR_ACTIVATE:
                        {
                                int held_call_num = 0;
@@ -928,7 +925,6 @@ gboolean _vc_core_tapi_event_handle_call_held_event(call_vc_callagent_state_t *p
                                }
                        }
                        break;
-#endif
                case CALL_VC_CA_STATE_WAIT_SWAP:
                        {
                                /*Always reset the agent state as the event for this wait state is arrived */
@@ -1001,7 +997,6 @@ gboolean _vc_core_tapi_event_handle_call_retrieve_event(call_vc_callagent_state_
 
        if (TAPI_CAUSE_SUCCESS != status) {
                switch (pcall_agent->callagent_state) {
-#ifdef SWAP_SUPPORT
                case CALL_VC_CA_STATE_WAIT_SWAP_HOLD_OR_ACTIVATE:
                        {
                                /*Reset the Agent State*/
@@ -1009,7 +1004,6 @@ gboolean _vc_core_tapi_event_handle_call_retrieve_event(call_vc_callagent_state_
                                _vc_core_ca_send_event_to_client(pcall_agent, VC_ERROR_OCCURED, ERROR_VOICECALL_SWAP_FAILED, 0, NULL);
                        }
                        break;
-#endif
                case CALL_VC_CA_STATE_WAIT_SWAP:
                        {
                                /*Reset the Call Agent State*/
@@ -1041,7 +1035,6 @@ gboolean _vc_core_tapi_event_handle_call_retrieve_event(call_vc_callagent_state_
                CALL_ENG_DEBUG(ENG_DEBUG, "Call Handle = %d, GP_Index:%d, Cur Gp State: %d", call_handle, index, cur_grp_state);
 
                switch (pcall_agent->callagent_state) {
-#ifdef SWAP_SUPPORT
                case CALL_VC_CA_STATE_WAIT_SWAP_HOLD_OR_ACTIVATE:
                        {
                                int held_call_num = 0;
@@ -1061,7 +1054,6 @@ gboolean _vc_core_tapi_event_handle_call_retrieve_event(call_vc_callagent_state_
                                }
                        }
                        break;
-#endif
                case CALL_VC_CA_STATE_WAIT_SWAP:
                        {
                                /* Always reset the agent state as the event for the wait state is arrived */
index 6c39323..da44636 100755 (executable)
@@ -60,9 +60,9 @@ MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
 ADD_DEFINITIONS("-DCALL_DEBUG_ON_DLOG")
 
 # for Engine
-ADD_DEFINITIONS("-DSWAP_SUPPORT")
 ADD_DEFINITIONS("-DCALL_VC_SEND_SAT_RESPONSE_ORIG")
 ADD_DEFINITIONS("-DRELEASE_ALL_AND_ACCEPT_SUPPORT")
+#ADD_DEFINITIONS("-DVC_WITHOUT_SWAP_CNF")
 
 # for SOUND
 
index cc56ac5..95dd812 100755 (executable)
@@ -61,7 +61,6 @@ void _vcui_swap_btn_cb(void *data, Evas_Object *obj, void *event_info)
        vcui_app_call_data_t *ad = vd->app_data;
 
        ad->bholdisleft = ad->bswapped;
-       _vcui_view_popup_load(_("IDS_CALL_POP_SWAPPED"), POPUP_TIMEOUT_LONG, EINA_FALSE);
        vcall_engine_process_hold_call();
 }