From: Jungmin Kim Date: Tue, 21 Aug 2012 08:39:12 +0000 (+0900) Subject: Make TIZEN 2.0 X-Git-Tag: 2.0_alpha~14 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=61d887669565c965aa743e90cf921c65d59f1d52;p=apps%2Fcore%2Fpreloaded%2Fcall.git Make TIZEN 2.0 --- diff --git a/call-engine/core/include/vc-core-callagent.h b/call-engine/core/include/vc-core-callagent.h index 78fc48b..47e3db0 100755 --- a/call-engine/core/include/vc-core-callagent.h +++ b/call-engine/core/include/vc-core-callagent.h @@ -14,7 +14,6 @@ * limitations under the License. */ - #ifndef __VC_CORE_CALL_AGENT_H_ #define __VC_CORE_CALL_AGENT_H_ @@ -25,10 +24,11 @@ #endif /**< Maximum Telephony Event */ -#define CALL_VC_TAPI_CALL_EVENT_MAX_NUM 33 -#define CALL_VC_SIMATK_EVENT_MAX_NUM 3 /**< Maximum SIM ATK Event */ -#define CALL_VC_TAPI_READY_EVENT_NUM 1 /**< Tapi Service Ready Event */ -#define CALL_VC_TAPI_SUBSCRIPTION_MAX (CALL_VC_TAPI_CALL_EVENT_MAX_NUM+CALL_VC_TAPI_READY_EVENT_NUM+CALL_VC_SIMATK_EVENT_MAX_NUM) +#define CALL_VC_TAPI_CALL_EVENT_MAX_NUM 33 +#define CALL_VC_SIMATK_EVENT_MAX_NUM 3 /**< Maximum SIM ATK Event */ +#define CALL_VC_TAPI_READY_EVENT_NUM 1 /**< Tapi Service Ready Event */ +#define CALL_VC_TAPI_FACTORY_EVENT_NUM 1 /**< Tapi Service FACTORY Event */ +#define CALL_VC_TAPI_SUBSCRIPTION_MAX (CALL_VC_TAPI_CALL_EVENT_MAX_NUM+CALL_VC_TAPI_READY_EVENT_NUM+CALL_VC_SIMATK_EVENT_MAX_NUM+CALL_VC_TAPI_FACTORY_EVENT_NUM) /** * This enumeration provides CA STATEs @@ -66,6 +66,7 @@ typedef enum { * This structure defines voicecall agent data */ typedef struct _voicecall_engine_t { + TapiHandle *tapi_handle; call_vc_ca_state_t callagent_state; /**< Call Agent State */ voicecall_inout_state_t io_state; /**< Voicecall Engine IO State */ call_vc_manager_t call_manager; /**< Handle for the Call Manager */ @@ -73,7 +74,6 @@ typedef struct _voicecall_engine_t { gboolean bdtmf_ring; /**< dtmf ring? */ - gboolean bonly_sos_call; /**< only SOS calls possible , if TRUE */ gboolean bis_no_sim; /**< SIM not available , if TRUE */ gboolean bdownload_call; /**< Automated call test after binary download , if TRUE */ @@ -81,6 +81,7 @@ typedef struct _voicecall_engine_t { /*tapi_call_ccbs_info_t ccbs_info[CALL_VC_CCBS_NUMBER_MAX]; < call control for busy subscriber info */ int ccbs_index; /**< Index for ccbs_info*/ + int barring_ind_type; /* barring ind type */ /*AOC*/ float aoc_ppm; /**< Price per unit value of currency meter */ diff --git a/call-engine/core/include/vc-core-callmanager.h b/call-engine/core/include/vc-core-callmanager.h old mode 100755 new mode 100644 index fc01c5c..b9b1e8e --- a/call-engine/core/include/vc-core-callmanager.h +++ b/call-engine/core/include/vc-core-callmanager.h @@ -59,9 +59,9 @@ typedef struct { * This structure is used to handle SAT setup information */ typedef struct { - TelSatSetupCallIndCallData_t satengine_setupcall_data; /**< Sat call setup proactive command*/ - TelSatCallCtrlIndData_t satengine_callctrl_data; /**< Sat call control confirm data*/ - TelSatSendDtmfIndDtmfData_t satengine_dtmf_data; /**< Sat send dtmf data*/ + TelSatSetupCallIndCallData_t satengine_setupcall_data; /**< Sat call setup proactive command : LiMo SAT*/ + TelSatCallCtrlIndData_t satengine_callctrl_data; /**< Sat call control confirm data : LiMo SAT*/ + TelSatSendDtmfIndDtmfData_t satengine_dtmf_data; /**< Sat send dtmf data : LiMo SAT*/ int satengine_event_type; /**< Event type of Sat engine */ gboolean redial; /**< Redial yes? or No? */ TelCallCause_t tapi_cause; /**< Tapi Success / Error Cause */ @@ -621,4 +621,13 @@ gboolean call_vc_cm_search_holdcall_ctinfo(call_vc_manager_t *pMng, call_vc_hand * @param[in] pMng Pointer to the call manager structure */ int _vc_core_cm_get_new_callId(call_vc_manager_t *pMng); + +/** + * This function checks if outgoing call exists + * + * @return Returns TRUE if outgoing call exist FALSE otherwise + * @param[in] pMng Pointer to the call manager structure + * @see _vc_core_cm_isexists_incoming_call, _vc_core_cm_isexists_connected_call + */ +gboolean _vc_core_cm_isexits_outgoing_call(call_vc_manager_t *pMng); #endif /* __VC_CORE_CALL_MANAGER_H_ */ diff --git a/call-engine/core/include/vc-core-ecc.h b/call-engine/core/include/vc-core-ecc.h new file mode 100755 index 0000000..2b43b9f --- /dev/null +++ b/call-engine/core/include/vc-core-ecc.h @@ -0,0 +1,41 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __VC_CORE_ECC_H_ +#define __VC_CORE_ECC_H_ + +#include +#include +#include +#include "vc-core-util.h" + +#ifdef CALL_DEBUG_ON_DLOG +#include +#endif + +#define CALL_ECC_MAX_COUNT_DEFAULT_NO_SIM 7 +#define CALL_ECC_MAX_COUNT_DEFAULT 2 +#define CALL_ECC_MAX_COUNT_3 3 +#define CALL_ECC_MAX_COUNT_4 4 +#define CALL_ECC_MAX_COUNT_5 5 +#define CALL_ECC_MAX_COUNT_6 6 +#define CALL_ECC_MAX_COUNT_7 7 +#define CALL_ECC_MAX_COUNT_8 8 +#define CALL_ECC_MAX_COUNT_9 9 +#define CALL_ECC_MAX_COUNT_10 10 + +gboolean _vc_core_ecc_check_emergency_number(TapiHandle *tapi_handle, TelSimCardType_t card_type, char *pNumber, gboolean b_is_no_sim, int *ecc_category); +#endif /* __VC_CORE_ECC_H_ */ diff --git a/call-engine/core/include/vc-core-engine-group.h b/call-engine/core/include/vc-core-engine-group.h old mode 100755 new mode 100644 index 9794c8e..6d9d98f --- a/call-engine/core/include/vc-core-engine-group.h +++ b/call-engine/core/include/vc-core-engine-group.h @@ -74,6 +74,6 @@ voicecall_error_t _vc_core_engine_group_get_call_handle_byposition(voicecall_eng * @param[out] bcall_exists Contains TRUE if call exists in the given group, FALSE otherwise * @remarks pvoicecall_agent and bcall_exists cannot be NULL. */ -voicecall_error_t _vc_core_engine_group_isexists_connected_call_ingroup(voicecall_engine_t *pvoicecall_agent, int group_index, gboolean * bcall_exists); +voicecall_error_t _vc_core_engine_group_isexists_connected_call_ingroup(voicecall_engine_t *pvoicecall_agent, int group_index, gboolean *bcall_exists); #endif /*__VC_CORE_ENGINE_GROUP_H_*/ diff --git a/call-engine/core/include/vc-core-engine-status.h b/call-engine/core/include/vc-core-engine-status.h old mode 100755 new mode 100644 index faf6405..81bb8d6 --- a/call-engine/core/include/vc-core-engine-status.h +++ b/call-engine/core/include/vc-core-engine-status.h @@ -224,9 +224,29 @@ voicecall_error_t _vc_core_engine_status_isvalid_ss_code(voicecall_engine_t *pvo */ voicecall_error_t _vc_core_engine_status_is_zuhause_area(voicecall_engine_t *pvoicecall_agent, gboolean *bzuhause); +/** +* This function checks whether the given incoming call is a restricted call or not +* +* @return ERROR_VOICECALL_NONE on success or return value contains appropriate error code on failure +* @param[in] pvoicecall_agent Handle to voicecall engine +* @param[in] call_handle Call handle of the call to be checked +* @param[out] pbrestricted Pointer to the restricted name mode +* @remarks pvoicecall_agent and prestricted cannot be NULL. +* This API shall only be used with the incoming call handle before it is connected +*/ +voicecall_error_t _vc_core_engine_status_get_calling_namemode(voicecall_engine_t *pvoicecall_agent, int call_handle, gboolean *bcalling_namemode); + voicecall_error_t _vc_core_engine_status_dump_call_details(voicecall_engine_t *pvoicecall_agent); +/** +* This function checks the possiblity of making private calls +* +* @param[in] pvoicecall_agent Handle to Voicecall Engine +* @param[out] b_download_call Contains TRUE if zuhause area, FALSE otherwise +* @remarks pvoicecall_agent and pbprivate_call cannot be NULL +*/ void _vc_core_engine_status_set_download_call(voicecall_engine_t *pvoicecall_agent, gboolean b_download_call); + gboolean _vc_core_engine_status_get_download_call(voicecall_engine_t *pvoicecall_agent); #endif /* __VC_CORE_ENGINE_STATUS_H_ */ diff --git a/call-engine/core/include/vc-core-engine-types.h b/call-engine/core/include/vc-core-engine-types.h old mode 100755 new mode 100644 index 33aff01..91a3333 --- a/call-engine/core/include/vc-core-engine-types.h +++ b/call-engine/core/include/vc-core-engine-types.h @@ -146,7 +146,6 @@ typedef enum { VC_ENDCAUSE_UNASSIGNED_NUMBER, /**< Unassigned/Unallocated number*/ VC_ENDCAUSE_USER_DOESNOT_RESPOND, /**< Called Party does not respond*/ VC_ENDCAUSE_IMEI_REJECTED, /**< Called Party does not respond*/ - /*VC_ENDCAUSE_SWITCHING_EQUIPMENT_CONGESTION, /**< Switching Equipment Congestion : 20090627 match as NW_BUSY*/ } voice_call_end_cause_type_t; /** @@ -312,6 +311,8 @@ typedef enum _voicecall_engine_event_t { VC_ACTION_NO_ACTIVE_TASK, /**< This event will be published when engine becomes idle after executing/aborting a request from other apps - eg) if SAT request is not processed*/ VC_CALL_GET_VOLUME_RESP, /**< Response data from tapi for get tapi sound volume*/ + + VC_CALL_NOTI_WBAMR, /**< Notification Wideband amr */ VC_ENGINE_EVENT_MAX } voicecall_engine_event_t; @@ -495,7 +496,7 @@ typedef enum { * This enumeration defines calling name mode to be verified dueing an incoming call */ typedef enum { - CALL_VC_CALLING_NAME_MODE_AVAILABLE, /**< Calling Name Unavailable*/ + CALL_VC_CALLING_NAME_MODE_AVAILABLE, /**< Calling Name available*/ CALL_VC_CALLING_NAME_MODE_RESTRICTED, /**< Calling Name restricted by the caller*/ CALL_VC_CALLING_NAME_MODE_UNAVAILABLE, /**< Calling Name Unavailable*/ CALL_VC_CALLING_NAME_MODE_AVAILABLE_RESTRICTED, /**< Calling name is available but restricted*/ @@ -527,9 +528,7 @@ typedef struct _call_vc_call_objectinfo_t { call_vc_calling_name_mode_t bcalling_namemode; /**< Name mode of calling name information */ /*Caller Details */ -/*PDIAL_SEND_DTMF*/ char source_tel_number[VC_PHONE_NUMBER_LENGTH_MAX]; /**< Source Telephone number */ -/*PDIAL_SEND_DTMF*/ char tel_number[VC_PHONE_NUMBER_LENGTH_MAX]; /**< Telephone number */ char calling_name[VC_PHONE_NAME_LENGTH_MAX]; /**< Calling part name */ char dtmf_number[VC_PHONE_NUMBER_LENGTH_MAX]; /**< DTMF number */ diff --git a/call-engine/core/include/vc-core-engine.h b/call-engine/core/include/vc-core-engine.h old mode 100755 new mode 100644 index b3f1469..37b523f --- a/call-engine/core/include/vc-core-engine.h +++ b/call-engine/core/include/vc-core-engine.h @@ -23,6 +23,7 @@ #include "vc-core-engine-group.h" #include "vc-core-engine-status.h" #include +#include /*Voicecall Engine Exposed API's */ @@ -273,12 +274,13 @@ void _vc_core_engine_engine_finish(voicecall_engine_t *pvoicecall_agent); /** * This function changes the voice audio path * -* @return ERROR_VOICECALL_NONE on success or return value contains appropriate error code on failure + * @return ERROR_VOICECALL_NONE on success or return value contains appropriate error code on failure * @param[in] pvoicecall_agent Handle to Voicecall Engine -* @param[in] audio_path audio path to be changed -* @remarks pvoicecall_agent cannot be NULL + * @param[in] audio_path audio path to be changed + * @param[in] bextra_volume TRUE - extra volume on, FALSE - extra volume off + * @remarks pvoicecall_agent cannot be NULL */ -voicecall_error_t _vc_core_engine_change_audio_path(voicecall_engine_t *pvoicecall_agent, voicecall_audio_path_t audio_path); +voicecall_error_t _vc_core_engine_change_audio_path(voicecall_engine_t *pvoicecall_agent, voicecall_audio_path_t audio_path, gboolean bextra_volume); /** * This function sets the voice call audio volume for the given audio path type @@ -311,6 +313,7 @@ voicecall_error_t _vc_core_engine_set_audio_mute(voicecall_engine_t *pvoicecall_ */ voicecall_error_t _vc_core_engine_get_audio_volume(voicecall_engine_t *pvoicecall_agent, voicecall_audio_path_t audio_path_type); + #ifdef _SAT_MENU_ /** * This function requests SAT Engine to setup SIM services Menu @@ -351,7 +354,7 @@ voicecall_error_t _vc_core_engine_prepare_redial(voicecall_engine_t *pvoicecall_ * @param[out] bredial_duration Contains TRUE if SAT redial duration is enabled, FALSE otherwise * @remarks pvoicecall_agent and bredial_duration cannot be NULL */ -voicecall_error_t voicecall_get_sat_redial_duration_status(voicecall_engine_t *pvoicecall_agent, gboolean * bredial_duration); +voicecall_error_t voicecall_get_sat_redial_duration_status(voicecall_engine_t *pvoicecall_agent, gboolean *bredial_duration); /** * This function sets the current duration and retireives the modified remaining SAT redial duration @@ -364,7 +367,7 @@ voicecall_error_t voicecall_get_sat_redial_duration_status(voicecall_engine_t *p voicecall_error_t voicecall_get_set_sat_remaining_duration(voicecall_engine_t *pvoicecall_agent, long *remaining_duration); #endif -voicecall_error_t _vc_core_engine_get_sat_dtmf_hidden_mode(voicecall_engine_t *pvoicecall_agent, gboolean * bhidden_mode); +voicecall_error_t _vc_core_engine_get_sat_dtmf_hidden_mode(voicecall_engine_t *pvoicecall_agent, gboolean *bhidden_mode); /** * This function sends response to sat based on the given sat response type @@ -377,4 +380,23 @@ voicecall_error_t _vc_core_engine_get_sat_dtmf_hidden_mode(voicecall_engine_t *p voicecall_error_t _vc_core_engine_send_sat_response(voicecall_engine_t *pvoicecall_agent, voicecall_engine_sat_rqst_resp_type sat_rqst_resp_type, call_vc_sat_reponse_type_t sat_response_type); voicecall_error_t _vc_core_engine_set_to_default_values(voicecall_engine_t *pvoicecall_agent); + +/* Tapi response call back */ +void _vc_core_engine_dial_call_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data); +void _vc_core_engine_answer_call_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data); +void _vc_core_engine_end_call_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data); +void _vc_core_engine_hold_call_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data); +void _vc_core_engine_active_call_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data); +void _vc_core_engine_swap_call_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data); +void _vc_core_engine_join_call_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data); +void _vc_core_engine_split_call_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data); +void _vc_core_engine_transfer_call_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data); +void _vc_core_engine_dtmf_call_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data); +void _vc_core_engine_set_volume_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data); +void _vc_core_engine_get_volume_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data); +void _vc_core_engine_set_sound_path_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data); +void _vc_core_engine_set_mute_status_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data); +void _vc_core_engine_get_aoc_info_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data); +/* Tapi response call back end */ + #endif /* __VC_CORE_ENGINE_H_ */ diff --git a/call-engine/core/include/vc-core-tapi-evnt.h b/call-engine/core/include/vc-core-tapi-evnt.h index bf41865..e27b01a 100755 --- a/call-engine/core/include/vc-core-tapi-evnt.h +++ b/call-engine/core/include/vc-core-tapi-evnt.h @@ -32,16 +32,6 @@ gboolean _vc_core_tapi_event_connected_line_ind_handle(call_vc_callagent_state_t *pcall_agent, call_vc_handle call_handle, TelCallConnectedNumberInfo_t *connected_number_info); /** - * This function handles different type of tapi indications given in tapi_event_type - * - * @return Returns TRUE on success and FALSE on failure - * @param[in] pcall_agent Pointer to the call agent state - * @param[in] tapi_event_type Tapi Event Type - * @param[in] param2 sub param associated with tapi_event_type - */ -gboolean _vc_core_tapi_event_handle_notification(call_vc_callagent_state_t *pcall_agent, int tapi_event_type, int param2); - -/** * This function handles the AOC Event * * @return Returns TRUE on success and FALSE on failure @@ -55,11 +45,12 @@ gboolean _vc_core_tapi_event_handle_aoc(call_vc_callagent_state_t *pcall_agent, * This function retreives the voicecall engine specific end cause type for the given tapi end cause type * * @return Returns TRUE on success and FALSE on failure - * @param[in] type tapi event type + * @param[in] pcall_agent Pointer to the call agent state + * @param[in] noti_id tapi event type * @param[in] cause tapi call end cause * @param[out] end_cause_type voicecall engine end cause */ -void _vc_core_tapi_event_get_end_cause_type(int type, TelTapiEndCause_t cause, voice_call_end_cause_type_t *end_cause_type); +void _vc_core_tapi_event_get_end_cause_type(call_vc_callagent_state_t *pcall_agent, const char *noti_id, TelTapiEndCause_t cause, voice_call_end_cause_type_t *end_cause_type); /** * This function Copies Telephony incoming call data to voice call incoming call data @@ -108,7 +99,7 @@ gboolean _vc_core_tapi_event_handle_alert_event(call_vc_callagent_state_t *pcall * @param[in] handle Call Handle of the call being ended * @param[in] cause Tapi End Cause */ -gboolean _vc_core_tapi_event_handle_call_end_event(call_vc_callagent_state_t *pcall_agent, int type, call_vc_handle handle, TelTapiEndCause_t cause); +gboolean _vc_core_tapi_event_handle_call_end_event(call_vc_callagent_state_t *pcall_agent, const char * noti_id, call_vc_handle handle, TelTapiEndCause_t cause); /** * This function handles the tapi call connect event diff --git a/call-engine/core/include/vc-core-util.h b/call-engine/core/include/vc-core-util.h index c18bf1c..8de3bad 100755 --- a/call-engine/core/include/vc-core-util.h +++ b/call-engine/core/include/vc-core-util.h @@ -28,17 +28,16 @@ #include "vc-core-error.h" #include "vc-core-engine-types.h" -#include "TelDefines.h" -#include "TelNetwork.h" -#include "TelSim.h" -#include "TapiCommon.h" -#include "TapiEvent.h" -#include "ITapiCall.h" -#include "ITapiSim.h" -#include "ITapiNetwork.h" -#include "ITapiSound.h" -#include "ITapiSs.h" -#include "ITapiSat.h" +#ifdef DRM_USED +#include "drm-service-types.h" +#include "drm-service.h" +#endif + +#include +#include +#include +#include +#include #include "vconf.h" #include "vconf-keys.h" @@ -47,11 +46,62 @@ #include #endif -#define CALL_NETWORK_MCC_UK 0xEA /*234*/ -#define CALL_NETWORK_MCC_IE 0x110 /*272*/ -#define CALL_NETWORK_MCC_UKRAINE 0xFF /*255*/ -#define CALL_NETWORK_MCC_SAMSUNG_SUWON_3G 450001 /*450001*/ -#define CALL_NETWORK_MCC_ITALY 222 +/* Mcc */ +#define CALL_NETWORK_MCC_UK 234 /*UK = 234*/ +#define CALL_NETWORK_MCC_IRELAND 272 /*Ireland = 272*/ +#define CALL_NETWORK_MCC_UAE 424 /*UAE = 424*/ +#define CALL_NETWORK_MCC_GHANA 620 /*Ghana = 620*/ +#define CALL_NETWORK_MCC_ISRAEL 425 /*Israel = 425*/ +#define CALL_NETWORK_MCC_CROATIA 219 /*Croatia = 219*/ +#define CALL_NETWORK_MCC_SERBIA 220 /*Serbia = 220*/ +#define CALL_NETWORK_MCC_RUSSIA 250 /*Russia = 250*/ + +#define CALL_NETWORK_MCC_TAIWAN 466 /*Taiwan = 466*/ +#define CALL_NETWORK_MCC_HONGKONG 454 /*Hongkong = 454*/ +#define CALL_NETWORK_MCC_MALAYSIA 502 /*MALAYSIA = 502*/ +#define CALL_NETWORK_MCC_AUSTRALIA 505 /*Australia = 505*/ +#define CALL_NETWORK_MCC_NEWZEALAND 530 /*NewZealand = 530*/ + +#define CALL_NETWORK_MCC_USA 310 /*USA = 310*/ +#define CALL_NETWORK_MCC_CANADA 302 /*Canada = 302*/ +#define CALL_NETWORK_MCC_BRASIL 724 /*Brasil = 724*/ +#define CALL_NETWORK_MCC_MEXICO 334 /*Mexico = 334*/ +#define CALL_NETWORK_MCC_URGUAY 748 /*Urguay = 748*/ +#define CALL_NETWORK_MCC_COLOMBIA 732 /*Colombia = 732*/ +#define CALL_NETWORK_MCC_CHILE 730 /*Chile = 730*/ +#define CALL_NETWORK_MCC_PERU 716 /*Peru = 716*/ +#define CALL_NETWORK_MCC_VENEZUELA 734 /*Venezuela = 734*/ +#define CALL_NETWORK_MCC_GUATEMALA 704 /*Guatemala = 704*/ +#define CALL_NETWORK_MCC_ELSALVADOR 706 /*El Salvador = 706*/ +#define CALL_NETWORK_MCC_NICARAGUA 710 /*Nicaragua = 710*/ +#define CALL_NETWORK_MCC_PANAMA 714 /*Panama = 714*/ + +#define CALL_NETWORK_MCC_JAPAN 440 /*Japan = 440*/ +#define CALL_NETWORK_MCC_KOREA 450 /*Korae = 450*/ +#define CALL_NETWORK_MCC_CHINA 460 /*China = 460*/ + +#define CALL_NETWORK_MCC_FRANCE 208 /*France = 208*/ +#define CALL_NETWORK_MCC_PORTUGAL 268 /*Protugal = 268*/ +#define CALL_NETWORK_MCC_ROMANIA 226 /*Romania = 226*/ +#define CALL_NETWORK_MCC_DE 262 /*DE = 262(0x106)*/ + +#define CALL_NETWORK_MCC_TEST_USA 0x001 /*Test MMC*/ + +/* MNC */ +#define CALL_NETWORK_MNC_01 1 /*MNC 01*/ +#define CALL_NETWORK_MNC_02 2 /*MNC 02*/ +#define CALL_NETWORK_MNC_03 3 /*MNC 03*/ +#define CALL_NETWORK_MNC_04 4 /*MNC 04*/ +#define CALL_NETWORK_MNC_05 5 /*MNC 05*/ +#define CALL_NETWORK_MNC_06 6 /*MNC 06*/ +#define CALL_NETWORK_MNC_11 11 /*MNC 11 for +Movil in Panama*/ +#define CALL_NETWORK_MNC_20 20 /*MNC 20 for TELCEL in Mexico*/ +#define CALL_NETWORK_MNC_123 123 /*MNC 123 for Movistar in Colombia*/ +#define CALL_NETWORK_MNC_103 103 /*MNC 103 for TIGO in Colombia*/ +#define CALL_NETWORK_MNC_111 111 /*MNC 111 for TIGO in Colombia*/ +#define CALL_NETWORK_MNC_30 30 /*MNC 30 for Movistar in Nicaragua*/ +#define CALL_NETWORK_MNC_300 300 /*MNC 30 for Movistar in Nicaragua*/ +#define CALL_NETWORK_MNC_TEST_USA 0x01 /*Test MNC*/ #define IS_DIGIT(value) ((value) >= '0' && (value) <= '9') @@ -101,17 +151,6 @@ typedef unsigned int call_vc_handle; -#ifdef TIMER_ENABLED -#define GET_CURR_TIME() _vc_core_util_get_curr_time() -#define PRINT_DIFF_TIME(start, end, message) _vc_core_util_print_diff_time(start, end, message) -#define PRINT_CURRENT_TIME(message) _vc_core_util_print_curr_time(message) - -#else -#define GET_CURR_TIME() 0 -#define PRINT_DIFF_TIME(start, end, message) -#define PRINT_CURRENT_TIME(message) -#endif - /** * This enumeration defines SS's SI vaild types */ @@ -167,15 +206,6 @@ void call_vc_print_diff_time(time_t time1, time_t time2); #endif /** - * This function checks whether the given number is emergency number by verifying with sim emergency numbers - * - * @return TRUE if the number is emergency number, FALSE otherwise - * @param[in] card_type simcard type - * @param[in] pNumber number to be verified - */ -gboolean _vc_core_util_check_emergency_number(TelSimCardType_t card_type, char *pNumber, gboolean b_is_no_sim, int *ecc_category); - -/** * This function checks whether the given number is SS string or not * * @return TRUE if the number is SS string, FALSE otherwise @@ -191,7 +221,6 @@ gboolean _vc_core_util_check_ss_string(const char *pNumber); */ gboolean _vc_core_util_check_incall_ss_string(const char *number); -/*PDIAL_SEND_DTMF*/ /** * This function extracts the dtmf number from the given telephone number * @@ -200,7 +229,6 @@ gboolean _vc_core_util_check_incall_ss_string(const char *number); * @param[out] dtmf_buf_len size of dtmf number buffer */ gboolean _vc_core_util_extract_dtmf_number(const char *tel_number, char *dtmf_number, const int dtmf_buf_len); -/*PDIAL_SEND_DTMF*/ /** * This function checks whether the given number ia a valid dtmf number or not @@ -257,6 +285,16 @@ gboolean _vc_core_util_check_zuhause_status(void); */ gboolean _vc_core_util_get_mcc(unsigned long *mcc); +/** +* This function retreive mnc information from the telephony +* +* @internal +* @return TRUE on success, FALSE - otherwise +* @param[out] mnc mnc information to be retreived +*/ +gboolean _vc_core_util_get_mnc(unsigned long *mnc); + + gboolean _vc_core_util_set_call_status(int call_status); gboolean _vc_core_util_check_video_call_status(void); gboolean _vc_core_util_get_SAP_status(); @@ -284,15 +322,6 @@ char *_vc_core_util_get_date_time(time_t time); */ gboolean _vc_core_util_phonelock_status(void); -gboolean _vc_core_util_set_sleep_status(call_vc_power_mode_t type); -gboolean _vc_core_util_get_call_alert_type(int *alert_type); - -#ifdef TIMER_ENABLED /*unused*/ -clock_t _vc_core_util_get_curr_time(); -void _vc_core_util_print_diff_time(clock_t start, clock_t end, char *message); -void _vc_core_util_print_curr_time(char *message); -#endif - void _vc_core_util_download_test_call(char *result); gboolean _vc_core_util_set_call_volume(int vol_level); diff --git a/call-engine/core/vc-core-callagent.c b/call-engine/core/vc-core-callagent.c index 8c68abb..91941ec 100755 --- a/call-engine/core/vc-core-callagent.c +++ b/call-engine/core/vc-core-callagent.c @@ -121,7 +121,6 @@ call_vc_callagent_state_t *_vc_core_ca_init_agent() void _vc_core_ca_init_data(call_vc_callagent_state_t *pagent) { VOICECALL_RETURN_IF_FAIL(pagent != NULL); - pagent->bonly_sos_call = FALSE; pagent->callagent_state = CALL_VC_CA_STATE_NORMAL; pagent->io_state = VC_INOUT_STATE_NONE; pagent->bis_no_sim = FALSE; @@ -312,7 +311,8 @@ gboolean _vc_core_ca_send_sat_response(call_vc_callagent_state_t *pagent, voicec CALL_ENG_DEBUG(ENG_DEBUG, "Invalid SAT Rquest Response Type"); break; } - error_code = tel_send_sat_app_exec_result(&call_vc_sat_response); + + error_code = tel_send_sat_app_exec_result(pagent->tapi_handle, &call_vc_sat_response); if (error_code != TAPI_API_SUCCESS) { CALL_ENG_DEBUG(ENG_DEBUG, "Error tel_send_sat_app_exec_result():%#X", error_code); return FALSE; @@ -321,6 +321,7 @@ gboolean _vc_core_ca_send_sat_response(call_vc_callagent_state_t *pagent, voicec else { CALL_ENG_DEBUG(ENG_DEBUG, "tel_send_sat_app_exec_result: Success"); } + return TRUE; } diff --git a/call-engine/core/vc-core-callmanager.c b/call-engine/core/vc-core-callmanager.c old mode 100755 new mode 100644 index 806899e..18a2c42 --- a/call-engine/core/vc-core-callmanager.c +++ b/call-engine/core/vc-core-callmanager.c @@ -532,7 +532,7 @@ void _vc_core_cm_set_group_state(call_vc_manager_t *pMng, int nGroup, call_vc_gr VOICECALL_RETURN_IF_FAIL(pMng != NULL); /*Only Group 0 and Group 1 are possible */ VOICECALL_RETURN_IF_FAIL((nGroup >= CALL_VC_CALL_GROUP_0 && nGroup < CALL_VC_CALL_GROUP_MAX)); - + pMng->callgroup_info[nGroup].state = state; } @@ -1821,8 +1821,8 @@ int _vc_core_cm_get_new_callId(call_vc_manager_t *pMng) int i = 0; VOICECALL_RETURN_VALUE_IF_FAIL(pMng != NULL, VC_TAPI_INVALID_CALLHANDLE); - - memset(bCheck, 0, sizeof(bCheck)); + + memset(bCheck, 0, VC_MAX_CALL_ID); for (i = 0; i < VC_MAX_CALL_MEMBER; i++) { if ((pMng->callobject_info[i].state != VC_CALL_STATE_ENDED) && (pMng->callobject_info[i].state != VC_CALL_STATE_ENDED_FINISH)) { VOICECALL_RETURN_INVALID_IF_FAIL(((pMng->callobject_info[i].call_id >= 0) && (pMng->callobject_info[i].call_id <= VC_MAX_CALL_ID))); diff --git a/call-engine/core/vc-core-ecc.c b/call-engine/core/vc-core-ecc.c new file mode 100755 index 0000000..4bf3a60 --- /dev/null +++ b/call-engine/core/vc-core-ecc.c @@ -0,0 +1,207 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "vc-core-ecc.h" +#include "vc-core-util.h" + +/** + * This function checks whether the given number is emergency number by verifying with no sim emergency numbers + * + * @return TRUE if the number is emergency number, FALSE otherwise + * @param[in] pNumber number to be verified + */ +static gboolean __vc_core_ecc_check_emergency_number_nosim(const char *pNumber); + +static char *gcall_vc_ecc_numbers_default[] = { + "112", + "911" +}; + +/** + * This function checks whether the given number is emergency number by verifying with sim emergency numbers + * + * @return TRUE if the number is emergency number, FALSE otherwise + * @param[in] card_type simcard type + * @param[in] pNumber number to be verified + */ +gboolean _vc_core_ecc_check_emergency_number(TapiHandle *tapi_handle, TelSimCardType_t card_type, char *pNumber, gboolean b_is_no_sim, int *ecc_category) +{ + int i = 0; + int ecc_count = 0; + char **p_ecc_numbers = NULL; + TapiResult_t tapi_err = TAPI_API_SUCCESS; + unsigned long mcc = 0; /* for checking Emergency number for each country */ + unsigned long mnc = 0; /* for checking Emergency number for each operator */ + + VOICECALL_RETURN_FALSE_IF_FAIL(pNumber != NULL); + VOICECALL_RETURN_FALSE_IF_FAIL(ecc_category != NULL); + + CALL_ENG_DEBUG(ENG_DEBUG, "pNumber = %s", pNumber); + *ecc_category = 0; + + if (b_is_no_sim == TRUE) { + return __vc_core_ecc_check_emergency_number_nosim(pNumber); + } + + _vc_core_util_get_mcc(&mcc); + _vc_core_util_get_mnc(&mnc); + + switch (card_type) { + case TAPI_SIM_CARD_TYPE_GSM: + { + TelSimEccList_t sim_ecc_list; /* used to get data for the Ecc information for 2G and 3G. */ + + CALL_ENG_DEBUG(ENG_DEBUG, "[SimCardType=SIM_CARD_TYPE_GSM]"); + memset(&sim_ecc_list, 0x00, sizeof(TelSimEccList_t)); + + /*TAPI api Compliance */ + /*To get Emergency data of 2G */ + tapi_err = tel_get_sim_ecc(tapi_handle, &sim_ecc_list); + + if (TAPI_API_SUCCESS != tapi_err) { + CALL_ENG_DEBUG(ENG_DEBUG, "tapi_sim_get_ecc_info failed, tapi_err=%d", tapi_err); + return FALSE; + } + + if (sim_ecc_list.ecc_count > 0) { + CALL_ENG_DEBUG(ENG_DEBUG, "GSM pNumber ecc1(%s) ecc2(%s) ecc3(%s) ecc4(%s) ecc5(%s)", + sim_ecc_list.list[0].number, sim_ecc_list.list[1].number, sim_ecc_list.list[2].number, sim_ecc_list.list[3].number, sim_ecc_list.list[4].number); + + if ((strcmp(pNumber, sim_ecc_list.list[0].number) == 0) + || (strcmp(pNumber, sim_ecc_list.list[1].number) == 0) + || (strcmp(pNumber, sim_ecc_list.list[2].number) == 0) + || (strcmp(pNumber, sim_ecc_list.list[3].number) == 0) + || (strcmp(pNumber, sim_ecc_list.list[4].number) == 0)) { + CALL_ENG_DEBUG(ENG_DEBUG, "_vc_core_check_emergency_number: return TRUE"); + return TRUE; + } + } + } + break; + case TAPI_SIM_CARD_TYPE_USIM: + { + TelSimEccList_t usim_ecc_list; /* used to get data for the Ecc information for both 2G and 3G */ + + CALL_ENG_DEBUG(ENG_DEBUG, "SimCardType=SIM_CARD_TYPE_USIM"); + memset(&usim_ecc_list, 0x00, sizeof(TelSimEccList_t)); + + /*Synchronous function used to get ECC data */ + tapi_err = tel_get_sim_ecc(tapi_handle, &usim_ecc_list); + + if (TAPI_API_SUCCESS != tapi_err) { + CALL_ENG_DEBUG(ENG_DEBUG, "tapi_sim_get_usim_ecc_info failed, tapi_err=%d", tapi_err); + return FALSE; + } + + if (usim_ecc_list.ecc_count > 0) { + for (i = 0; i < usim_ecc_list.ecc_count; i++) { + CALL_ENG_DEBUG(ENG_DEBUG, "[ecc=%s, category:[%d]]", usim_ecc_list.list[i].number, usim_ecc_list.list[i].category); + if (!strcmp(pNumber, usim_ecc_list.list[i].number)) { + *ecc_category = usim_ecc_list.list[i].category; + CALL_ENG_DEBUG(ENG_DEBUG, "uecc matched!!"); + return TRUE; + } + } + } + } + break; + case TAPI_SIM_CARD_TYPE_RUIM: + CALL_ENG_DEBUG(ENG_DEBUG, "SimCardType=TAPI_SIM_CARD_TYPE_RUIM"); + break; + case TAPI_SIM_CARD_TYPE_IMS: + CALL_ENG_DEBUG(ENG_DEBUG, "SimCardType=TAPI_SIM_CARD_TYPE_IMS"); + break; + case TAPI_SIM_CARD_TYPE_UNKNOWN: + CALL_ENG_DEBUG(ENG_DEBUG, "SimCardType=SIM_CARD_TYPE_UNKNOWN"); + break; + } + + /* There is no ecc number in the SIM card. */ + CALL_ENG_DEBUG(ENG_DEBUG, "mcc : %ld", mcc); + + switch (mcc) { + default: + ecc_count = CALL_ECC_MAX_COUNT_DEFAULT; + p_ecc_numbers = gcall_vc_ecc_numbers_default; /*112, 911 */ + break; + } + + VOICECALL_RETURN_FALSE_IF_FAIL(ecc_count > 0); + VOICECALL_RETURN_FALSE_IF_FAIL(p_ecc_numbers != NULL); + + for (i = 0; i < ecc_count; i++) { + if (!strcmp(pNumber, p_ecc_numbers[i])) { + CALL_ENG_DEBUG(ENG_DEBUG, "pNumber (%s), p_ecc_numbers[%d] (%s)", pNumber, i, p_ecc_numbers[i]); + return TRUE; + } + } + + CALL_ENG_DEBUG(ENG_DEBUG, "No emegency number..."); + return FALSE; +} + +/* No SIM - Default*/ +static char *gcall_vc_ecc_numbers_nosim_default[] = { + "000", + "112", + "110", + "118", + "119", + "911", + "999" +}; + +static gboolean __vc_core_ecc_check_emergency_number_nosim(const char *pNumber) +{ + int i = 0; + int ecc_count = 0; + char **p_nosim_ecc_numbers = NULL; + unsigned long mcc = 0; /* for checking Emergency number for each country */ + unsigned long mnc = 0; /* for checking Emergency number for each operator */ + + VOICECALL_RETURN_FALSE_IF_FAIL(pNumber != NULL); + + if (strlen(pNumber) == 0) { + CALL_ENG_DEBUG(ENG_DEBUG, "pNumber's length is ZERO so return FALSE"); + return FALSE; + } + + _vc_core_util_get_mcc(&mcc); + _vc_core_util_get_mnc(&mnc); + + CALL_ENG_DEBUG(ENG_DEBUG, "mcc : %ld", mcc); + + switch (mcc) { + default: + ecc_count = CALL_ECC_MAX_COUNT_DEFAULT_NO_SIM; + p_nosim_ecc_numbers = gcall_vc_ecc_numbers_nosim_default; /*3GPP SPecs = 000, 08, 112, 100, 118, 119, 911 */ + break; + } + + VOICECALL_RETURN_FALSE_IF_FAIL(ecc_count > 0); + VOICECALL_RETURN_FALSE_IF_FAIL(p_nosim_ecc_numbers != NULL); + + for (i = 0; i < ecc_count; i++) { + if (!strcmp(pNumber, p_nosim_ecc_numbers[i])) { + CALL_ENG_DEBUG(ENG_DEBUG, "pNumber (%s), p_nosim_ecc_numbers[%d] (%s)", pNumber, i, p_nosim_ecc_numbers[i]); + return TRUE; + } + } + + CALL_ENG_DEBUG(ENG_DEBUG, "No emegency number..."); + + return FALSE; +} diff --git a/call-engine/core/vc-core-engine-status.c b/call-engine/core/vc-core-engine-status.c index d5f4fe1..63030c0 100755 --- a/call-engine/core/vc-core-engine-status.c +++ b/call-engine/core/vc-core-engine-status.c @@ -64,7 +64,7 @@ voicecall_error_t _vc_core_engine_status_isrestricted_call(voicecall_engine_t *p * @remarks pvoicecall_agent and prestricted cannot be NULL. * This API shall only be used with the incoming call handle before it is connected */ -voicecall_error_t _vc_core_engine_status_get_calling_namemode(voicecall_engine_t *pvoicecall_agent, int call_handle, gboolean * bcalling_namemode) +voicecall_error_t _vc_core_engine_status_get_calling_namemode(voicecall_engine_t *pvoicecall_agent, int call_handle, gboolean *bcalling_namemode) { call_vc_callagent_state_t *pagent = (call_vc_callagent_state_t *)pvoicecall_agent; call_vc_call_objectinfo_t call_object; @@ -375,31 +375,6 @@ voicecall_error_t _vc_core_engine_status_check_emergency_byindex(voicecall_engin } /** -* This function checks and returns the FDN status -* -* @return ERROR_VOICECALL_NONE on success or return value contains appropriate error code on failure -* @param[in] pcall_agent Handle to Voicecall Engine - Currently not used, reserved for future use -* @param[out] bfdn_enabled TRUE - if FDN is enabled, FALSE otherwise -* @remarks pvoicecall_agent and bfdn_anabled cannot be NULL -*/ -voicecall_error_t _vc_core_engine_status_isenabled_fdn(voicecall_engine_t *pcall_agent, gboolean *bfdn_enabled) -{ - gboolean bfdn = FALSE; - VOICECALL_RETURN_VALUE_IF_FAIL(bfdn_enabled != NULL, ERROR_VOICECALL_INVALID_ARGUMENTS); - VOICECALL_RETURN_VALUE_IF_FAIL(pcall_agent != NULL, ERROR_VOICECALL_INVALID_ARGUMENTS); - - CALL_ENG_KPI("tel_get_sim_fdn_status start"); - if (TAPI_API_SUCCESS == tel_get_sim_fdn_status(&bfdn)) { - *bfdn_enabled = bfdn; - return ERROR_VOICECALL_NONE; - } - CALL_ENG_KPI("tel_get_sim_fdn_status done"); - - *bfdn_enabled = FALSE; - return ERROR_VOICECALL_TAPI_ERROR; -} - -/** * This function checks the possiblity of transfering calls * * @return ERROR_VOICECALL_NONE on success or return value contains appropriate error code on failure diff --git a/call-engine/core/vc-core-engine.c b/call-engine/core/vc-core-engine.c index cafbfd5..d7a8bd9 100755 --- a/call-engine/core/vc-core-engine.c +++ b/call-engine/core/vc-core-engine.c @@ -18,6 +18,7 @@ #include #include #include +#include /* Call Module File Includes */ #include "vc-core-engine.h" @@ -28,6 +29,7 @@ #include "vc-core-tapi-rqst.h" #include "vc-core-svcall.h" #include "vc-core-engine-status.h" +#include "vc-core-ecc.h" /*Global Variable Declerations */ @@ -39,13 +41,14 @@ static TelCallIncomingCallInfo_t gincoming_call_info; static gboolean gphone_init_finished = FALSE; static call_vc_handle gphone_rejected_call = VC_TAPI_INVALID_CALLHANDLE; -static call_vc_callagent_state_t *gpcall_agent_for_callback = NULL; +static call_vc_callagent_state_t *gpcall_agent_for_callback = NULL; /*jspark event subscribe & callback function*/ + /* SAT call detail used for self event */ static int gsat_event_type = 0; static int gtype = 0; static void *gpresult = NULL; static TelSatSetupCallIndCallData_t gSatSetupCallInfo; -static TelSatSendDtmfIndDtmfData_t gSatSendDtmfInfo; +//static TelSatSendDtmfIndDtmfData_t gSatSendDtmfInfo; /*Local Function Declarations*/ /** @@ -58,7 +61,7 @@ static TelSatSendDtmfIndDtmfData_t gSatSendDtmfInfo; * @param[in] type type of the tapi event * @param[in] tapi_cause tapi cause */ -static gboolean __call_vc_outgoingcall_endhandle(call_vc_callagent_state_t *pcall_agent, call_vc_handle call_handle, int type, TelTapiEndCause_t tapi_cause); +static gboolean __call_vc_outgoingcall_endhandle(call_vc_callagent_state_t *pcall_agent, call_vc_handle call_handle, const char *type, TelTapiEndCause_t tapi_cause); /** * This function handles the end event for incoming call * @@ -92,22 +95,26 @@ static gboolean __call_vc_create_outgoing_callinfo(call_vc_callagent_state_t *pa * This function handles all telephony events * * @internal - * @return Returns TRUE on if call agent is in wait state or FALSE - * @param[in] event tapi event data - * @param[in] userdata user callback data + * @return void +* @param[in] tapi_handle tapi handle +* @param[in] noti_id event type +* @param[in] data tapi event data +* @param[in] userdata user callback data */ -static void __call_vc_handle_tapi_events(TelTapiEvent_t *event, void *userdata); +static void __call_vc_handle_tapi_events(TapiHandle *handle, const char *noti_id, void *data, void *user_data); /** * This function handles sat engine notification * * @internal -* @return Returns TRUE on success or FALSE on failure -* @param[in] event tapi event data +* @return void +* @param[in] tapi_handle tapi handle +* @param[in] noti_id event type +* @param[in] data tapi event data * @param[in] userdata user callback data */ -static void __call_vc_handle_sat_engine_events_cb(TelTapiEvent_t *event, void *userdata); +static void __call_vc_handle_sat_engine_events_cb(TapiHandle *handle, const char *noti_id, void *data, void *user_data); /** * This function subscribes for all notifications required for voicecall engine @@ -123,10 +130,12 @@ static gboolean __call_vc_subscribe_call_events(call_vc_callagent_state_t *pcall * * @internal * @return Returns TRUE on success or FALSE on failure -* @param[in] event tapi event data +* @param[in] tapi_handle tapi handle +* @param[in] noti_id event type +* @param[in] data tapi event data * @param[in] userdata user callback data */ -static void __call_vc_tapi_initialized_cb(TelTapiEvent_t *event, void *userdata); +static void __call_vc_tapi_initialized_cb(TapiHandle *handle, const char *noti_id, void *data, void *user_data); /** * This function subscribes for telephony call notifications @@ -202,6 +211,14 @@ static gboolean __call_vc_sat_idle_cb(gpointer puser_data); static void __vc_core_check_engine_active_task(call_vc_callagent_state_t *pcall_agent); /** + * This function checks whether dtmf is possible + * + * @return This function returns TRUE if dtmf is possible or else FALSE + * @param[in] pcall_agent Pointer to the call agent structure + */ +static gboolean __vc_core_is_dtmf_possible(call_vc_callagent_state_t *pcall_agent); + +/** * This function initializes the voicecall engine * * @return ERROR_VOICECALL_NONE on success or return value contains appropriate error code on failure @@ -257,19 +274,20 @@ void _vc_core_engine_handle_sat_events_cb(void *sat_setup_call_data, void *userd memcpy(&gSatSetupCallInfo, data, sizeof(TelSatSetupCallIndCallData_t)); gsat_event_type = SAT_RQST_SETUP_CALL; - gtype = TAPI_EVENT_SAT_SETUP_CALL_IND; + //gtype = TAPI_EVENT_SAT_SETUP_CALL_IND; gpresult = &gSatSetupCallInfo; g_idle_add(__call_vc_sat_idle_cb, pcall_agent); CALL_ENG_DEBUG(ENG_DEBUG, "Call back Ends and returning.."); } -static void __call_vc_handle_sat_engine_events_cb(TelTapiEvent_t *event, void *userdata) +static void __call_vc_handle_sat_engine_events_cb(TapiHandle *handle, const char *noti_id, void *data, void *user_data) { - call_vc_callagent_state_t *pcall_agent = gpcall_agent_for_callback; +// call_vc_callagent_state_t *pcall_agent = gpcall_agent_for_callback; CALL_ENG_DEBUG(ENG_DEBUG, "sat event callback."); +#if 0 int event_type = event->EventType; /*int status = event->Status;*/ char *data = event->pData; @@ -284,6 +302,7 @@ static void __call_vc_handle_sat_engine_events_cb(TelTapiEvent_t *event, void *u case TAPI_EVENT_SAT_SEND_DTMF_IND: { + /* async for SAT sync noti */ memset(&gSatSendDtmfInfo, 0, sizeof(TelSatSendDtmfIndDtmfData_t)); memcpy(&gSatSendDtmfInfo, data, sizeof(TelSatSendDtmfIndDtmfData_t)); @@ -314,17 +333,12 @@ static void __call_vc_handle_sat_engine_events_cb(TelTapiEvent_t *event, void *u } else { __vc_core_check_engine_active_task(pcall_agent); } - +#endif } /*Subscribe Noti Events*/ static gboolean __call_vc_subscribe_call_events(call_vc_callagent_state_t *pcall_agent) { - clock_t start = 0; - clock_t end = 0; - - start = GET_CURR_TIME(); - CALL_ENG_KPI("__call_vc_subscribe_tapi_event start"); /* Subscribe Tapi Events */ if (FALSE == __call_vc_subscribe_tapi_event(pcall_agent)) { @@ -334,9 +348,6 @@ static gboolean __call_vc_subscribe_call_events(call_vc_callagent_state_t *pcall } CALL_ENG_KPI("__call_vc_subscribe_tapi_event done"); - end = GET_CURR_TIME(); - PRINT_DIFF_TIME(start, end, "Duration For tapi_call_subscription"); - CALL_ENG_DEBUG(ENG_DEBUG, "Noti Subscription Sucess"); return TRUE; } @@ -360,7 +371,7 @@ gboolean _vc_core_ca_send_event_to_client(call_vc_callagent_state_t *pcall_agent return FALSE; } -static void __call_vc_tapi_initialized_cb(TelTapiEvent_t *event, void *userdata) +static void __call_vc_tapi_initialized_cb(TapiHandle *handle, const char *noti_id, void *data, void *user_data) { call_vc_callagent_state_t *pagent = gpcall_agent_for_callback; TapiResult_t tapi_err = TAPI_API_SUCCESS; @@ -368,6 +379,14 @@ static void __call_vc_tapi_initialized_cb(TelTapiEvent_t *event, void *userdata) TelSimCardType_t card_type = 0; int sim_changed = 0; + VOICECALL_RETURN_IF_FAIL(data != NULL); + tapi_power_phone_power_status_t *power = (tapi_power_phone_power_status_t *)data; + + if (power != TAPI_PHONE_POWER_STATUS_ON) { + CALL_ENG_DEBUG(ENG_DEBUG, "Modem is not available"); + return; + } + CALL_ENG_DEBUG(ENG_DEBUG, "gphone_init_finished %d", gphone_init_finished); if (gphone_init_finished != TRUE) { @@ -375,32 +394,38 @@ static void __call_vc_tapi_initialized_cb(TelTapiEvent_t *event, void *userdata) CALL_ENG_DEBUG(ENG_DEBUG, "Query Card Status .."); - /*memset(&sim_status, 0, sizeof(sim_status));*/ - tapi_err = tel_get_sim_init_info(&sim_status, &sim_changed); + memset(&sim_status, 0, sizeof(sim_status)); + tapi_err = tel_get_sim_init_info(pagent->tapi_handle, &sim_status, &sim_changed); if (TAPI_API_SUCCESS != tapi_err) { - CALL_ENG_DEBUG(ENG_DEBUG, "tapi_sim_get_card_type failed.. tapi_err = %d", tapi_err); + CALL_ENG_DEBUG(ENG_DEBUG, "tel_get_sim_init_info failed.. tapi_err = %d", tapi_err); pagent->bis_no_sim = TRUE; } else { - tel_get_sim_type(&card_type); + + tapi_err = tel_get_sim_type(pagent->tapi_handle, &card_type); + if (TAPI_API_SUCCESS == tapi_err) { + CALL_ENG_DEBUG(ENG_DEBUG, "tel_get_sim_type failed.. tapi_err = %d", tapi_err); + } + pagent->card_type = card_type; CALL_ENG_DEBUG(ENG_DEBUG, "card_status = %d, card_type = %d", sim_status, pagent->card_type); + /*Telephony team's reqeust..*/ switch (sim_status) { - case TAPI_SIM_STATUS_CARD_NOT_PRESENT: /* = 0x01, /**< Card not present */ - case TAPI_SIM_STATUS_CARD_REMOVED: /* =0x0b, /**< Card removed **/ + case TAPI_SIM_STATUS_CARD_NOT_PRESENT: /* = 0x01, < Card not present */ + case TAPI_SIM_STATUS_CARD_REMOVED: /* =0x0b, < Card removed **/ pagent->bis_no_sim = TRUE; break; - case TAPI_SIM_STATUS_CARD_ERROR: /* = 0x00, /**< Bad card / On the fly SIM gone bad **/ - case TAPI_SIM_STATUS_SIM_INITIALIZING: /* = 0x02, /**< Sim is Initializing state **/ - case TAPI_SIM_STATUS_SIM_INIT_COMPLETED: /* = 0x03, /**< Sim Initialization ok **/ - case TAPI_SIM_STATUS_SIM_PIN_REQUIRED: /* = 0x04, /**< PIN required state **/ - case TAPI_SIM_STATUS_SIM_PUK_REQUIRED: /* = 0x05, /**< PUK required state **/ - case TAPI_SIM_STATUS_CARD_BLOCKED: /* = 0x06, /**< PIN/PUK blocked(permanently blocked- All the attempts for PIN/PUK failed) **/ - case TAPI_SIM_STATUS_SIM_NCK_REQUIRED: /* = 0x07, /**< Network Control Key required state **/ - case TAPI_SIM_STATUS_SIM_NSCK_REQUIRED: /* = 0x08, /**< Network Subset Control Key required state **/ - case TAPI_SIM_STATUS_SIM_SPCK_REQUIRED: /* = 0x09, /**< Service Provider Control Key required state **/ - case TAPI_SIM_STATUS_SIM_CCK_REQUIRED: /* = 0x0a, /**< Corporate Control Key required state **/ + case TAPI_SIM_STATUS_CARD_ERROR: /* = 0x00, < Bad card / On the fly SIM gone bad **/ + case TAPI_SIM_STATUS_SIM_INITIALIZING: /* = 0x02, < Sim is Initializing state **/ + case TAPI_SIM_STATUS_SIM_INIT_COMPLETED: /* = 0x03, < Sim Initialization ok **/ + case TAPI_SIM_STATUS_SIM_PIN_REQUIRED: /* = 0x04, < PIN required state **/ + case TAPI_SIM_STATUS_SIM_PUK_REQUIRED: /* = 0x05, < PUK required state **/ + case TAPI_SIM_STATUS_CARD_BLOCKED: /* = 0x06, < PIN/PUK blocked(permanently blocked- All the attempts for PIN/PUK failed) **/ + case TAPI_SIM_STATUS_SIM_NCK_REQUIRED: /* = 0x07, < Network Control Key required state **/ + case TAPI_SIM_STATUS_SIM_NSCK_REQUIRED: /* = 0x08, < Network Subset Control Key required state **/ + case TAPI_SIM_STATUS_SIM_SPCK_REQUIRED: /* = 0x09, < Service Provider Control Key required state **/ + case TAPI_SIM_STATUS_SIM_CCK_REQUIRED: /* = 0x0a, < Corporate Control Key required state **/ case TAPI_SIM_STATUS_SIM_LOCK_REQUIRED: pagent->bis_no_sim = FALSE; break; @@ -425,88 +450,81 @@ static gboolean __call_vc_subscribe_tapi_event(call_vc_callagent_state_t *pcall_ TapiResult_t api_err = TAPI_API_SUCCESS; int num_event = 0; - if (tel_init() == TAPI_API_SUCCESS) { + pcall_agent->tapi_handle = tel_init(NULL); + if (pcall_agent->tapi_handle != NULL) { CALL_ENG_DEBUG(ENG_DEBUG, "tel_init() success."); } else { CALL_ENG_DEBUG(ENG_DEBUG, "tel_init() failed."); return FALSE; } - int call_event_list[] = { - TAPI_EVENT_CALL_SETUP_CNF, - TAPI_EVENT_CALL_ALERT_IND, - TAPI_EVENT_CALL_CONNECTED_IND, - TAPI_EVENT_CALL_INCOM_IND, - TAPI_EVENT_CALL_ANSWER_CNF, - TAPI_EVENT_CALL_RETRIEVE_CNF, - TAPI_EVENT_CALL_RETRIEVE_IND, - TAPI_EVENT_CALL_HOLD_IND, - TAPI_EVENT_CALL_HOLD_CNF, - TAPI_EVENT_CALL_TRANSFER_CNF, - TAPI_EVENT_CALL_TRANSFER_IND, - TAPI_EVENT_CALL_SETUPCONFERENCE_CNF, - TAPI_EVENT_CALL_SETUPCONFERENCE_IND, - TAPI_EVENT_CALL_SPLITCONFERENCE_CNF, - TAPI_EVENT_CALL_SEND_DTMF_CNF, - TAPI_EVENT_CALL_WAITING_IND, - TAPI_EVENT_CALL_FORWARD_IND, - TAPI_EVENT_CALL_RELEASE_CNF, - TAPI_EVENT_CALL_RELEASE_ALL_CNF, - TAPI_EVENT_CALL_RELEASE_ALL_ACTIVE_CNF, - TAPI_EVENT_CALL_RELEASE_ALL_HELD_CNF, - TAPI_EVENT_CALL_END_IND, - TAPI_EVENT_CALL_BARRING_IND, - TAPI_EVENT_CALL_CUGINFO_IND, - TAPI_EVENT_CALL_AOCINFO_IND, - TAPI_EVENT_CALL_CALLINGNAMEINFO_IND, - TAPI_EVENT_CALL_CONNECTEDNUMBERINFO_IND, - TAPI_EVENT_CALL_CLISUPRESSIONREJ_IND, - TAPI_EVENT_CALL_DEFLECTED_IND, - TAPI_EVENT_CALL_UNCOND_FORWARDING_IND, - TAPI_EVENT_CALL_COND_FORWARDING_IND, - - TAPI_EVENT_SS_AOC_RSP, - - TAPI_EVENT_SOUND_VOLUMECTRL_RSP, /*CALL_VC_TAPI_CALL_EVENT_MAX_NUM : 33*/ + const char *call_event_list[] = { + TAPI_NOTI_VOICE_CALL_STATUS_IDLE, + TAPI_NOTI_VOICE_CALL_STATUS_ACTIVE, + TAPI_NOTI_VOICE_CALL_STATUS_DIALING, + TAPI_NOTI_VOICE_CALL_STATUS_ALERT, + TAPI_NOTI_VOICE_CALL_STATUS_INCOMING, + TAPI_NOTI_VOICE_CALL_STATUS_WAITING, + TAPI_NOTI_CALL_INFO_CALL_CONNECTED_LINE, + TAPI_NOTI_CALL_INFO_WAITING, + TAPI_NOTI_CALL_INFO_CUG, + TAPI_NOTI_CALL_INFO_FORWARDED, + TAPI_NOTI_CALL_INFO_BARRED_INCOMING, + TAPI_NOTI_CALL_INFO_BARRED_OUTGOING, + TAPI_NOTI_CALL_INFO_DEFLECTED, + TAPI_NOTI_CALL_INFO_CLIR_SUPPRESSION_REJECT, + TAPI_NOTI_CALL_INFO_FORWARD_UNCONDITIONAL, + TAPI_NOTI_CALL_INFO_FORWARD_CONDITIONAL, + TAPI_NOTI_CALL_INFO_CALL_LINE_IDENTITY, + TAPI_NOTI_CALL_INFO_CALL_NAME_INFORMATION, + TAPI_NOTI_CALL_INFO_FORWARDED_CALL, + TAPI_NOTI_CALL_INFO_CUG_CALL, + TAPI_NOTI_CALL_INFO_DEFLECTED_CALL, + TAPI_NOTI_CALL_INFO_TRANSFERED_CALL, + TAPI_NOTI_CALL_INFO_HELD, + TAPI_NOTI_CALL_INFO_ACTIVE, + TAPI_NOTI_CALL_INFO_JOINED, + TAPI_NOTI_CALL_INFO_RELEASED_ON_HOLD, + TAPI_NOTI_CALL_INFO_TRANSFER_ALERT, + TAPI_NOTI_CALL_INFO_TRANSFERED, + TAPI_NOTI_CALL_SOUND_WBAMR, }; num_event = sizeof(call_event_list) / sizeof(int); for (index = 0; index < num_event; index++) { - api_err = tel_register_event(call_event_list[index], &pcall_agent->subscription_id[index], (TelAppCallback) & __call_vc_handle_tapi_events, NULL); + api_err = tel_register_noti_event(pcall_agent->tapi_handle, call_event_list[index], __call_vc_handle_tapi_events, NULL); if (api_err != TAPI_API_SUCCESS) { - CALL_ENG_DEBUG(ENG_DEBUG, "tel_register_event() failed.. event id:[%d], api_err:[%d]", call_event_list[index], api_err); + CALL_ENG_DEBUG(ENG_DEBUG, "tel_register_noti_event() failed.. event id:[%s], api_err:[%d]", call_event_list[index], api_err); return FALSE; } } - int ready_event_list[] = { - TAPI_EVENT_POWER_SERVICE_READY_IND, /*CALL_VC_TAPI_READY_EVENT_NUM 1*/ + const char *ready_event_list[] = { + TAPI_NOTI_MODEM_POWER, }; num_event = sizeof(ready_event_list) / sizeof(int); for (index = 0; index < num_event; index++) { - api_err = tel_register_event(ready_event_list[index], &pcall_agent->subscription_id[index + CALL_VC_TAPI_CALL_EVENT_MAX_NUM], (TelAppCallback) & __call_vc_tapi_initialized_cb, NULL); + api_err = tel_register_noti_event(pcall_agent->tapi_handle, ready_event_list[index], __call_vc_tapi_initialized_cb, NULL); if (api_err != TAPI_API_SUCCESS) { - CALL_ENG_DEBUG(ENG_DEBUG, "tel_register_event() failed.. event id:[%d], api_err:[%d]", ready_event_list[index], api_err); + CALL_ENG_DEBUG(ENG_DEBUG, "tel_register_noti_event() failed.. event id:[%s], api_err:[%d]", ready_event_list[index], api_err); return FALSE; } } - int sat_event_list[] = { - TAPI_EVENT_SAT_SETUP_CALL_IND, - TAPI_EVENT_SAT_CALL_CONTROL_IND, - TAPI_EVENT_SAT_SEND_DTMF_IND, /*CALL_VC_SIMATK_EVENT_MAX_NUM : 3*/ +#if 0 + const char *sat_event_list[] = { + "SETUP CALL"/*TAPI_EVENT_SAT_SETUP_CALL_IND*/, + "CALL CONTROL" /*TAPI_EVENT_SAT_CALL_CONTROL_IND*/, + "SEND DTMF" /*TAPI_EVENT_SAT_SEND_DTMF_IND*/, /*CALL_VC_SIMATK_EVENT_MAX_NUM : 3*/ }; num_event = sizeof(sat_event_list) / sizeof(int); for (index = 0; index < num_event; index++) { - api_err = tel_register_event(sat_event_list[index], &pcall_agent->subscription_id[index + CALL_VC_TAPI_CALL_EVENT_MAX_NUM + CALL_VC_TAPI_READY_EVENT_NUM], (TelAppCallback) & __call_vc_handle_sat_engine_events_cb, NULL); + api_err = tel_register_noti_event(pcall_agent->tapi_handle, sat_event_list[index], __call_vc_handle_sat_engine_events_cb, NULL); if (api_err != TAPI_API_SUCCESS) { - CALL_ENG_DEBUG(ENG_DEBUG, "tel_register_event() failed.. event id:[%d], api_err:[%d]", sat_event_list[index], api_err); + CALL_ENG_DEBUG(ENG_DEBUG, "tel_register_noti_event() failed.. event id:[%s], api_err:[%d]", sat_event_list[index], api_err); return FALSE; } } - - if (tel_register_app_name("org.tizen.voicecall") != TAPI_API_SUCCESS) { - CALL_ENG_DEBUG(ENG_DEBUG, "tel_register_app_name() failed"); - } +#endif gpcall_agent_for_callback = pcall_agent; @@ -524,9 +542,6 @@ static gboolean __call_vc_create_outgoing_callinfo(call_vc_callagent_state_t *pa _vc_core_cm_clear_call_object(pcall_object); - /*Initialize following Call Agents state to defaults.*/ - pagent->bonly_sos_call = FALSE; - /*Update CallObjects state to Prepare Outgoing*/ pcall_object->state = VC_CALL_STATE_PREPARE_OUTGOING; @@ -540,11 +555,8 @@ static gboolean __call_vc_create_outgoing_callinfo(call_vc_callagent_state_t *pa switch (pcall_object->call_type) { case VC_CALL_ORIG_TYPE_EMERGENCY: { - pagent->bonly_sos_call = TRUE; pcall_object->bemergency_number = TRUE; -/*PDIAL_SEND_DTMF*/ _vc_core_util_strcpy(pcall_object->source_tel_number, sizeof(pcall_object->source_tel_number), psetup_call_info->source_tel_number); -/*PDIAL_SEND_DTMF*/ _vc_core_util_strcpy(pcall_object->tel_number, sizeof(pcall_object->tel_number), psetup_call_info->tel_number); return TRUE; } @@ -552,36 +564,26 @@ static gboolean __call_vc_create_outgoing_callinfo(call_vc_callagent_state_t *pa case VC_CALL_ORIG_TYPE_PINLOCK: { CALL_ENG_DEBUG(ENG_DEBUG, "PIN LOCK!!!!"); - pagent->bonly_sos_call = TRUE; -/*PDIAL_SEND_DTMF*/ _vc_core_util_strcpy(pcall_object->source_tel_number, sizeof(pcall_object->source_tel_number), psetup_call_info->source_tel_number); -/*PDIAL_SEND_DTMF*/ _vc_core_util_strcpy(pcall_object->tel_number, sizeof(pcall_object->tel_number), psetup_call_info->tel_number); } break; case VC_CALL_ORIG_TYPE_NOSIM: /*no sim (pagent->bis_no_sim == TRUE)*/ { - pagent->bonly_sos_call = TRUE; -/*PDIAL_SEND_DTMF*/ _vc_core_util_strcpy(pcall_object->source_tel_number, sizeof(pcall_object->source_tel_number), psetup_call_info->source_tel_number); -/*PDIAL_SEND_DTMF*/ _vc_core_util_strcpy(pcall_object->tel_number, sizeof(pcall_object->tel_number), psetup_call_info->tel_number); } break; case VC_CALL_ORIG_TYPE_NORMAL: case VC_CALL_ORIG_TYPE_SAT: { -/*PDIAL_SEND_DTMF*/ _vc_core_util_strcpy(pcall_object->source_tel_number, sizeof(pcall_object->source_tel_number), psetup_call_info->source_tel_number); -/*PDIAL_SEND_DTMF*/ _vc_core_util_strcpy(pcall_object->tel_number, sizeof(pcall_object->tel_number), psetup_call_info->tel_number); } break; case VC_CALL_ORIG_TYPE_VOICEMAIL: { -/*PDIAL_SEND_DTMF*/ _vc_core_util_strcpy(pcall_object->source_tel_number, sizeof(pcall_object->source_tel_number), psetup_call_info->source_tel_number); -/*PDIAL_SEND_DTMF*/ _vc_core_util_strcpy(pcall_object->tel_number, sizeof(pcall_object->tel_number), psetup_call_info->tel_number); } break; @@ -596,7 +598,7 @@ static gboolean __call_vc_create_outgoing_callinfo(call_vc_callagent_state_t *pa /*Check for Emergency Number */ _vc_core_util_extract_call_number(pcall_object->tel_number, call_number, sizeof(call_number)); - pcall_object->bemergency_number = _vc_core_util_check_emergency_number(pagent->card_type, call_number, pagent->bis_no_sim, &pcall_object->ecc_category); + pcall_object->bemergency_number = _vc_core_ecc_check_emergency_number(pagent->tapi_handle, pagent->card_type, call_number, pagent->bis_no_sim, &pcall_object->ecc_category); CALL_ENG_DEBUG(ENG_DEBUG, "no_sim=%d, emergency_number=%d", pagent->bis_no_sim, pcall_object->bemergency_number); @@ -675,7 +677,7 @@ static gboolean __call_vc_request_sat_call(call_vc_callagent_state_t *pagent, in { pagent->call_manager.setupcall_info.satcall_setup_info.redial = TRUE; } - case TAPI_SAT_SETUP_CALL_PUT_ALL_OTHER_CALLS_ON_HOLD: /*Fall Through*/ + case TAPI_SAT_SETUP_CALL_PUT_ALL_OTHER_CALLS_ON_HOLD: /*Fall Through */ { if (_vc_core_cm_isexists_active_call(&pagent->call_manager) && _vc_core_cm_isexists_held_call(&pagent->call_manager)) { CALL_ENG_DEBUG(ENG_DEBUG, "Both Activee & Hld call exists, SAT Call cannot be continued"); @@ -710,7 +712,7 @@ static gboolean __call_vc_request_sat_call(call_vc_callagent_state_t *pagent, in { pagent->call_manager.setupcall_info.satcall_setup_info.redial = TRUE; } - case TAPI_SAT_SETUP_CALL_DISCONN_ALL_OTHER_CALLS: /*Fall Through*/ + case TAPI_SAT_SETUP_CALL_DISCONN_ALL_OTHER_CALLS: /*Fall Through */ { if (_vc_core_cm_isexists_active_call(&pagent->call_manager) || _vc_core_cm_isexists_held_call(&pagent->call_manager)) { /*Disconnect all calls and setup call */ @@ -804,7 +806,7 @@ voicecall_error_t _vc_core_engine_prepare_call(voicecall_engine_t *pvoicecall_ag TelSimCardStatus_t sim_status; TelSimCardType_t card_type = 0; int sim_changed = 0; - gboolean status = FALSE; + int status = 0; int nIndex = 0; int error_code = 0; @@ -817,10 +819,10 @@ voicecall_error_t _vc_core_engine_prepare_call(voicecall_engine_t *pvoicecall_ag return ERROR_VOICECALL_INVALID_TELEPHONE_NUMBER; } - CALL_ENG_KPI("tel_check_service_ready start"); - tapi_err = tel_check_service_ready(&status); - CALL_ENG_KPI("tel_check_service_ready done"); - if (TAPI_API_SUCCESS != tapi_err || FALSE == status) { + CALL_ENG_KPI("tel_check_modem_power_status start"); + tapi_err = tel_check_modem_power_status(pagent->tapi_handle, &status); + CALL_ENG_KPI("tel_check_modem_power_status done"); + if (TAPI_API_SUCCESS != tapi_err || 1 /* offline */ == status || 2 /* Error */== status) { CALL_ENG_DEBUG(ENG_DEBUG, "Tapi not initialized"); return ERROR_VOICECALL_PHONE_NOT_INITIALIZED; } @@ -834,7 +836,7 @@ voicecall_error_t _vc_core_engine_prepare_call(voicecall_engine_t *pvoicecall_ag /*memset(&sim_status, 0, sizeof(sim_status));*/ CALL_ENG_KPI("tel_get_sim_init_info start"); - tapi_err = tel_get_sim_init_info(&sim_status, &sim_changed); + tapi_err = tel_get_sim_init_info(pagent->tapi_handle, &sim_status, &sim_changed); CALL_ENG_KPI("tel_get_sim_init_info done"); if (TAPI_API_SUCCESS != tapi_err) { @@ -844,26 +846,29 @@ voicecall_error_t _vc_core_engine_prepare_call(voicecall_engine_t *pvoicecall_ag psetup_call_info->call_type = VC_CALL_ORIG_TYPE_NOSIM; } else { CALL_ENG_KPI("tel_get_sim_type start"); - tel_get_sim_type(&card_type); + tapi_err = tel_get_sim_type(pagent->tapi_handle, &card_type); + if (TAPI_API_SUCCESS != tapi_err) { + CALL_ENG_DEBUG(ENG_DEBUG, "tel_get_sim_type failed.. tapi_err = %d", tapi_err); + } CALL_ENG_KPI("tel_get_sim_type done"); pagent->card_type = card_type; CALL_ENG_DEBUG(ENG_DEBUG, "card_status = %d, card_type = %d", sim_status, pagent->card_type); switch (sim_status) { - case TAPI_SIM_STATUS_CARD_NOT_PRESENT: /* = 0x01, /**< Card not present **/ - case TAPI_SIM_STATUS_CARD_REMOVED: /* =0x0b, /**< Card removed **/ + case TAPI_SIM_STATUS_CARD_NOT_PRESENT: /* = 0x01, < Card not present **/ + case TAPI_SIM_STATUS_CARD_REMOVED: /* =0x0b, < Card removed **/ pagent->bis_no_sim = TRUE; break; - case TAPI_SIM_STATUS_CARD_ERROR: /* = 0x00, /**< Bad card / On the fly SIM gone bad **/ - case TAPI_SIM_STATUS_SIM_INITIALIZING: /* = 0x02, /**< Sim is Initializing state **/ - case TAPI_SIM_STATUS_SIM_INIT_COMPLETED: /* = 0x03, /**< Sim Initialization ok **/ - case TAPI_SIM_STATUS_SIM_PIN_REQUIRED: /* = 0x04, /**< PIN required state **/ - case TAPI_SIM_STATUS_SIM_PUK_REQUIRED: /* = 0x05, /**< PUK required state **/ - case TAPI_SIM_STATUS_CARD_BLOCKED: /* = 0x06, /**< PIN/PUK blocked(permanently blocked- All the attempts for PIN/PUK failed) **/ - case TAPI_SIM_STATUS_SIM_NCK_REQUIRED: /* = 0x07, /**< Network Control Key required state **/ - case TAPI_SIM_STATUS_SIM_NSCK_REQUIRED: /* = 0x08, /**< Network Subset Control Key required state **/ - case TAPI_SIM_STATUS_SIM_SPCK_REQUIRED: /* = 0x09, /**< Service Provider Control Key required state **/ - case TAPI_SIM_STATUS_SIM_CCK_REQUIRED: /* = 0x0a, /**< Corporate Control Key required state **/ + case TAPI_SIM_STATUS_CARD_ERROR: /* = 0x00, < Bad card / On the fly SIM gone bad **/ + case TAPI_SIM_STATUS_SIM_INITIALIZING: /* = 0x02, < Sim is Initializing state **/ + case TAPI_SIM_STATUS_SIM_INIT_COMPLETED: /* = 0x03, < Sim Initialization ok **/ + case TAPI_SIM_STATUS_SIM_PIN_REQUIRED: /* = 0x04, < PIN required state **/ + case TAPI_SIM_STATUS_SIM_PUK_REQUIRED: /* = 0x05, < PUK required state **/ + case TAPI_SIM_STATUS_CARD_BLOCKED: /* = 0x06, < PIN/PUK blocked(permanently blocked- All the attempts for PIN/PUK failed) **/ + case TAPI_SIM_STATUS_SIM_NCK_REQUIRED: /* = 0x07, < Network Control Key required state **/ + case TAPI_SIM_STATUS_SIM_NSCK_REQUIRED: /* = 0x08, < Network Subset Control Key required state **/ + case TAPI_SIM_STATUS_SIM_SPCK_REQUIRED: /* = 0x09, < Service Provider Control Key required state **/ + case TAPI_SIM_STATUS_SIM_CCK_REQUIRED: /* = 0x0a, < Corporate Control Key required state **/ case TAPI_SIM_STATUS_SIM_LOCK_REQUIRED: pagent->bis_no_sim = FALSE; break; @@ -1133,7 +1138,7 @@ static gboolean __call_vc_handle_sat_engine_events(call_vc_callagent_state_t *pc call_vc_sat_callinfo.sat_mo_call_ctrl_res = CALL_CHANGED_TO_SS; CALL_ENG_DEBUG(ENG_DEBUG, "VC Call Control Response Event: %d", call_vc_sat_callinfo.sat_mo_call_ctrl_res); } else { - objectInfo.bemergency_number = _vc_core_util_check_emergency_number(pagent->card_type, objectInfo.connected_telnumber, pagent->bis_no_sim, &objectInfo.ecc_category); + objectInfo.bemergency_number = _vc_core_ecc_check_emergency_number(pagent->tapi_handle, pagent->card_type, objectInfo.connected_telnumber, pagent->bis_no_sim, &objectInfo.ecc_category); _vc_core_cm_set_outgoing_call_info(&pagent->call_manager, &objectInfo); call_vc_sat_callinfo.duration = psatsetup_info->satengine_setupcall_data.duration; @@ -1205,7 +1210,6 @@ static gboolean __call_vc_reject_call_full_idle_cb(gpointer puser_data) { call_vc_callagent_state_t *pcall_agent = (call_vc_callagent_state_t *)puser_data; TapiResult_t tapi_err = TAPI_API_SUCCESS; - int pReqId = VC_RQSTID_DEFAULT; call_vc_call_objectinfo_t call_object; CALL_ENG_DEBUG(ENG_DEBUG, "Rejecting the [Call:%d] in IDLE CB", gincoming_call_handle); @@ -1215,7 +1219,7 @@ static gboolean __call_vc_reject_call_full_idle_cb(gpointer puser_data) if (VC_CALL_STATE_REJECTED == call_object.state) { /*Answer the incoming call by accepting or rejecting the call */ - tapi_err = tel_answer_call(gincoming_call_handle, TAPI_CALL_ANSWER_REJECT, &pReqId); + tapi_err = tel_answer_call(pcall_agent->tapi_handle, gincoming_call_handle, TAPI_CALL_ANSWER_REJECT, _vc_core_engine_answer_call_resp_cb, NULL); if (TAPI_API_SUCCESS != tapi_err) { CALL_ENG_DEBUG(ENG_ERR, "tel_answer_call failed, Error: %d", tapi_err); } @@ -1229,14 +1233,14 @@ static gboolean __call_vc_reject_call_full_idle_cb(gpointer puser_data) /*Always reject the call, if the reject call handle is valid*/ static gboolean __call_vc_reject_call_idle_cb(gpointer puser_data) { + call_vc_callagent_state_t *pcall_agent = (call_vc_callagent_state_t *)puser_data; TapiResult_t tapi_err = TAPI_API_SUCCESS; - int pReqId = VC_RQSTID_DEFAULT; CALL_ENG_DEBUG(ENG_DEBUG, "Rejecting the [Call Handle :%d] in IDLE CB", gincoming_call_handle); if (gphone_rejected_call != -1) { /*Answer the incoming call by accepting or rejecting the call */ - tapi_err = tel_answer_call(gphone_rejected_call, TAPI_CALL_ANSWER_REJECT, &pReqId); + tapi_err = tel_answer_call(pcall_agent->tapi_handle, gphone_rejected_call, TAPI_CALL_ANSWER_REJECT, _vc_core_engine_answer_call_resp_cb, NULL); if (TAPI_API_SUCCESS != tapi_err) { CALL_ENG_DEBUG(ENG_ERR, "tel_answer_call failed, Error: %d", tapi_err); } @@ -1379,752 +1383,303 @@ void _vc_core_engine_handle_incoming_tapi_events(void *mt_data, void *userdata) } -static void __call_vc_handle_tapi_events(TelTapiEvent_t *event, void *userdata) +static void __call_vc_handle_tapi_events(TapiHandle *handle, const char *noti_id, void *data, void *user_data) { - int event_type = event->EventType; - int status = event->Status; - char *data = event->pData; call_vc_callagent_state_t *pagent = gpcall_agent_for_callback; VOICECALL_RETURN_IF_FAIL(pagent != NULL); - CALL_ENG_DEBUG(ENG_WARN, "event_type:[0x%x], status= %d", event_type, status); + CALL_ENG_DEBUG(ENG_WARN, "event_type:[%s]", noti_id); /* Process TAPI events */ - switch (event_type) { -#ifdef _INCOM_END_ - case TAPI_EVENT_CALL_INCOM_IND: - { - int current_mt_call_handle = -1; - CALL_ENG_DEBUG(ENG_DEBUG, "event_type == TAPI_EVENT_CALL_INCOM_IND..."); - - /*Safety Check to avoid the mutiple incoming noti for the same call */ - current_mt_call_handle = _vc_core_cm_get_incoming_call_handle(&pagent->call_manager); - CALL_ENG_DEBUG(ENG_ERR, "current_mt_call_handle = %d", current_mt_call_handle); - - if (current_mt_call_handle != VC_TAPI_INVALID_CALLHANDLE) { - TelCallIncomingCallInfo_t mt_call_info; - CALL_ENG_DEBUG(ENG_ERR, "Already an Incoming Call exits ,Problem in accpeting the incoming call, Current Call Details"); - CALL_VC_DUMP_CALLDETAILS(&pagent->call_manager); - CALL_ENG_DEBUG(ENG_ERR, "****************Currently received call details *************************"); - - memset(&mt_call_info, 0, sizeof(TelCallIncomingCallInfo_t)); - memcpy(&mt_call_info, data, sizeof(TelCallIncomingCallInfo_t)); - CALL_ENG_DEBUG(ENG_ERR, "****************call handle = [%d] *************************", mt_call_info.CallHandle); - CALL_ENG_DEBUG(ENG_ERR, "****************call Number = [%s] *************************", mt_call_info.szCallingPartyNumber); - CALL_ENG_DEBUG(ENG_ERR, "**************** Ignoring this incoming notification *************************"); - return; - } - - memset(&gincoming_call_info, 0, sizeof(TelCallIncomingCallInfo_t)); - memcpy(&gincoming_call_info, data, sizeof(TelCallIncomingCallInfo_t)); - gincoming_call_handle = gincoming_call_info.CallHandle; - - CALL_ENG_DEBUG(ENG_DEBUG, "CallHandle = %d, Number = %s", gincoming_call_info.CallHandle, gincoming_call_info.szCallingPartyNumber); - - /* Reject the Incoming call */ - if (FALSE == gphone_init_finished) { - CALL_ENG_DEBUG(ENG_ERR, "Phone is not initialized, So reject the Call"); - - gphone_rejected_call = gincoming_call_handle; - - /*Reject the Call in the Idle Callback */ - g_idle_add_full(G_PRIORITY_HIGH_IDLE, __call_vc_reject_call_idle_cb, pagent, NULL); - - return; - } - - /* Check the IO State before accepting the call */ - switch (pagent->io_state) { - case VC_INOUT_STATE_OUTGOING_WAIT_HOLD: - case VC_INOUT_STATE_OUTGOING_WAIT_ALERT: - case VC_INOUT_STATE_OUTGOING_WAIT_ORIG: - case VC_INOUT_STATE_OUTGOING_WAIT_CONNECTED: - case VC_INOUT_STATE_INCOME_END: /*If the Previous End event is still not prcocessed then reject the call */ - { - call_vc_call_objectinfo_t objectInfo; - - /* setting the new member info */ - _vc_core_cm_clear_call_object(&objectInfo); - objectInfo.call_handle = gincoming_call_handle; - _vc_core_cm_change_call_state(&objectInfo, VC_CALL_STATE_REJECTED); + if (strcmp(noti_id, TAPI_NOTI_VOICE_CALL_STATUS_IDLE) == 0) { + /* End IND */ + call_vc_call_objectinfo_t objectInfo; + voicecall_call_state_t present_call_state = VC_CALL_STATE_NONE; + call_vc_handle incoming_call_handle = VC_TAPI_INVALID_CALLHANDLE; + TelTapiEndCause_t tapi_cause = TAPI_CALL_END_NO_CAUSE; + call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; + TelCallStatusIdleNoti_t callIdleInfo; - /* add new member info */ - _vc_core_cm_add_call_object(&pagent->call_manager, &objectInfo); + CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_NOTI_VOICE_CALL_STATUS_IDLE.."); - /*Reject the Call in the Idle Callback */ - g_idle_add_full(G_PRIORITY_HIGH_IDLE, __call_vc_reject_call_full_idle_cb, pagent, NULL); + /* tapicallback data = TelCallStatusIdleNoti_t */ + if (data != NULL) { + memset(&callIdleInfo, 0, sizeof(TelCallStatusIdleNoti_t)); + memcpy(&callIdleInfo, data, sizeof(TelCallStatusIdleNoti_t)); - return; - } - break; - /*If Outgoing call is in any of the following wait state during an Incoming Event Cancel the Outgoing Call */ - case VC_INOUT_STATE_OUTGOING_WAIT_RELEASE: /*If Outgoing call is in any of the following wait state during an Incoming Event Cancel the Outgoing Call */ - case VC_INOUT_STATE_OUTGOING_ABORTED: - case VC_INOUT_STATE_OUTGOING_SHOW_REDIALCAUSE: - case VC_INOUT_STATE_OUTGOING_WAIT_REDIAL: - case VC_INOUT_STATE_OUTGOING_SHOW_RETRY_CALLBOX: - { - int mo_call_handle = -1; - mo_call_handle = _vc_core_cm_get_outgoing_call_handle(&pagent->call_manager); - _vc_core_cm_remove_call_object(&pagent->call_manager, mo_call_handle); - - /* Inform the Client that waiting outgoing call are cleaned up to accept the incoming call , */ - _vc_core_ca_send_event_to_client(pagent, VC_ACTION_INCOM_FORCE, mo_call_handle, 0, NULL); - } - default: - break; - } + call_handle = callIdleInfo.id; + tapi_cause = callIdleInfo.cause; + } - /*If Incoming End event is still pending, First Process the incoming end indication before processing the new - Incoming Call */ - if (VC_INOUT_STATE_INCOME_END == pagent->io_state) { - int mt_call_handle = -1; + CALL_ENG_DEBUG(ENG_DEBUG, "Call Handle = %d,end cause:%d", call_handle, tapi_cause); - CALL_ENG_DEBUG(ENG_ERR, "Previous Incoming End Call Not processed, Processing Here"); - mt_call_handle = _vc_core_cm_get_incoming_call_handle(&pagent->call_manager); - if (mt_call_handle != -1) { - __call_vc_incomingcall_endhandle(pagent, mt_call_handle); - } - } + /*the end of incoming call rejected by callagent, because the call had come before the phone is initialized */ + if (call_handle == gphone_rejected_call) { + CALL_ENG_DEBUG(ENG_DEBUG, "Rejected call..phone not initialized"); - /* Handle Incoming Call */ - if (TRUE == _vc_core_tapi_event_handle_incoming_event(pagent, gincoming_call_handle, &gincoming_call_info)) { - CALL_ENG_DEBUG(ENG_DEBUG, "Using Idle Add Full with G_PRIORITY_HIGH_IDLE for processing Incoming Call"); - g_idle_add_full(G_PRIORITY_HIGH_IDLE, __call_vc_incoming_idle_cb, pagent, NULL); - } + gphone_rejected_call = VC_TAPI_INVALID_CALLHANDLE; + /*If no more calls available, End the Application */ + __vc_core_check_engine_active_task(pagent); return; } - break; -#endif - case TAPI_EVENT_CALL_RELEASE_CNF: - { - CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_EVENT_CALL_RELEASE_CNF.."); - - if (TAPI_CAUSE_SUCCESS == status) { - /*Ignore this event as endication will be received from TAPI for the call release request */ - CALL_ENG_DEBUG(ENG_DEBUG, "Success response for Call Release request"); - break; - } else { - /*Call Release request failed, handle the call end process in this event itself as the end indication may not be released */ - CALL_ENG_DEBUG(ENG_ERR, "Call Release request failed, proceeding with Call end process"); - } - } - case TAPI_EVENT_CALL_END_IND: /*Fall Through */ - { - call_vc_call_objectinfo_t objectInfo; - voicecall_call_state_t present_call_state = VC_CALL_STATE_NONE; - call_vc_handle incoming_call_handle = VC_TAPI_INVALID_CALLHANDLE; - TelTapiEndCause_t tapi_cause = TAPI_CALL_END_NO_CAUSE; - call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; - TelCallEndInfo_t callEndInfo; - - CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_EVENT_CALL_END_IND.."); - - if (TAPI_EVENT_CALL_RELEASE_CNF == event_type) { - /* tapicallback data = Call Handle */ - memset(&call_handle, 0, sizeof(call_vc_handle)); - memcpy(&call_handle, data, sizeof(call_vc_handle)); - - /*Tapi doesn't send cause for TAPI_EVENT_CALL_RELEASE_CNF */ - tapi_cause = TAPI_CALL_END_NO_CAUSE; - } else { - /* tapicallback data = CallEndInfo */ - memset(&callEndInfo, 0, sizeof(TelCallEndInfo_t)); - memcpy(&callEndInfo, data, sizeof(TelCallEndInfo_t)); - - call_handle = callEndInfo.pCallHandle; - tapi_cause = callEndInfo.CallEndCause; - } - CALL_ENG_DEBUG(ENG_DEBUG, "Call Handle = %d,end cause:%d", call_handle, tapi_cause); - - /*the end of incoming call rejected by callagent, because the call had come before the phone is initialized */ - if (call_handle == gphone_rejected_call) { - CALL_ENG_DEBUG(ENG_DEBUG, "Rejected call..phone not initialized"); - - gphone_rejected_call = VC_TAPI_INVALID_CALLHANDLE; + incoming_call_handle = _vc_core_cm_get_incoming_call_handle(&pagent->call_manager); + present_call_state = _vc_core_cm_get_call_state(&pagent->call_manager, call_handle); + CALL_ENG_DEBUG(ENG_DEBUG, "New Call Handle = %d, Already registered MT call handle : %d", call_handle, incoming_call_handle); + switch (present_call_state) { + case VC_CALL_STATE_NONE: + case VC_CALL_STATE_ENDED: + case VC_CALL_STATE_ENDED_FINISH: + { + CALL_ENG_DEBUG(ENG_DEBUG, "Call Handle = %d state is %d", call_handle, present_call_state); /*If no more calls available, End the Application */ __vc_core_check_engine_active_task(pagent); return; } + break; + case VC_CALL_STATE_REJECTED: + { + /*End of incoming call (not registered as incoming call in CallAgent) rejected by callagent */ + if (incoming_call_handle != call_handle) { + _vc_core_cm_remove_call_object(&pagent->call_manager, call_handle); + CALL_ENG_DEBUG(ENG_DEBUG, "end of call rejected by callagent"); - incoming_call_handle = _vc_core_cm_get_incoming_call_handle(&pagent->call_manager); - present_call_state = _vc_core_cm_get_call_state(&pagent->call_manager, call_handle); - - CALL_ENG_DEBUG(ENG_DEBUG, "New Call Handle = %d, Already registered MT call handle : %d", call_handle, incoming_call_handle); - switch (present_call_state) { - case VC_CALL_STATE_NONE: - case VC_CALL_STATE_ENDED: - case VC_CALL_STATE_ENDED_FINISH: - { - CALL_ENG_DEBUG(ENG_DEBUG, "Call Handle = %d state is %d", call_handle, present_call_state); /*If no more calls available, End the Application */ __vc_core_check_engine_active_task(pagent); return; } - break; - case VC_CALL_STATE_REJECTED: - { - /*End of incoming call (not registered as incoming call in CallAgent) rejected by callagent */ - if (incoming_call_handle != call_handle) { - _vc_core_cm_remove_call_object(&pagent->call_manager, call_handle); - CALL_ENG_DEBUG(ENG_DEBUG, "end of call rejected by callagent"); - - /*If no more calls available, End the Application */ - __vc_core_check_engine_active_task(pagent); - return; - } - } - break; - default: - break; - } - - /*End of the call rejected by user or by callagent (when hold is failed) */ - if ((VC_INOUT_STATE_INCOME_WAIT_RELEASE == pagent->io_state) && (incoming_call_handle == call_handle)) { - _vc_core_cm_remove_call_object(&pagent->call_manager, call_handle); - - /*Change the In Out state to None*/ - _vc_core_ca_change_inout_state(pagent, VC_INOUT_STATE_NONE); - - /*Notify Client about rejected Event*/ - _vc_core_ca_send_event_to_client(pagent, VC_CALL_REJECTED_END, call_handle, 0, NULL); - - return; - } - - /*End of Incoming Call */ - if (incoming_call_handle == call_handle) { - CALL_ENG_DEBUG(ENG_DEBUG, "Adding Incoming End Event to Idle Callback"); - _vc_core_ca_change_inout_state(pagent, VC_INOUT_STATE_INCOME_END); - /*Make sure that the End Indication is processed always after the Incoming Indication , as both are - processed in Idle Add Callbacks */ - g_idle_add(__call_vc_incoming_call_end_idle_cb, pagent); - return; - } - - /*End of Outgoing Call */ - if (_vc_core_cm_get_outgoing_call_handle(&pagent->call_manager) == call_handle) { - __call_vc_outgoingcall_endhandle(pagent, call_handle, TAPI_EVENT_CALL_END_IND, tapi_cause); - return; - } - - /*End of Normal Connected Call */ - _vc_core_tapi_event_handle_call_end_event(pagent, event_type, call_handle, tapi_cause); - - CALL_VC_DUMP_CALLDETAILS(&pagent->call_manager); - _vc_core_cm_clear_call_object(&objectInfo); - if (FALSE == _vc_core_cm_get_call_object(&pagent->call_manager, call_handle, &objectInfo)) { - CALL_ENG_DEBUG(ENG_DEBUG, "Call Already Cleared for Call Handle = %d", call_handle); - - /* - * Because of _vc_core_tapi_rqst_answer_call( .., VC_ANSWER_HOLD_ACTIVE_AND_ACCEPT,.. ) inside _vc_core_tapi_event_handle_call_end_event(), - * pagent->call_manager is cleared. so, we didn't send VC_CALL_NORMAL_END to call-ui. - * so we should send this event to call-ui. - */ - { - voice_call_end_cause_type_t end_cause_type; - _vc_core_tapi_event_get_end_cause_type(event_type, tapi_cause, &end_cause_type); - _vc_core_ca_send_event_to_client(pagent, VC_CALL_NORMAL_END, call_handle, end_cause_type, NULL); - } - } else { - _vc_core_ca_send_event_to_client(pagent, VC_CALL_NORMAL_END, objectInfo.call_handle, objectInfo.end_cause_type, NULL); - } - } - break; - case TAPI_EVENT_CALL_RELEASE_ALL_CNF: - { - CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_EVENT_CALL_RELEASE_ALL_CNF"); - } - break; - case TAPI_EVENT_CALL_RELEASE_ALL_ACTIVE_CNF: - { - CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_EVENT_CALL_RELEASE_ALL_ACTIVE_CNF"); - } - break; - case TAPI_EVENT_CALL_RELEASE_ALL_HELD_CNF: - { - CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_EVENT_CALL_RELEASE_ALL_HELD_CNF"); - } - break; - case TAPI_EVENT_CALL_ALERT_IND: - { - call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; - call_vc_handle mo_call_handle = VC_TAPI_INVALID_CALLHANDLE; - - CALL_ENG_KPI("TAPI_EVENT_CALL_ALERT_IND START"); - /*There are possiblities, that TAPI issued the Alert Notification and it is pending in the gmain loop, but meanwhile, the call - is released by the user - so ignore the event if it doesn't match with the IN OUT Wait state */ - if (VC_INOUT_STATE_OUTGOING_WAIT_ALERT != pagent->io_state) { - CALL_ENG_DEBUG(ENG_DEBUG, "Io State not in WAIT_ORIG, current io state is : %d", pagent->io_state); - return; - } - /*tapi_data = (call_handle)*/ - memcpy(&call_handle, data, sizeof(call_vc_handle)); - CALL_ENG_DEBUG(ENG_DEBUG, "Alert Call Handle = %d", call_handle); - - mo_call_handle = _vc_core_cm_get_outgoing_call_handle(&pagent->call_manager); - CALL_ENG_DEBUG(ENG_DEBUG, "MO Call Handle = %d", mo_call_handle); - - /*Get the outgoing call handle from CallManger and check*/ - if ((VC_TAPI_INVALID_CALLHANDLE == call_handle) || (mo_call_handle != call_handle)) { - CALL_ENG_DEBUG(ENG_DEBUG, "Outgoing call does not exist or call_handle doesn't match"); - break; - } - - _vc_core_tapi_event_handle_alert_event(pagent, call_handle); - CALL_ENG_KPI("TAPI_EVENT_CALL_ALERT_IND done"); - } - break; - case TAPI_EVENT_CALL_SETUP_CNF: - { - call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; - call_vc_call_objectinfo_t objectInfo; - - CALL_ENG_DEBUG(ENG_DEBUG, "Data Received for Setup CNF is %p", data); - CALL_ENG_KPI("Set Up CNF start"); - - if (TRUE == _vc_core_cm_get_outgoing_call_info(&pagent->call_manager, &objectInfo)) { - CALL_ENG_DEBUG(ENG_DEBUG, "MO call index (%d)",objectInfo.call_id); - } else { - CALL_ENG_DEBUG(ENG_ERR, "EXCEPTION:Outgoing call Info Missing.."); - } - - /*Copy Telephony Data */ - /* tapi_data = (call_handle) */ - if (data != NULL) { - memcpy(&call_handle, data, sizeof(call_vc_handle)); - CALL_ENG_DEBUG(ENG_DEBUG, "Received Call Handle = %d", call_handle); - } - - if (VC_INOUT_STATE_OUTGOING_WAIT_ORIG != pagent->io_state) { - CALL_ENG_DEBUG(ENG_DEBUG, "Io State not in WAIT_ORIG, current io state is : %d", pagent->io_state); - return; - } - - if (TAPI_CAUSE_SUCCESS == status) { - /* Get the outgoing call handle from CallManger and check */ - if ((VC_TAPI_INVALID_CALLHANDLE == call_handle)) { - CALL_ENG_DEBUG(ENG_DEBUG, "Outgoing call does not exist or call_handle doesn't match"); - break; - } - - /* Set the Call Handle to the CallbObject for future reference */ - objectInfo.call_handle = call_handle; - _vc_core_cm_set_outgoing_call_info(&pagent->call_manager, &objectInfo); - - _vc_core_tapi_event_handle_originated_event(pagent, call_handle); - } else { - CALL_ENG_DEBUG(ENG_DEBUG, "MO Call SetupCNF Failed with error cause: %d", status); - - _vc_core_cm_clear_call_object(&objectInfo); - - __call_vc_outgoingcall_endhandle(pagent, objectInfo.call_handle, TAPI_EVENT_CALL_END_IND, TAPI_CC_CAUSE_FACILITY_REJECTED); } - CALL_ENG_KPI("Set Up CNF done"); + break; + default: + break; } - break; - case TAPI_EVENT_CALL_ANSWER_CNF: - { - CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_EVENT_CALL_ANSWER_CNF"); - - if (status != TAPI_CAUSE_SUCCESS) { - /*If IO State is waiting for Answer Response */ - if ((VC_INOUT_STATE_INCOME_WAIT_CONNECTED == pagent->io_state) || (VC_INOUT_STATE_INCOME_WAIT_HOLD_CONNECTED == pagent->io_state) || (VC_INOUT_STATE_INCOME_WAIT_RELEASE_ACTIVE_CONNECTED == pagent->io_state)) { - int mt_call_handle = -1; - mt_call_handle = _vc_core_cm_get_incoming_call_handle(&pagent->call_manager); + /*End of the call rejected by user or by callagent (when hold is failed) */ + if ((VC_INOUT_STATE_INCOME_WAIT_RELEASE == pagent->io_state) && (incoming_call_handle == call_handle)) { + _vc_core_cm_remove_call_object(&pagent->call_manager, call_handle); - if (mt_call_handle != -1) { - CALL_ENG_DEBUG(ENG_DEBUG, "mt_call_handle = %d", mt_call_handle); + /*Change the In Out state to None*/ + _vc_core_ca_change_inout_state(pagent, VC_INOUT_STATE_NONE); - /*Send Hold Failed Notification to client UI */ - if (pagent->callagent_state == CALL_VC_CA_STATE_WAIT_HOLD) { - _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_HOLD_FAILED, 0, NULL); - } + /*Notify Client about rejected Event*/ + _vc_core_ca_send_event_to_client(pagent, VC_CALL_REJECTED_END, call_handle, 0, NULL); - /*Send Incoming call MT End Indication to Client UI */ - _vc_core_ca_change_inout_state(pagent, VC_INOUT_STATE_INCOME_END); - g_idle_add(__call_vc_incoming_call_end_idle_cb, pagent); - } - } - }else { - _vc_core_ca_send_event_to_client(pagent, VC_CALL_ANSWER_CNF, 0, 0, NULL); - } + return; } - break; - case TAPI_EVENT_CALL_CONNECTED_IND: - { - call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; - - CALL_ENG_DEBUG(ENG_DEBUG, "event_type == TAPI_EVENT_CALL_CONNECTED_IND..."); - CALL_ENG_KPI("TAPI_EVENT_CALL_CONNECTED_IND start"); - /*tapi callback data = (call_handle)*/ - memcpy(&call_handle, data, sizeof(int)); - CALL_ENG_DEBUG(ENG_DEBUG, "IO State: %d", pagent->io_state); - CALL_ENG_DEBUG(ENG_DEBUG, "Connected Call Handle = %d", call_handle); - - if (call_handle == _vc_core_cm_get_incoming_call_handle(&pagent->call_manager)) { - CALL_ENG_DEBUG(ENG_DEBUG, "Incoming call is being connected..."); - } else if (call_handle == _vc_core_cm_get_outgoing_call_handle(&pagent->call_manager)) { - CALL_ENG_DEBUG(ENG_DEBUG, "Outgoing call is being connected..."); - } else { - CALL_ENG_DEBUG(ENG_ERR, "invalid connected event Call Handle = %d", call_handle); - - if ((VC_INVALID_CALL_INDEX != pagent->call_manager.mtcall_index) || (VC_INVALID_CALL_INDEX != pagent->call_manager.setupcall_info.mocall_index)) { - CALL_ENG_DEBUG(ENG_DEBUG, "incoming/outgoin calls call exits, invalid call handle [PROBLEM]"); - CALL_VC_DUMP_CALLDETAILS(&pagent->call_manager); - - assert(0); - } else { - CALL_ENG_DEBUG(ENG_ERR, "No pending calls to connect, ignoreing connect event for call handle= %d", call_handle); - return; - } - break; - } - - /*Handle Connected Call Event */ - _vc_core_tapi_event_handle_call_connect_event(pagent, call_handle); - CALL_ENG_KPI("TAPI_EVENT_CALL_CONNECTED_IND done"); + /*End of Incoming Call */ + if (incoming_call_handle == call_handle) { + CALL_ENG_DEBUG(ENG_DEBUG, "Adding Incoming End Event to Idle Callback"); + _vc_core_ca_change_inout_state(pagent, VC_INOUT_STATE_INCOME_END); + /*Make sure that the End Indication is processed always after the Incoming Indication , as both are + processed in Idle Add Callbacks */ + g_idle_add(__call_vc_incoming_call_end_idle_cb, pagent); + return; } - break; - case TAPI_EVENT_CALL_HOLD_CNF: - { - call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; - CALL_ENG_DEBUG(ENG_DEBUG, "event_type == TAPI_EVENT_CALL_HOLD_CNF..."); - if (TAPI_CAUSE_SUCCESS == status) { - /*tapicallback data = call_handle*/ - memcpy(&call_handle, data, sizeof(call_vc_handle)); - } else { - _vc_core_cm_get_first_active_call_handle(&pagent->call_manager, &call_handle); - } - - if (_vc_core_tapi_event_handle_call_held_event(pagent, call_handle, status) == FALSE) { - _vc_core_ca_change_agent_state(pagent, CALL_VC_CA_STATE_NORMAL); - } else { - /* - Be carefull in clearing the end call member, because _vc_core_engine_status_is_any_call_ending - function depends on the end call object status. If it is cleared often, the check by - _vc_core_engine_status_is_any_call_ending becomes invalid - */ - _vc_core_cm_clear_endcall_member(&pagent->call_manager); - } + /*End of Outgoing Call */ + if (_vc_core_cm_get_outgoing_call_handle(&pagent->call_manager) == call_handle) { + __call_vc_outgoingcall_endhandle(pagent, call_handle, TAPI_NOTI_VOICE_CALL_STATUS_IDLE, tapi_cause); + return; } - break; - case TAPI_EVENT_CALL_RETRIEVE_CNF: - { - call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; - CALL_ENG_DEBUG(ENG_DEBUG, "event_type == TAPI_EVENT_CALL_RETRIEVE_CNF..."); + /*End of Normal Connected Call */ + _vc_core_tapi_event_handle_call_end_event(pagent, noti_id, call_handle, tapi_cause); - if (TAPI_CAUSE_SUCCESS == status) { - /*tapicallback data = call_handle*/ - memcpy(&call_handle, data, sizeof(call_vc_handle)); - } else { - _vc_core_cm_get_first_held_call_handle(&pagent->call_manager, &call_handle); - } - - if (_vc_core_tapi_event_handle_call_retrieve_event(pagent, call_handle, status) == FALSE) { - _vc_core_ca_change_agent_state(pagent, CALL_VC_CA_STATE_NORMAL); - } else { - /* - Be carefull in clearing the end call member, because _vc_core_engine_status_is_any_call_ending - function depends on the end call object status. If it is cleared often, the check by - _vc_core_engine_status_is_any_call_ending becomes invalid - */ - _vc_core_cm_clear_endcall_member(&pagent->call_manager); + CALL_VC_DUMP_CALLDETAILS(&pagent->call_manager); + _vc_core_cm_clear_call_object(&objectInfo); + if (FALSE == _vc_core_cm_get_call_object(&pagent->call_manager, call_handle, &objectInfo)) { + CALL_ENG_DEBUG(ENG_DEBUG, "Call Already Cleared for Call Handle = %d", call_handle); + + /* + * Because of _vc_core_tapi_rqst_answer_call( .., VC_ANSWER_HOLD_ACTIVE_AND_ACCEPT,.. ) inside _vc_core_tapi_event_handle_call_end_event(), + * pagent->call_manager is cleared. so, we didn't send VC_CALL_NORMAL_END to call-ui. + * so we should send this event to call-ui. + */ + { + voice_call_end_cause_type_t end_cause_type; + _vc_core_tapi_event_get_end_cause_type(pagent, noti_id, tapi_cause, &end_cause_type); + _vc_core_ca_send_event_to_client(pagent, VC_CALL_NORMAL_END, call_handle, end_cause_type, NULL); } - + } else { + _vc_core_ca_send_event_to_client(pagent, VC_CALL_NORMAL_END, objectInfo.call_handle, objectInfo.end_cause_type, NULL); } - break; - case TAPI_EVENT_CALL_SETUPCONFERENCE_CNF: - { - call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; - - CALL_ENG_DEBUG(ENG_DEBUG, "event_type == TAPI_EVENT_CALL_SETUPCONFERENCE_CNF..."); - - if (TAPI_CAUSE_SUCCESS == status) { - /*tapicallback data = call_handle*/ - memcpy(&call_handle, data, sizeof(call_vc_handle)); - } else { - call_handle = 0; - } + } else if (strcmp(noti_id, TAPI_NOTI_VOICE_CALL_STATUS_ACTIVE) == 0) { + CALL_ENG_DEBUG(ENG_DEBUG, "event_type == TAPI_NOTI_VOICE_CALL_STATUS_ACTIVE..."); + call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; + TelCallStatusActiveNoti_t callActiveInfo; - _vc_core_ca_change_agent_state(pagent, CALL_VC_CA_STATE_NORMAL); - _vc_core_tapi_event_handle_call_join_event(pagent, call_handle, status); + if (data != NULL) { + memset(&callActiveInfo, 0, sizeof(TelCallStatusActiveNoti_t)); + memcpy(&callActiveInfo, data, sizeof(TelCallStatusActiveNoti_t)); + call_handle = callActiveInfo.id; } - break; - case TAPI_EVENT_CALL_SPLITCONFERENCE_CNF: - { - call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; - - CALL_ENG_DEBUG(ENG_DEBUG, "event_type == TAPI_EVENT_CALL_SPLITCONFERENCE_CNF..."); + CALL_ENG_DEBUG(ENG_DEBUG, "IO State: %d", pagent->io_state); + CALL_ENG_DEBUG(ENG_DEBUG, "Connected Call Handle = %d", call_handle); - if (TAPI_CAUSE_SUCCESS == status) { - /*tapicallback data = call_handle*/ - memcpy(&call_handle, data, sizeof(call_vc_handle)); - } - - _vc_core_ca_change_agent_state(pagent, CALL_VC_CA_STATE_NORMAL); - _vc_core_tapi_event_handle_call_split_event(pagent, call_handle, status); - } - break; - case TAPI_EVENT_CALL_TRANSFER_CNF: - { - CALL_ENG_DEBUG(ENG_DEBUG, "event_type == TAPI_EVENT_CALL_TRANSFER_CNF"); + if (call_handle == _vc_core_cm_get_incoming_call_handle(&pagent->call_manager)) { + CALL_ENG_DEBUG(ENG_DEBUG, "Incoming call is being connected..."); + } else if (call_handle == _vc_core_cm_get_outgoing_call_handle(&pagent->call_manager)) { + CALL_ENG_DEBUG(ENG_DEBUG, "Outgoing call is being connected..."); + } else { + CALL_ENG_DEBUG(ENG_ERR, "invalid connected event Call Handle = %d", call_handle); - _vc_core_ca_change_agent_state(pagent, CALL_VC_CA_STATE_NORMAL); - _vc_core_tapi_event_handle_call_transfer_event(pagent, status); - } - break; - case TAPI_EVENT_CALL_RETRIEVE_IND: - case TAPI_EVENT_CALL_HOLD_IND: - case TAPI_EVENT_CALL_TRANSFER_IND: - case TAPI_EVENT_CALL_SETUPCONFERENCE_IND: - case TAPI_EVENT_CALL_BARRING_IND: - case TAPI_EVENT_CALL_WAITING_IND: - case TAPI_EVENT_CALL_COND_FORWARDING_IND: - case TAPI_EVENT_CALL_UNCOND_FORWARDING_IND: - { - CALL_ENG_DEBUG(ENG_DEBUG, "Received Indication %d", event_type); - if (TRUE == __call_vc_is_callagent_waitstate(pagent)) { - CALL_ENG_DEBUG(ENG_DEBUG, "[Now tapi requesting...callagent_state=%d, not display network ind]", pagent->callagent_state); - return; + if ((VC_INVALID_CALL_INDEX != pagent->call_manager.mtcall_index) || (VC_INVALID_CALL_INDEX != pagent->call_manager.setupcall_info.mocall_index)) { + CALL_ENG_DEBUG(ENG_DEBUG, "incoming/outgoin calls call exits, invalid call handle [PROBLEM]"); + CALL_VC_DUMP_CALLDETAILS(&pagent->call_manager); + assert(0); } else { - call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; - - /*tapicallback data = call_handle + cause*/ - memcpy(&call_handle, data, sizeof(call_vc_handle)); - - CALL_ENG_DEBUG(ENG_DEBUG, "Call Handle = %d", call_handle); - - _vc_core_tapi_event_handle_notification(pagent, event_type, 0); - } - } - break; - case TAPI_EVENT_CALL_CUGINFO_IND: - { - CALL_ENG_DEBUG(ENG_DEBUG, "Received TAPI_EVENT_CALL_CUGINFO_IND"); - - if (TRUE == __call_vc_is_callagent_waitstate(pagent)) { - CALL_ENG_DEBUG(ENG_DEBUG, "[Now tapi requesting...callagent_state=%d, not display network ind]", pagent->callagent_state); + CALL_ENG_DEBUG(ENG_ERR, "No pending calls to connect, ignoreing connect event for call handle= %d", call_handle); return; - - } else { - int cugIndex = 0; - call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; - - /*tapicallback data = call_handle + cause*/ - memcpy(&call_handle, data, sizeof(call_vc_handle)); - memcpy(&cugIndex, data + sizeof(call_vc_handle), sizeof(int)); - - /*cugindex is not used inside this function*/ - /*It may be used in the future*/ - _vc_core_tapi_event_handle_notification(pagent, event_type, cugIndex); } + return; } - break; - case TAPI_EVENT_CALL_CALLINGNAMEINFO_IND: - { - CALL_ENG_DEBUG(ENG_DEBUG, "Received TAPI_EVENT_CALL_CALLINGNAMEINFO_IND"); - CALL_ENG_DEBUG(ENG_DEBUG, "Event Not Handled, Feature Not Implemented"); - -#ifdef _CALLING_NAME_INFO_ - if (TRUE == __call_vc_is_callagent_waitstate(pagent)) { - CALL_ENG_DEBUG(ENG_DEBUG, "[Now tapi requesting...callagent_state=%d, not display network ind]", pagent->callagent_state); - return; - } else { - call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; - /*Structure for calling name information */ - TelCallingNameInfo_t calling_nameinfo; - memset(&calling_nameinfo, 0, sizeof(TelCallingNameInfo_t)); - - /*TapiCallingNameInfo is padded as second parameneter - tapicallback data = call_handle + cause*/ - memcpy(&call_handle, data, sizeof(call_vc_handle)); - memcpy(&calling_nameinfo, data + sizeof(call_vc_handle), sizeof(TelCallingNameInfo_t)); - - /*calling_info is not used in this function, so not passed. - It may be used in the future*/ - _vc_core_tapi_event_handle_notification(pagent, event_type, 0); - } -#endif - } - break; -#ifdef _OLD_TAPI_ - case TAPI_EVENT_CALL_SSNOTIFY_IND: - { - CALL_ENG_DEBUG(ENG_DEBUG, "Received TAPI_EVENT_CALL_SSNOTIFY_IND"); - CALL_ENG_DEBUG(ENG_DEBUG, "Event Not Handled, Feature Not Implemented"); + /*Handle Connected Call Event */ + _vc_core_tapi_event_handle_call_connect_event(pagent, call_handle); + CALL_ENG_KPI("TAPI_NOTI_VOICE_CALL_STATUS_ACTIVE done"); + } else if (strcmp(noti_id, TAPI_NOTI_VOICE_CALL_STATUS_DIALING) == 0) { + /*Dialing IND*/ + call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; + TelCallStatusDialingNoti_t callDialingInfo; + call_vc_call_objectinfo_t objectInfo; - if (TRUE == __call_vc_is_callagent_waitstate(pagent)) { - CALL_ENG_DEBUG(ENG_DEBUG, "[Now tapi requesting...callagent_state=%d, not display network ind]", pagent->callagent_state); - return TRUE; + CALL_ENG_DEBUG(ENG_DEBUG, "Data Received for DIALING_IND is %p", data); - } else { - tapi_call_ss_codes_t ss_code; + if (TRUE == _vc_core_cm_get_outgoing_call_info(&pagent->call_manager, &objectInfo)) { + CALL_ENG_DEBUG(ENG_DEBUG, "MO call index (%d)",objectInfo.call_id); + } else { + CALL_ENG_DEBUG(ENG_ERR, "EXCEPTION:Outgoing call Info Missing.."); + } - /*ss_code is padded as first parameter in the data - data = ss_code*/ - memcpy(&ss_code, data, sizeof(tapi_call_ss_codes_t)); - _vc_core_tapi_event_handle_notification(pagent, event_type, ss_code); - } + /* tapicallback data = TelCallStatusHeldNoti_t */ + if (data != NULL) { + memset(&callDialingInfo, 0, sizeof(TelCallStatusDialingNoti_t)); + memcpy(&callDialingInfo, data, sizeof(TelCallStatusDialingNoti_t)); + call_handle = callDialingInfo.id; + CALL_ENG_DEBUG(ENG_DEBUG, "Received Call Handle = %d", call_handle); } - break; - - case TAPI_EVENT_CALL_REDIRECT_CNF: - { - CALL_ENG_DEBUG(ENG_DEBUG, "Received TAPI_EVENT_CALL_REDIRECT_CNF"); - CALL_ENG_DEBUG(ENG_DEBUG, "Event Not Handled, Feature Not Implemented"); - /*TODO abthul, not used currently */ + if (VC_INOUT_STATE_OUTGOING_WAIT_ORIG != pagent->io_state) { + CALL_ENG_DEBUG(ENG_DEBUG, "Io State not in WAIT_ORIG, current io state is : %d", pagent->io_state); return; - - if (TRUE == __call_vc_is_callagent_waitstate(pagent)) { - CALL_ENG_DEBUG(ENG_DEBUG, "[Now tapi requesting...callagent_state=%d, not display network ind]", pagent->callagent_state); - return; - } else { - gboolean bValue; - - /*bValue is padded as first parameter in data from TAPI - data = bValue*/ - memcpy(&bValue, data, sizeof(gboolean)); - _vc_core_tapi_event_handle_notification(pagent, event_type, bValue); - } } -#endif - break; - case TAPI_EVENT_CALL_FORWARD_IND: - { - CALL_ENG_DEBUG(ENG_DEBUG, "Received TAPI_EVENT_CALL_FORWARD_IND"); - - if (TRUE == __call_vc_is_callagent_waitstate(pagent)) { - CALL_ENG_DEBUG(ENG_DEBUG, "[Now tapi requesting...callagent_state=%d, not display network ind]", pagent->callagent_state); - return; - - } else { - call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; - TelCallForwardType_t forwardind_type = -1; - - /*tapicallback data = call_handle + forwardind_type*/ - memcpy(&call_handle, data, sizeof(call_vc_handle)); - memcpy(&forwardind_type, data + sizeof(call_vc_handle), sizeof(TelCallForwardType_t)); - _vc_core_tapi_event_handle_notification(pagent, event_type, forwardind_type); - } + /* Get the outgoing call handle from CallManger and check */ + if ((VC_TAPI_INVALID_CALLHANDLE == call_handle)) { + CALL_ENG_DEBUG(ENG_DEBUG, "Outgoing call does not exist or call_handle doesn't match"); + return; } - break; - case TAPI_EVENT_CALL_AOCINFO_IND: - { - TelCallAocInfo_t aoc_info; - call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; - memset(&aoc_info, 0, sizeof(TelCallAocInfo_t)); - CALL_ENG_DEBUG(ENG_DEBUG, "Recived TAPI_EVENT_CALL_AOCINFO_IND..."); + /* Set the Call Handle to the CallbObject for future reference */ + objectInfo.call_handle = call_handle; + _vc_core_cm_set_outgoing_call_info(&pagent->call_manager, &objectInfo); - /*data = call_handle + tapi_call_aoc_info_t */ - memcpy(&call_handle, data, sizeof(int)); - memcpy(&aoc_info, (data + sizeof(int)), sizeof(TelCallAocInfo_t)); - - CALL_ENG_DEBUG(ENG_DEBUG, "Call Handle = %d", call_handle); - _vc_core_tapi_event_handle_aoc(pagent, call_handle, &aoc_info); + _vc_core_tapi_event_handle_originated_event(pagent, call_handle); + CALL_ENG_KPI("TAPI_NOTI_VOICE_CALL_STATUS_DIALING done"); + } else if (strcmp(noti_id, TAPI_NOTI_VOICE_CALL_STATUS_ALERT) == 0) { + call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; + call_vc_handle mo_call_handle = VC_TAPI_INVALID_CALLHANDLE; + TelCallStatusAlertNoti_t callAlertInfo; + + CALL_ENG_KPI("TAPI_NOTI_VOICE_CALL_STATUS_ALERT START"); + /*There are possiblities, that TAPI issued the Alert Notification and it is pending in the gmain loop, but meanwhile, the call + is released by the user - so ignore the event if it doesn't match with the IN OUT Wait state */ + if (VC_INOUT_STATE_OUTGOING_WAIT_ALERT != pagent->io_state) { + CALL_ENG_DEBUG(ENG_DEBUG, "Io State not in WAIT_ORIG, current io state is : %d", pagent->io_state); + return; } - break; - case TAPI_EVENT_SS_AOC_RSP: - { - TelCallAocInfo_t aoc_info; - - CALL_ENG_DEBUG(ENG_DEBUG, "Recived TAPI_EVENT_SS_AOC_RSP"); - if (TAPI_CAUSE_SUCCESS == status) { - memset(&aoc_info, 0, sizeof(TelCallAocInfo_t)); - memcpy(&aoc_info, data, sizeof(TelCallAocInfo_t)); - - switch (aoc_info.AocType) { - case TAPI_SS_AOC_TYPE_PUC: - CALL_ENG_DEBUG(ENG_DEBUG, "Recived aoc_ppm = %f", aoc_info.PPM); - pagent->aoc_ppm = aoc_info.PPM; - break; - default: - CALL_ENG_DEBUG(ENG_DEBUG, "Action not defined for AOC Type : %d", aoc_info.AocType); - } - } + if (data != NULL) { + memset(&callAlertInfo, 0, sizeof(TelCallStatusAlertNoti_t)); + memcpy(&callAlertInfo, data, sizeof(TelCallStatusAlertNoti_t)); + call_handle = callAlertInfo.id; } - break; - case TAPI_EVENT_CALL_CONNECTEDNUMBERINFO_IND: - { - TelCallConnectedNumberInfo_t connected_number_info; - call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; - memset(&connected_number_info, 0, sizeof(TelCallConnectedNumberInfo_t)); - - CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_EVENT_CALL_CONNECTEDNUMBERINFO_IND"); - - /*data = callhandle + 0(dwParam)*/ - memcpy(&call_handle, data, sizeof(call_vc_handle)); - memcpy(&connected_number_info, (data + sizeof(call_vc_handle)), sizeof(TelCallConnectedNumberInfo_t)); - CALL_ENG_DEBUG(ENG_DEBUG, "Call Handle = %d", call_handle); + CALL_ENG_DEBUG(ENG_DEBUG, "Alert Call Handle = %d", call_handle); - /*Abthul:todo , Check the usage of connected number info*/ - _vc_core_tapi_event_connected_line_ind_handle(pagent, call_handle, &connected_number_info); - } - break; - case TAPI_EVENT_CALL_SEND_DTMF_CNF: - { - CALL_ENG_DEBUG(ENG_DEBUG, "event_type == TAPI_EVENT_CALL_SEND_DTMF_CNF"); + mo_call_handle = _vc_core_cm_get_outgoing_call_handle(&pagent->call_manager); + CALL_ENG_DEBUG(ENG_DEBUG, "MO Call Handle = %d", mo_call_handle); - if (TAPI_CAUSE_SUCCESS != status) { - CALL_ENG_DEBUG(ENG_DEBUG, "Tapi Error Code %d", status); - /*Forward the events to client */ - _vc_core_ca_send_event_to_client(pagent, VC_CALL_DTMF_ACK, FALSE, 0, NULL); - } else { - /*Forward the events to client */ - _vc_core_ca_send_event_to_client(pagent, VC_CALL_DTMF_ACK, TRUE, 0, NULL); - } + /*Get the outgoing call handle from CallManger and check*/ + if ((VC_TAPI_INVALID_CALLHANDLE == call_handle) || (mo_call_handle != call_handle)) { + CALL_ENG_DEBUG(ENG_DEBUG, "Outgoing call does not exist or call_handle doesn't match"); + return; } - break; - case TAPI_EVENT_SOUND_VOLUMECTRL_RSP: - { - int tapi_sound_path = 0; - int volume_level = 0; - tapi_sound_volumn_ctrl_res snd_resp_data; - - memset(&snd_resp_data, 0, sizeof(tapi_sound_volumn_ctrl_res)); - memcpy(&snd_resp_data, data, sizeof(tapi_sound_volumn_ctrl_res)); - - int i = 0; - tapi_sound_path = pagent->curr_tapi_path; - for (i = 0; i < snd_resp_data.num_record; i++) { - if (tapi_sound_path == snd_resp_data.pinfo[i].type) { - volume_level = snd_resp_data.pinfo[i].level; - break; - } - } - CALL_ENG_DEBUG(ENG_DEBUG, "Changed Vol Type = %d, Vol Level = %d", tapi_sound_path, volume_level); - _vc_core_ca_send_event_to_client(pagent, VC_CALL_GET_VOLUME_RESP, tapi_sound_path, volume_level, NULL); - } - break; - default: - CALL_ENG_DEBUG(ENG_DEBUG, "Default: event_type = %d", event_type); - break; + _vc_core_tapi_event_handle_alert_event(pagent, call_handle); + CALL_ENG_KPI("TAPI_NOTI_VOICE_CALL_STATUS_ALERT done"); + } else if (strcmp(noti_id, TAPI_NOTI_VOICE_CALL_STATUS_INCOMING) == 0) { + CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_NOTI_VOICE_CALL_STATUS_INCOMING is not used."); + } else if (strcmp(noti_id, TAPI_NOTI_CALL_INFO_ACTIVE) == 0) { + CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_NOTI_CALL_INFO_ACTIVE"); + _vc_core_ca_send_event_to_client(pagent, VC_CALL_IND_ACTIVATE, 0, 0, NULL); + } else if (strcmp(noti_id, TAPI_NOTI_CALL_INFO_HELD) == 0) { + CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_NOTI_CALL_INFO_HELD"); + _vc_core_ca_send_event_to_client(pagent, VC_CALL_IND_HOLD, 0, 0, NULL); + } else if (strcmp(noti_id, TAPI_NOTI_CALL_INFO_TRANSFERED) == 0) { + CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_NOTI_CALL_INFO_TRANSFERRED"); + _vc_core_ca_send_event_to_client(pagent, VC_CALL_IND_TRANSFER, 0, 0, NULL); + } else if (strcmp(noti_id, TAPI_NOTI_CALL_INFO_JOINED) == 0) { + CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_NOTI_CALL_INFO_JOINED"); + _vc_core_ca_send_event_to_client(pagent, VC_CALL_IND_SETUPCONFERENCE, 0, 0, NULL); + } else if (strcmp(noti_id, TAPI_NOTI_CALL_INFO_WAITING) == 0) { + CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_NOTI_CALL_INFO_WAITING"); + _vc_core_ca_send_event_to_client(pagent, VC_CALL_IND_WAITING, 0, 0, NULL); + } else if (strcmp(noti_id, TAPI_NOTI_CALL_INFO_FORWARDED) == 0) { + CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_NOTI_CALL_INFO_FORWARDED"); + _vc_core_ca_send_event_to_client(pagent, VC_CALL_IND_FORWARD, VC_FRWD_IND_INCOM_IS_FRWD, 0, NULL); + } else if (strcmp(noti_id, TAPI_NOTI_CALL_INFO_BARRED_OUTGOING) == 0) { + CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_NOTI_CALL_INFO_BARRED_OUTGOING"); + pagent->barring_ind_type = VC_BARR_IND_ALL; + } else if (strcmp(noti_id, TAPI_NOTI_CALL_INFO_CUG) == 0) { + CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_NOTI_CALL_INFO_CUG"); + _vc_core_ca_send_event_to_client(pagent, VC_CALL_IND_CUGINFO, 0, 0, NULL); + } else if (strcmp(noti_id, TAPI_NOTI_CALL_INFO_CALL_NAME_INFORMATION) == 0) { + CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_NOTI_CALL_INFO_CALL_NAME_INFORMATION"); + _vc_core_ca_send_event_to_client(pagent, VC_CALL_IND_CALLINGNAMEINFO, 0, 0, NULL); + } else if (strcmp(noti_id, TAPI_NOTI_CALL_INFO_DEFLECTED) == 0) { + CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_NOTI_CALL_INFO_DEFLECTED"); + } else if (strcmp(noti_id, TAPI_NOTI_CALL_INFO_FORWARD_UNCONDITIONAL) == 0) { + CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_NOTI_CALL_INFO_FORWARD_UNCONDITIONAL"); + _vc_core_ca_send_event_to_client(pagent, VC_CALL_IND_SSNOTIFY, VC_SSNOTIFY_IND_CFU, 0, NULL); + } else if (strcmp(noti_id, TAPI_NOTI_CALL_INFO_FORWARD_CONDITIONAL) == 0) { + CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_NOTI_CALL_INFO_FORWARD_CONDITIONAL"); + _vc_core_ca_send_event_to_client(pagent, VC_CALL_IND_SSNOTIFY, VC_SSNOTIFY_IND_ALL_COND_FORWARDING, 0, NULL); + } else if (strcmp(noti_id, TAPI_NOTI_CALL_SOUND_WBAMR) == 0) { + CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_NOTI_CALL_SOUND_WBAMR"); + TelCallSoundWbamrNoti_t wbamrInfo; + int wbamr_status = FALSE; + + if (data != NULL) { + memset(&wbamrInfo, 0, sizeof(TelCallSoundWbamrNoti_t)); + memcpy(&wbamrInfo, data, sizeof(TelCallSoundWbamrNoti_t)); + } + + CALL_ENG_DEBUG(ENG_DEBUG, "WBAMR is %d", wbamrInfo); + if (wbamrInfo == TAPI_CALL_SOUND_WBAMR_STATUS_ON) { + wbamr_status = TRUE; + } + + _vc_core_ca_send_event_to_client(pagent, VC_CALL_NOTI_WBAMR, wbamr_status, 0, NULL); + } else if (strcmp(noti_id, TAPI_NOTI_CALL_SOUND_NOISE_REDUCTION) == 0) { + CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_NOTI_CALL_SOUND_NOISE_REDUCTION"); + } else { + CALL_ENG_DEBUG(ENG_DEBUG, "ERROR!! Noti is not defined"); } - CALL_ENG_DEBUG(ENG_DEBUG, "tapi event(%d) processed done.", event_type); + + CALL_ENG_DEBUG(ENG_DEBUG, "tapi noti(%s) processed done.", noti_id); return; } -static gboolean __call_vc_outgoingcall_endhandle(call_vc_callagent_state_t *pagent, call_vc_handle call_handle, int type, TelTapiEndCause_t tapi_cause) +static gboolean __call_vc_outgoingcall_endhandle(call_vc_callagent_state_t *pagent, call_vc_handle call_handle, const char *type, TelTapiEndCause_t tapi_cause) { call_vc_call_objectinfo_t objectInfo; voice_call_end_cause_type_t endcause_type = 0; @@ -2136,7 +1691,7 @@ static gboolean __call_vc_outgoingcall_endhandle(call_vc_callagent_state_t *page /*Inform Client App about MO Call Disconnect */ _vc_core_ca_change_inout_state(pagent, VC_INOUT_STATE_OUTGOING_ABORTED); - _vc_core_tapi_event_get_end_cause_type(type, tapi_cause, &endcause_type); + _vc_core_tapi_event_get_end_cause_type(pagent, type, tapi_cause, &endcause_type); _vc_core_ca_send_event_to_client(pagent, VC_CALL_OUTGOING_END, call_handle, (int)endcause_type, NULL); /* Response call setup result to SAT if this is SAT call */ @@ -2260,7 +1815,7 @@ static gboolean __call_vc_is_callagent_waitstate(call_vc_callagent_state_t *page * @return This function returns TRUE if dtmf is possible or else FALSE * @param[in] pcall_agent Pointer to the call agent structure */ -gboolean __vc_core_is_dtmf_possible(call_vc_callagent_state_t *pcall_agent) +static gboolean __vc_core_is_dtmf_possible(call_vc_callagent_state_t *pcall_agent) { VOICECALL_RETURN_FALSE_IF_FAIL(pcall_agent != NULL); CALL_ENG_DEBUG(ENG_DEBUG, ""); @@ -2763,22 +2318,12 @@ voicecall_error_t _vc_core_engine_send_sat_response(voicecall_engine_t *pvoiceca void _vc_core_engine_engine_finish(voicecall_engine_t *pvoicecall_agent) { call_vc_callagent_state_t *pcall_agent = (call_vc_callagent_state_t *)pvoicecall_agent; - int error_code = 0; - int index = 0; - VOICECALL_RETURN_IF_FAIL(pvoicecall_agent != NULL); /*Unsubscribe Events */ CALL_ENG_DEBUG(ENG_DEBUG, "Unsubscribing Events"); - for (index = 0; index < CALL_VC_TAPI_SUBSCRIPTION_MAX; index++) { - error_code = tel_deregister_event(pcall_agent->subscription_id[index]); - if (error_code != TAPI_API_SUCCESS) { - CALL_ENG_DEBUG(ENG_DEBUG, "tel_deregister_event failed. sub id is %d error_code is %d", pcall_agent->subscription_id[index], error_code); - break; - } - } - tel_deinit(); + tel_deinit(pcall_agent->tapi_handle); VOICECALL_RETURN_IF_FAIL(pcall_agent != NULL); _vc_core_ca_finish_agent(pcall_agent); @@ -2795,13 +2340,13 @@ void _vc_core_engine_engine_finish(voicecall_engine_t *pvoicecall_agent) voicecall_error_t voicecall_request_sat_menu(voicecall_engine_t *pvoicecall_agent) { call_vc_callagent_state_t *pagent = (call_vc_callagent_state_t *)pvoicecall_agent; - TelSatSetupMenuInfo_t sim_menu; - + TelSatSetupMenuInfo_t sim_menu; /*LiMo SAT*/ + VOICECALL_RETURN_VALUE_IF_FAIL(pagent != NULL, ERROR_VOICECALL_INVALID_ARGUMENTS); CALL_ENG_DEBUG(ENG_DEBUG, ""); memset(&sim_menu, 0, sizeof(TelSatSetupMenuInfo_t)); - + /*LiMo SAT*/ if (FALSE == TelTapiSatGetMainMenuList(&sim_menu)) { CALL_ENG_DEBUG(ENG_DEBUG, "TelTapiSatGetMainMenuList failed"); return ERROR_VOICECALL_REQUEST_FAILED; @@ -2820,7 +2365,7 @@ voicecall_error_t voicecall_request_sat_menu(voicecall_engine_t *pvoicecall_agen voicecall_error_t voicecall_request_sat_menu_title(voicecall_engine_t *pvoicecall_agent, char *title) { call_vc_callagent_state_t *pagent = (call_vc_callagent_state_t *)pvoicecall_agent; - TelSatMainMenuTitleInfo_t sat_menu_title; + TelSatMainMenuTitleInfo_t sat_menu_title; /*LiMo SAT*/ VOICECALL_RETURN_VALUE_IF_FAIL(pagent != NULL, ERROR_VOICECALL_INVALID_ARGUMENTS); VOICECALL_RETURN_VALUE_IF_FAIL(title != NULL, ERROR_VOICECALL_INVALID_ARGUMENTS); @@ -2828,7 +2373,6 @@ voicecall_error_t voicecall_request_sat_menu_title(voicecall_engine_t *pvoicecal CALL_ENG_DEBUG(ENG_DEBUG, ""); memset(&sat_menu_title, 0, sizeof(TelSatMainMenuTitleInfo_t)); - if (TRUE == TelTapiSatGetMainMenuTitle(&sat_menu_title)) { if (TRUE == sat_menu_title.bIsMainMenuPresent) { strcpy(title, (char *)sat_menu_title.mainMenuTitle.string); @@ -2878,7 +2422,7 @@ voicecall_error_t _vc_core_engine_prepare_redial(voicecall_engine_t *pvoicecall_ /*Set Engine IO State */ _vc_core_ca_change_inout_state(pagent, VC_INOUT_STATE_OUTGOING_SHOW_REDIALCAUSE); - /*Abthul:todo Set SAT Redial Data */ + /*todo Set SAT Redial Data */ return ERROR_VOICECALL_NONE; } @@ -2892,7 +2436,7 @@ voicecall_error_t _vc_core_engine_prepare_redial(voicecall_engine_t *pvoicecall_ * @param[out] bredial_duration Contains TRUE if SAT redial duration is enabled, FALSE otherwise * @remarks pvoicecall_agent and bredial_duration cannot be NULL */ -voicecall_error_t voicecall_get_sat_redial_duration_status(voicecall_engine_t *pvoicecall_agent, gboolean * bredial_duration) +voicecall_error_t voicecall_get_sat_redial_duration_status(voicecall_engine_t *pvoicecall_agent, gboolean *bredial_duration) { call_vc_callagent_state_t *pagent = (call_vc_callagent_state_t *)pvoicecall_agent; call_vc_satsetup_info_t *pcall_vc_satcall_info = NULL; @@ -2956,13 +2500,12 @@ voicecall_error_t _vc_core_engine_get_sat_dtmf_hidden_mode(voicecall_engine_t *p * @param[in] audio_path audio path to be changed * @remarks pvoicecall_agent cannot be NULL */ -voicecall_error_t _vc_core_engine_change_audio_path(voicecall_engine_t *pvoicecall_agent, voicecall_audio_path_t audio_path) +voicecall_error_t _vc_core_engine_change_audio_path(voicecall_engine_t *pvoicecall_agent, voicecall_audio_path_t audio_path, gboolean bextra_volume) { call_vc_callagent_state_t *pcall_agent = (call_vc_callagent_state_t *)pvoicecall_agent; - tapi_sound_audio_path_t tapi_audio_path = TAPI_SOUND_HANDSET; + TelCallSoundPathInfo_t tapi_sound_path; /*Enum for encapsulating errors from TAPI Lib */ TapiResult_t tapi_error = TAPI_API_SUCCESS; - int ReqId = VC_RQSTID_DEFAULT; VOICECALL_RETURN_VALUE_IF_FAIL(pcall_agent != NULL, ERROR_VOICECALL_INVALID_ARGUMENTS); @@ -2974,37 +2517,37 @@ voicecall_error_t _vc_core_engine_change_audio_path(voicecall_engine_t *pvoiceca switch (audio_path) { case VC_AUDIO_PATH_HANDSET: { - tapi_audio_path = TAPI_SOUND_HANDSET; + tapi_sound_path.path = TAPI_SOUND_PATH_HANDSET; } break; case VC_AUDIO_PATH_HEADSET: { - tapi_audio_path = TAPI_SOUND_HEADSET; + tapi_sound_path.path = TAPI_SOUND_PATH_HEADSET; } break; case VC_AUDIO_PATH_HANDSFREE: { - tapi_audio_path = TAPI_SOUND_HANDSFREE; + tapi_sound_path.path = TAPI_SOUND_PATH_HANDSFREE; } break; case VC_AUDIO_PATH_BLUETOOTH: { - tapi_audio_path = TAPI_SOUND_BLUETOOTH; + tapi_sound_path.path = TAPI_SOUND_PATH_BLUETOOTH; } break; case VC_AUDIO_PATH_STEREO_BLUETOOTH: { - tapi_audio_path = TAPI_SOUND_STEREO_BLUETOOTH; + tapi_sound_path.path = TAPI_SOUND_PATH_STEREO_BLUETOOTH; } break; case VC_AUDIO_PATH_SPK_PHONE: { - tapi_audio_path = TAPI_SOUND_SPK_PHONE; + tapi_sound_path.path = TAPI_SOUND_PATH_SPK_PHONE; } break; case VC_AUDIO_PATH_HEADSET_3_5PI: { - tapi_audio_path = TAPI_SOUND_HEADSET_3_5PI; + tapi_sound_path.path = TAPI_SOUND_PATH_HEADSET_3_5PI; } break; default: @@ -3015,9 +2558,16 @@ voicecall_error_t _vc_core_engine_change_audio_path(voicecall_engine_t *pvoiceca break; } - CALL_ENG_DEBUG(ENG_DEBUG, "tapi_audio_path: %d", tapi_audio_path); - tapi_error = tel_set_sound_path(tapi_audio_path, &ReqId); + CALL_ENG_DEBUG(ENG_DEBUG, "tapi_audio_path: %d(extra voluem: %d)", tapi_sound_path, bextra_volume); + if ((bextra_volume) + && ((tapi_sound_path.path == TAPI_SOUND_PATH_HANDSET) + || (tapi_sound_path.path = TAPI_SOUND_PATH_SPK_PHONE))) { + tapi_sound_path.ex_volume = TAPI_SOUND_EX_VOLUME_ON; + } else { + tapi_sound_path.ex_volume = TAPI_SOUND_EX_VOLUME_OFF; + } + tapi_error = tel_set_call_sound_path(pcall_agent->tapi_handle, &tapi_sound_path, _vc_core_engine_set_sound_path_resp_cb, NULL); if (tapi_error != TAPI_API_SUCCESS) { CALL_ENG_DEBUG(ENG_DEBUG, "tel_set_sound_path error: %d", tapi_error); return ERROR_VOICECALL_TAPI_ERROR; @@ -3028,13 +2578,13 @@ voicecall_error_t _vc_core_engine_change_audio_path(voicecall_engine_t *pvoiceca voicecall_error_t _vc_core_engine_set_audio_mute(voicecall_engine_t *pvoicecall_agent, gboolean bmute_audio) { + call_vc_callagent_state_t *pcall_agent = (call_vc_callagent_state_t *)pvoicecall_agent; TapiResult_t error = TAPI_API_SUCCESS; - tapi_sound_mic_mute_t micmute_set = TAPI_SOUND_MIC_UNMUTE; - int req_id = VC_RQSTID_DEFAULT; + TelSoundMuteStatus_t micmute_set = TAPI_SOUND_MUTE_STATUS_OFF; - micmute_set = (TRUE == bmute_audio) ? TAPI_SOUND_MIC_MUTE : TAPI_SOUND_MIC_UNMUTE; + micmute_set = (TRUE == bmute_audio) ? TAPI_SOUND_MUTE_STATUS_ON : TAPI_SOUND_MUTE_STATUS_OFF; - error = tel_set_sound_mute_status(micmute_set, &req_id); + error = tel_set_call_mute_status(pcall_agent->tapi_handle, micmute_set, _vc_core_engine_set_mute_status_resp_cb, NULL); if (error != TAPI_API_SUCCESS) { CALL_ENG_DEBUG(ENG_DEBUG, "tel_set_sound_mute_status Error: %d", error); @@ -3059,8 +2609,7 @@ voicecall_error_t _vc_core_engine_set_audio_volume(voicecall_engine_t *pvoicecal call_vc_callagent_state_t *pcall_agent = (call_vc_callagent_state_t *)pvoicecall_agent; /*Enum for encapsulating errors from TAPI Lib */ TapiResult_t error = TAPI_API_SUCCESS; - tapi_sound_volume_control_t vol_control; - int ReqId = VC_RQSTID_DEFAULT; + TelCallVolumeInfo_t vol_info; CALL_ENG_DEBUG(ENG_DEBUG, "Start! path(%d), volume(%d)", audio_path_type, vol_level); @@ -3074,24 +2623,25 @@ voicecall_error_t _vc_core_engine_set_audio_volume(voicecall_engine_t *pvoicecal return ERROR_VOICECALL_CALL_INFO_NOT_AVAILABLE; } - vol_control.volume = vol_level; + vol_info.volume = vol_level; + vol_info.type = TAPI_SOUND_TYPE_VOICE; switch (audio_path_type) { case VC_AUDIO_PATH_HEADSET: - vol_control.vol_type = TAPI_SOUND_VOL_HEADSET_VOICE; + vol_info.device = TAPI_SOUND_DEVICE_HEADSET; break; case VC_AUDIO_PATH_BLUETOOTH: case VC_AUDIO_PATH_STEREO_BLUETOOTH: - vol_control.vol_type = TAPI_SOUND_VOL_BT_VOICE; + vol_info.device = TAPI_SOUND_DEVICE_BLUETOOTH; break; case VC_AUDIO_PATH_SPK_PHONE: - vol_control.vol_type = TAPI_SOUND_VOL_SPK_PHONE; + vol_info.device = TAPI_SOUND_DEVICE_SPEAKER_PHONE; break; default: - vol_control.vol_type = TAPI_SOUND_VOL_VOICE; + vol_info.device = TAPI_SOUND_DEVICE_RECEIVER; break; } - error = tel_set_sound_volume_info(vol_control, &ReqId); + error = tel_set_call_volume_info(pcall_agent->tapi_handle, &vol_info, _vc_core_engine_set_volume_resp_cb, NULL); if (error != TAPI_API_SUCCESS) { CALL_ENG_DEBUG(ENG_DEBUG, "Tapi API Error: %d", error); @@ -3119,8 +2669,7 @@ voicecall_error_t _vc_core_engine_get_audio_volume(voicecall_engine_t *pvoicecal { call_vc_callagent_state_t *pcall_agent = (call_vc_callagent_state_t *)pvoicecall_agent; TapiResult_t error = TAPI_API_SUCCESS; - tapi_sound_volume_type_t volume_type = TAPI_SOUND_VOL_VOICE; - int ReqId = VC_RQSTID_DEFAULT; + TelSoundDevice_t volume_type = TAPI_SOUND_DEVICE_RECEIVER; VOICECALL_RETURN_VALUE_IF_FAIL(pcall_agent != NULL, ERROR_VOICECALL_INVALID_ARGUMENTS); VOICECALL_RETURN_VALUE_IF_NOT_IN_RANGE(audio_path_type, VC_AUDIO_PATH_HANDSET, VC_AUDIO_PATH_HEADSET_3_5PI, ERROR_VOICECALL_INVALID_ARGUMENTS); @@ -3132,24 +2681,24 @@ voicecall_error_t _vc_core_engine_get_audio_volume(voicecall_engine_t *pvoicecal switch (audio_path_type) { case VC_AUDIO_PATH_HEADSET: - volume_type = TAPI_SOUND_VOL_HEADSET_VOICE; + volume_type = TAPI_SOUND_DEVICE_HEADSET; break; case VC_AUDIO_PATH_BLUETOOTH: case VC_AUDIO_PATH_STEREO_BLUETOOTH: - volume_type = TAPI_SOUND_VOL_BT_VOICE; + volume_type = TAPI_SOUND_DEVICE_BLUETOOTH; break; case VC_AUDIO_PATH_SPK_PHONE: - volume_type = TAPI_SOUND_VOL_SPK_PHONE; + volume_type = TAPI_SOUND_DEVICE_SPEAKER_PHONE; break; default: - volume_type = TAPI_SOUND_VOL_VOICE; + volume_type = TAPI_SOUND_DEVICE_RECEIVER; break; } CALL_ENG_DEBUG(ENG_DEBUG, "volume_type = %d", volume_type); pcall_agent->curr_tapi_path = volume_type; - error = tel_get_sound_volume_info(volume_type, &ReqId); + error = tel_get_call_volume_info(pcall_agent->tapi_handle, volume_type, TAPI_SOUND_TYPE_VOICE, _vc_core_engine_get_volume_resp_cb, NULL); if (error != TAPI_API_SUCCESS) { CALL_ENG_DEBUG(ENG_DEBUG, "Tapi API Error: %d", error); @@ -3219,3 +2768,338 @@ voicecall_error_t _vc_core_engine_set_to_default_values(voicecall_engine_t *pvoi return ERROR_VOICECALL_NONE; } + +void _vc_core_engine_dial_call_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data) +{ + CALL_ENG_DEBUG(ENG_DEBUG, "_vc_core_engine_dial_call_resp_cb"); + + call_vc_call_objectinfo_t objectInfo; + call_vc_callagent_state_t *pagent = gpcall_agent_for_callback; + + if (TAPI_CAUSE_SUCCESS != result) { + CALL_ENG_DEBUG(ENG_DEBUG, "MO Call Dial call Failed with error cause: %d", result); + + _vc_core_cm_clear_call_object(&objectInfo); + + __call_vc_outgoingcall_endhandle(pagent, objectInfo.call_handle, TAPI_NOTI_VOICE_CALL_STATUS_IDLE, TAPI_CC_CAUSE_FACILITY_REJECTED); + /* Need to make warning popup for abnormal status... */ + } +} + +void _vc_core_engine_answer_call_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data) +{ + CALL_ENG_DEBUG(ENG_DEBUG, "_vc_core_engine_answer_call_resp_cb"); + + call_vc_callagent_state_t *pagent = gpcall_agent_for_callback; + if (result != TAPI_CAUSE_SUCCESS) { + /*If IO State is waiting for Answer Response */ + if ((VC_INOUT_STATE_INCOME_WAIT_CONNECTED == pagent->io_state) || (VC_INOUT_STATE_INCOME_WAIT_HOLD_CONNECTED == pagent->io_state) || (VC_INOUT_STATE_INCOME_WAIT_RELEASE_ACTIVE_CONNECTED == pagent->io_state)) { + int mt_call_handle = -1; + + mt_call_handle = _vc_core_cm_get_incoming_call_handle(&pagent->call_manager); + + if (mt_call_handle != -1) { + CALL_ENG_DEBUG(ENG_DEBUG, "mt_call_handle = %d", mt_call_handle); + + /*Send Hold Failed Notification to client UI */ + if (pagent->callagent_state == CALL_VC_CA_STATE_WAIT_HOLD) { + _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_HOLD_FAILED, 0, NULL); + } + + /*Send Incoming call MT End Indication to Client UI */ + _vc_core_ca_change_inout_state(pagent, VC_INOUT_STATE_INCOME_END); + g_idle_add(__call_vc_incoming_call_end_idle_cb, pagent); + } + } + } else { + _vc_core_ca_send_event_to_client(pagent, VC_CALL_ANSWER_CNF, 0, 0, NULL); + } +} + +void _vc_core_engine_end_call_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data) +{ + CALL_ENG_DEBUG(ENG_DEBUG, "_vc_core_engine_end_call_resp_cb.."); + + TelCallEndCnf_t callEndInfo ; + call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; + TelCallEndType_t call_end_type = TAPI_CALL_END; + call_vc_callagent_state_t *pagent = gpcall_agent_for_callback; + + memset(&callEndInfo, 0, sizeof(TelCallEndCnf_t)); + memcpy(&callEndInfo, tapi_data, sizeof(TelCallEndCnf_t)); + + call_handle = callEndInfo.id; + call_end_type = callEndInfo.type; + + if (TAPI_CAUSE_SUCCESS == result) { + /*Ignore this event as endication will be received from TAPI for the call release request */ + CALL_ENG_DEBUG(ENG_DEBUG, "Success response for tel_end_call request"); + } else { + CALL_ENG_DEBUG(ENG_ERR, "Call Release request failed, proceeding with Call end process"); + call_vc_call_objectinfo_t objectInfo; + voicecall_call_state_t present_call_state = VC_CALL_STATE_NONE; + call_vc_handle incoming_call_handle = VC_TAPI_INVALID_CALLHANDLE; + TelTapiEndCause_t tapi_cause = TAPI_CALL_END_NO_CAUSE; + + CALL_ENG_DEBUG(ENG_DEBUG, "Call Handle = %d,end cause:%d", call_handle, tapi_cause); + + /*the end of incoming call rejected by callagent, because the call had come before the phone is initialized */ + if (call_handle == gphone_rejected_call) { + CALL_ENG_DEBUG(ENG_DEBUG, "Rejected call..phone not initialized"); + + gphone_rejected_call = VC_TAPI_INVALID_CALLHANDLE; + + /*If no more calls available, End the Application */ + __vc_core_check_engine_active_task(pagent); + return; + } + + incoming_call_handle = _vc_core_cm_get_incoming_call_handle(&pagent->call_manager); + present_call_state = _vc_core_cm_get_call_state(&pagent->call_manager, call_handle); + + CALL_ENG_DEBUG(ENG_DEBUG, "New Call Handle = %d, Already registered MT call handle : %d", call_handle, incoming_call_handle); + switch (present_call_state) { + case VC_CALL_STATE_NONE: + case VC_CALL_STATE_ENDED: + case VC_CALL_STATE_ENDED_FINISH: + { + CALL_ENG_DEBUG(ENG_DEBUG, "Call Handle = %d state is %d", call_handle, present_call_state); + /*If no more calls available, End the Application */ + __vc_core_check_engine_active_task(pagent); + return; + } + break; + case VC_CALL_STATE_REJECTED: + { + /*End of incoming call (not registered as incoming call in CallAgent) rejected by callagent */ + if (incoming_call_handle != call_handle) { + _vc_core_cm_remove_call_object(&pagent->call_manager, call_handle); + CALL_ENG_DEBUG(ENG_DEBUG, "end of call rejected by callagent"); + + /*If no more calls available, End the Application */ + __vc_core_check_engine_active_task(pagent); + return; + } + } + break; + default: + break; + } + + /*End of the call rejected by user or by callagent (when hold is failed) */ + if ((VC_INOUT_STATE_INCOME_WAIT_RELEASE == pagent->io_state) && (incoming_call_handle == call_handle)) { + _vc_core_cm_remove_call_object(&pagent->call_manager, call_handle); + + /*Change the In Out state to None*/ + _vc_core_ca_change_inout_state(pagent, VC_INOUT_STATE_NONE); + + /*Notify Client about rejected Event*/ + _vc_core_ca_send_event_to_client(pagent, VC_CALL_REJECTED_END, call_handle, 0, NULL); + + return; + } + + /*End of Incoming Call */ + if (incoming_call_handle == call_handle) { + CALL_ENG_DEBUG(ENG_DEBUG, "Adding Incoming End Event to Idle Callback"); + _vc_core_ca_change_inout_state(pagent, VC_INOUT_STATE_INCOME_END); + /*Make sure that the End Indication is processed always after the Incoming Indication , as both are + processed in Idle Add Callbacks */ + g_idle_add(__call_vc_incoming_call_end_idle_cb, pagent); + return; + } + + /*End of Outgoing Call */ + if (_vc_core_cm_get_outgoing_call_handle(&pagent->call_manager) == call_handle) { + __call_vc_outgoingcall_endhandle(pagent, call_handle, TAPI_NOTI_VOICE_CALL_STATUS_IDLE, tapi_cause); + return; + } + + /*End of Normal Connected Call */ + _vc_core_tapi_event_handle_call_end_event(pagent, "", call_handle, tapi_cause); + + CALL_VC_DUMP_CALLDETAILS(&pagent->call_manager); + _vc_core_cm_clear_call_object(&objectInfo); + if (FALSE == _vc_core_cm_get_call_object(&pagent->call_manager, call_handle, &objectInfo)) { + CALL_ENG_DEBUG(ENG_DEBUG, "Call Already Cleared for Call Handle = %d", call_handle); + + /* jspark + * Because of _vc_core_tapi_rqst_answer_call( .., VC_ANSWER_HOLD_ACTIVE_AND_ACCEPT,.. ) inside _vc_core_tapi_event_handle_call_end_event(), + * pagent->call_manager is cleared. so, we didn't send VC_CALL_NORMAL_END to call-ui. + * so we should send this event to call-ui. + */ + { + voice_call_end_cause_type_t end_cause_type; + _vc_core_tapi_event_get_end_cause_type(pagent, "", tapi_cause, &end_cause_type); + _vc_core_ca_send_event_to_client(pagent, VC_CALL_NORMAL_END, call_handle, end_cause_type, NULL); + } + } else { + _vc_core_ca_send_event_to_client(pagent, VC_CALL_NORMAL_END, objectInfo.call_handle, objectInfo.end_cause_type, NULL); + } + } + return; +} + +void _vc_core_engine_hold_call_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data) +{ + CALL_ENG_DEBUG(ENG_DEBUG, "_vc_core_engine_hold_call_resp_cb"); + call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; + call_vc_callagent_state_t *pagent = gpcall_agent_for_callback; + + if (TAPI_CAUSE_SUCCESS == result) { + memcpy(&call_handle, tapi_data, sizeof(call_vc_handle)); + } else { + _vc_core_cm_get_first_active_call_handle(&pagent->call_manager, &call_handle); + } + + if (_vc_core_tapi_event_handle_call_held_event(pagent, call_handle, result) == FALSE) { + _vc_core_ca_change_agent_state(pagent, CALL_VC_CA_STATE_NORMAL); + } else { + /* + Be carefull in clearing the end call member, because _vc_core_engine_status_is_any_call_ending + function depends on the end call object status. If it is cleared often, the check by + _vc_core_engine_status_is_any_call_ending becomes invalid + */ + _vc_core_cm_clear_endcall_member(&pagent->call_manager); + } +} + +void _vc_core_engine_active_call_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data) +{ + CALL_ENG_DEBUG(ENG_DEBUG, "_vc_core_engine_active_call_resp_cb"); + call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; + call_vc_callagent_state_t *pagent = gpcall_agent_for_callback; + TelCallActiveCnf_t callActiveInfo; + + if (TAPI_CAUSE_SUCCESS == result) { + memset(&callActiveInfo, 0, sizeof(TelCallActiveCnf_t)); + memcpy(&callActiveInfo, tapi_data, sizeof(TelCallActiveCnf_t)); + call_handle = callActiveInfo.id; + } else { + _vc_core_cm_get_first_held_call_handle(&pagent->call_manager, &call_handle); + } + + if (_vc_core_tapi_event_handle_call_retrieve_event(pagent, call_handle, result) == FALSE) { + _vc_core_ca_change_agent_state(pagent, CALL_VC_CA_STATE_NORMAL); + } else { + /* + Be carefull in clearing the end call member, because _vc_core_engine_status_is_any_call_ending + function depends on the end call object status. If it is cleared often, the check by + _vc_core_engine_status_is_any_call_ending becomes invalid + */ + _vc_core_cm_clear_endcall_member(&pagent->call_manager); + } +} + +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); +} + +void _vc_core_engine_join_call_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data) +{ + call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; + call_vc_callagent_state_t *pagent = gpcall_agent_for_callback; + TelCallJoinCnf_t callJoinInfo; + + CALL_ENG_DEBUG(ENG_DEBUG, "_vc_core_engine_join_call_resp_cb..."); + + if (TAPI_CAUSE_SUCCESS == result) { + memset(&callJoinInfo, 0, sizeof(TelCallJoinCnf_t)); + memcpy(&callJoinInfo, tapi_data, sizeof(TelCallJoinCnf_t)); + call_handle = callJoinInfo.id; + } else { + call_handle = 0; + } + + _vc_core_ca_change_agent_state(pagent, CALL_VC_CA_STATE_NORMAL); + _vc_core_tapi_event_handle_call_join_event(pagent, call_handle, result); +} + +void _vc_core_engine_split_call_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data) +{ + call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; + call_vc_callagent_state_t *pagent = gpcall_agent_for_callback; + TelCallSplitCnf_t callSplitInfo; + + CALL_ENG_DEBUG(ENG_DEBUG, "_vc_core_engine_split_call_resp_cb"); + + if (TAPI_CAUSE_SUCCESS == result) { + memset(&callSplitInfo, 0, sizeof(TelCallSplitCnf_t)); + memcpy(&callSplitInfo, tapi_data, sizeof(TelCallSplitCnf_t)); + call_handle = callSplitInfo.id; + } + + _vc_core_ca_change_agent_state(pagent, CALL_VC_CA_STATE_NORMAL); + _vc_core_tapi_event_handle_call_split_event(pagent, call_handle, result); +} + +void _vc_core_engine_transfer_call_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data) +{ + call_vc_callagent_state_t *pagent = gpcall_agent_for_callback; + + CALL_ENG_DEBUG(ENG_DEBUG, "_vc_core_engine_transfer_call_resp_cb"); + + _vc_core_ca_change_agent_state(pagent, CALL_VC_CA_STATE_NORMAL); + _vc_core_tapi_event_handle_call_transfer_event(pagent, result); +} + +void _vc_core_engine_dtmf_call_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data) +{ + call_vc_callagent_state_t *pagent = gpcall_agent_for_callback; + + CALL_ENG_DEBUG(ENG_DEBUG, "_vc_core_engine_dtmf_call_resp_cb"); + + if (TAPI_CAUSE_SUCCESS != result) { + CALL_ENG_DEBUG(ENG_DEBUG, "Tapi Error Code %d", result); + /*Forward the events to client */ + _vc_core_ca_send_event_to_client(pagent, VC_CALL_DTMF_ACK, FALSE, 0, NULL); + } else { + /*Forward the events to client */ + _vc_core_ca_send_event_to_client(pagent, VC_CALL_DTMF_ACK, TRUE, 0, NULL); + } +} + +void _vc_core_engine_set_volume_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data) +{ + CALL_ENG_DEBUG(ENG_DEBUG, "_vc_core_engine_set_volume_resp_cb : %d", result); +} + +void _vc_core_engine_get_volume_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data) +{ + int tapi_sound_path = 0; + int volume_level = 0; + TelCallGetVolumeInfoResp_t snd_resp_data; + call_vc_callagent_state_t *pagent = gpcall_agent_for_callback; + + memset(&snd_resp_data, 0, sizeof(TelCallGetVolumeInfoResp_t)); + memcpy(&snd_resp_data, tapi_data, sizeof(TelCallGetVolumeInfoResp_t)); + + int i = 0; + tapi_sound_path = pagent->curr_tapi_path; + for (i = 0; i < snd_resp_data.record_num; i++) { + if (tapi_sound_path == snd_resp_data.record[i].device) { + volume_level = snd_resp_data.record[i].volume; + break; + } + } + CALL_ENG_DEBUG(ENG_DEBUG, "Changed Vol Type = %d, Vol Level = %d", tapi_sound_path, volume_level); + + _vc_core_ca_send_event_to_client(pagent, VC_CALL_GET_VOLUME_RESP, tapi_sound_path, volume_level, NULL); +} + +void _vc_core_engine_set_sound_path_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data) +{ + CALL_ENG_DEBUG(ENG_DEBUG, "_vc_core_engine_set_sound_path_resp_cb : %d", result); +} + +void _vc_core_engine_set_mute_status_resp_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data) +{ + CALL_ENG_DEBUG(ENG_DEBUG, "_vc_core_engine_set_mute_status_resp_cb : %d", result); +} + +void _vc_core_engine_get_aoc_info_cb(TapiHandle *handle, int result, void *tapi_data, void *user_data) +{ + CALL_ENG_DEBUG(ENG_DEBUG, "_vc_core_engine_get_aoc_info_cb : %d", result); +} \ No newline at end of file diff --git a/call-engine/core/vc-core-svcall.c b/call-engine/core/vc-core-svcall.c index 93f0137..e2f1fa1 100755 --- a/call-engine/core/vc-core-svcall.c +++ b/call-engine/core/vc-core-svcall.c @@ -14,7 +14,6 @@ * limitations under the License. */ - #ifdef _CPHS_DEFINED_ #include diff --git a/call-engine/core/vc-core-tapi-evnt.c b/call-engine/core/vc-core-tapi-evnt.c index e0a3b88..799d4c0 100755 --- a/call-engine/core/vc-core-tapi-evnt.c +++ b/call-engine/core/vc-core-tapi-evnt.c @@ -22,8 +22,6 @@ #include "vc-core-util.h" #include "vc-core-tapi-rqst.h" -static int barring_ind_type = VC_BARR_IND_NONE; - /** * This function processes the current io wait states if available * @@ -52,15 +50,13 @@ static gboolean __call_vc_download_call_timer_cb(gpointer pdata); * @param[in] cause TAPI call end cause * @param[out] end_cause_type voicecall engine end cause */ -void _vc_core_tapi_event_get_end_cause_type(int type, TelTapiEndCause_t cause, voice_call_end_cause_type_t *end_cause_type) +void _vc_core_tapi_event_get_end_cause_type(call_vc_callagent_state_t *pcall_agent, const char *noti_id, TelTapiEndCause_t cause, voice_call_end_cause_type_t *end_cause_type) { VOICECALL_RETURN_IF_FAIL(end_cause_type != NULL); - CALL_ENG_DEBUG(ENG_DEBUG, "EventType:[0x%x],EndCause:%d", type, cause); + CALL_ENG_DEBUG(ENG_DEBUG, "EventType:[%s],EndCause:%d", noti_id, cause); - switch (type) { - case TAPI_EVENT_CALL_END_IND: - /*case TAPI_EVENT_ERR:*/ + if (strcmp(noti_id, TAPI_NOTI_VOICE_CALL_STATUS_IDLE) == 0) { switch (cause) { case TAPI_CC_CAUSE_NORMAL_UNSPECIFIED: *end_cause_type = VC_ENDCAUSE_CALL_DISCONNECTED; @@ -92,7 +88,7 @@ void _vc_core_tapi_event_get_end_cause_type(int type, TelTapiEndCause_t cause, v case TAPI_REJECT_CAUSE_CONGESTTION: case TAPI_REJECT_CAUSE_CNM_REJ_NO_RESOURCES: - case TAPI_CC_CAUSE_SWITCHING_EQUIPMENT_CONGESTION: /*Match as NW_BUSY*/ + case TAPI_CC_CAUSE_SWITCHING_EQUIPMENT_CONGESTION: /* Match as NW_BUSY*/ *end_cause_type = VC_ENDCAUSE_NW_BUSY; break; @@ -123,7 +119,6 @@ void _vc_core_tapi_event_get_end_cause_type(int type, TelTapiEndCause_t cause, v case TAPI_CC_CAUSE_DESTINATION_OUT_OF_ORDER: *end_cause_type = VC_ENDCAUSE_SERVICE_TEMP_UNAVAILABLE; break; - case TAPI_CC_CAUSE_NO_USER_RESPONDING: case TAPI_CC_CAUSE_USER_ALERTING_NO_ANSWER: *end_cause_type = VC_ENDCAUSE_USER_DOESNOT_RESPOND; @@ -134,12 +129,12 @@ void _vc_core_tapi_event_get_end_cause_type(int type, TelTapiEndCause_t cause, v break; case TAPI_CC_CAUSE_CALL_REJECTED: - if (barring_ind_type == VC_BARR_IND_ALL) + if (pcall_agent->barring_ind_type == VC_BARR_IND_ALL) *end_cause_type = VC_ENDCAUSE_CALL_BARRED; else *end_cause_type = VC_ENDCAUSE_USER_UNAVAILABLE; - barring_ind_type = VC_BARR_IND_NONE; + pcall_agent->barring_ind_type = VC_BARR_IND_NONE; break; case TAPI_CC_CAUSE_USER_BUSY: @@ -170,11 +165,9 @@ void _vc_core_tapi_event_get_end_cause_type(int type, TelTapiEndCause_t cause, v CALL_ENG_DEBUG(ENG_ERR, "Call Ended or Default Cause Value: %d", cause); break; } - break; - default: + } else { *end_cause_type = VC_ENDCAUSE_CALL_FAILED; CALL_ENG_DEBUG(ENG_DEBUG, "Invalid call end cause or error !!"); - break; } CALL_ENG_DEBUG(ENG_DEBUG, "Engine End Cause: %d", (int)*end_cause_type); @@ -210,11 +203,12 @@ void _vc_core_tapi_event_copy_incoming_call_data(call_vc_callagent_state_t *pcal _vc_core_util_strcpy(pcallobject_info->tel_number, sizeof(pcallobject_info->tel_number), callInfo->szCallingPartyNumber); } - /*mkjung_2007.12.19: check callInfo->name_mode if override category isn't supported.*/ + /* check callInfo->name_mode if override category isn't supported.*/ } else { /* If BCD number doesn't exist, cause_of_no_cli value should be checked to decide its presentation */ pcallobject_info->brestricted_namemode = TRUE; +/*code clean: #ifndef _ARM_SP*/ pcallobject_info->name_mode = callInfo->CliCause; CALL_ENG_DEBUG(ENG_DEBUG, "no_cli_cause = %d, name_mode = %d...", callInfo->CliCause, pcallobject_info->name_mode); @@ -326,8 +320,7 @@ gboolean _vc_core_tapi_event_handle_originated_event(call_vc_callagent_state_t * /* Change Inout state to "wait Alert" */ _vc_core_ca_change_inout_state(pcall_agent, VC_INOUT_STATE_OUTGOING_WAIT_ALERT); - /* SAT's request... send response here.. not connected ind. - Disable checking gcf status. 20090806*/ + /* send response here.. not connected ind. Disable checking gcf status. */ #ifndef _vc_core_ca_send_sat_response_ORIG if (TRUE == _vc_core_util_check_gcf_status()) #endif @@ -357,7 +350,7 @@ gboolean _vc_core_tapi_event_handle_originated_event(call_vc_callagent_state_t * * @param[in] handle Call Handle of the call being ended * @param[in] cause TAPI End Cause */ -gboolean _vc_core_tapi_event_handle_call_end_event(call_vc_callagent_state_t *pcall_agent, int type, call_vc_handle handle, TelTapiEndCause_t cause) +gboolean _vc_core_tapi_event_handle_call_end_event(call_vc_callagent_state_t *pcall_agent, const char * noti_id, call_vc_handle handle, TelTapiEndCause_t cause) { gboolean active_call = FALSE; gboolean held_call = FALSE; @@ -374,7 +367,7 @@ gboolean _vc_core_tapi_event_handle_call_end_event(call_vc_callagent_state_t *pc _vc_core_cm_change_call_state(&callobject_info, VC_CALL_STATE_ENDED); /* set end cause text*/ - _vc_core_tapi_event_get_end_cause_type(type, cause, &callobject_info.end_cause_type); + _vc_core_tapi_event_get_end_cause_type(pcall_agent, noti_id, cause, &callobject_info.end_cause_type); /*Set the modified CallObject to the Call Manager*/ _vc_core_cm_set_call_object(&pcall_agent->call_manager, &callobject_info); @@ -601,7 +594,7 @@ static gboolean __call_vc_process_wait_state_success_events(call_vc_callagent_st } } break; - + #ifdef _INCOME_WAIT_CONNECTED_ /*currently not applied, Fix to change the group state to hold, if the second call is connected before getting the holdcnf resp from tapi */ case VC_INOUT_STATE_INCOME_WAIT_CONNECTED: @@ -631,8 +624,7 @@ static gboolean __call_vc_process_wait_state_success_events(call_vc_callagent_st _vc_core_ca_change_agent_state(pcall_agent, CALL_VC_CA_STATE_NORMAL); /*_vc_core_cm_get_first_active_call_handle(&pcall_agent->call_manager,&active_handle);*/ _vc_core_cm_set_group_state(&pcall_agent->call_manager, grp_index, CALL_VC_GROUP_STATE_HOLD); - } - else if (CALL_VC_CA_STATE_WAIT_UNHOLD == pcall_agent->callagent_state) { + } else if (CALL_VC_CA_STATE_WAIT_UNHOLD == pcall_agent->callagent_state) { int grp_index; call_vc_handle held_handle = VC_TAPI_INVALID_CALLHANDLE; grp_index = _vc_core_cm_get_held_group_index(&pcall_agent->call_manager); @@ -789,9 +781,9 @@ gboolean _vc_core_tapi_event_handle_call_held_event(call_vc_callagent_state_t *p (pcall_agent->call_manager.setupcall_info.satcall_setup_info.satengine_setupcall_data.calltype == \ TAPI_SAT_SETUP_CALL_PUT_ALL_OTHER_CALLS_ON_HOLD_WITH_REDIAL))) { - /*SAT Test Case(27.22.4.13.1/7), Terminal Response for Option B */ + /* Terminal Response for Option B */ /* _vc_core_ca_send_sat_response(pcall_agent, SAT_RQST_SETUP_CALL, CALL_VC_NETWORK_UNABLE_TO_PROCESS_COMMAND); */ - /*SAT Test Case(27.22.4.13.1/7), Terminal Response for Option A */ + /* Terminal Response for Option A */ _vc_core_ca_send_sat_response(pcall_agent, SAT_RQST_SETUP_CALL, CALL_VC_NETWORK_UNABLE_TO_PROCESS_COMMAND_WITHOUT_CAUSE); } @@ -872,12 +864,12 @@ gboolean _vc_core_tapi_event_handle_call_held_event(call_vc_callagent_state_t *p _vc_core_cm_clear_outgoing_call(&pcall_agent->call_manager); _vc_core_ca_change_inout_state(pcall_agent, VC_INOUT_STATE_OUTGOING_ABORTED); } else { - call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; + call_vc_handle outgoing_call_handle = VC_TAPI_INVALID_CALLHANDLE; _vc_core_ca_change_inout_state(pcall_agent, VC_INOUT_STATE_OUTGOING_WAIT_ORIG); - call_handle = _vc_core_cm_get_outgoing_call_handle(&pcall_agent->call_manager); - CALL_ENG_DEBUG(ENG_DEBUG, "Deffered Outgoing Call Handle = %d", call_handle); - _vc_core_ca_send_event_to_client(pcall_agent, VC_CALL_OUTGOING, call_handle, 0, NULL); + outgoing_call_handle = _vc_core_cm_get_outgoing_call_handle(&pcall_agent->call_manager); + CALL_ENG_DEBUG(ENG_DEBUG, "Deffered Outgoing Call Handle = %d", outgoing_call_handle); + _vc_core_ca_send_event_to_client(pcall_agent, VC_CALL_OUTGOING, outgoing_call_handle, 0, NULL); } if (pcall_agent->callagent_state == CALL_VC_CA_STATE_WAIT_HOLD) @@ -1177,7 +1169,7 @@ gboolean _vc_core_tapi_event_handle_call_split_event(call_vc_callagent_state_t * _vc_core_cm_split_group(&pcall_agent->call_manager, call_handle); - _vc_core_ca_send_event_to_client(pcall_agent, VC_CALL_SS_SPLIT_CONF, call_handle, 0, NULL); /* Added Call handle for Aqilla */ + _vc_core_ca_send_event_to_client(pcall_agent, VC_CALL_SS_SPLIT_CONF, call_handle, 0, NULL); /* Added Call handle */ return TRUE; } @@ -1217,7 +1209,7 @@ gboolean _vc_core_tapi_event_handle_call_transfer_event(call_vc_callagent_state_ CALL_ENG_DEBUG(ENG_DEBUG, "Transfer success!"); _vc_core_ca_send_event_to_client(pcall_agent, VC_CALL_SS_TRANSFERRED, 0, 0, NULL); } - /*todo ss : Check Updating flag gbpsh_voicecall_command_transfer*/ + /*todo ss: Check Updating flag gbpsh_voicecall_command_transfer*/ return TRUE; } @@ -1301,134 +1293,6 @@ gboolean _vc_core_tapi_event_connected_line_ind_handle(call_vc_callagent_state_t } /** - * This function handles different type of TAPI indications given in tapi_event_type - * - * @return Returns TRUE on success and FALSE on failure - * @param[in] pcall_agent Pointer to the call agent state - * @param[in] tapi_event_type TAPI Event Type - * @param[in] param2 sub param associated with tapi_event_type - */ -gboolean _vc_core_tapi_event_handle_notification(call_vc_callagent_state_t *pcall_agent, int tapi_event_type, int param2) -{ - VOICECALL_RETURN_FALSE_IF_FAIL(pcall_agent != NULL); - - CALL_ENG_DEBUG(ENG_DEBUG, "eventType = %d", tapi_event_type); - - /* set the notify message string as the event type */ - switch (tapi_event_type) { - case TAPI_EVENT_CALL_FORWARD_IND: - _vc_core_ca_send_event_to_client(pcall_agent, VC_CALL_IND_FORWARD, VC_FRWD_IND_INCOM_IS_FRWD, 0, NULL); - break; - - case TAPI_EVENT_CALL_COND_FORWARDING_IND: - CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_EVENT_CALL_COND_FORWARDING_IND"); - _vc_core_ca_send_event_to_client(pcall_agent, VC_CALL_IND_SSNOTIFY, VC_SSNOTIFY_IND_ALL_COND_FORWARDING, 0, NULL); - break; - - case TAPI_EVENT_CALL_UNCOND_FORWARDING_IND: - CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_EVENT_CALL_UNCOND_FORWARDING_IND"); - _vc_core_ca_send_event_to_client(pcall_agent, VC_CALL_IND_SSNOTIFY, VC_SSNOTIFY_IND_CFU, 0, NULL); - break; - - case TAPI_EVENT_CALL_RETRIEVE_IND: - CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_EVENT_CALL_ACTIVATE_IND"); - _vc_core_ca_send_event_to_client(pcall_agent, VC_CALL_IND_ACTIVATE, 0, 0, NULL); - break; - - case TAPI_EVENT_CALL_HOLD_IND: - CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_EVENT_CALL_HOLD_IND"); - _vc_core_ca_send_event_to_client(pcall_agent, VC_CALL_IND_HOLD, 0, 0, NULL); - break; - - case TAPI_EVENT_CALL_TRANSFER_IND: - CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_EVENT_CALL_TRANSFER_IND"); - _vc_core_ca_send_event_to_client(pcall_agent, VC_CALL_IND_TRANSFER, 0, 0, NULL); - break; - - case TAPI_EVENT_CALL_SETUPCONFERENCE_IND: - CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_EVENT_CALL_SETUPCONFERENCE_IND"); - _vc_core_ca_send_event_to_client(pcall_agent, VC_CALL_IND_SETUPCONFERENCE, 0, 0, NULL); - break; - - case TAPI_EVENT_CALL_BARRING_IND: - { - CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_EVENT_CALL_BARRING_IND, cause = %d", param2); - - barring_ind_type = VC_BARR_IND_ALL; - } - break; - - case TAPI_EVENT_CALL_WAITING_IND: - CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_EVENT_CALL_WAITING_IND"); - _vc_core_ca_send_event_to_client(pcall_agent, VC_CALL_IND_WAITING, 0, 0, NULL); - break; - - case TAPI_EVENT_CALL_CUGINFO_IND: - CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_EVENT_CALL_CUGINFO_IND"); - _vc_core_ca_send_event_to_client(pcall_agent, VC_CALL_IND_CUGINFO, 0, 0, NULL); - break; -#ifdef _OLD_TAPI_ - case TAPI_EVENT_CALL_SSNOTIFY_IND: - { - voicecall_ssnotify_ind_type_t ssnotify_ind_type; - CALL_ENG_DEBUG(ENG_DEBUG, " TAPI_EVENT_CALL_SSNOTIFY_IND"); - switch (param2) { - case TAPI_SSCODE_CFU: - ssnotify_ind_type = VC_SSNOTIFY_IND_CFU; - break; - - case TAPI_SSCODE_CFB: - ssnotify_ind_type = VC_SSNOTIFY_IND_CFB; - break; - - case TAPI_SSCODE_CFNRY: - ssnotify_ind_type = VC_SSNOTIFY_IND_CFNRY; - break; - - case TAPI_SSCODE_CFNRC: - ssnotify_ind_type = VC_SSNOTIFY_IND_CFNRC; - break; - - case TAPI_SSCODE_CLIR: - ssnotify_ind_type = VC_SSNOTIFY_IND_CLIR; - break; - - case TAPI_SSCODE_ALL_COND_FORWARDING: - ssnotify_ind_type = VC_SSNOTIFY_IND_ALL_COND_FORWARDING; - break; - - case TAPI_SSCODE_BARRING_OF_OUTGOING: - ssnotify_ind_type = VC_SSNOTIFY_IND_BARRING_OF_OUTGOING; - break; - - default: - CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_EVENT_CALL_SSNOTIFY_IND ], No Action defined for sub type:%d", param2); - return TRUE; - - break; - } - _vc_core_ca_send_event_to_client(pcall_agent, VC_CALL_IND_SSNOTIFY, ssnotify_ind_type, 0, NULL); - } - break; - - case TAPI_EVENT_CALL_REDIRECT_CNF: - CALL_ENG_DEBUG(ENG_DEBUG, "TAPI_EVENT_CALL_REDIRECT_CNF"); - _vc_core_ca_send_event_to_client(pcall_agent, VC_CALL_IND_REDIRECT_CNF, 0, 0, NULL); - break; -#endif - case TAPI_EVENT_CALL_CALLINGNAMEINFO_IND: - CALL_ENG_DEBUG(ENG_DEBUG, " TAPI_EVENT_CALL_CALLINGNAMEINFO_IND"); - _vc_core_ca_send_event_to_client(pcall_agent, VC_CALL_IND_CALLINGNAMEINFO, 0, 0, NULL); - break; - - default: - CALL_ENG_DEBUG(ENG_DEBUG, "default eventType = %d", tapi_event_type); - return TRUE; - } - return TRUE; -} - -/** * This function handles the AOC Event * * @return Returns TRUE on success and FALSE on failure @@ -1484,12 +1348,11 @@ static gboolean __call_vc_download_call_timer_cb(gpointer pdata) static void __call_vc_get_aoc_ppm_value(call_vc_callagent_state_t *pcall_agent) { TapiResult_t tapi_error = TAPI_API_SUCCESS; - int ReqId = VC_RQSTID_DEFAULT; CALL_ENG_DEBUG(ENG_DEBUG, ".."); if (pcall_agent->aoc_ppm == VC_INVALID_PPM) { - tapi_error = tel_get_ss_aoc_info(TAPI_SS_AOC_TYPE_PUC, &ReqId); + tapi_error = tel_get_ss_aoc_info(pcall_agent->tapi_handle, TAPI_SS_AOC_TYPE_PUC, _vc_core_engine_get_aoc_info_cb, NULL); if (tapi_error != TAPI_API_SUCCESS) { CALL_ENG_DEBUG(ENG_ERR, "TAPI Error: %x", tapi_error); diff --git a/call-engine/core/vc-core-tapi-rqst.c b/call-engine/core/vc-core-tapi-rqst.c index a5262fb..78686c1 100755 --- a/call-engine/core/vc-core-tapi-rqst.c +++ b/call-engine/core/vc-core-tapi-rqst.c @@ -19,6 +19,12 @@ #include "vc-core-tapi-rqst.h" #include "vc-core-util.h" #include "vc-core-engine-types.h" +#include "vc-core-engine.h" + +/* DTMF Duration */ +#define PSH_SOUND_DTMFTONE_LONG 300 +#define PSH_SOUND_DTMFTONE_SHORT 200 +#define PSH_DTMF_DEFAULT_DURATION 0x01 /*PSH_SOUND_DTMFTONE_LONG*/ static int gcall_vc_callmember_count = 0; static gboolean gcall_vc_callend_wait = FALSE; @@ -37,9 +43,10 @@ static gboolean glong_dtmf_mode = FALSE; * * @internal * @return Returns TRUE on success or FALSE on failure +* @param[in] pcall_agent Pointer to the call agent state * @param[in] call_handle handle of the call to be splitted */ -static gboolean __call_vc_split_member(call_vc_handle call_handle); +static gboolean __call_vc_split_member(call_vc_callagent_state_t *pcall_agent, call_vc_handle call_handle); /** * This function prepares for a call setup @@ -105,18 +112,16 @@ gboolean _vc_core_tapi_rqst_prepare_setup_call(call_vc_callagent_state_t *pcall_ gboolean _vc_core_tapi_rqst_setup_call(call_vc_callagent_state_t *pcall_agent) { call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; - TelCallSetupParams_t setupCallInfo; + TelCallDial_t dialCallInfo; /* TelCallCugInfo_t pCugInfo = {0,};*/ call_vc_call_objectinfo_t callobject_info = { 0 }; /* TelCallIdentityMode_t identityMode = TAPI_CALL_IDENTITY_DEFAULT;*/ TapiResult_t tapi_err = TAPI_API_SUCCESS; int ReqId = VC_RQSTID_DEFAULT; - clock_t start; - clock_t end; VOICECALL_RETURN_FALSE_IF_FAIL(pcall_agent != NULL); - memset(&setupCallInfo, 0, sizeof(TelCallSetupParams_t)); + memset(&dialCallInfo, 0, sizeof(TelCallDial_t)); /* Get the Outgoing Call Info */ _vc_core_cm_clear_call_object(&callobject_info); @@ -127,47 +132,47 @@ gboolean _vc_core_tapi_rqst_setup_call(call_vc_callagent_state_t *pcall_agent) /* set setupCallInfo structure for call setup */ if (callobject_info.bemergency_number == TRUE) { CALL_ENG_DEBUG(ENG_DEBUG, "Emergency call!"); - setupCallInfo.CallType = TAPI_CALL_TYPE_E911; + dialCallInfo.CallType = TAPI_CALL_TYPE_E911; /*setupCallInfo.Ecc = callobject_info.ecc_category; CALL_ENG_DEBUG(ENG_DEBUG,"Emergency call, ecc_category:[%d]!", callobject_info.ecc_category);*/ } else { CALL_ENG_DEBUG(ENG_DEBUG, "Normal call!"); - setupCallInfo.CallType = TAPI_CALL_TYPE_VOICE; + dialCallInfo.CallType = TAPI_CALL_TYPE_VOICE; } /*Set the Call Object MO Flag as TRUE */ callobject_info.mo = TRUE; /* cli setting */ - if (_vc_core_util_extract_call_number_without_cli(callobject_info.source_tel_number, setupCallInfo.szNumber, sizeof(setupCallInfo.szNumber)) == FALSE) { + if (_vc_core_util_extract_call_number_without_cli(callobject_info.source_tel_number, dialCallInfo.szNumber, sizeof(dialCallInfo.szNumber)) == FALSE) { CALL_ENG_DEBUG(ENG_DEBUG, "No proper number = %s", callobject_info.source_tel_number); return FALSE; } - CALL_ENG_DEBUG(ENG_DEBUG, "tapi callnum=[%s]", setupCallInfo.szNumber); + CALL_ENG_DEBUG(ENG_DEBUG, "tapi callnum=[%s]", dialCallInfo.szNumber); /* CUG settings */ #ifdef _TAPI_CUG_ - setupCallInfo.pCugInfo = &pCugInfo; + dialCallInfo.pCugInfo = &pCugInfo; if (FALSE == callobject_info.cug_info.bcug_used) { - setupCallInfo.pCugInfo->bCugFlag = FALSE; + dialCallInfo.pCugInfo->bCugFlag = FALSE; } else { - setupCallInfo.pCugInfo->bCugFlag = TRUE; + dialCallInfo.pCugInfo->bCugFlag = TRUE; /*if the index is 0, use pref cug, so no cug index */ if (0 == callobject_info.cug_info.cug_index) { - setupCallInfo.pCugInfo->Option = TAPI_CALL_CUG_NO_INFO; - setupCallInfo.pCugInfo->Index = 0; + dialCallInfo.pCugInfo->Option = TAPI_CALL_CUG_NO_INFO; + dialCallInfo.pCugInfo->Index = 0; } else { if ((FALSE == callobject_info.cug_info.bpref_cug) && (FALSE == callobject_info.cug_info.boa_cug)) { - setupCallInfo.pCugInfo->Option = TAPI_CALL_CUG_SUPRESS_OA_AND_CUG; + dialCallInfo.pCugInfo->Option = TAPI_CALL_CUG_SUPRESS_OA_AND_CUG; } else if (FALSE == callobject_info.cug_info.bpref_cug) { - setupCallInfo.pCugInfo->Option = TAPI_CALL_CUG_SUPRESS_PRF_CUG; + dialCallInfo.pCugInfo->Option = TAPI_CALL_CUG_SUPRESS_PRF_CUG; } else if (FALSE == callobject_info.cug_info.boa_cug) { - setupCallInfo.pCugInfo->Option = TAPI_CALL_CUG_SUPRESS_OA; + dialCallInfo.pCugInfo->Option = TAPI_CALL_CUG_SUPRESS_OA; } else { - setupCallInfo.pCugInfo->Option = TAPI_CALL_CUG_NO_INFO; + dialCallInfo.pCugInfo->Option = TAPI_CALL_CUG_NO_INFO; } - setupCallInfo.pCugInfo->Index = callobject_info.cug_info.cug_index; + dialCallInfo.pCugInfo->Index = callobject_info.cug_info.cug_index; } } #endif @@ -196,7 +201,7 @@ gboolean _vc_core_tapi_rqst_setup_call(call_vc_callagent_state_t *pcall_agent) } #endif - CALL_ENG_DEBUG(ENG_DEBUG, "call_type = %d", setupCallInfo.CallType); + CALL_ENG_DEBUG(ENG_DEBUG, "call_type = %d", dialCallInfo.CallType); CALL_ENG_DEBUG(ENG_DEBUG, "Call Type by Source: %d", callobject_info.call_type); if (VC_CALL_ORIG_TYPE_SAT == callobject_info.call_type) { @@ -206,10 +211,11 @@ gboolean _vc_core_tapi_rqst_setup_call(call_vc_callagent_state_t *pcall_agent) } /*CALL_ENG_DEBUG(ENG_DEBUG,"Call Initiated by SAT: %d",setupCallInfo.bRequestedBySAT);*/ - CALL_ENG_KPI("tel_exe_call_mo start"); + CALL_ENG_KPI("tel_dial_call start"); /*This Function originates MO Call set-up, This is asynchronous function */ - tapi_err = tel_exe_call_mo(&setupCallInfo, (TS_UINT *) &call_handle, &ReqId); - CALL_ENG_KPI("tel_exe_call_mo done"); + + tapi_err = tel_dial_call(pcall_agent->tapi_handle, &dialCallInfo, _vc_core_engine_dial_call_resp_cb, NULL); + CALL_ENG_KPI("tel_dial_call done"); CALL_ENG_DEBUG(ENG_DEBUG, "ReqId is = %d", ReqId); @@ -245,7 +251,7 @@ gboolean _vc_core_tapi_rqst_answer_call(call_vc_callagent_state_t *pcall_agent, call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; /*Encapsulates Errors and Warnings from TAPI Library */ TapiResult_t tapi_err = TAPI_API_SUCCESS; - int ReqId = VC_RQSTID_DEFAULT; + VOICECALL_RETURN_FALSE_IF_FAIL(pcall_agent != NULL); VOICECALL_RETURN_FALSE_IF_FAIL(error_code != NULL); @@ -261,11 +267,9 @@ gboolean _vc_core_tapi_rqst_answer_call(call_vc_callagent_state_t *pcall_agent, return FALSE; } - /* - Process the answer call request only when the state is in income and it is not ended. + /* Process the answer call request only when the state is in income and it is not ended. This must be checked as both incoming event and incoming end event from tapi are added to g_idle_add - so any change in state should be noted before accepting the call - */ + so any change in state should be noted before accepting the call */ if ((VC_INOUT_STATE_INCOME_BOX != pcall_agent->io_state) || (VC_INOUT_STATE_INCOME_END == pcall_agent->io_state)) { CALL_ENG_DEBUG(ENG_DEBUG, "IO State not in VC_INOUT_STATE_INCOME_BOX, Current state: %d", pcall_agent->io_state); *error_code = ERROR_VOICECALL_PREVIOUS_REQUEST_IN_PROGRESS; @@ -285,7 +289,7 @@ gboolean _vc_core_tapi_rqst_answer_call(call_vc_callagent_state_t *pcall_agent, case VC_ANSWER_NORMAL: { /*Answer a call by accepting or rejecting a call */ - tapi_err = tel_answer_call(call_handle, TAPI_CALL_ANSWER_ACCEPT, &ReqId); + tapi_err = tel_answer_call(pcall_agent->tapi_handle, call_handle, TAPI_CALL_ANSWER_ACCEPT, _vc_core_engine_answer_call_resp_cb, NULL); if (TAPI_API_SUCCESS == tapi_err) { _vc_core_ca_change_inout_state(pcall_agent, VC_INOUT_STATE_INCOME_WAIT_CONNECTED); } @@ -294,7 +298,7 @@ gboolean _vc_core_tapi_rqst_answer_call(call_vc_callagent_state_t *pcall_agent, case VC_ANSWER_HOLD_ACTIVE_AND_ACCEPT: { /*Answer a call by accepting or rejecting a call */ - tapi_err = tel_answer_call(call_handle, TAPI_CALL_ANSWER_HOLD_AND_ACCEPT, &ReqId); + tapi_err = tel_answer_call(pcall_agent->tapi_handle, call_handle, TAPI_CALL_ANSWER_HOLD_AND_ACCEPT, _vc_core_engine_answer_call_resp_cb, NULL); if (TAPI_API_SUCCESS == tapi_err) { _vc_core_ca_change_inout_state(pcall_agent, VC_INOUT_STATE_INCOME_WAIT_HOLD_CONNECTED); _vc_core_ca_change_agent_state(pcall_agent, CALL_VC_CA_STATE_WAIT_HOLD); @@ -304,7 +308,7 @@ gboolean _vc_core_tapi_rqst_answer_call(call_vc_callagent_state_t *pcall_agent, case VC_ANSWER_RELEASE_ACTIVE_AND_ACCEPT: { /*Answer a call by accepting or rejecting a call */ - tapi_err = tel_answer_call(call_handle, TAPI_CALL_ANSWER_REPLACE, &ReqId); + tapi_err = tel_answer_call(pcall_agent->tapi_handle, call_handle, TAPI_CALL_ANSWER_REPLACE, _vc_core_engine_answer_call_resp_cb, NULL); if (TAPI_API_SUCCESS == tapi_err) { _vc_core_ca_change_inout_state(pcall_agent, VC_INOUT_STATE_INCOME_WAIT_RELEASE_ACTIVE_CONNECTED); } @@ -401,7 +405,7 @@ gboolean _vc_core_tapi_rqst_response_call(call_vc_callagent_state_t *pcall_agent gboolean _vc_core_tapi_rqst_release_active_calls(call_vc_callagent_state_t *pcall_agent) { call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; - int pReqId = VC_RQSTID_DEFAULT; + TapiResult_t tapi_err = TAPI_API_SUCCESS; int nPos; int nCount = 0; @@ -419,11 +423,11 @@ gboolean _vc_core_tapi_rqst_release_active_calls(call_vc_callagent_state_t *pcal CALL_ENG_DEBUG(ENG_DEBUG, "End Single call.."); /* Use ReleaseAll api in case single call is ended - this is caused by modem limitation */ - tapi_err = tel_release_call_all(&pReqId); + tapi_err = tel_end_call(pcall_agent->tapi_handle, call_handle, TAPI_CALL_END_ALL, _vc_core_engine_end_call_resp_cb, NULL) } else #endif { - tapi_err = tel_release_call_all_active(&pReqId); + tapi_err = tel_end_call(pcall_agent->tapi_handle, call_handle, TAPI_CALL_END_ACTIVE_ALL, _vc_core_engine_end_call_resp_cb, NULL) } if (TAPI_API_SUCCESS != tapi_err) { @@ -460,12 +464,12 @@ gboolean _vc_core_tapi_rqst_release_active_calls(call_vc_callagent_state_t *pcal CALL_ENG_DEBUG(ENG_DEBUG, "End Single call.."); /* Use ReleaseAll api in case single call is ended - this is caused by modem limitation */ - tapi_err = tel_release_call_all(&pReqId); + tapi_err = tel_end_call(pcall_agent->tapi_handle, call_handle, TAPI_CALL_END_ALL, _vc_core_engine_end_call_resp_cb, NULL); } else #endif { /*Releases the call identified by Call Handle irrespective of call is hold or active state */ - tapi_err = tel_release_call(call_handle, &pReqId); + tapi_err = tel_end_call(pcall_agent->tapi_handle, call_handle, TAPI_CALL_END, _vc_core_engine_end_call_resp_cb, NULL); } if (TAPI_API_SUCCESS != tapi_err) { @@ -503,7 +507,7 @@ gboolean _vc_core_tapi_rqst_release_held_calls(call_vc_callagent_state_t *pcall_ call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; call_vc_call_objectinfo_t callobject_info = { 0 }; int nCount = 0; - int pReqId = VC_RQSTID_DEFAULT; + TapiResult_t tapi_err = TAPI_API_SUCCESS; VOICECALL_RETURN_FALSE_IF_FAIL(pcall_agent != NULL); @@ -518,11 +522,11 @@ gboolean _vc_core_tapi_rqst_release_held_calls(call_vc_callagent_state_t *pcall_ CALL_ENG_DEBUG(ENG_DEBUG, "End Single call.."); /* Use ReleaseAll api in case single call is ended - this is caused by modem limitation */ - tapi_err = tel_release_call_all(&pReqId); + tapi_err = tel_end_call(pcall_agent->tapi_handle, call_handle, TAPI_CALL_END_ALL, _vc_core_engine_end_call_resp_cb, NULL); } else #endif { - tapi_err = tel_release_call_all_held(&pReqId); + tapi_err = tel_end_call(pcall_agent->tapi_handle, call_handle, TAPI_CALL_HOLD_ALL, _vc_core_engine_end_call_resp_cb, NULL); } if (TAPI_API_SUCCESS != tapi_err) { @@ -559,12 +563,12 @@ gboolean _vc_core_tapi_rqst_release_held_calls(call_vc_callagent_state_t *pcall_ CALL_ENG_DEBUG(ENG_DEBUG, "End Single call.."); /* Use ReleaseAll api in case single call is ended - this is caused by modem limitation */ - tapi_err = tel_release_call_all(&pReqId); + tapi_err = tel_end_call(pcall_agent->tapi_handle, call_handle, TAPI_CALL_END_ALL, _vc_core_engine_end_call_resp_cb, NULL); } else #endif { /*Releases the call identified by Call Handle irrespective of call is hold or active state */ - tapi_err = tel_release_call(call_handle, &pReqId); + tel_end_call(pcall_agent->tapi_handle, call_handle, TAPI_CALL_END, _vc_core_engine_end_call_resp_cb, NULL); } if (TAPI_API_SUCCESS != tapi_err) { @@ -599,7 +603,7 @@ gboolean _vc_core_tapi_rqst_release_held_calls(call_vc_callagent_state_t *pcall_ gboolean _vc_core_tapi_rqst_release_all_calls(call_vc_callagent_state_t *pcall_agent) { call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; - int pReqId = VC_RQSTID_DEFAULT; + TapiResult_t tapi_err = TAPI_API_SUCCESS; VOICECALL_RETURN_FALSE_IF_FAIL(pcall_agent != NULL); @@ -619,7 +623,7 @@ gboolean _vc_core_tapi_rqst_release_all_calls(call_vc_callagent_state_t *pcall_a } /*Releases All calls irrespective of call is in hold or active state */ - tapi_err = tel_release_call_all(&pReqId); + tapi_err = tel_end_call(pcall_agent->tapi_handle, call_handle, TAPI_CALL_END_ALL, _vc_core_engine_end_call_resp_cb, NULL); if (TAPI_API_SUCCESS != tapi_err) { CALL_ENG_DEBUG(ENG_DEBUG, "tel_release_call_all failed: Error _Code: %d", tapi_err); return FALSE; @@ -637,7 +641,7 @@ gboolean _vc_core_tapi_rqst_release_all_calls(call_vc_callagent_state_t *pcall_a gboolean _vc_core_tapi_rqst_release_incoming_call(call_vc_callagent_state_t *pcall_agent) { call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; - int pReqId = VC_RQSTID_DEFAULT; + TapiResult_t tapi_err = TAPI_API_SUCCESS; VOICECALL_RETURN_FALSE_IF_FAIL(pcall_agent != NULL); @@ -656,7 +660,7 @@ gboolean _vc_core_tapi_rqst_release_incoming_call(call_vc_callagent_state_t *pca #endif { /*Releases the call identified by Call Handle irrespective of call is hold or active state */ - tapi_err = tel_release_call(call_handle, &pReqId); + tapi_err = tel_end_call(pcall_agent->tapi_handle, call_handle, TAPI_CALL_END, _vc_core_engine_end_call_resp_cb, NULL); } if (TAPI_API_SUCCESS != tapi_err) { @@ -680,7 +684,7 @@ gboolean _vc_core_tapi_rqst_release_outgoing_call(call_vc_callagent_state_t *pca { call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; - int pReqId = VC_RQSTID_DEFAULT; + TapiResult_t tapi_err = TAPI_API_SUCCESS; VOICECALL_RETURN_FALSE_IF_FAIL(pcall_agent != NULL); @@ -695,12 +699,12 @@ gboolean _vc_core_tapi_rqst_release_outgoing_call(call_vc_callagent_state_t *pca CALL_ENG_DEBUG(ENG_DEBUG, "End Single call.."); /* Use ReleaseAll api in case single call is ended - this is caused by modem limitation */ - tapi_err = tel_release_call_all(&pReqId); + tapi_err = tel_end_call(pcall_agent->tapi_handle, call_handle, TAPI_CALL_END_ALL, _vc_core_engine_end_call_resp_cb, NULL); } else #endif { /*Releases the call identified by Call Handle irrespective of call is hold or active state */ - tapi_err = tel_release_call(call_handle, &pReqId); + tapi_err = tel_end_call(pcall_agent->tapi_handle, call_handle, TAPI_CALL_END, _vc_core_engine_end_call_resp_cb, NULL); } if (TAPI_API_SUCCESS != tapi_err) { @@ -723,7 +727,6 @@ gboolean _vc_core_tapi_rqst_hold_call(call_vc_callagent_state_t *pcall_agent) { call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; TapiResult_t tapi_err = TAPI_API_SUCCESS; - int ReqId = VC_RQSTID_DEFAULT; VOICECALL_RETURN_FALSE_IF_FAIL(pcall_agent != NULL); @@ -738,7 +741,7 @@ gboolean _vc_core_tapi_rqst_hold_call(call_vc_callagent_state_t *pcall_agent) /* Hold the call */ /*Puts the given call on hold */ - tapi_err = tel_hold_call(call_handle, &ReqId); + tapi_err = tel_hold_call(pcall_agent->tapi_handle, call_handle, _vc_core_engine_hold_call_resp_cb, NULL); if (TAPI_API_SUCCESS != tapi_err) { CALL_ENG_DEBUG(ENG_DEBUG, "tel_hold_call() Failed Error Code: %d", tapi_err); return FALSE; @@ -757,7 +760,6 @@ gboolean _vc_core_tapi_rqst_retrieve_call(call_vc_callagent_state_t *pcall_agent { call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; TapiResult_t tapi_err = TAPI_API_SUCCESS; - int ReqId = VC_RQSTID_DEFAULT; CALL_ENG_DEBUG(ENG_DEBUG, "..."); VOICECALL_RETURN_FALSE_IF_FAIL(pcall_agent != NULL); @@ -771,7 +773,7 @@ gboolean _vc_core_tapi_rqst_retrieve_call(call_vc_callagent_state_t *pcall_agent CALL_ENG_DEBUG(ENG_DEBUG, "Cur held call_handle = %d.", call_handle); /* activate the call */ /*This function retrieves the held call */ - tapi_err = tel_retrieve_call(call_handle, &ReqId); + tapi_err = tel_active_call(pcall_agent->tapi_handle, call_handle, _vc_core_engine_active_call_resp_cb, NULL); if (TAPI_API_SUCCESS != tapi_err) { CALL_ENG_DEBUG(ENG_DEBUG, "tel_retrieve_call() Failed, Error Code: %d", tapi_err); return FALSE; @@ -790,7 +792,6 @@ gboolean _vc_core_tapi_rqst_swap_calls(call_vc_callagent_state_t *pcall_agent) { call_vc_handle active_call = VC_TAPI_INVALID_CALLHANDLE, held_call = VC_TAPI_INVALID_CALLHANDLE; TapiResult_t tapi_err = TAPI_API_SUCCESS; - int ReqId = VC_RQSTID_DEFAULT; CALL_ENG_DEBUG(ENG_DEBUG, ".."); VOICECALL_RETURN_FALSE_IF_FAIL(pcall_agent != NULL); @@ -809,7 +810,7 @@ gboolean _vc_core_tapi_rqst_swap_calls(call_vc_callagent_state_t *pcall_agent) CALL_ENG_DEBUG(ENG_DEBUG, "Current Active call = %d, Hold call :%d", active_call, held_call); - tapi_err = tel_swap_call(active_call, held_call, &ReqId); + tapi_err = tel_swap_call(pcall_agent->tapi_handle, active_call, held_call, _vc_core_engine_swap_call_resp_cb, NULL); if (TAPI_API_SUCCESS != tapi_err) { CALL_ENG_DEBUG(ENG_DEBUG, "tel_swap_call() Failed, Error Code: %d", tapi_err); return FALSE; @@ -828,7 +829,6 @@ gboolean _vc_core_tapi_rqst_join_calls(call_vc_callagent_state_t *pcall_agent) { call_vc_handle active_call = VC_TAPI_INVALID_CALLHANDLE, held_call = VC_TAPI_INVALID_CALLHANDLE; TapiResult_t tapi_err = TAPI_API_SUCCESS; - int ReqId = VC_RQSTID_DEFAULT; VOICECALL_RETURN_FALSE_IF_FAIL(pcall_agent != NULL); @@ -846,7 +846,7 @@ gboolean _vc_core_tapi_rqst_join_calls(call_vc_callagent_state_t *pcall_agent) CALL_ENG_DEBUG(ENG_DEBUG, "Current Active call = %d, Hold call :%d", active_call, held_call); /*This functions joins given two calls */ - tapi_err = tel_join_call(active_call, held_call, &ReqId); + tapi_err = tel_join_call(pcall_agent->tapi_handle, active_call, held_call, _vc_core_engine_join_call_resp_cb, NULL); if (TAPI_API_SUCCESS != tapi_err) { CALL_ENG_DEBUG(ENG_DEBUG, "tel_join_call() Failed, Error Code: %d", tapi_err); return FALSE; @@ -865,7 +865,7 @@ gboolean _vc_core_tapi_rqst_join_calls(call_vc_callagent_state_t *pcall_agent) gboolean _vc_core_tapi_rqst_private_call(call_vc_callagent_state_t *pcall_agent, call_vc_handle call_handle) { - if (TRUE == __call_vc_split_member(call_handle)) { + if (TRUE == __call_vc_split_member(pcall_agent, call_handle)) { _vc_core_ca_change_agent_state(pcall_agent, CALL_VC_CA_STATE_WAIT_SPLIT); return TRUE; } else { @@ -874,10 +874,9 @@ gboolean _vc_core_tapi_rqst_private_call(call_vc_callagent_state_t *pcall_agent, } } -static gboolean __call_vc_split_member(call_vc_handle call_handle) +static gboolean __call_vc_split_member(call_vc_callagent_state_t *pcall_agent, call_vc_handle call_handle) { TapiResult_t tapi_err = TAPI_API_SUCCESS; - int ReqId = VC_RQSTID_DEFAULT; CALL_ENG_DEBUG(ENG_DEBUG, "..."); VOICECALL_RETURN_FALSE_IF_FAIL(call_handle != VC_TAPI_INVALID_CALLHANDLE); @@ -885,7 +884,7 @@ static gboolean __call_vc_split_member(call_vc_handle call_handle) CALL_ENG_DEBUG(ENG_DEBUG, "call_handle to be splited : %d", call_handle); /*Splits a private call from multiparty call. */ - tapi_err = tel_split_call(call_handle, &ReqId); + tapi_err = tel_split_call(pcall_agent->tapi_handle, call_handle, _vc_core_engine_split_call_resp_cb, NULL); if (TAPI_API_SUCCESS != tapi_err) { CALL_ENG_DEBUG(ENG_DEBUG, "tel_split_call() Failed, Error Code: %d", tapi_err); return FALSE; @@ -904,7 +903,6 @@ gboolean _vc_core_tapi_rqst_transfer_call(call_vc_callagent_state_t *pcall_agent { call_vc_handle active_call = VC_TAPI_INVALID_CALLHANDLE; TapiResult_t tapi_err = TAPI_API_SUCCESS; - int ReqId = VC_RQSTID_DEFAULT; VOICECALL_RETURN_FALSE_IF_FAIL(pcall_agent != NULL); @@ -923,7 +921,7 @@ gboolean _vc_core_tapi_rqst_transfer_call(call_vc_callagent_state_t *pcall_agent /*An explicit call transfer by connecting the two parties where in one party being active (active state) and another party being held (held state) */ - tapi_err = tel_exe_call_explicit_transfer(active_call, &ReqId); + tapi_err = tel_transfer_call(pcall_agent->tapi_handle, active_call, _vc_core_engine_transfer_call_resp_cb, NULL); if (TAPI_API_SUCCESS != tapi_err) { CALL_ENG_DEBUG(ENG_DEBUG, "tel_exe_call_explicit_transfer() Failed, Error Code: %d", tapi_err); return FALSE; @@ -943,7 +941,6 @@ gboolean _vc_core_tapi_rqst_start_dtmf(call_vc_callagent_state_t *pcall_agent, c { call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; TapiResult_t tapi_err = TAPI_API_SUCCESS; - int ReqId = VC_RQSTID_DEFAULT; VOICECALL_RETURN_FALSE_IF_FAIL(pcall_agent != NULL); @@ -960,7 +957,7 @@ gboolean _vc_core_tapi_rqst_start_dtmf(call_vc_callagent_state_t *pcall_agent, c /* start DTMF */ /*This function sends one or more DTMF digits during call */ - tapi_err = tel_send_call_dtmf(dtmf_string, &ReqId); + tapi_err = tel_call_dtmf(pcall_agent->tapi_handle, dtmf_string, _vc_core_engine_dtmf_call_resp_cb, NULL); if (TAPI_API_SUCCESS != tapi_err) { CALL_ENG_DEBUG(ENG_DEBUG, "tapi_call_dtmf Failed, Error Code: %d", tapi_err); @@ -1026,7 +1023,6 @@ gboolean call_vc_send_uusinfo(call_vc_callagent_state_t *pcall_agent, call_vc_ha gboolean _vc_core_tapi_rqst_end_call_by_callhandle(call_vc_callagent_state_t *pcall_agent, call_vc_handle call_handle) { call_vc_call_objectinfo_t callobject_info; - int pReqId = VC_RQSTID_DEFAULT; TapiResult_t tapi_err = TAPI_API_SUCCESS; VOICECALL_RETURN_FALSE_IF_FAIL(pcall_agent != NULL); @@ -1043,12 +1039,12 @@ gboolean _vc_core_tapi_rqst_end_call_by_callhandle(call_vc_callagent_state_t *pc CALL_ENG_DEBUG(ENG_DEBUG, "End Single call.."); /* Use ReleaseAll api in case single call is ended - this is caused by modem limitation */ - tapi_err = tel_release_call_all(&pReqId); + tapi_err = tel_end_call(pcall_agent->tapi_handle, call_handle, TAPI_CALL_END_ALL, _vc_core_engine_end_call_resp_cb, NULL); } else #endif { /*Releases the call identified by Call Handle irrespective of call is hold or active state */ - tapi_err = tel_release_call(call_handle, &pReqId); + tapi_err = tel_end_call(pcall_agent->tapi_handle, call_handle, TAPI_CALL_END, _vc_core_engine_end_call_resp_cb, NULL); } if (TAPI_API_SUCCESS != tapi_err) { @@ -1119,7 +1115,6 @@ gboolean _vc_core_tapi_rqst_reject_mt_call(call_vc_callagent_state_t *pcall_agen { call_vc_handle call_handle = VC_TAPI_INVALID_CALLHANDLE; TapiResult_t tapi_err = TAPI_API_SUCCESS; - int pReqId = VC_RQSTID_DEFAULT; VOICECALL_RETURN_FALSE_IF_FAIL(pcall_agent != NULL); @@ -1146,7 +1141,7 @@ gboolean _vc_core_tapi_rqst_reject_mt_call(call_vc_callagent_state_t *pcall_agen if (TRUE == budub) { /*Reject the Call for User Busy Scenario */ - tapi_err = tel_answer_call(call_handle, TAPI_CALL_ANSWER_REJECT, &pReqId); + tapi_err = tel_answer_call(pcall_agent->tapi_handle, call_handle, TAPI_CALL_ANSWER_REJECT, _vc_core_engine_answer_call_resp_cb, NULL); if (TAPI_API_SUCCESS != tapi_err) { CALL_ENG_DEBUG(ENG_DEBUG, " tel_answer_call failed: %d", tapi_err); @@ -1167,3 +1162,4 @@ gboolean _vc_core_tapi_rqst_reject_mt_call(call_vc_callagent_state_t *pcall_agen _vc_core_ca_change_inout_state(pcall_agent, VC_INOUT_STATE_INCOME_WAIT_RELEASE); return TRUE; } + diff --git a/call-engine/core/vc-core-util.c b/call-engine/core/vc-core-util.c index 77dc8c2..0855080 100755 --- a/call-engine/core/vc-core-util.c +++ b/call-engine/core/vc-core-util.c @@ -14,7 +14,6 @@ * limitations under the License. */ - #include #include #include "vc-core-engine.h" @@ -44,9 +43,12 @@ #define ASCII_D 68 #define ASCII_STAR 42 #define ASCII_HASH 35 -#define ASCII_P 80 /*PDIAL_SEND_DTMF*/ -#define ASCII_p 112 /*PDIAL_SEND_DTMF*/ -#define ASCII_COMMA 44 /*PDIAL_SEND_DTMF*/ +#define ASCII_P 80 +#define ASCII_p 112 +#define ASCII_COMMA 44 +#define ASCII_W 87 +#define ASCII_w 119 +#define ASCII_SEMI_COLON 59 #define EIGTH_BIT 0x80 #define SEVENTH_BIT 0x40 @@ -57,88 +59,15 @@ #define SECOND_BIT 0x02 #define FIRST_BIT 0x01 -#define CALLVC_MIN(x, y) ((x) <= (y) ? (x) : (y)) /*PDIAL_SEND_DTMF*/ +#define CALLVC_MIN(x, y) ((x) <= (y) ? (x) : (y)) #define ISUSSDDIGIT(X) ((X >= '2') && (X <= '9')) #define ISDIGIT(X) ((X >= '0') && (X <= '9')) #define ISSSDIGITINCALL(X) ((X >= '7') && (X <= '9')) #define IS1CHARUSSDDIGIT(X) ((X >= '1') && (X <= '9')) -#define DATE_FORMAT_1 "EEMMMddyyyy" /* Thu Aug 23 2001 */ -#define TIME_12_TYPE "hma" /* 7:58 AM */ -#define TIME_24_TYPE "HHmm" /* 19:58 */ - -typedef enum _call_vc_emergency_number_type_t { - CALL_VC_NO_SIM_EMERGENCY, - CALL_VC_UK_EMERGENCY, - CALL_VC_UKRAINE_EMERGENCY, - CALL_VC_DEFAULT_EMERGENCY, - CALL_VC_EMERGENCY_TYPE_MAX -} call_vc_emergency_number_type_t; - - -#define CALL_VC_EMERGENCY_NUMBER_LEN_MAX 3 - -/************************************************************************************************************************** -#define CALL_VC_KOREA_EMERGENCY_NUMBERS_CNT 3 -static char gcall_vc_korea_emergency_numbers[CALL_VC_KOREA_EMERGENCY_NUMBERS_CNT][CALL_VC_EMERGENCY_NUMBER_LEN_MAX + 1] = { - "112", - "911", - "119" -}; -**************************************************************************************************************************/ - -#define CALL_VC_DEFAULT_EMERGENCY_NUMBERS_CNT 2 -static char gcall_vc_emergency_numbers[CALL_VC_DEFAULT_EMERGENCY_NUMBERS_CNT][CALL_VC_EMERGENCY_NUMBER_LEN_MAX + 1] = { - "112", - "911", -}; - -#define CALL_VC_UK_EMERGENCY_NUMBERS_CNT 3 -static char gcall_vc_uk_emergency_numbers[CALL_VC_UK_EMERGENCY_NUMBERS_CNT][CALL_VC_EMERGENCY_NUMBER_LEN_MAX + 1] = { - "112", - "911", - "999", -}; - -#define CALL_VC_UKAINE_EMERGENCY_NUMBERS_CNT 5 -static char gcall_vc_ukaine_emergency_numbers[CALL_VC_UKAINE_EMERGENCY_NUMBERS_CNT][CALL_VC_EMERGENCY_NUMBER_LEN_MAX + 1] = { - "112", - "911", - "01", - "02", - "03" -}; - -#define CALL_VC_ITALY_EMERGENCY_NUMBERS_CNT 6 -static char gcall_vc_italy_emergency_numbers[CALL_VC_ITALY_EMERGENCY_NUMBERS_CNT][CALL_VC_EMERGENCY_NUMBER_LEN_MAX + 1] = { - "112", - "911", - "999", - "110", - "118", - "115" -}; - -#define CALL_VC_NO_SIM_DEFAULT_EMERGENCY_NUMBERS_CNT 8 -static char gcall_vc_nosim_emergency_numbers[CALL_VC_NO_SIM_DEFAULT_EMERGENCY_NUMBERS_CNT][CALL_VC_EMERGENCY_NUMBER_LEN_MAX + 1] = { - "000", - "08", - "112", - "110", - "118", - "119", - "911", - "999" -}; - -/** -* This function checks the given number against the default emergency numbers list -* -* @internal -* @return TRUE if given number is found in the emergency number list, FALSE otherwise -* @param[out] pNumber number to be verified -*/ -static gboolean __vc_core_util_check_default_emergency_number(char *pNumber); +#define DATE_FORMAT_1 "EEMMMddyyyy" /* Thu Aug 23 2001 */ +#define TIME_12_TYPE "hma" /* 7:58 AM */ +#define TIME_24_TYPE "HHmm" /* 19:58 */ /** * This function publishes the event of a given publish type @@ -152,47 +81,44 @@ gboolean _vc_core_util_remove_invalid_chars(const char *src, char *dst) VOICECALL_RETURN_FALSE_IF_FAIL((src != NULL)); VOICECALL_RETURN_FALSE_IF_FAIL((dst != NULL)); - CALL_ENG_DEBUG(ENG_DEBUG, "Source phone number - %s\n",src); + CALL_ENG_DEBUG(ENG_DEBUG, "Source phone number - %s", src); int i = 0; int j = 0; int nSrc = 0; nSrc = strlen(src); - CALL_ENG_DEBUG(ENG_DEBUG, , "source String len - %d\n", nSrc); + CALL_ENG_DEBUG(ENG_DEBUG, "source String len - %d", nSrc); - for(i = 0; i < nSrc; ++i) - { - switch(src[i]) - { - case '(': + for (i = 0; i < nSrc; ++i) { + switch (src[i]) { + case '(': { - if(src[i+1]== '0') + if (src[i + 1] == '0') ++i; break; } - case ')': - case '-': - case ' ': - case '/': + case ')': + case '-': + case ' ': + case '/': { break; } - default: + default: { dst[j++] = src[i]; break; } } - if(j>40) - { + if (j > 40) { break; } } dst[j] = '\0'; - CALL_ENG_DEBUG(ENG_DEBUG, , "Destination phone number - %s\n",dst); + CALL_ENG_DEBUG(ENG_DEBUG, "Destination phone number - %s", dst); return TRUE; } @@ -222,15 +148,15 @@ gboolean _vc_core_util_extract_call_number(const char *pszTelNumber, char *pBuff else pszNum = (char *)pszTelNumber; - pst = strchr(pszNum, 'P'); - - if (pst == NULL) - pst = strchr(pszNum, 'p'); - - if (pst == NULL) - pst = strchr(pszNum, ','); /*browser request*/ + pst = pszNum; + while (*pst != '\0') { + if (*pst == 'P' || *pst == 'p' || *pst == ',' || *pst == 'W' || *pst == 'w' || *pst == ';') { + break; + } + pst++; + } - if (pst == NULL) { + if (strlen(pst) == 0) { if (strlen(pszNum) == 0) return FALSE; _vc_core_util_strcpy(pBuffer, nBufSize, pszNum); @@ -238,7 +164,7 @@ gboolean _vc_core_util_extract_call_number(const char *pszTelNumber, char *pBuff if (pst == pszNum) return FALSE; - _vc_core_util_strcpy(pBuffer, min((((int)pst - (int)pszNum)+1), (nBufSize)), pszNum); + _vc_core_util_strcpy(pBuffer, min((((int)pst - (int)pszNum) + 1), (nBufSize)), pszNum); } return TRUE; } @@ -255,15 +181,14 @@ gboolean _vc_core_util_extract_call_number_without_cli(const char *pszTelNumber, memset(pBuffer, 0, nBufSize); pszNum = (char *)pszTelNumber; - pst = strchr(pszNum, 'P'); - - if (pst == NULL) - pst = strchr(pszNum, 'p'); - - if (pst == NULL) - pst = strchr(pszNum, ','); /*browser request*/ - - if (pst == NULL) { + pst = pszNum; + while (*pst != '\0') { + if (*pst == 'P' || *pst == 'p' || *pst == ',' || *pst == 'W' || *pst == 'w' || *pst == ';') { + break; + } + pst++; + } + if (strlen(pst) == 0) { if (strlen(pszNum) == 0) return FALSE; _vc_core_util_strcpy(pBuffer, nBufSize, pszNum); @@ -271,7 +196,7 @@ gboolean _vc_core_util_extract_call_number_without_cli(const char *pszTelNumber, if (pst == pszNum) return FALSE; - _vc_core_util_strcpy(pBuffer, min((((int)pst - (int)pszNum)+1), (nBufSize)), pszNum); + _vc_core_util_strcpy(pBuffer, min((((int)pst - (int)pszNum) + 1), (nBufSize)), pszNum); } return TRUE; } @@ -285,7 +210,7 @@ gboolean _vc_core_util_extract_call_number_without_cli(const char *pszTelNumber, call_vc_ss_si_format _vc_core_util_check_si_format(const char *pinput_string) { int index = 0, pos = 1, cnt = 0; - VOICECALL_RETURN_VALUE_IF_FAIL((pinput_string != NULL),SS_SI_FORMAT_INVALID); + VOICECALL_RETURN_VALUE_IF_FAIL((pinput_string != NULL), SS_SI_FORMAT_INVALID); if ((pinput_string[1] == '*') || (pinput_string[1] == '#')) pos = 2; @@ -336,173 +261,35 @@ gboolean _vc_core_util_get_mcc(unsigned long *mcc) return TRUE; } -static gboolean __vc_core_util_check_default_emergency_number(char *pNumber) -{ - int i = 0; - unsigned long mcc = 0; - - VOICECALL_RETURN_FALSE_IF_FAIL((pNumber != NULL)); - - _vc_core_util_get_mcc(&mcc); - - if (mcc == CALL_NETWORK_MCC_UK) { - /*112, 911,999*/ - for (i = 0; i < CALL_VC_UK_EMERGENCY_NUMBERS_CNT; i++) { - if (!strcmp(pNumber, gcall_vc_uk_emergency_numbers[i])) - return TRUE; - } - } else if (mcc == CALL_NETWORK_MCC_UKRAINE) { - /*112, 911, 01, 02, 03*/ - for (i = 0; i < CALL_VC_UKAINE_EMERGENCY_NUMBERS_CNT; i++) { - if (!strcmp(pNumber, gcall_vc_ukaine_emergency_numbers[i])) - return TRUE; - } - } else if (mcc == CALL_NETWORK_MCC_ITALY) { - /*112, 911, 999, 110, 118, 115*/ - for (i = 0; i < CALL_VC_ITALY_EMERGENCY_NUMBERS_CNT; i++) { - if (!strcmp(pNumber, gcall_vc_italy_emergency_numbers[i])) - return TRUE; - } - } else { - /*112, 911*/ - for (i = 0; i < CALL_VC_DEFAULT_EMERGENCY_NUMBERS_CNT; i++) { - if (!strcmp(pNumber, gcall_vc_emergency_numbers[i])) - return TRUE; - } - } - return FALSE; -} - -/** - * This function checks whether the given number is emergency number by verifying with sim emergency numbers - * - * @return TRUE if the number is emergency number, FALSE otherwise - * @param[in] card_type simcard type - * @param[in] pNumber number to be verified - */ -gboolean _vc_core_util_check_emergency_number(TelSimCardType_t card_type, char *pNumber, gboolean b_is_no_sim, int *ecc_category) +gboolean _vc_core_util_get_mnc(unsigned long *mnc) { - int i = 0; - TapiResult_t tapi_err = TAPI_API_SUCCESS; - - VOICECALL_RETURN_FALSE_IF_FAIL(pNumber != NULL); - VOICECALL_RETURN_FALSE_IF_FAIL(ecc_category != NULL); - - CALL_ENG_DEBUG(ENG_DEBUG, "pNumber = %s", pNumber); - *ecc_category = 0; - - /*if(call_vc_util_get_sim_mode() == CALL_VC_SIM_INSERTED)*/ - if (b_is_no_sim == FALSE) { - CALL_ENG_DEBUG(ENG_DEBUG, "We have a SIM"); - switch (card_type) { - case TAPI_SIM_CARD_TYPE_GSM: - { - TelSimEccData_t sim_ecc_info; /* used to get data for the Ecc information for 2G and 3G. */ - int necc_record_count = 0; /*Used to count number of Emergency records */ - - CALL_ENG_DEBUG(ENG_DEBUG, "[SimCardType=SIM_CARD_TYPE_GSM]"); - memset(&sim_ecc_info, 0x00, sizeof(TelSimEccData_t)); - - /*TAPI api Compliance */ - /*To get Emergency data of 2G */ - tapi_err = tel_get_sim_ecc(&sim_ecc_info, &necc_record_count); - - if (TAPI_API_SUCCESS != tapi_err) { - CALL_ENG_DEBUG(ENG_DEBUG, "tapi_sim_get_ecc_info failed, tapi_err=%d", tapi_err); - return FALSE; - } - - if (necc_record_count == 0) { - CALL_ENG_DEBUG(ENG_DEBUG, "eccinfo is NOT exist. Check default"); - - /*SIM card inserted but no ecc infomation. Then check the default ECC number.*/ - return __vc_core_util_check_default_emergency_number(pNumber); - } else { - /*Check the availablity of Emergency number in the ECCInfo*/ - CALL_ENG_DEBUG(ENG_DEBUG, "ecc1=%s", sim_ecc_info.EccInfo.szEcc1); - if (strcmp(pNumber, sim_ecc_info.EccInfo.szEcc1) == 0) /*ecc1*/ - return TRUE; - - CALL_ENG_DEBUG(ENG_DEBUG, "ecc2=%s", sim_ecc_info.EccInfo.szEcc2); - if (strcmp(pNumber, sim_ecc_info.EccInfo.szEcc2) == 0) /*ecc2*/ - return TRUE; - - CALL_ENG_DEBUG(ENG_DEBUG, "ecc3=%s", sim_ecc_info.EccInfo.szEcc3); - if (strcmp(pNumber, sim_ecc_info.EccInfo.szEcc3) == 0) /*ecc3*/ - return TRUE; - - CALL_ENG_DEBUG(ENG_DEBUG, "ecc4=%s", sim_ecc_info.EccInfo.szEcc4); - if (strcmp(pNumber, sim_ecc_info.EccInfo.szEcc4) == 0) /*ecc4*/ - return TRUE; - - CALL_ENG_DEBUG(ENG_DEBUG, "ecc5=%s", sim_ecc_info.EccInfo.szEcc5); - if (strcmp(pNumber, sim_ecc_info.EccInfo.szEcc5) == 0) /*ecc5*/ - return TRUE; + int ret = 0; + int plmn_value = 0; - CALL_ENG_DEBUG(ENG_DEBUG, "No match & check default emergency number..."); + VOICECALL_RETURN_FALSE_IF_FAIL((mnc != NULL)); - return __vc_core_util_check_default_emergency_number(pNumber); - } - } - break; - case TAPI_SIM_CARD_TYPE_USIM: - { - TelSimEccData_t sim_usim_ecc_info; /* used to get data for the Ecc information for both 2G and 3G */ - int nuecc_rec_count = 0; - - CALL_ENG_DEBUG(ENG_DEBUG, "SimCardType=SIM_CARD_TYPE_USIM"); + ret = vconf_get_int(VCONFKEY_TELEPHONY_PLMN, &plmn_value); + if (0 == ret) { + char mnc_value[4]; + char plmn_string[10]; - memset(&sim_usim_ecc_info, 0x00, sizeof(TelSimEccData_t)); + CALL_ENG_DEBUG(ENG_DEBUG, "plmn_value = [%d]", plmn_value); - /*Synchronous function used to get ECC data */ - tapi_err = tel_get_sim_ecc(&sim_usim_ecc_info, &nuecc_rec_count); + memset(plmn_string, 0, sizeof(plmn_string)); + memset(mnc_value, 0, sizeof(mnc_value)); - if (TAPI_API_SUCCESS != tapi_err) { - CALL_ENG_DEBUG(ENG_DEBUG, "tapi_sim_get_usim_ecc_info failed, tapi_err=%d", tapi_err); - return FALSE; - } - - if (nuecc_rec_count == 0) { - CALL_ENG_DEBUG(ENG_DEBUG, "ueccInfo is NOT exists..."); - - /*SIM card inserted but no ecc infomation. Then check the default ECC number.*/ - return __vc_core_util_check_default_emergency_number(pNumber); - } else { - CALL_ENG_DEBUG(ENG_DEBUG, "ueccInfo exists..."); - - /*Check in USIM Emergency Numbers*/ - for (i = 0; i < nuecc_rec_count; i++) { - CALL_ENG_DEBUG(ENG_DEBUG, "[ecc=%s, category:[%d]]", sim_usim_ecc_info.UeccInfo[i].szEcc, sim_usim_ecc_info.UeccInfo[i].EccEmergencyServiceInfo); - if (!strcmp(pNumber, sim_usim_ecc_info.UeccInfo[i].szEcc)) { - *ecc_category = sim_usim_ecc_info.UeccInfo[i].EccEmergencyServiceInfo; - CALL_ENG_DEBUG(ENG_DEBUG, "uecc matched!!"); - return TRUE; - } - } - - CALL_ENG_DEBUG(ENG_DEBUG, "No match & check default emergency number..."); - return __vc_core_util_check_default_emergency_number(pNumber); - } - } - break; + snprintf(plmn_string, 10, "%d", plmn_value); - case TAPI_SIM_CARD_TYPE_UNKNOWN: - default: - { - return __vc_core_util_check_default_emergency_number(pNumber); - } - break; - } + /* 4~6th digits of plmn value constitutes the mnc value */ + _vc_core_util_strcpy(mnc_value, 4, &plmn_string[3]); + *mnc = (unsigned long)atoi(mnc_value); } else { - CALL_ENG_DEBUG(ENG_DEBUG, "No SIM!"); - for (i = 0; i < CALL_VC_NO_SIM_DEFAULT_EMERGENCY_NUMBERS_CNT; i++) { - if (!strcmp(pNumber, gcall_vc_nosim_emergency_numbers[i])) - return TRUE; - } + CALL_ENG_DEBUG(ENG_ERR, "vconf_get_int failed..[%d]", ret); + *mnc = CALL_NETWORK_MNC_01; } + CALL_ENG_DEBUG(ENG_DEBUG, "mnc = %ld", *mnc); - CALL_ENG_DEBUG(ENG_DEBUG, "No emegency number..."); - return FALSE; + return TRUE; } /** @@ -513,43 +300,41 @@ gboolean _vc_core_util_check_emergency_number(TelSimCardType_t card_type, char * */ gboolean _vc_core_util_check_ss_string(const char *pNumber) { - int len; - VOICECALL_RETURN_FALSE_IF_FAIL(pNumber != NULL); - CALL_ENG_DEBUG(ENG_DEBUG, "pNumber(%s)",pNumber); + int len; + VOICECALL_RETURN_FALSE_IF_FAIL(pNumber != NULL); + CALL_ENG_DEBUG(ENG_DEBUG, "pNumber(%s)", pNumber); - len = strlen(pNumber); + len = strlen(pNumber); - if(len > 3) { - if(pNumber[len-1] == '#') { - if(pNumber[0] == '*' || pNumber[0] == '#') { - return TRUE; - } - } - else { - /* - * '*31#', '#31#' -> launch CISS - * '*31#nn..', '#31#nn...' -> launch Voice-call - */ - if(strncmp (pNumber, CALL_COMMON_CLI_SHOW_ID, 4) == 0 - || strncmp (pNumber, CALL_COMMON_CLI_HIDE_ID, 4) == 0) { - if(len > 4) - return FALSE; - return TRUE; - } - } - } + if (len > 3) { + if (pNumber[len - 1] == '#') { + if (pNumber[0] == '*' || pNumber[0] == '#') { + return TRUE; + } + } else { + /* + * '*31#', '#31#' -> launch CISS + * '*31#nn..', '#31#nn...' -> launch Voice-call + */ + if (strncmp(pNumber, CALL_COMMON_CLI_SHOW_ID, 4) == 0 || strncmp(pNumber, CALL_COMMON_CLI_HIDE_ID, 4) == 0) { + if (len > 4) + return FALSE; + return TRUE; + } + } + } - if((len == 2) && (ISUSSDDIGIT( pNumber[0] ) && ISDIGIT( pNumber[1] ))) { - CALL_ENG_DEBUG(ENG_DEBUG, "USSD string"); - return TRUE; - } + if ((len == 2) && (ISUSSDDIGIT(pNumber[0]) && ISDIGIT(pNumber[1]))) { + CALL_ENG_DEBUG(ENG_DEBUG, "USSD string"); + return TRUE; + } - if((len == 1) && (IS1CHARUSSDDIGIT(pNumber[0]))) { + if ((len == 1) && (IS1CHARUSSDDIGIT(pNumber[0]))) { CALL_ENG_DEBUG(ENG_DEBUG, "1 character USSD string"); - return TRUE; + return TRUE; } - return FALSE; + return FALSE; } /** @@ -560,39 +345,35 @@ gboolean _vc_core_util_check_ss_string(const char *pNumber) */ gboolean _vc_core_util_check_incall_ss_string(const char *number) { - int len; - int num_int; - VOICECALL_RETURN_FALSE_IF_FAIL(number != NULL); - CALL_ENG_DEBUG(ENG_DEBUG, "number(%s)",number); - - len = strlen(number); - if(len > 2 || len < 1) - return FALSE; - - if(number[0] > '6') - return FALSE; - - if(len == 1) { - /* 0 ~ 4 */ - if(number[0] >= '0' && number[0] <= '4') - return TRUE; - } - else { - /* 11 ~ 17, 21 ~ 27 */ - num_int = atoi(number); - - if(num_int >= 11 && num_int <= 17) - return TRUE; - if(num_int >= 21 && num_int <= 27) - return TRUE; - } - - return FALSE; -} + int len; + int num_int; + VOICECALL_RETURN_FALSE_IF_FAIL(number != NULL); + CALL_ENG_DEBUG(ENG_DEBUG, "number(%s)", number); + + len = strlen(number); + if (len > 2 || len < 1) + return FALSE; + + if (number[0] > '6') + return FALSE; + if (len == 1) { + /* 0 ~ 4 */ + if (number[0] >= '0' && number[0] <= '4') + return TRUE; + } else { + /* 11 ~ 17, 21 ~ 27 */ + num_int = atoi(number); + if (num_int >= 11 && num_int <= 17) + return TRUE; + if (num_int >= 21 && num_int <= 27) + return TRUE; + } + + return FALSE; +} -/*PDIAL_SEND_DTMF*/ /** * This function extracts the dtmf number from the given telephone number * @@ -603,30 +384,33 @@ gboolean _vc_core_util_check_incall_ss_string(const char *number) gboolean _vc_core_util_extract_dtmf_number(const char *tel_number, char *dtmf_number, const int dtmf_buf_len) { char *pst; - VOICECALL_RETURN_FALSE_IF_FAIL(tel_number!= NULL); + VOICECALL_RETURN_FALSE_IF_FAIL(tel_number != NULL); VOICECALL_RETURN_FALSE_IF_FAIL(dtmf_number != NULL); memset(dtmf_number, 0, dtmf_buf_len); - pst = strchr(tel_number, 'P'); - if (pst == NULL) { - pst = strchr(tel_number, 'p'); - } - - if (pst == NULL) { - pst = strchr(tel_number, ','); /*Considering "," as Pause charcter - Browser Request */ + pst = (char *)tel_number; + while (*pst != '\0') { +#ifdef WDIAL_SEND_DTMF + if (*pst == 'P' || *pst == 'p' || *pst == ',' || *pst == 'W' || *pst == 'w' || *pst == ';') { +#else + if (*pst == 'P' || *pst == 'p' || *pst == ',') { +#endif + break; + } + pst++; } - if (pst == NULL) { + if (strlen(pst) == 0) { return FALSE; } else { - _vc_core_util_strcpy(dtmf_number, CALLVC_MIN((int)strlen(pst), (dtmf_buf_len - 1)), pst + 1); + if (pst == tel_number) + return FALSE; + strncpy(dtmf_number, pst, CALLVC_MIN((int)strlen(pst), (dtmf_buf_len-1))); } return TRUE; } -/*PDIAL_SEND_DTMF*/ - /** * This function checks whether the given number ia a valid dtmf number or not * @@ -646,7 +430,6 @@ gboolean _vc_core_util_isvalid_dtmf_number(char *pnumber) CALL_ENG_DEBUG(ENG_DEBUG, "Length = %d", len); while (len > 0) { - /*PDIAL_SEND_DTMF*/ if (IS_DIGIT(pnumber[len - 1]) || (pnumber[len - 1] >= ASCII_A && pnumber[len - 1] <= ASCII_D) || (pnumber[len - 1] == ASCII_STAR || pnumber[len - 1] == ASCII_HASH)) { return TRUE; } @@ -674,8 +457,10 @@ gboolean _vc_core_util_isvalid_full_dtmf_number(char *pnumber) CALL_ENG_DEBUG(ENG_DEBUG, "Length = %d", len); while (len > 0) { - /*PDIAL_SEND_DTMF*/ - if (!(IS_DIGIT(pnumber[len - 1]) || (pnumber[len - 1] >= ASCII_A && pnumber[len - 1] <= ASCII_D) || (pnumber[len - 1] == ASCII_STAR || pnumber[len - 1] == ASCII_HASH) || (pnumber[len - 1] == ASCII_P || pnumber[len - 1] == ASCII_p || pnumber[len - 1] == ASCII_COMMA))) { + if (!(IS_DIGIT(pnumber[len - 1]) || (pnumber[len - 1] >= ASCII_A && pnumber[len - 1] <= ASCII_D) || \ + (pnumber[len - 1] == ASCII_STAR || pnumber[len - 1] == ASCII_HASH) || \ + (pnumber[len - 1] == ASCII_P || pnumber[len - 1] == ASCII_p || pnumber[len - 1] == ASCII_COMMA) || \ + (pnumber[len - 1] == ASCII_W || pnumber[len - 1] == ASCII_w || pnumber[len - 1] == ASCII_SEMI_COLON))) { CALL_ENG_DEBUG(ENG_DEBUG, "invalid character encountered..."); return FALSE; } @@ -700,17 +485,17 @@ gboolean _vc_core_util_isvalid_telephone_number(char *ptel_number) if (ptel_number != NULL) { char call_number[VC_PHONE_NUMBER_LENGTH_MAX] = { 0, }; - /* + /* Function Test SLP-Call-0250 fixed. * If user Input "*" or "#" and then make a call, * the device should alert you that the phone number is incorrect. */ - /* if ((strlen(ptel_number) == 1) && ((strcmp(ptel_number, "*") == 0) ||(strcmp(ptel_number, "#") == 0))) */ + /*if ((strlen(ptel_number) == 1) && ((strcmp(ptel_number, "*") == 0) ||(strcmp(ptel_number, "#") == 0))) */ /* 1 digit number -> wrong number popup */ if (strlen(ptel_number) == 1) { CALL_ENG_DEBUG(ENG_DEBUG, "It is wrong number.(1 digit number)"); return FALSE; } - /*end*/ + /*end */ /*To avoid checking *31# and #31# */ if (_vc_core_util_extract_call_number(ptel_number, call_number, sizeof(call_number)) == FALSE) { @@ -762,10 +547,10 @@ gboolean _vc_core_util_check_zuhause_status(void) } if (isZuhauseArea == 0) { - /*Not in a zuhause area..*/ + /*Not in a zuhause area.. */ return FALSE; } else { - /*in a zuhause area..*/ + /*in a zuhause area.. */ return TRUE; } } @@ -801,7 +586,7 @@ int _vc_core_util_get_call_volume(void) CALL_ENG_DEBUG(ENG_WARN, "vconf_set_int failed."); } - CALL_ENG_DEBUG(ENG_DEBUG, "vol_level(%d)",vol_level); + CALL_ENG_DEBUG(ENG_DEBUG, "vol_level(%d)", vol_level); return vol_level; } @@ -845,7 +630,7 @@ void _vc_core_util_get_cug_info(voicecall_setup_info_t *psetupcall_info) { VOICECALL_RETURN_IF_FAIL(psetupcall_info != NULL); voicecall_cug_info_t *pcug_info = NULL; - /*int error_code = -1;*/ + /*int error_code = -1; */ pcug_info = (voicecall_cug_info_t *) &psetupcall_info->cug_info; @@ -856,7 +641,7 @@ void _vc_core_util_get_cug_info(voicecall_setup_info_t *psetupcall_info) void _vc_core_util_get_identity_mode(voicecall_setup_info_t *psetupcall_info) { - int id_mode = 0; /*0 - default, 1-show, 2-hide*/ + int id_mode = 0; /*0 - default, 1-show, 2-hide */ int ret = -1; VOICECALL_RETURN_IF_FAIL(psetupcall_info != NULL); @@ -934,7 +719,6 @@ gboolean _vc_core_util_strcpy(char *pbuffer, int buf_count, const char *pstring) CALL_ENG_DEBUG(ENG_DEBUG, "buf_count is zero!!"); return FALSE; } - #ifdef _NO_USE_STRCPY_ if ((buf_count - 1) >= (int)strlen(pstring)) { strcpy(pbuffer, pstring); @@ -944,7 +728,6 @@ gboolean _vc_core_util_strcpy(char *pbuffer, int buf_count, const char *pstring) pbuffer[buf_count - 1] = '\0'; } #else - CALL_ENG_DEBUG(ENG_DEBUG, "pbuffer size(%d), pstring size(%d)", buf_count, strlen(pstring)); strncpy(pbuffer, pstring, (buf_count - 1)); pbuffer[buf_count - 1] = '\0'; #endif @@ -960,7 +743,6 @@ gboolean _vc_core_util_strcpy(char *pbuffer, int buf_count, const char *pstring) */ char *_vc_core_util_get_date_time(time_t time) { - int ret = 0; UDate date; const char *locale = uloc_getDefault(); UErrorCode status = U_ZERO_ERROR; @@ -972,13 +754,13 @@ char *_vc_core_util_get_date_time(time_t time) char formattedString[128] = { '\0', }; int32_t bestPatternCapacity, formattedCapacity; int32_t bestPatternLength, formattedLength; - char skeleton[128]={ '\0', }; + char skeleton[128] = { '\0', }; UChar customSkeleton[64] = { '\0', }; enum appcore_time_format time_format; appcore_get_timeformat(&time_format); - switch(time_format) { + switch (time_format) { case APPCORE_TIME_FORMAT_12: snprintf(skeleton, sizeof(skeleton), "%s%s", DATE_FORMAT_1, TIME_12_TYPE); break; @@ -989,14 +771,14 @@ char *_vc_core_util_get_date_time(time_t time) default: snprintf(skeleton, sizeof(skeleton), "%s%s", DATE_FORMAT_1, TIME_24_TYPE); break; - } + } - u_uastrncpy(customSkeleton, skeleton,strlen(skeleton)); + u_uastrncpy(customSkeleton, skeleton, strlen(skeleton)); generator = udatpg_open(locale, &status); - bestPatternCapacity = (int32_t)(sizeof(bestPattern)/sizeof((bestPattern)[0])); + bestPatternCapacity = (int32_t) (sizeof(bestPattern) / sizeof((bestPattern)[0])); - bestPatternLength = udatpg_getBestPattern(generator, customSkeleton, u_strlen(customSkeleton), bestPattern, bestPatternCapacity, &status); + bestPatternLength = udatpg_getBestPattern(generator, customSkeleton, u_strlen(customSkeleton), bestPattern, bestPatternCapacity, &status); u_austrncpy(bestPatternString, bestPattern, 128); CALL_ENG_DEBUG(ENG_DEBUG, "BestPattern(%s)", bestPatternString); @@ -1006,7 +788,7 @@ char *_vc_core_util_get_date_time(time_t time) formatter = udat_open(UDAT_IGNORE, UDAT_IGNORE, locale, NULL, -1, bestPattern, -1, &status); /* UDAT_IGNORE Passed so that our best pattern is used in generating pattern */ - formattedCapacity = (int32_t)(sizeof(formatted)/sizeof((formatted)[0])); + formattedCapacity = (int32_t) (sizeof(formatted) / sizeof((formatted)[0])); formattedLength = udat_format(formatter, date, formatted, formattedCapacity, NULL, &status); u_austrncpy(formattedString, formatted, 128); udatpg_close(generator); @@ -1016,33 +798,6 @@ char *_vc_core_util_get_date_time(time_t time) return g_strdup(formattedString); } - -gboolean _vc_core_util_set_sleep_status(call_vc_power_mode_t type) -{ - return FALSE; /*it will be processed with sensor in ui*/ -} - -gboolean _vc_core_util_get_call_alert_type(int *alert_type) /*VCONFKEY_SETAPPL_PROFILE_CURRENT_CALL_ALERT_TYPE_INT*/ -{ - int tmp_alert_type = -1; - gboolean ret = FALSE; - char *vconf_key = NULL; - VOICECALL_RETURN_FALSE_IF_FAIL(alert_type != NULL); - - vconf_key = vconf_get_str("db/setting/cur_profile"); - strncat(vconf_key, "/call_alert_type", strlen("/call_alert_type")); - ret = vconf_get_int(vconf_key, &tmp_alert_type); - CALL_ENG_DEBUG(ENG_DEBUG, "vconf_key = [%s]", vconf_key); - if (0 == ret) { - CALL_ENG_DEBUG(ENG_DEBUG, "alert_type = [%d]", tmp_alert_type); /*SETTING_CALL_ALERT_TYPE_MELODY,...*/ - *alert_type = tmp_alert_type; - return TRUE; - } else { - CALL_ENG_DEBUG(ENG_ERR, "vconf_get_int failed..[%d]", ret); - return FALSE; - } -} - gboolean _vc_core_util_phonelock_status(void) { gboolean b_phonelock = FALSE; @@ -1055,33 +810,6 @@ gboolean _vc_core_util_phonelock_status(void) } } -#ifdef TIMER_ENABLED -clock_t _vc_core_util_get_curr_time() -{ - struct timeval tv; - long cur_time; - gettimeofday(&tv, NULL); - - cur_time = (tv.tv_sec * 1000) + tv.tv_usec / 1000; - return cur_time; -} - -void _vc_core_util_print_diff_time(clock_t start, clock_t end, char *message) -{ - long elapsed_time = 0; - elapsed_time = (end - start); - VOICECALL_RETURN_IF_FAIL(message != NULL); - fprintf(stderr, "\n[VoiceCall TIMER][%s]:\n[%s]\n\tstart time: %ld; end time: %ld; total time: %ld milli seconds\n", __func__, message, start, end, elapsed_time); -} - -void _vc_core_util_print_curr_time(char *message) -{ - clock_t curr_time = _vc_core_util_get_curr_time(); - VOICECALL_RETURN_IF_FAIL(message != NULL); - fprintf(stderr, "\n[VoiceCall TIMER][%s]:\n[%s]\n\t time: [%ld] milli seconds\n", __func__, message, curr_time); -} -#endif - void _vc_core_util_download_test_call(char *result) { int ret; @@ -1090,7 +818,7 @@ void _vc_core_util_download_test_call(char *result) VOICECALL_RETURN_IF_FAIL(result != NULL); - /*create string*/ + /*create string */ snprintf(string, sizeof(string), "/tmp/%s", result); d_call_test = fopen(string, "w"); @@ -1098,13 +826,13 @@ void _vc_core_util_download_test_call(char *result) CALL_ENG_DEBUG(ENG_DEBUG, "FAIL:fopen(%s)", string); return; } - /*ret = fwrite("\0", sizeof(char), 1, d_call_test);*/ - /*CALL_ENG_DEBUG(ENG_DEBUG,"Result:fwrite(%d)", ret);*/ + /*ret = fwrite("\0", sizeof(char), 1, d_call_test); */ + /*CALL_ENG_DEBUG(ENG_DEBUG,"Result:fwrite(%d)", ret); */ ret = fclose(d_call_test); CALL_ENG_DEBUG(ENG_DEBUG, "Result:fwrite(%d)", ret); if (ret != 0) { - CALL_ENG_DEBUG(ENG_DEBUG, "FAIL:fclose\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "FAIL:fclose"); return; } diff --git a/call-engine/include/voice-call-core.h b/call-engine/include/voice-call-core.h index 42028fd..ca8dc07 100755 --- a/call-engine/include/voice-call-core.h +++ b/call-engine/include/voice-call-core.h @@ -29,41 +29,41 @@ extern "C" { #include "voice-call-engine.h" typedef enum _call_vc_core_flags_t { - CALL_VC_CORE_FLAG_NONE = 0x00000000, /**< NONE state */ - CALL_VC_CORE_FLAG_SOS_CALL_ONLY = 0x00000001, /**< SET - Emergency Calls Only, UNSET - All Calls Allowed */ - CALL_VC_CORE_FLAG_MSG_SVC_INIT = 0x00000002, /**< SET - Messenger service intialization done, UNSET - otherwise */ - CALL_VC_CORE_FLAG_FDN_SVC_ENABLED = 0x00000004, /**< SET - FDN enabled, UNSET - otherwise */ - CALL_VC_CORE_FLAG_VOL_CHNGD_BYBT = 0x00000008, /**< SET - volume change request from BT, UNSET - otherwise */ - CALL_VC_CORE_FLAG_BT_EVENT_WAITING = 0x00000010, /**< SET - Waiting for Switch Headset/Phone Event fom Bluetooth, UNSET - otherwise */ - CALL_VC_CORE_FLAG_IT_WAS_LOCKED = 0x00000020, /**< SET - It was locked when voice call app luanched, UNSET - otherwise */ - CALL_VC_CORE_FLAG_UNLOC_BY_SLIDER = 0x00000040, /**< SET - Voice call unlock by slider, UNSET - otherwise */ - CALL_VC_CORE_FLAG_EXPT_APPLET_QUIT = 0x00000080, /**< SET - Thread safe applet quit required, UNSET - otherwise */ - CALL_VC_CORE_FLAG_LANG_CHGD_UPDATE = 0x00000100, /**< SET - UI needs to be updated for language change, UNSET - otherwise */ - CALL_VC_CORE_FLAG_WAIT_SWITCH_FROM_BT = 0x00000200, /**< SET - Don't change path in path_change API, UNSET - change path according to current status */ - CALL_VC_CORE_FLAG_SETUPCALL_FAIL = 0x00000400, /**< SET - Setup call fail.(ex. Emergency call only). UNSET - Normal mo call.*/ - CALL_VC_CORE_FLAG_ACCEPT_BY_BT = 0x00000800, /**< SET - MT call accpeted by BT Headset, UNSET - MT call accept by Phone/ Call ended.*/ - CALL_VC_CORE_FLAG_QC_SIM_INSERTED = 0x00001000, /**< SET - Inserted SIM is QC Test SIM, UNSET - Inserted SIM is Normal SIM.*/ - CALL_VC_CORE_FLAG_MOCALL_END_BY_USER = 0x00002000, /**< SET - MO Call Ended by user, UNSET - MO Call not ended by user.*/ + CALL_VC_CORE_FLAG_NONE = 0x00000000, /**< NONE state */ + CALL_VC_CORE_FLAG_SOS_CALL_ONLY = 0x00000001, /**< SET - Emergency Calls Only, UNSET - All Calls Allowed */ + CALL_VC_CORE_FLAG_MSG_SVC_INIT = 0x00000002, /**< SET - Messenger service intialization done, UNSET - otherwise */ + CALL_VC_CORE_FLAG_FDN_SVC_ENABLED = 0x00000004, /**< SET - FDN enabled, UNSET - otherwise */ + CALL_VC_CORE_FLAG_VOL_CHNGD_BYBT = 0x00000008, /**< SET - volume change request from BT, UNSET - otherwise */ + CALL_VC_CORE_FLAG_BT_EVENT_WAITING = 0x00000010, /**< SET - Waiting for Switch Headset/Phone Event fom Bluetooth, UNSET - otherwise */ + CALL_VC_CORE_FLAG_IT_WAS_LOCKED = 0x00000020, /**< SET - It was locked when voice call app luanched, UNSET - otherwise */ + CALL_VC_CORE_FLAG_UNLOC_BY_SLIDER = 0x00000040, /**< SET - Voice call unlock by slider, UNSET - otherwise */ + CALL_VC_CORE_FLAG_EXPT_APPLET_QUIT = 0x00000080, /**< SET - Thread safe applet quit required, UNSET - otherwise */ + CALL_VC_CORE_FLAG_LANG_CHGD_UPDATE = 0x00000100, /**< SET - UI needs to be updated for language change, UNSET - otherwise */ + CALL_VC_CORE_FLAG_WAIT_SWITCH_FROM_BT = 0x00000200, /**< SET - Don't change path in path_change API, UNSET - change path according to current status */ + CALL_VC_CORE_FLAG_SETUPCALL_FAIL = 0x00000400, /**< SET - Setup call fail.(ex. Emergency call only). UNSET - Normal mo call.*/ + CALL_VC_CORE_FLAG_ACCEPT_BY_BT = 0x00000800, /**< SET - MT call accpeted by BT Headset, UNSET - MT call accept by Phone/ Call ended.*/ + CALL_VC_CORE_FLAG_QC_SIM_INSERTED = 0x00001000, /**< SET - Inserted SIM is QC Test SIM, UNSET - Inserted SIM is Normal SIM.*/ + CALL_VC_CORE_FLAG_MOCALL_END_BY_USER = 0x00002000, /**< SET - MO Call Ended by user, UNSET - MO Call not ended by user.*/ } call_vc_core_flags_t; /** * This enum defines the In Call Supplementary Services State - */ + */ typedef enum _call_vc_core_incall_ss_state_t { - CALL_VC_CORE_SS_NONE, /**< Idle State*/ - CALL_VC_CORE_SS_0, /**< Releases all held calls or Set UDUB for a waiting call*/ - CALL_VC_CORE_SS_1, /**< Releases all active calls and accepts the other(held or waiting) calls*/ - CALL_VC_CORE_SS_1X, /**< Releases a specific active call X*/ - CALL_VC_CORE_SS_2, /**< Places all active calls (if any exist) on hold and accepts the other(held or waiting)call*/ - CALL_VC_CORE_SS_2X, /**< Places all active calls on hold except call X with which communication shall be supported*/ - CALL_VC_CORE_SS_3, /**< Adds a held call to the conversation*/ - CALL_VC_CORE_SS_4, /**< ECT */ - CALL_VC_CORE_SS_USSD /**< USSD */ + CALL_VC_CORE_SS_NONE, /**< Idle State*/ + CALL_VC_CORE_SS_0, /**< Releases all held calls or Set UDUB for a waiting call*/ + CALL_VC_CORE_SS_1, /**< Releases all active calls and accepts the other(held or waiting) calls*/ + CALL_VC_CORE_SS_1X, /**< Releases a specific active call X*/ + CALL_VC_CORE_SS_2, /**< Places all active calls (if any exist) on hold and accepts the other(held or waiting)call*/ + CALL_VC_CORE_SS_2X, /**< Places all active calls on hold except call X with which communication shall be supported*/ + CALL_VC_CORE_SS_3, /**< Adds a held call to the conversation*/ + CALL_VC_CORE_SS_4, /**< ECT */ + CALL_VC_CORE_SS_USSD /**< USSD */ } call_vc_core_incall_ss_state_t; - + /** * This structure defines the details of the DTMF related data handled in document -*/ +*/ typedef struct _voicecall_dtmf_info_t { gboolean bdtmf_queue; /**< TRUE -dtmf queue enabled, FALSE - dtmf quue disabled */ int dtmf_index; /**< index of the current dtmf digit sent */ @@ -71,18 +71,19 @@ typedef struct _voicecall_dtmf_info_t { int dtmf_pause_timer; /**< Timer handle of the DTMF Pause Timer */ gboolean bsat_dtmf; /**< SAT DTMF Type Engine Flag*/ gboolean bsat_hidden; /**< SAT DTMF Hidden Engine Flag*/ + gboolean bdtmf_wait; /**< Wait enabled while sending dtmf string*/ char dtmf_number[VC_PHONE_NUMBER_LENGTH_MAX]; } voicecall_dtmf_info_t; /** * This structure defines voicecall core info - */ + */ typedef struct _call_vc_core_state_t { voicecall_setup_info_t call_setup_info; /**< Info of MO Call */ voicecall_engine_t *pcall_engine; /**< Handle to Voicecall Engine */ voicecall_snd_mgr_t *papp_snd; /**< Handle to Sound Manager */ voicecall_dtmf_info_t dtmf_info; /**< DTMF Info*/ - + unsigned int core_status; /**< call core status */ gboolean bt_connected; /**< TRUE - Bluetooth connected, FALSE - otherwise */ gboolean bdtmf_queue; /**< TRUE -dtmf queue enabled, FALSE - dtmf quue disabled */ @@ -96,9 +97,9 @@ typedef struct _call_vc_core_state_t { guint mo_redial_timer; guint minute_minder_timer; } call_vc_core_state_t; - /** + /** * This struct provides a structure for call incoming info data. - */ + */ typedef struct _call_vc_core_incoming_info_t { int call_handle; int call_type; @@ -112,13 +113,13 @@ typedef struct _call_vc_core_incoming_info_t { int bfwded; int active_line; } call_vc_core_incoming_info_t; - + /** * This function puts the currently active call on hold * * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_engine Handle to voicecall engine - */ + */ inline gboolean voicecall_core_hold_call(voicecall_engine_t *pcall_engine); /** @@ -126,7 +127,7 @@ inline gboolean voicecall_core_hold_call(voicecall_engine_t *pcall_engine); * * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_engine Handle to voicecall engine - */ + */ inline gboolean voicecall_core_retrieve_call(voicecall_engine_t *pcall_engine); /** @@ -134,7 +135,7 @@ inline gboolean voicecall_core_retrieve_call(voicecall_engine_t *pcall_engine); * * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_engine Handle to voicecall engine - */ + */ inline gboolean voicecall_core_swap_calls(voicecall_engine_t *pcall_engine); /** @@ -142,7 +143,7 @@ inline gboolean voicecall_core_swap_calls(voicecall_engine_t *pcall_engine); * * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_engine Handle to voicecall engine - */ + */ inline gboolean voicecall_core_clear_mo_call(voicecall_engine_t *pcall_engine); /** @@ -151,7 +152,7 @@ inline gboolean voicecall_core_clear_mo_call(voicecall_engine_t *pcall_engine); * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_engine Handle to voicecall engine * @param[in] call_handle Handle of the Connected Call to be cleared - */ + */ inline gboolean voicecall_core_clear_connected_call(voicecall_engine_t *pcall_engine, int call_handle); /** @@ -160,7 +161,7 @@ inline gboolean voicecall_core_clear_connected_call(voicecall_engine_t *pcall_en * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_engine Handle to voicecall engine * @param[in] eng_state Engine State to be changed - */ + */ inline gboolean voicecall_core_change_engine_state(voicecall_engine_t *pcall_engine, int eng_state); /** @@ -168,7 +169,7 @@ inline gboolean voicecall_core_change_engine_state(voicecall_engine_t *pcall_eng * * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_engine Handle to voicecall engine - */ + */ inline gboolean voicecall_core_end_mo_call(voicecall_engine_t *pcall_engine); /** @@ -177,7 +178,7 @@ inline gboolean voicecall_core_end_mo_call(voicecall_engine_t *pcall_engine); * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_engine Handle to voicecall engine * @param[out] io_state Voicecall Engine InOut State - */ + */ inline gboolean voicecall_core_get_engine_state(voicecall_engine_t *pcall_engine, int *eng_state); /** @@ -187,15 +188,15 @@ inline gboolean voicecall_core_get_engine_state(voicecall_engine_t *pcall_engine * @param[in] pcall_engine Handle to voicecall engine * @param[out] active_calls TRUE - If active call exists or FALSE If active call doesn't exists * @param[out] held_calls TRUE - If held call exists or FALSE If held call doesn't exists - */ -inline gboolean voicecall_core_is_call_exists(voicecall_engine_t *pcall_engine, gboolean * active_calls, gboolean * held_calls); + */ +inline gboolean voicecall_core_is_call_exists(voicecall_engine_t *pcall_engine, gboolean *active_calls, gboolean *held_calls); /** * This function checks whether incoming call exists or not * * @return Returns TRUE if incoming call exists or FALSE on failure * @param[in] pcall_engine Handle to voicecall engine - */ + */ inline gboolean voicecall_core_is_incoming_call_exists(voicecall_engine_t *pcall_engine); /** @@ -203,7 +204,7 @@ inline gboolean voicecall_core_is_incoming_call_exists(voicecall_engine_t *pcall * * @return Returns TRUE if outgoing call exists or FALSE on failure * @param[in] pcall_engine Handle to voicecall engine - */ + */ inline gboolean voicecall_core_is_outgoing_call_exists(voicecall_engine_t *pcall_engine); /** @@ -211,7 +212,7 @@ inline gboolean voicecall_core_is_outgoing_call_exists(voicecall_engine_t *pcall * * @return Returns TRUE if connected call exists or FALSE on failure * @param[in] pcall_engine Handle to voicecall engine - */ + */ inline gboolean voicecall_core_is_connected_call_exist(voicecall_engine_t *pcall_engine); /** @@ -220,7 +221,7 @@ inline gboolean voicecall_core_is_connected_call_exist(voicecall_engine_t *pcall * @return Returns TRUE if connected call exists or FALSE on failure * @param[in] pcall_engine Handle to voicecall engine * @param[in] group_index Group Index to be searhced - */ + */ inline gboolean voicecall_core_is_connected_call_exist_in_group(voicecall_engine_t *pcall_engine, int group_index); /** @@ -228,7 +229,7 @@ inline gboolean voicecall_core_is_connected_call_exist_in_group(voicecall_engine * * @return Returns TRUE if connected call exists or FALSE on failure * @param[in] pcall_engine Handle to voicecall engine - */ + */ inline gboolean voicecall_core_is_any_call_exists(voicecall_engine_t *pcall_engine); /** @@ -237,7 +238,7 @@ inline gboolean voicecall_core_is_any_call_exists(voicecall_engine_t *pcall_engi * @return Returns TRUE if success or FALSE on failure * @param[in] pcall_engine Handle to voicecall engine * @param[out] ptotal_call_member number of avialble calls - */ + */ inline gboolean voicecall_core_get_total_call_member(voicecall_engine_t *pcall_engine, int *ptotal_call_member); /** @@ -245,7 +246,7 @@ inline gboolean voicecall_core_get_total_call_member(voicecall_engine_t *pcall_e * * @return Returns TRUE if call agent is idle or FALSE on failure * @param[in] pcall_engine Handle to voicecall engine - */ + */ inline gboolean voicecall_core_is_callagent_idle(voicecall_engine_t *pcall_engine); /** @@ -253,7 +254,7 @@ inline gboolean voicecall_core_is_callagent_idle(voicecall_engine_t *pcall_engin * * @return TRUE, if connected calls available and engine is in idle, FALSE otherwise * @param[in] pcall_engine Handle to voicecall engine -*/ +*/ inline gboolean voicecall_core_is_incall_request_possible(voicecall_engine_t *pcall_engine); /** @@ -262,8 +263,9 @@ inline gboolean voicecall_core_is_incall_request_possible(voicecall_engine_t *pc * @return TRUE sucess, FALSE otherwise * @param[in] pcall_engine Handle to voicecall engine * @param[in] audio_path audio path to be changed - */ -inline gboolean voicecall_core_change_audio_path(voicecall_engine_t *pcall_engine, voicecall_audio_path_t audio_path); + * @param[in] bextra_volume extra volume status + */ +inline gboolean voicecall_core_change_audio_path(voicecall_engine_t *pcall_engine, voicecall_audio_path_t audio_path, gboolean bextra_volume); /** * This function sets the voice call audio volume for the given audio path type @@ -272,7 +274,7 @@ inline gboolean voicecall_core_change_audio_path(voicecall_engine_t *pcall_engin * @param[in] pcall_engine Handle to voicecall engine * @param[in] tapi_snd_path audio path for the volume to be set * @param[in] vol_level volume level - */ + */ inline gboolean voicecall_core_set_audio_volume(voicecall_engine_t *pcall_engine, voicecall_audio_path_t tapi_snd_path, int vol_level); /** @@ -281,7 +283,7 @@ inline gboolean voicecall_core_set_audio_volume(voicecall_engine_t *pcall_engine * @return returns TRUE in success , FALSE otherwise * @param[in] pcall_engine Handle to voicecall engine * @param[in] audio_path_type audio path for the volume to be retreived - */ + */ inline gboolean voicecall_core_get_audio_volume(voicecall_engine_t *pcall_engine, voicecall_audio_path_t audio_path_type); /** @@ -290,7 +292,7 @@ inline gboolean voicecall_core_get_audio_volume(voicecall_engine_t *pcall_engine * @return returns TRUE in success , FALSE otherwise * @param[in] pcall_engine Handle to voicecall engine * @param[in] bvoice_mute mute status - */ + */ inline gboolean voicecall_core_set_audio_mute_status(voicecall_engine_t *pcall_engine, gboolean bvoice_mute); /** @@ -299,7 +301,7 @@ inline gboolean voicecall_core_set_audio_mute_status(voicecall_engine_t *pcall_e * @return Returns TRUE if success or FALSE on failure * @param[in] pcall_engine Handle to voicecall engine * @param[out] pcall_handle call handle of the active call - */ + */ inline gboolean voicecall_core_get_zuhause(voicecall_engine_t *pcall_engine, gboolean * bzuhause); /** @@ -309,7 +311,7 @@ inline gboolean voicecall_core_get_zuhause(voicecall_engine_t *pcall_engine, gbo * @param[in] pcall_engine Handle to voicecall engine * @param[in] call_handle Call handle of the call for which the call object is retrieved * @param[out] pcall_object Pointer to the retrived call object info - */ + */ inline gboolean voicecall_core_get_call_object(voicecall_engine_t *pcall_engine, int call_handle, call_vc_call_objectinfo_t * pcall_object); /** @@ -319,7 +321,7 @@ inline gboolean voicecall_core_get_call_object(voicecall_engine_t *pcall_engine, * @param[in] pcall_engine Handle to voicecall engine * @param[in] sat_rqst_resp_type sat rqst/resp type to be set by the client * @param[in] sat_response_type sat response type to be sent to sat - */ + */ inline gboolean voicecall_core_send_sat_response(voicecall_engine_t *pcall_engine, voicecall_engine_sat_rqst_resp_type sat_rqst_resp_type, call_vc_sat_reponse_type_t sat_response_type); /** @@ -328,7 +330,7 @@ inline gboolean voicecall_core_send_sat_response(voicecall_engine_t *pcall_engin * @return Returns TRUE if success or FALSE on failure * @param[in] pcall_core Handle to voicecall core * @param[out] pactive_member_num number of active call members available - */ + */ inline gboolean voicecall_core_get_active_call_member(call_vc_core_state_t *pcall_core, int *pactive_member_num); /** @@ -336,7 +338,7 @@ inline gboolean voicecall_core_get_active_call_member(call_vc_core_state_t *pcal * * @return Returns TRUE If Conference call can be made or FALSE if not * @param[in] papp_document Handle to Application Document - */ + */ inline gboolean voicecall_core_is_conf_call_possible(call_vc_core_state_t *pcall_core); /** @@ -344,7 +346,7 @@ inline gboolean voicecall_core_is_conf_call_possible(call_vc_core_state_t *pcall * * @return Returns TRUE If transfer call can be made or FALSE if not * @param[in] pcall_core Handle to voicecall core - */ + */ inline gboolean voicecall_core_is_transfer_call_possible(call_vc_core_state_t *pcall_core); /** @@ -353,7 +355,7 @@ inline gboolean voicecall_core_is_transfer_call_possible(call_vc_core_state_t *p * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_core Handle to voicecall core * @param[in] pszInput Number to be verified - */ + */ inline gboolean voicecall_core_is_valid_sscode(call_vc_core_state_t *pcall_core, const char *pszInput); #ifdef _CPHS_DEFINED_ @@ -363,7 +365,7 @@ inline gboolean voicecall_core_is_valid_sscode(call_vc_core_state_t *pcall_core, * @return TRUE if queried status is enabled, FALSE otherwise * @param[in] pcall_core Handle to voicecall core * @param[in] csp_service csp service to be queried - */ + */ inline gboolean voicecall_core_get_cphs_csp_status(call_vc_core_state_t *pcall_core, voicecall_cphs_csp_service csp_service); #endif @@ -372,7 +374,7 @@ inline gboolean voicecall_core_get_cphs_csp_status(call_vc_core_state_t *pcall_c * * @return Returns TRUE if all the calls are ended or FALSE on failure * @param[in] pcall_core Handle to voicecall cor - */ + */ inline gboolean voicecall_core_set_check_ss_on_end(call_vc_core_state_t *pcall_core); /** @@ -380,12 +382,12 @@ inline gboolean voicecall_core_set_check_ss_on_end(call_vc_core_state_t *pcall_c * * @return Returns TRUE if all the calls are ended or FALSE on failure * @param[in] pcall_core Handle to voicecall core - */ + */ inline void voicecall_core_extract_phone_number(const char *source_tel_number, char *phone_number, const int buf_size); /************************ * inline function END -**************************/ +**************************/ void voicecall_core_set_status(call_vc_core_state_t *pcall_core, call_vc_core_flags_t core_flags, gboolean bstatus); gboolean voicecall_core_get_status(call_vc_core_state_t *pcall_core, call_vc_core_flags_t core_flags); @@ -395,12 +397,9 @@ gboolean voicecall_core_get_status(call_vc_core_state_t *pcall_core, call_vc_cor * @return Returns TRUE If transfer call can be made or FALSE if not * @param[in] pcall_core Handle to voicecall core * @param[in] incall_ss_state state of the In Call Supplementary Service - */ + */ gboolean voicecall_core_start_incall_ss(call_vc_core_state_t *pcall_core, call_vc_core_incall_ss_state_t incall_ss_state); -#ifdef VC_ENG_FDN_SUPPORT -gboolean voicecall_core_check_fdn_status(call_vc_core_state_t *pcall_core); -#endif gboolean voicecall_core_set_to_default(call_vc_core_state_t *pcall_core); /** @@ -417,8 +416,8 @@ int voicecall_core_init(call_vc_core_state_t *pcall_core); * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_core Handle to voicecall core * @param[in] bemergency emergency call or not from dialer - * @param[in] - */ + * @param[in] + */ gboolean voicecall_core_setup_call(call_vc_core_state_t *pcall_core, gboolean bemergency); /** @@ -426,7 +425,7 @@ gboolean voicecall_core_setup_call(call_vc_core_state_t *pcall_core, gboolean be * * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_core Handle to voicecall core - */ + */ gboolean voicecall_core_make_call(call_vc_core_state_t *pcall_core); gboolean voicecall_core_process_sat_setup_call(vcall_engine_sat_setup_call_info_t *sat_setup_call_info); @@ -435,8 +434,8 @@ gboolean voicecall_core_process_sat_setup_call(vcall_engine_sat_setup_call_info_ * * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_core Handle to voicecall core - * @param[in] -*/ + * @param[in] +*/ gboolean voicecall_core_process_incoming_call(call_vc_core_incoming_info_t *incoming_call_info); /** @@ -444,8 +443,8 @@ gboolean voicecall_core_process_incoming_call(call_vc_core_incoming_info_t *inco * * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_core Handle to voicecall core - * @param[in] -*/ + * @param[in] +*/ gboolean voicecall_core_answer_call(call_vc_core_state_t *pcall_core, gboolean auto_accept); /** @@ -453,7 +452,7 @@ gboolean voicecall_core_answer_call(call_vc_core_state_t *pcall_core, gboolean a * * @return Returns TRUE -if answer is sucess, FALSE - otherwise * @param[in] pcall_core Handle to voicecall core - */ + */ gboolean voicecall_core_answer_call_bytype(call_vc_core_state_t *pcall_core, voicecall_answer_type_t answer_type); /** @@ -462,7 +461,7 @@ gboolean voicecall_core_answer_call_bytype(call_vc_core_state_t *pcall_core, voi * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_core Handle to voicecall core * @param[in] bUDUB TRUE - set UDUB, FALSE - reject call -*/ +*/ gboolean voicecall_core_reject_mt(call_vc_core_state_t *pcall_core, gboolean bUDUB); /** @@ -470,7 +469,7 @@ gboolean voicecall_core_reject_mt(call_vc_core_state_t *pcall_core, gboolean bUD * * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_core Handle to voicecall core - */ + */ gboolean voicecall_core_end_call(call_vc_core_state_t *pcall_core); /** @@ -479,7 +478,7 @@ gboolean voicecall_core_end_call(call_vc_core_state_t *pcall_core); * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_core Handle to voicecall core * @param[in] call_handle handle of the call to be ended - */ + */ gboolean voicecall_core_end_call_by_handle(call_vc_core_state_t *pcall_core, int call_handle); /** @@ -487,7 +486,7 @@ gboolean voicecall_core_end_call_by_handle(call_vc_core_state_t *pcall_core, int * * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_core Handle to voicecall core - */ + */ gboolean voicecall_core_end_all_calls(call_vc_core_state_t *pcall_core); /** @@ -495,7 +494,7 @@ gboolean voicecall_core_end_all_calls(call_vc_core_state_t *pcall_core); * * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_core Handle to voicecall core - */ + */ gboolean voicecall_core_end_all_active_calls(call_vc_core_state_t *pcall_core); /** @@ -503,65 +502,65 @@ gboolean voicecall_core_end_all_active_calls(call_vc_core_state_t *pcall_core); * * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_core Handle to voicecall core - */ + */ gboolean voicecall_core_end_all_held_calls(call_vc_core_state_t *pcall_core); /** * This function cancel outgoing call * * @return Returns TRUE -if answer is sucess, FALSE - otherwise - * @param[in] pcall_core Handle to voicecall core - */ + * @param[in] pcall_core Handle to voicecall core + */ gboolean voicecall_core_cancel_call(call_vc_core_state_t *pcall_core); /** * This function process hold/retrive/swap conntected call * * @return Returns TRUE -if answer is sucess, FALSE - otherwise - * @param[in] pcall_core Handle to voicecall core - */ + * @param[in] pcall_core Handle to voicecall core + */ gboolean voicecall_core_process_hold_call(call_vc_core_state_t *pcall_core); /** * This function sets up a conference call * * @return Returns TRUE on success or FALSE on failure - * @param[in] pcall_core Handle to voicecall core - */ + * @param[in] pcall_core Handle to voicecall core + */ gboolean voicecall_core_setup_conference(call_vc_core_state_t *pcall_core); /** * This function splits the call corressponding to the given call handle and makes a private call * * @return Returns TRUE on success or FALSE on failure - * @param[in] pcall_core Handle to voicecall core + * @param[in] pcall_core Handle to voicecall core * @param[in] call_handle Call to be splitted from the conference call - */ + */ gboolean voicecall_core_make_private_call(call_vc_core_state_t *pcall_core, int call_handle); /** * This function transfers the call from active call to the held call * * @return Returns TRUE on success or FALSE on failure - * @param[in] pcall_core Handle to voicecall core - */ + * @param[in] pcall_core Handle to voicecall core + */ gboolean voicecall_core_transfer_calls(call_vc_core_state_t *pcall_core); /** * This function sends a dtmf string * * @return Returns TRUE on success or FALSE on failure - * @param[in] pcall_core Handle to voicecall core + * @param[in] pcall_core Handle to voicecall core * @param[in] dtmf_string dtmf string to be sent - */ + */ gboolean voicecall_core_send_dtmf(call_vc_core_state_t *pcall_core, char *dtmf_string); /** -* This function stops sound alert +* This function stops sound alert in case of reject with msg * * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_core Handle to voicecall core -*/ +*/ gboolean voicecall_core_stop_alert(call_vc_core_state_t *pcall_core); /** @@ -570,7 +569,7 @@ gboolean voicecall_core_stop_alert(call_vc_core_state_t *pcall_core); * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_core Handle to voicecall core * @param[in] bheadset TRUE or FALSE -*/ +*/ inline gboolean voicecall_core_prepare_redial(call_vc_core_state_t *pcall_core, int call_handle); gboolean voicecall_core_start_redial(call_vc_core_state_t *pcall_core, int manual_redial); gboolean voicecall_core_stop_redial(call_vc_core_state_t *pcall_core); @@ -581,7 +580,7 @@ gboolean voicecall_core_stop_redial(call_vc_core_state_t *pcall_core); * @return Returns in call ss state #vcui_app_incall_ss_state_t * @param[in] pcall_core Handle to voicecall core * @param[in] number number to be parsed - */ + */ call_vc_core_incall_ss_state_t voicecall_core_parse_incall_ss_string(call_vc_core_state_t *pcall_core, char *number); /** @@ -590,7 +589,7 @@ call_vc_core_incall_ss_state_t voicecall_core_parse_incall_ss_string(call_vc_cor * @return Returns TRUE If transfer call can be made or FALSE if not * @param[in] pcall_core Handle to voicecall core * @param[in] incall_ss_state state of the In Call Supplementary Service - */ + */ gboolean voicecall_core_start_incall_ss(call_vc_core_state_t *pcall_core, call_vc_core_incall_ss_state_t incall_ss_state); /** @@ -599,30 +598,36 @@ gboolean voicecall_core_start_incall_ss(call_vc_core_state_t *pcall_core, call_v * @return Returns TRUE If transfer call can be made or FALSE if not * @param[in] pcall_core Handle to voicecall core * @param[in] pdialled_number dial number -*/ +*/ void voicecall_core_process_incall_ss(call_vc_core_state_t *pcall_core, char *pdialled_number); -#ifdef PDIAL_SEND_DTMF /** *** This function sends the dtmf number *** *** @return Returns TRUE on success *** @param[in] puser_data pointer to user data - **/ + **/ gboolean voicecall_core_send_phone_number_dtmf(gpointer puser_data); -#endif /** *** This function change sound path *** *** @return Returns TRUE on success *** @param[in] sound_path - **/ + **/ gboolean voicecall_core_change_sound_path(call_vc_core_state_t *pcall_core, voicecall_snd_audio_type_t sound_path); gboolean voicecall_core_get_sound_path(call_vc_core_state_t *pcall_core, int *sound_path); +/** + * This function processed the supplementary services while on call + * + * @return Returns TRUE If transfer call can be made or FALSE if not + * @param[in] pcall_core Handle to voicecall core + */ +void voicecall_core_process_dtmf_send_status(call_vc_core_state_t *pcall_core, gboolean bsuccess); + #ifdef __cplusplus -} +} #endif /* __cplusplus */ #endif /* _VOICE_CALL_CORE_H_ */ diff --git a/call-engine/include/voice-call-dbus.h b/call-engine/include/voice-call-dbus.h old mode 100755 new mode 100644 index 01be575..362a7c0 --- a/call-engine/include/voice-call-dbus.h +++ b/call-engine/include/voice-call-dbus.h @@ -15,8 +15,8 @@ */ -#ifndef _VOICE_CALLD_H_ -#define _VOICE_CALLD_H_ +#ifndef _VOICE_CALL_DBUS_H_ +#define _VOICE_CALL_DBUS_H_ #ifdef __cplusplus extern "C" { diff --git a/call-engine/include/voice-call-device.h b/call-engine/include/voice-call-device.h index 453dde1..7d55a43 100755 --- a/call-engine/include/voice-call-device.h +++ b/call-engine/include/voice-call-device.h @@ -51,27 +51,4 @@ gboolean _voicecall_dvc_get_earjack_connected(void); */ void _voicecall_dvc_control_lcd_state(voicecall_lcd_control_t state); -/** - * This function return the proximity sensor status. - * - * @return int proximity sensor status. 1:new 2:far - * @param[in] void - */ -int _voicecall_dvc_get_proximity_sensor_state(void); - - /** - * This function init proximity sensor. - * - * @return gboolean init success or not/ - * @param[in] void * - */ -gboolean _voicecall_dvc_proximity_sensor_init(void *data); - -/** - * This function init proximity sensor. - * - * @return gboolean init success or not/ - * @param[in] void * - */ -gboolean _voicecall_dvc_proximity_sensor_deinit(void); #endif diff --git a/call-engine/include/voice-call-engine-msg.h b/call-engine/include/voice-call-engine-msg.h index 6a2c14b..a498953 100755 --- a/call-engine/include/voice-call-engine-msg.h +++ b/call-engine/include/voice-call-engine-msg.h @@ -81,8 +81,7 @@ typedef enum _vc_engine_msgid_t { VC_ENGINE_MSG_ACCEPT_CHOICE_BOX_TO_UI, /**< Accept choice box to UI */ VC_ENGINE_MSG_MESSAGE_BOX_TO_UI, /**< Create Message box */ VC_ENGINE_MSG_REDIAL_TO_UI, /* To send the redial message to the UI */ - VC_ENGINE_MSG_STOPPED_RECORDING_TO_UI, /* Save file event sent to the UI */ - VC_ENGINE_MSG_CREATE_NEWVOICEFILE_TO_UI, /* User input for voice_recording */ + VC_ENGINE_MSG_NOTI_WBAMR_TO_UI, /* WBAMR notification */ VC_ENGINE_MSG_MAX_TO_UI } vc_engine_msgid_t; @@ -117,10 +116,8 @@ typedef enum _vc_engine_msgbox_string_id_t { IDS_CALL_POP_VOICE_CALL_IS_NOT_ALLOWED_DURING_VIDEO_CALL, IDS_CALL_POP_WAITING_ACTIVE, IDS_CALL_BODY_CALLENDED, -#ifdef PDIAL_SEND_DTMF IDS_CALL_POP_INVALID_DTMF, IDS_CALL_POP_DTMF_SENT, -#endif IDS_CALL_MAX } vc_engine_msgbox_string_id_t; @@ -165,6 +162,7 @@ typedef struct { int brejected; int brestricted; int bpayphone; + int bday_remaining_days; char call_num[VC_PHONE_NUMBER_LENGTH_MAX]; char call_name[VC_DISPLAY_NAME_LENGTH_MAX]; char call_file_path[VC_IMAGE_PATH_LENGTH_MAX]; @@ -175,6 +173,7 @@ typedef struct { vc_engine_msg_hdr_type hdr; int contact_index; int phone_type; + int bday_remaining_days; char call_num[VC_PHONE_NUMBER_LENGTH_MAX]; char call_name[VC_DISPLAY_NAME_LENGTH_MAX]; char call_file_path[VC_IMAGE_PATH_LENGTH_MAX]; @@ -276,18 +275,15 @@ typedef struct { typedef struct { vc_engine_msg_hdr_type hdr; - int type; - char saved_filename[VC_RECORD_FULL_FILE_PATH_LENGTH]; -} vc_engine_stopped_recording_type; - -#ifdef PDIAL_SEND_DTMF -typedef struct { - vc_engine_msg_hdr_type hdr; gboolean bstatus; int string_id; char display_string[VC_DISPLAY_NAME_LENGTH_MAX]; } vc_engine_dtmf_ack_type; -#endif + +typedef struct { + vc_engine_msg_hdr_type hdr; + int bstatus; +} vc_engine_wbamr_status_type; typedef union { vc_engine_msg_hdr_type hdr; @@ -334,12 +330,8 @@ typedef union { vc_engine_accept_choice_box_type accept_choice_box; vc_engine_msg_box_type msg_box; vc_engine_redial_type redial; - vc_engine_stopped_recording_type stopped_recording; - vc_engine_common_type voice_record; - -#ifdef PDIAL_SEND_DTMF vc_engine_dtmf_ack_type dtmf_progress; -#endif + vc_engine_wbamr_status_type wbamr_status; } vc_engine_msg_type; typedef enum { @@ -396,6 +388,7 @@ typedef union { vcui_common_type accept; vcui_accept_with_type accept_with_type; vcui_common_type reject; + vcui_common_type reject_with_msg; vcui_common_type end; vcui_common_with_handle_type end_with_handle; vcui_common_type end_all_calls; @@ -418,8 +411,6 @@ typedef union { vcui_common_type headset_off; vcui_common_with_redial_type redial_type; vcui_common_type redial_stop; - vcui_common_type record_stop; - vcui_common_type record_start; vcui_dtmf_type dtmf; } vcui_msg_type; #ifdef __cplusplus diff --git a/call-engine/include/voice-call-engine.h b/call-engine/include/voice-call-engine.h index 643f27b..899735e 100755 --- a/call-engine/include/voice-call-engine.h +++ b/call-engine/include/voice-call-engine.h @@ -67,7 +67,7 @@ typedef enum _vcall_engine_api_result_t { VCALL_ERROR_MAX } vcall_engine_api_result_t; -/** +/** * This enum defines call answer types */ typedef enum _vcall_engine_answer_type_t { @@ -77,7 +77,7 @@ typedef enum _vcall_engine_answer_type_t { VCALL_ENGINE_ANSWER_RELEASE_ALL_AND_ACCEPT /**< Releases the all calls and accept the call (END and CONNECTED will be sent to client) */ } vcall_engine_answer_type_t; -/** +/** * This enum defines call release types */ typedef enum _vcall_engine_release_type_t { @@ -86,7 +86,18 @@ typedef enum _vcall_engine_release_type_t { VCALL_ENGINE_RELEASE_ALL_CALLS, /**< To end all available calls(active,held,incoming/outgoing*/ } vcall_engine_release_type_t; -/** +/** +* This enum defines the command type sent by recorder to the client view through update signal +*/ +typedef enum _vcall_engine_record_stop_type_t { + VCALL_ENGINE_RECORD_STOP_BY_NORMAL, /**< BY_NORMAL*/ + VCALL_ENGINE_RECORD_STOP_BY_MAX_SIZE, /**< by MAX_SIZE*/ + VCALL_ENGINE_RECORD_STOP_BY_NO_FREE_SPACE, /**< BY_NO_FREE_SPACE*/ + VCALL_ENGINE_RECORD_STOP_BY_TIME_LIMIT, /**< BY_TIME_LIMIT*/ + VCALL_ENGINE_RECORD_STOP_ERROR, /**< ERROR*/ +} vcall_engine_record_stop_type_t; + +/** * This enum defines call answer types */ typedef enum _vcall_engine_vol_type_t { @@ -101,9 +112,8 @@ typedef enum _vcall_engine_vol_type_t { typedef enum _vcall_engine_audio_type_t { VCALL_ENGINE_AUDIO_NONE, /**< none*/ VCALL_ENGINE_AUDIO_SPEAKER, /**< System LoudSpeaker Audio */ - VCALL_ENGINE_AUDIO_RECEIVER, /**< System receiver Audio */ + VCALL_ENGINE_AUDIO_RECEIVER_EARJACK, /**< System receiver or earjack Audio */ VCALL_ENGINE_AUDIO_HEADSET, /**< System Headset Audio */ - VCALL_ENGINE_AUDIO_EARJACK, /**< System Earjack Audio */ VCALL_ENGINE_AUDIO_MAX, } vcall_engine_audio_type_t; @@ -125,7 +135,7 @@ typedef enum { VC_LCD_ON_UNLOCK, } voicecall_lcd_control_t; -/** +/** * This struct provides a structure for call setup info data. */ typedef struct _vcall_engine_setup_info_t { @@ -139,7 +149,7 @@ typedef struct _vcall_engine_setup_info_t { char call_full_file_path[VC_IMAGE_PATH_LENGTH_MAX]; } vcall_engine_setup_info_t; -/** +/** * This struct provides a structure for sat setup call info data. */ typedef struct _vcall_engine_sat_setup_call_info_t { @@ -150,7 +160,7 @@ typedef struct _vcall_engine_sat_setup_call_info_t { unsigned int duration; /***/ @@ -34,6 +35,26 @@ typedef struct { } voicecall_contact_info_t; /** + * This function gets contact info from phone number + * + * @return gboolean + * @param[in] phonenumber phone number + * @param[out] ct_info contact info + */ +gboolean voicecall_service_contact_info_by_number(char *phonenumber, voicecall_contact_info_t * ct_info); + +/** + * This function gets contact info from contact id + * + * @return gboolean + * @param[in] phonenumber phone number + * @param[in] contact_id contact id + * @param[in] storage_type storage type + * @param[out] ct_info contact info + */ +gboolean voicecall_service_contact_info_by_contact_id(char *phonenumber, int contact_id, voicecall_contact_info_t * ct_info); + +/** * This function on the loud speaker state * * @return gboolean @@ -74,4 +95,5 @@ gboolean voicecall_service_mute_status_off(call_vc_core_state_t *pcall_core); * @param[in] volume_level volume level to be set */ gboolean voicecall_service_set_volume(call_vc_core_state_t *pcall_core, voicecall_snd_volume_alert_type_t vol_alert_type, int volume_level); + #endif diff --git a/call-engine/include/voice-call-sound.h b/call-engine/include/voice-call-sound.h index e67ae0f..f4c399b 100755 --- a/call-engine/include/voice-call-sound.h +++ b/call-engine/include/voice-call-sound.h @@ -25,7 +25,7 @@ extern "C" { #include #include #include -#include +#include #include #include #include @@ -33,6 +33,8 @@ extern "C" { #define VOICE_CALL_SND_RINGTONE_PATH_LEN 256 /**pcall_engine; - CALL_ENG_DEBUG(ENG_DEBUG, "bt_headset_connect_status = %d \n", bt_headset_connect_status); + CALL_ENG_DEBUG(ENG_DEBUG, "bt_headset_connect_status = %d", bt_headset_connect_status); if (FALSE == bt_headset_connect_status) { voicecall_core_set_status(pcall_core, CALL_VC_CORE_FLAG_BT_EVENT_WAITING, FALSE); } if (bt_headset_connect_status == pcall_core->bt_connected) { - CALL_ENG_DEBUG(ENG_DEBUG, "No change in state, Ignoring Event \n"); - CALL_ENG_DEBUG(ENG_DEBUG, "bt_headset_connect_status = %d \n", bt_headset_connect_status); + CALL_ENG_DEBUG(ENG_DEBUG, "No change in state, Ignoring Event"); + CALL_ENG_DEBUG(ENG_DEBUG, "bt_headset_connect_status = %d", bt_headset_connect_status); return; } pcall_core->bt_connected = bt_headset_connect_status; @@ -113,7 +111,7 @@ static void __vc_bt_handle_connectivity_event(call_vc_core_state_t *pcall_core, /*Check the Call Status and Send Response event to the Bluetooth */ int call_handle = -1; - CALL_ENG_DEBUG(ENG_DEBUG, "BT connected, Not changing the sound status \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "BT connected, Not changing the sound status"); /* Headset is connected, Set the Sound Status to Headset and change the path only incase of mocall and connected call */ @@ -121,7 +119,7 @@ static void __vc_bt_handle_connectivity_event(call_vc_core_state_t *pcall_core, if (call_handle != -1) { call_vc_call_objectinfo_t callobject_info; - CALL_ENG_DEBUG(ENG_DEBUG, "Incoming Call Exists, call handle = %d \n", call_handle); + CALL_ENG_DEBUG(ENG_DEBUG, "Incoming Call Exists, call handle = %d", call_handle); voicecall_core_get_call_object(pcall_engine, call_handle, &callobject_info); @@ -134,7 +132,7 @@ static void __vc_bt_handle_connectivity_event(call_vc_core_state_t *pcall_core, if (call_handle != -1) { int io_state = VC_INOUT_STATE_NONE; - CALL_ENG_DEBUG(ENG_DEBUG, "Outgoing Call Exists, call handle = %d \n", call_handle); + CALL_ENG_DEBUG(ENG_DEBUG, "Outgoing Call Exists, call handle = %d", call_handle); _vc_core_engine_status_get_engine_iostate(pcall_engine, &io_state); switch (io_state) { @@ -151,15 +149,13 @@ static void __vc_bt_handle_connectivity_event(call_vc_core_state_t *pcall_core, case VC_INOUT_STATE_OUTGOING_WAIT_CONNECTED: { _vc_bt_send_response_to_bt(pcall_core, BT_AG_RES_CALL_REMOTE_RINGING, call_handle, NULL); -#ifdef _NEW_SND_ voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_BT); _vc_bt_request_switch_headset_path(pcall_core, TRUE); -#endif } break; default: { - CALL_ENG_DEBUG(ENG_DEBUG, "Engine not in desired IO State, Current IO State: %d \n", io_state); + CALL_ENG_DEBUG(ENG_DEBUG, "Engine not in desired IO State, Current IO State: %d", io_state); return; } break; @@ -170,9 +166,9 @@ static void __vc_bt_handle_connectivity_event(call_vc_core_state_t *pcall_core, _vc_core_engine_status_get_call_handle_bytype(pcall_engine, VC_CONNECTED_CALL, &call_handle); if (call_handle != -1) { - CALL_ENG_DEBUG(ENG_DEBUG, "Connected Call Exists, call handle = %d \n", call_handle); + CALL_ENG_DEBUG(ENG_DEBUG, "Connected Call Exists, call handle = %d", call_handle); - CALL_ENG_DEBUG(ENG_DEBUG, "BT connected, Not changing the path in bt connect event\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "BT connected, Not changing the path in bt connect event"); _vc_bt_send_response_to_bt(pcall_core, BT_AG_RES_CALL_CONNECT, call_handle, NULL); } @@ -180,57 +176,27 @@ static void __vc_bt_handle_connectivity_event(call_vc_core_state_t *pcall_core, } else { vc_engine_headset_status_type event_data; -#ifdef _NEW_SND_ if (voicecall_snd_get_path_status(pcall_core->papp_snd) == VOICE_CALL_SND_PATH_BT) { - if (_voicecall_dvc_get_earjack_connected() == TRUE) { - voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_EARJACK); - } else { - voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_RECEIVER); - } - + voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_RECEIVER_EARJACK); + /* Headset is disconnected, so voice sound path should be changed to phone. */ voicecall_snd_set_status(pcall_core->papp_snd, VOICE_CALL_AUDIO_HEADSET, FALSE); if (voicecall_core_is_incoming_call_exists(pcall_engine)) { - if (pcall_core->papp_snd->bmute_play == TRUE) { - voicecall_snd_change_mm_path(pcall_core->papp_snd, VOICE_CALL_MM_MUTE_PLAY); - } else { - voicecall_snd_change_mm_path(pcall_core->papp_snd, VOICE_CALL_MM_RING_TONE); - } + sound_manager_call_session_set_mode(pcall_core->papp_snd->psnd_session, SOUND_CALL_SESSION_MODE_RINGTONE); } else { if (voicecall_core_is_outgoing_call_exists(pcall_engine) || (voicecall_core_is_connected_call_exist(pcall_engine))) { voicecall_snd_change_path(pcall_core->papp_snd); } else { - CALL_ENG_DEBUG(ENG_ERR, "No valid calls, not changing the path \n"); + CALL_ENG_DEBUG(ENG_ERR, "No valid calls, not changing the path"); } } } else { - CALL_ENG_DEBUG(ENG_ERR, "BT disconnected when path is not on BT. Do NOT change path. only update UI"); + CALL_ENG_DEBUG(ENG_ERR, "BT disconnected when path is not on BT. Do NOT change path. only update UI"); } - - memset(&event_data, 0, sizeof(event_data)); - event_data.bstatus = FALSE; - vcall_engine_send_event_to_client(VC_ENGINE_MSG_HEADSET_STATUS_TO_UI, (void *)&event_data); -#else + memset(&event_data, 0, sizeof(event_data)); event_data.bstatus = FALSE; vcall_engine_send_event_to_client(VC_ENGINE_MSG_HEADSET_STATUS_TO_UI, (void *)&event_data); - - /* Headset is disconnected, so voice sound path should be changed to phone. */ - voicecall_snd_set_status(pcall_core->papp_snd, VOICE_CALL_AUDIO_HEADSET, FALSE); - if (voicecall_core_is_incoming_call_exists(pcall_engine)) { - if (pcall_core->papp_snd->bmute_play == TRUE) { - voicecall_snd_change_mm_path(pcall_core->papp_snd, VOICE_CALL_MM_MUTE_PLAY); - } else { - voicecall_snd_change_mm_path(pcall_core->papp_snd, VOICE_CALL_MM_RING_TONE); - } - } else { - if (voicecall_core_is_outgoing_call_exists(pcall_engine) || (voicecall_core_is_connected_call_exist(pcall_engine))) { - voicecall_snd_change_path(pcall_core->papp_snd); - } else { - CALL_ENG_DEBUG(ENG_ERR, "No valid calls, not changing the path \n"); - } - } -#endif } } @@ -243,49 +209,28 @@ gboolean _vc_bt_switch_headset_path(call_vc_core_state_t *pcall_core, gboolean b voicecall_snd_mgr_t *papp_snd = pcall_core->papp_snd; voicecall_engine_t *pcall_engine = pcall_core->pcall_engine; - CALL_ENG_DEBUG(ENG_DEBUG, "bheadset = %d,bsend_bt_response = %d \n", bheadset, bsend_bt_response); + CALL_ENG_DEBUG(ENG_DEBUG, "bheadset = %d,bsend_bt_response = %d", bheadset, bsend_bt_response); -#ifdef _NEW_SND_ CALL_ENG_DEBUG(ENG_DEBUG, "b_user_rqst_path_change(%d)", b_user_rqst_path_change); if (b_user_rqst_path_change == FALSE) { if (TRUE == bheadset) { voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_BT); - } - else { - int earjack_status = -1; - if (!vconf_get_int(VCONFKEY_SYSMAN_EARJACK, &earjack_status)) { - CALL_ENG_DEBUG(ENG_DEBUG, "earjack_status:[%d]\n", earjack_status); - if (earjack_status == VCONFKEY_SYSMAN_EARJACK_REMOVED) { - voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_RECEIVER); - } else { - voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_EARJACK); - } - } else { - CALL_ENG_DEBUG(ENG_ERR, "vconf_get_int fail"); - voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_RECEIVER); - } + } else { + voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_RECEIVER_EARJACK); } } else { CALL_ENG_DEBUG(ENG_DEBUG, "Don't set path_status.. rqst from User. Already setted."); } -#else - /*TODO Check whehter the follwing check and set status to be done inside if((TRUE == bconnected_call_exists) || (TRUE == bmo_call_exists)) */ - /*If Loud Speaker is ON, Change to Normal when Bluetooth Headset is switched ON */ - if ((TRUE == bheadset) && (TRUE == voicecall_snd_get_status(papp_snd, VOICE_CALL_AUDIO_SPEAKER))) { - voicecall_snd_set_status(papp_snd, VOICE_CALL_AUDIO_SPEAKER, FALSE); - } - voicecall_snd_set_status(papp_snd, VOICE_CALL_AUDIO_HEADSET, bheadset); -#endif /*Donot change the path for MT Call. Change the Audio Path only for MO and Connected calls */ if ((TRUE == voicecall_core_is_connected_call_exist(pcall_engine)) || (TRUE == voicecall_core_is_outgoing_call_exists(pcall_engine))) { - CALL_ENG_DEBUG(ENG_DEBUG, "Changing the Path on BT Request \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Changing the Path on BT Request"); voicecall_snd_change_path_real(papp_snd); /*Send Response to BT only if the path is changed */ if (TRUE == bsend_bt_response) { bt_event = (TRUE == bheadset) ? BT_AG_RES_SWITCH_TO_HEADSET : BT_AG_RES_SWITCH_TO_PHONE; - CALL_ENG_DEBUG(ENG_DEBUG, "Sending BT Response bt_event: %d \n", bt_event); + CALL_ENG_DEBUG(ENG_DEBUG, "Sending BT Response bt_event: %d", bt_event); _vc_bt_send_response_to_bt(pcall_core, bt_event, -1, NULL); } return TRUE; @@ -308,17 +253,17 @@ void _vc_bt_request_switch_headset_path(call_vc_core_state_t *pcall_core, gboole connectivity_bt_ag_res_t bt_event = BT_AG_RES_SWITCH_TO_PHONE; voicecall_engine_t *pcall_engine = pcall_core->pcall_engine; - CALL_ENG_DEBUG(ENG_DEBUG, "..\n"); + CALL_ENG_DEBUG(ENG_DEBUG, ".."); /*Donot change the path for MT Call. Change the Audio Path only for MO and Connected calls */ if ((TRUE == voicecall_core_is_connected_call_exist(pcall_engine)) || (TRUE == voicecall_core_is_outgoing_call_exists(pcall_engine))) { bt_event = (TRUE == bheadset) ? BT_AG_RES_SWITCH_TO_HEADSET : BT_AG_RES_SWITCH_TO_PHONE; - CALL_ENG_DEBUG(ENG_DEBUG, "Sending BT Response bt_event: %d \n", bt_event); + CALL_ENG_DEBUG(ENG_DEBUG, "Sending BT Response bt_event: %d", bt_event); voicecall_core_set_status(pcall_core, CALL_VC_CORE_FLAG_BT_EVENT_WAITING, TRUE); _vc_bt_send_response_to_bt(pcall_core, bt_event, -1, NULL); } else { - CALL_ENG_DEBUG(ENG_ERR, "No Valid calls to switch path \n"); + CALL_ENG_DEBUG(ENG_ERR, "No Valid calls to switch path"); } } @@ -334,11 +279,11 @@ gboolean _vc_bt_handle_bt_events(call_vc_core_state_t *pcall_core, connectivity_ VOICECALL_RETURN_FALSE_IF_FAIL(pcall_core != NULL); VOICECALL_RETURN_FALSE_IF_FAIL(pbt_info != NULL); - CALL_ENG_DEBUG(ENG_DEBUG, "Event: %s(%d) \n", gszbt_req_event[pbt_info->param1], pbt_info->param1); + CALL_ENG_DEBUG(ENG_DEBUG, "Event: %s(%d)", gszbt_req_event[pbt_info->param1], pbt_info->param1); /*HS Connection not required for sending response to BT_AG_REQ_CALL_STATUS */ if ((FALSE == pcall_core->bt_connected) && (BT_AG_REQ_CALL_STATUS != pbt_info->param1)) { - CALL_ENG_DEBUG(ENG_ERR, "BT not connected, Ignoring BT Events, BT Event= %d \n", pbt_info->param1); + CALL_ENG_DEBUG(ENG_ERR, "BT not connected, Ignoring BT Events, BT Event= %d", pbt_info->param1); return TRUE; } @@ -356,24 +301,17 @@ gboolean _vc_bt_handle_bt_events(call_vc_core_state_t *pcall_core, connectivity_ int converted_vol_level; vc_engine_vol_set_from_bt_type event_data; - CALL_ENG_DEBUG(ENG_DEBUG, "Speaker Gain Value : %d\n", bt_vol_level); + CALL_ENG_DEBUG(ENG_DEBUG, "Speaker Gain Value : %d", bt_vol_level); -#ifdef _NEW_SND_ if (voicecall_snd_get_path_status(pcall_core->papp_snd) != VOICE_CALL_SND_PATH_BT) { - CALL_ENG_DEBUG(ENG_DEBUG, "Headset not switched on, Ignoring Speaker Gain Event \n"); - return TRUE; - } -#else - if (FALSE == voicecall_snd_get_status(pcall_core->papp_snd, VOICE_CALL_AUDIO_HEADSET)) { - CALL_ENG_DEBUG(ENG_DEBUG, "Headset not switched on, Ignoring Speaker Gain Event \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Headset not switched on, Ignoring Speaker Gain Event"); return TRUE; } -#endif voicecall_core_set_status(pcall_core, CALL_VC_CORE_FLAG_VOL_CHNGD_BYBT, TRUE); converted_vol_level = __vc_bt_converted_bt_vol_to_voice_vol(bt_vol_level); - CALL_ENG_DEBUG(ENG_DEBUG, "converted Speaker Gain Value : %d\n", converted_vol_level); + CALL_ENG_DEBUG(ENG_DEBUG, "converted Speaker Gain Value : %d", converted_vol_level); memset(&event_data, 0, sizeof(event_data)); event_data.vol_level = converted_vol_level; @@ -383,18 +321,16 @@ gboolean _vc_bt_handle_bt_events(call_vc_core_state_t *pcall_core, connectivity_ case BT_AG_REQ_CALL_ACCEPTED: { if (voicecall_core_is_incoming_call_exists(pcall_core->pcall_engine)) { - CALL_ENG_DEBUG(ENG_DEBUG, "Incoming call Accept by BT \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Incoming call Accept by BT"); voicecall_core_set_status(pcall_core, CALL_VC_CORE_FLAG_ACCEPT_BY_BT, TRUE); - if(_vc_core_util_phonelock_status() == FALSE) + if (_vc_core_util_phonelock_status() == FALSE) vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, VCONFKEY_IDLE_UNLOCK); -#ifdef _NEW_SND_ - voicecall_snd_set_path_status(pcall_core->papp_snd,VOICE_CALL_SND_PATH_BT); -#endif + voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_BT); if (TRUE == voicecall_core_answer_call(pcall_core, FALSE)) { - CALL_ENG_DEBUG(ENG_DEBUG, "voicecall_core_answer_call success \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "voicecall_core_answer_call success"); } } else { - CALL_ENG_DEBUG(ENG_ERR, "No Incoming call, skipping BT request \n"); + CALL_ENG_DEBUG(ENG_ERR, "No Incoming call, skipping BT request"); } } break; @@ -402,7 +338,7 @@ gboolean _vc_bt_handle_bt_events(call_vc_core_state_t *pcall_core, connectivity_ { if (TRUE == voicecall_core_is_incoming_call_exists(pcall_core->pcall_engine)) { if (FALSE == voicecall_core_reject_mt(pcall_core, TRUE)) { - CALL_ENG_DEBUG(ENG_ERR, "voicecall_core_reject_mt returned FALSE!\n"); + CALL_ENG_DEBUG(ENG_ERR, "voicecall_core_reject_mt returned FALSE!"); } /*Call rejected, reset the accept by flag */ voicecall_core_set_status(pcall_core, CALL_VC_CORE_FLAG_ACCEPT_BY_BT, FALSE); @@ -412,7 +348,7 @@ gboolean _vc_bt_handle_bt_events(call_vc_core_state_t *pcall_core, connectivity_ voicecall_core_end_mo_call(pcall_core->pcall_engine); } else { - CALL_ENG_DEBUG(ENG_ERR, "No Incoming/Outgoing calls, skipping BT request \n"); + CALL_ENG_DEBUG(ENG_ERR, "No Incoming/Outgoing calls, skipping BT request"); } } break; @@ -421,7 +357,7 @@ gboolean _vc_bt_handle_bt_events(call_vc_core_state_t *pcall_core, connectivity_ if (voicecall_core_is_connected_call_exist(pcall_core->pcall_engine)) { return voicecall_core_process_hold_call(pcall_core); } else { - CALL_ENG_DEBUG(ENG_ERR, "No connected calls, skipping BT request \n"); + CALL_ENG_DEBUG(ENG_ERR, "No connected calls, skipping BT request"); } } @@ -448,7 +384,7 @@ gboolean _vc_bt_handle_bt_events(call_vc_core_state_t *pcall_core, connectivity_ { if (TRUE == voicecall_core_is_any_call_exists(pcall_core->pcall_engine)) { if (TRUE == voicecall_core_is_incoming_call_exists(pcall_core->pcall_engine)) { - CALL_ENG_DEBUG(ENG_DEBUG, "Incoming call Accept by BT \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Incoming call Accept by BT"); voicecall_core_set_status(pcall_core, CALL_VC_CORE_FLAG_ACCEPT_BY_BT, TRUE); } voicecall_core_start_incall_ss(pcall_core, CALL_VC_CORE_SS_1); @@ -464,7 +400,7 @@ gboolean _vc_bt_handle_bt_events(call_vc_core_state_t *pcall_core, connectivity_ if (TRUE == voicecall_core_is_incoming_call_exists(pcall_core->pcall_engine)) { voicecall_core_is_call_exists(pcall_core->pcall_engine, &bactive_calls, &bheld_calls); if (!((TRUE == bactive_calls) && (TRUE == bheld_calls))) { - CALL_ENG_DEBUG(ENG_DEBUG, "Incoming call Accept by BT \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Incoming call Accept by BT"); voicecall_core_set_status(pcall_core, CALL_VC_CORE_FLAG_ACCEPT_BY_BT, TRUE); } } @@ -484,7 +420,7 @@ gboolean _vc_bt_handle_bt_events(call_vc_core_state_t *pcall_core, connectivity_ int bt_vol_level = pbt_info->param2; int converted_vol_level; - CALL_ENG_DEBUG(ENG_DEBUG, "BT volume Level: %d \n", bt_vol_level); + CALL_ENG_DEBUG(ENG_DEBUG, "BT volume Level: %d", bt_vol_level); if (voicecall_core_is_any_call_exists(pcall_core->pcall_engine)) { vc_engine_vol_resp_type event_data; @@ -496,7 +432,7 @@ gboolean _vc_bt_handle_bt_events(call_vc_core_state_t *pcall_core, connectivity_ event_data.vol_level = converted_vol_level; vcall_engine_send_event_to_client(VC_ENGINE_MSG_GET_VOLUME_RESP_TO_UI, (void *)&event_data); } else { - CALL_ENG_DEBUG(ENG_ERR, "NO Calls, Skipping BT Response \n"); + CALL_ENG_DEBUG(ENG_ERR, "NO Calls, Skipping BT Response"); } } break; @@ -506,20 +442,18 @@ gboolean _vc_bt_handle_bt_events(call_vc_core_state_t *pcall_core, connectivity_ gboolean bswitch_to_headset = FALSE; int bt_error = pbt_info->param2; -#ifdef _NEW_SND_ - if(voicecall_core_get_status(pcall_core, CALL_VC_CORE_FLAG_BT_EVENT_WAITING) == TRUE) { + if (voicecall_core_get_status(pcall_core, CALL_VC_CORE_FLAG_BT_EVENT_WAITING) == TRUE) { b_user_rqst_path_change = TRUE; } else { b_user_rqst_path_change = FALSE; } -#endif voicecall_core_set_status(pcall_core, CALL_VC_CORE_FLAG_BT_EVENT_WAITING, FALSE); /*Switch to response is received from BT, BT decision is fina, so reset the accept by BT */ voicecall_core_set_status(pcall_core, CALL_VC_CORE_FLAG_ACCEPT_BY_BT, FALSE); - CALL_ENG_DEBUG(ENG_DEBUG, "BT Error :%d \n", bt_error); + CALL_ENG_DEBUG(ENG_DEBUG, "BT Error :%d", bt_error); if (0 == bt_error) { /*Audio Connection/Disconnection Success case */ bswitch_to_headset = (BT_AG_REQ_SWITCH_TO_HEADSET == pbt_info->param1) ? TRUE : FALSE; @@ -532,12 +466,12 @@ gboolean _vc_bt_handle_bt_events(call_vc_core_state_t *pcall_core, connectivity_ /*Disconnection Error, switch to headset */ bswitch_to_headset = TRUE; } else { - CALL_ENG_DEBUG(ENG_ERR, "Invalid BT Error: %d \n", bt_error); + CALL_ENG_DEBUG(ENG_ERR, "Invalid BT Error: %d", bt_error); } } - CALL_ENG_DEBUG(ENG_DEBUG, "bswitch_to_headset = %d \n", bswitch_to_headset); + CALL_ENG_DEBUG(ENG_DEBUG, "bswitch_to_headset = %d", bswitch_to_headset); if ((TRUE == voicecall_core_is_connected_call_exist(pcall_core->pcall_engine)) || (TRUE == voicecall_core_is_outgoing_call_exists(pcall_core->pcall_engine))) { gboolean bupdate = FALSE; @@ -545,7 +479,7 @@ gboolean _vc_bt_handle_bt_events(call_vc_core_state_t *pcall_core, connectivity_ if (0 == bt_error) { /*Connection/Diconnection is sucess, don't send response to BT */ bupdate = _vc_bt_switch_headset_path(pcall_core, bswitch_to_headset, FALSE); - CALL_ENG_DEBUG(ENG_DEBUG, "bupdate = %d, bswitch_to_headset = %d \n", bupdate, bswitch_to_headset); + CALL_ENG_DEBUG(ENG_DEBUG, "bupdate = %d, bswitch_to_headset = %d", bupdate, bswitch_to_headset); vc_engine_headset_status_type event_data; memset(&event_data, 0, sizeof(event_data)); @@ -557,7 +491,7 @@ gboolean _vc_bt_handle_bt_events(call_vc_core_state_t *pcall_core, connectivity_ } } else { - CALL_ENG_DEBUG(ENG_ERR, "No connected/outgoing calls, Skipping BT Request \n"); + CALL_ENG_DEBUG(ENG_ERR, "No connected/outgoing calls, Skipping BT Request"); } } break; @@ -566,7 +500,7 @@ gboolean _vc_bt_handle_bt_events(call_vc_core_state_t *pcall_core, connectivity_ gboolean active_calls = FALSE; gboolean held_calls = FALSE; - CALL_ENG_DEBUG(ENG_DEBUG, "Send DTMF(%s)\n", pbt_info->param4); + CALL_ENG_DEBUG(ENG_DEBUG, "Send DTMF(%s)", pbt_info->param4); if ((voicecall_core_is_call_exists(pcall_core->pcall_engine, &active_calls, &held_calls)) && (TRUE == active_calls)) { voicecall_core_send_dtmf(pcall_core, pbt_info->param4); } @@ -575,7 +509,7 @@ gboolean _vc_bt_handle_bt_events(call_vc_core_state_t *pcall_core, connectivity_ case BT_AG_REQ_CALL_REDIAL: default: - CALL_ENG_DEBUG(ENG_DEBUG, "Action not defined for bt event: %d\n", pbt_info->param1); + CALL_ENG_DEBUG(ENG_DEBUG, "Action not defined for bt event: %d", pbt_info->param1); return FALSE; break; @@ -598,12 +532,12 @@ void _vc_bt_send_response_to_bt(call_vc_core_state_t *pcall_core, int bt_event, VOICECALL_RETURN_IF_FAIL(pcall_core != NULL); connectivity_bt_ag_param_info_t bt_response_info; - CALL_ENG_DEBUG(ENG_DEBUG, "Event: %s(%d), param1=[%d] \n", gszbt_res_event[bt_event], bt_event, param1); + CALL_ENG_DEBUG(ENG_DEBUG, "Event: %s(%d), param1=[%d]", gszbt_res_event[bt_event], bt_event, param1); /*Skip events, if Bluetooth is not connected */ /* if((FALSE == pcall_core->bt_connected) && (BT_AG_RES_CALL_STATUS != bt_event)) { - CALL_ENG_DEBUG(ENG_DEBUG,"Bluetooth not connected , Not sending any responses to BT\n"); + CALL_ENG_DEBUG(ENG_DEBUG,"Bluetooth not connected , Not sending any responses to BT"); return; } */ @@ -630,12 +564,12 @@ void _vc_bt_send_response_to_bt(call_vc_core_state_t *pcall_core, int bt_event, /*Incoming Call */ _vc_core_engine_status_get_call_handle_bytype(pcall_core->pcall_engine, VC_INCOMING_CALL, &mt_call_handle); if (mt_call_handle != -1) { - CALL_ENG_DEBUG(ENG_DEBUG, "Incoming Call Exists, call handle = %d \n", mt_call_handle); + CALL_ENG_DEBUG(ENG_DEBUG, "Incoming Call Exists, call handle = %d", mt_call_handle); call_status_info[index].call_id = mt_call_handle; call_status_info[index].call_status = BT_AG_CALL_STATUS_INCOMING; index++; - CALL_ENG_DEBUG(ENG_DEBUG, "total_call_member after mt= %d \n", index); + CALL_ENG_DEBUG(ENG_DEBUG, "total_call_member after mt= %d", index); } /*Outgoing Call */ @@ -645,7 +579,7 @@ void _vc_bt_send_response_to_bt(call_vc_core_state_t *pcall_core, int bt_event, gboolean bvalid_call = TRUE; _vc_core_engine_status_get_call_state_byhandle(pcall_core->pcall_engine, mo_call_handle, &call_state); - CALL_ENG_DEBUG(ENG_DEBUG, "call state: %d \n", call_state); + CALL_ENG_DEBUG(ENG_DEBUG, "call state: %d", call_state); switch (call_state) { case VC_CALL_STATE_OUTGOING_ALERT: @@ -661,14 +595,14 @@ void _vc_bt_send_response_to_bt(call_vc_core_state_t *pcall_core, int bt_event, } break; default: /*All Other states , donot consider for mocall */ - CALL_ENG_DEBUG(ENG_DEBUG, "mo call state: %d \n", call_state); + CALL_ENG_DEBUG(ENG_DEBUG, "mo call state: %d", call_state); bvalid_call = FALSE; } if (TRUE == bvalid_call) { call_status_info[index].call_id = mo_call_handle; index++; - CALL_ENG_DEBUG(ENG_DEBUG, "total_call_member after mo= %d \n", index); + CALL_ENG_DEBUG(ENG_DEBUG, "total_call_member after mo= %d", index); } } @@ -679,11 +613,11 @@ void _vc_bt_send_response_to_bt(call_vc_core_state_t *pcall_core, int bt_event, _vc_core_engine_group_get_group_indices(pcall_core->pcall_engine, &act_grp_index, &held_grp_index); - CALL_ENG_DEBUG(ENG_DEBUG, "act_grp_index = %d, held_grp_index = %d\n", act_grp_index, held_grp_index); + CALL_ENG_DEBUG(ENG_DEBUG, "act_grp_index = %d, held_grp_index = %d", act_grp_index, held_grp_index); /*Active Connected Call */ if (act_grp_index != -1) { _vc_core_engine_group_get_connected_member_count(pcall_core->pcall_engine, act_grp_index, &active_group_member_num); - CALL_ENG_DEBUG(ENG_DEBUG, "active_group_connected_member_num = %d \n", active_group_member_num); + CALL_ENG_DEBUG(ENG_DEBUG, "active_group_connected_member_num = %d", active_group_member_num); for (i = 0; i < active_group_member_num; i++) { _vc_core_engine_group_get_call_handle_byposition(pcall_core->pcall_engine, act_grp_index, i, &connected_call_handle); if (connected_call_handle != -1) { @@ -692,27 +626,27 @@ void _vc_bt_send_response_to_bt(call_vc_core_state_t *pcall_core, int bt_event, index++; } } - CALL_ENG_DEBUG(ENG_DEBUG, "total_call_member after active calls= %d \n", index); + CALL_ENG_DEBUG(ENG_DEBUG, "total_call_member after active calls= %d", index); } /*Held Connected Call */ if (held_grp_index != -1) { _vc_core_engine_group_get_connected_member_count(pcall_core->pcall_engine, held_grp_index, &held_group_member_num); - CALL_ENG_DEBUG(ENG_DEBUG, "held_group_member_num = %d \n", held_group_member_num); + CALL_ENG_DEBUG(ENG_DEBUG, "held_group_member_num = %d", held_group_member_num); for (i = 0; i < held_group_member_num; i++) { _vc_core_engine_group_get_call_handle_byposition(pcall_core->pcall_engine, held_grp_index, i, &connected_call_handle); - CALL_ENG_DEBUG(ENG_DEBUG, "Call Handle[%d] = %d \n", i, connected_call_handle); + CALL_ENG_DEBUG(ENG_DEBUG, "Call Handle[%d] = %d", i, connected_call_handle); if (connected_call_handle != -1) { call_status_info[index].call_id = connected_call_handle; call_status_info[index].call_status = BT_AG_CALL_STATUS_HELD; index++; } } - CALL_ENG_DEBUG(ENG_DEBUG, "total_call_member after held calls= %d \n", index); + CALL_ENG_DEBUG(ENG_DEBUG, "total_call_member after held calls= %d", index); } - CALL_ENG_DEBUG(ENG_DEBUG, "Total Calls = %d \n", index); + CALL_ENG_DEBUG(ENG_DEBUG, "Total Calls = %d", index); bt_response_info.param2 = index; memset(result_str, 0x00, sizeof(result_str)); @@ -721,18 +655,18 @@ void _vc_bt_send_response_to_bt(call_vc_core_state_t *pcall_core, int bt_event, snprintf(temp_str, sizeof(temp_str), "%d.%d/", call_status_info[i].call_id, call_status_info[i].call_status); strncat(result_str, temp_str, sizeof(temp_str) - 1); } - CALL_ENG_DEBUG(ENG_DEBUG, "The resultant string is %s\n", result_str); + CALL_ENG_DEBUG(ENG_DEBUG, "The resultant string is %s", result_str); _vc_core_util_strcpy(bt_response_info.param4, sizeof(bt_response_info.param4), result_str); - CALL_ENG_DEBUG(ENG_DEBUG, "Actual Data Passed is %s \n", bt_response_info.param4); - CALL_ENG_DEBUG(ENG_DEBUG, "Actual Data Passed to BT \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Actual Data Passed is %s", bt_response_info.param4); + CALL_ENG_DEBUG(ENG_DEBUG, "Actual Data Passed to BT"); for (i = 0; i < index; i++) { - CALL_ENG_DEBUG(ENG_DEBUG, "call id = %d \n", call_status_info[i].call_id); - CALL_ENG_DEBUG(ENG_DEBUG, "call status= %d \n", call_status_info[i].call_status); + CALL_ENG_DEBUG(ENG_DEBUG, "call id = %d", call_status_info[i].call_id); + CALL_ENG_DEBUG(ENG_DEBUG, "call status= %d", call_status_info[i].call_status); } - CALL_ENG_DEBUG(ENG_DEBUG, "Verification of BT data being sent\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Verification of BT data being sent"); } break; @@ -740,7 +674,7 @@ void _vc_bt_send_response_to_bt(call_vc_core_state_t *pcall_core, int bt_event, { /*Length of Incoming Call Number */ if (NULL != param2) { - CALL_ENG_DEBUG(ENG_DEBUG, "phone number=%s\n", (char *)param2); + CALL_ENG_DEBUG(ENG_DEBUG, "phone number=%s", (char *)param2); bt_response_info.param2 = strlen(param2); bt_response_info.param3 = param1; _vc_core_util_strcpy(bt_response_info.param4, VC_PHONE_NUMBER_LENGTH_MAX, param2); @@ -750,21 +684,18 @@ void _vc_bt_send_response_to_bt(call_vc_core_state_t *pcall_core, int bt_event, case BT_AG_RES_CALL_ORIG: { if (NULL != param2) { - CALL_ENG_DEBUG(ENG_DEBUG, "phone number=%s\n", (char *)param2); -#ifdef _NEW_SND_ + CALL_ENG_DEBUG(ENG_DEBUG, "phone number=%s", (char *)param2); switch (voicecall_snd_get_path_status(pcall_core->papp_snd)) { - case VOICE_CALL_SND_PATH_RECEIVER: + case VOICE_CALL_SND_PATH_RECEIVER_EARJACK: case VOICE_CALL_SND_PATH_SPEAKER: - case VOICE_CALL_SND_PATH_EARJACK: bt_response_info.param2 = FALSE; break; case VOICE_CALL_SND_PATH_BT: bt_response_info.param2 = TRUE; break; + default: + break; } -#else - bt_response_info.param2 = strlen(param2); -#endif bt_response_info.param3 = param1; _vc_core_util_strcpy(bt_response_info.param4, VC_PHONE_NUMBER_LENGTH_MAX, param2); } @@ -779,18 +710,17 @@ void _vc_bt_send_response_to_bt(call_vc_core_state_t *pcall_core, int bt_event, case BT_AG_RES_CALL_CONNECT: case BT_AG_RES_CALL_END: { -#ifdef _NEW_SND_ switch (voicecall_snd_get_path_status(pcall_core->papp_snd)) { - case VOICE_CALL_SND_PATH_RECEIVER: + case VOICE_CALL_SND_PATH_RECEIVER_EARJACK: case VOICE_CALL_SND_PATH_SPEAKER: - case VOICE_CALL_SND_PATH_EARJACK: bt_response_info.param2 = FALSE; break; case VOICE_CALL_SND_PATH_BT: bt_response_info.param2 = TRUE; break; + default: + break; } -#endif /*Assign Call Handle */ bt_response_info.param3 = param1; } @@ -801,7 +731,7 @@ void _vc_bt_send_response_to_bt(call_vc_core_state_t *pcall_core, int bt_event, break; case BT_AG_RES_HEADSET_VOL: /*Request For Current BT Volume Level */ { - CALL_ENG_DEBUG(ENG_DEBUG, "Requesting for Current BT Volume Level \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Requesting for Current BT Volume Level"); } break; case BT_AG_RES_SWITCH_TO_HEADSET: @@ -818,7 +748,7 @@ void _vc_bt_send_response_to_bt(call_vc_core_state_t *pcall_core, int bt_event, vc_engine_on_dbus_send_response_to_bt(bt_response_info); - CALL_ENG_DEBUG(ENG_DEBUG, "bt response ended.\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "bt response ended."); } @@ -836,12 +766,12 @@ gboolean _vc_bt_status_init(call_vc_core_state_t *pcall_core) int bstatus = 0; bstatus = _vc_bt_get_bt_status(); - CALL_ENG_DEBUG(ENG_DEBUG, "bt_connected:[%d]\n", bstatus); + CALL_ENG_DEBUG(ENG_DEBUG, "bt_connected:[%d]", bstatus); __vc_bt_handle_connectivity_event(pcall_core, bstatus); ret = vconf_notify_key_changed(VCONFKEY_BT_DEVICE, (void *)_vc_bt_handle_phonestatus_bt_events, pcall_core); if (0 != ret) { - CALL_ENG_DEBUG(ENG_ERR, "vconf_notify_key_changed failed..[%d]\n", ret); + CALL_ENG_DEBUG(ENG_ERR, "vconf_notify_key_changed failed..[%d]", ret); return FALSE; } return TRUE; @@ -860,9 +790,9 @@ gboolean _vc_bt_get_bt_status(void) ret = vconf_get_int(VCONFKEY_BT_DEVICE, &bt_status); if (0 == ret) { - CALL_ENG_DEBUG(ENG_DEBUG, "bt_status = [0x%x] \n", bt_status); + CALL_ENG_DEBUG(ENG_DEBUG, "bt_status = [0x%x]", bt_status); } else { - CALL_ENG_DEBUG(ENG_ERR, "vconf_get_int failed..[%d]\n", ret); + CALL_ENG_DEBUG(ENG_ERR, "vconf_get_int failed..[%d]", ret); } return (VCONFKEY_BT_DEVICE_HEADSET_CONNECTED == (bt_status & VCONFKEY_BT_DEVICE_HEADSET_CONNECTED)) ? TRUE : FALSE; @@ -895,11 +825,11 @@ gboolean _vc_bt_handle_phonestatus_bt_events(keynode_t *node, call_vc_core_state gboolean bt_conn_status = FALSE; int bt_status = vconf_keynode_get_int(node); - CALL_ENG_DEBUG(ENG_DEBUG, "bt_status = [0x%x] \n", bt_status); + CALL_ENG_DEBUG(ENG_DEBUG, "bt_status = [0x%x]", bt_status); /*set the sound status */ bt_conn_status = (VCONFKEY_BT_DEVICE_HEADSET_CONNECTED == (bt_status & VCONFKEY_BT_DEVICE_HEADSET_CONNECTED)) ? TRUE : FALSE; - CALL_ENG_DEBUG(ENG_DEBUG, "bt_conn_status = %d\n", bt_conn_status); + CALL_ENG_DEBUG(ENG_DEBUG, "bt_conn_status = %d", bt_conn_status); __vc_bt_handle_connectivity_event(pcall_core, bt_conn_status); return TRUE; @@ -908,7 +838,7 @@ gboolean _vc_bt_handle_phonestatus_bt_events(keynode_t *node, call_vc_core_state /** * This function retreives volume level of headset * - * @return + * @return * @param[in] pcall_core Handle to voicecall core */ void _vc_bt_get_headset_volume(call_vc_core_state_t *pcall_core) @@ -944,9 +874,9 @@ gboolean _vc_bt_get_bt_sco_status(void) ret = vconf_get_bool(VCONFKEY_BT_HEADSET_SCO, &sco_status); if (0 == ret) { - CALL_ENG_DEBUG(ENG_DEBUG, "sco_status = [%d] \n", sco_status); + CALL_ENG_DEBUG(ENG_DEBUG, "sco_status = [%d]", sco_status); } else { - CALL_ENG_DEBUG(ENG_ERR, "vconf_get_int failed..[%d]\n", ret); + CALL_ENG_DEBUG(ENG_ERR, "vconf_get_int failed..[%d]", ret); } return sco_status; @@ -957,13 +887,13 @@ gboolean _vc_bt_get_bt_sco_status(void) * * @return TRUE if bt is connected, FALSE otherwise * @param[in] pcall_core Handle to voicecall core - * @param[in] bheadset headset status + * @param[in] bheadset headset status */ gboolean _vc_bt_process_bt_handset(call_vc_core_state_t *pcall_core, int bheadset) { VOICECALL_RETURN_FALSE_IF_FAIL(pcall_core != NULL); - CALL_ENG_DEBUG(ENG_DEBUG, "bheadset:[%d] \n", bheadset); + CALL_ENG_DEBUG(ENG_DEBUG, "bheadset:[%d]", bheadset); if (bheadset) { if (FALSE == _vc_bt_get_bt_status()) { vc_engine_on_dbus_send_connect_to_bt(); diff --git a/call-engine/voice-call-core.c b/call-engine/voice-call-core.c index da160a7..9d6eb95 100755 --- a/call-engine/voice-call-core.c +++ b/call-engine/voice-call-core.c @@ -15,6 +15,8 @@ */ +#include + #include "vc-core-util.h" #include "vc-core-engine-types.h" #include "vc-core-callagent.h" @@ -24,8 +26,11 @@ #include "voice-call-dbus.h" #include "voice-call-engine-msg.h" #include "voice-call-service.h" +#include "voice-call-device.h" +#include "voice-call-sound.h" #include "voice-call-bt.h" +#include "phone-misc.h" #include "vc-core-engine.h" #include "voice-call-engine.h" @@ -45,7 +50,7 @@ gboolean mo_redial_timer_cb(void *data); #define SET_PATH_TIMER_VALUE 50 -static guint g_set_path_timer_handler = 0; +static guint g_set_path_timer_handler = 0; static gboolean __voicecall_core_set_path_timer_cb(gpointer puser_data); /* For Debug Information, Call Engine Event name string constant */ @@ -59,7 +64,7 @@ char *gszcall_engine_event[VC_ENGINE_EVENT_MAX] = { "VC_CALL_INCOM_END", "VC_CALL_INCOM_DROPPED", "VC_CALL_REJECTED_END", - "VC_CALL_OUTGOING_END", /* 10 */ + "VC_CALL_OUTGOING_END", /* 10 */ "VC_CALL_OUTGOING_ABORTED", "VC_CALL_DTMF_ACK", @@ -81,7 +86,7 @@ char *gszcall_engine_event[VC_ENGINE_EVENT_MAX] = { "VC_CALL_IND_BARRING", "VC_CALL_IND_WAITING", "VC_CALL_IND_CUGINFO", - "VC_CALL_IND_SSNOTIFY", /* 30 */ + "VC_CALL_IND_SSNOTIFY", /* 30 */ "VC_CALL_IND_CALLINGNAMEINFO", "VC_CALL_IND_REDIRECT_CNF", @@ -98,18 +103,20 @@ char *gszcall_engine_event[VC_ENGINE_EVENT_MAX] = { "VC_CALL_GET_VOLUME_RESP" }; -static void __voicecall_core_check_headset_earjack_status(call_vc_core_state_t *pcall_core); +static gboolean __vc_core_is_answermode_enabled_from_testmode(void); +static gboolean __vc_core_is_answermode_enabled(void); +static void __voicecall_core_start_auto_answer(call_vc_core_state_t *pcall_core, gboolean isTestMode); +static void __voicecall_core_cancel_auto_answer(call_vc_core_state_t *pcall_core); +/*static void __voicecall_core_check_headset_earjack_status(call_vc_core_state_t *pcall_core);*/ static void __vc_core_set_auto_redial_count(call_vc_core_state_t *pcall_core, int auto_redial_count); -static gboolean __voicecall_core_callstatus_set_timer_cb(gpointer puser_data); +/*static gboolean __voicecall_core_callstatus_set_timer_cb(gpointer puser_data);*/ static int __voicecall_core_get_string_id_by_errorcode(int error_code); static void __voicecall_core_mocall_reset_engine_state(voicecall_engine_t *pcall_engine); static gboolean __voicecall_core_is_redial_cuase(int end_cause); -#ifdef PDIAL_SEND_DTMF static gboolean __voicecall_core_queue_dtmf_string(call_vc_core_state_t *pcall_core, char *dtmf_string, gboolean bsat_dtmf); static gboolean __voicecall_core_handle_dtmf_ack(call_vc_core_state_t *pcall_core, gboolean success); -#endif /** * This function puts the currently active call on hold @@ -122,7 +129,6 @@ inline gboolean voicecall_core_hold_call(voicecall_engine_t *pcall_engine) voicecall_error_t error_code = ERROR_VOICECALL_NONE; - PRINT_CURRENT_TIME("Call Hold Start at"); error_code = _vc_core_engine_hold_call(pcall_engine); CALL_ENG_DEBUG(ENG_DEBUG, "Error Code : %d", error_code); @@ -139,7 +145,6 @@ inline gboolean voicecall_core_retrieve_call(voicecall_engine_t *pcall_engine) { voicecall_error_t error_code = ERROR_VOICECALL_NONE; - PRINT_CURRENT_TIME("Call Retrieve Start at"); error_code = _vc_core_engine_retrieve_call(pcall_engine); CALL_ENG_DEBUG(ENG_DEBUG, "Error Code : %d", error_code); @@ -156,7 +161,6 @@ inline gboolean voicecall_core_swap_calls(voicecall_engine_t *pcall_engine) { voicecall_error_t error_code = ERROR_VOICECALL_NONE; - PRINT_CURRENT_TIME("Call Swap Start at"); error_code = _vc_core_engine_swap_calls(pcall_engine); CALL_ENG_DEBUG(ENG_DEBUG, "Error Code : %d", error_code); @@ -229,7 +233,7 @@ inline gboolean voicecall_core_get_engine_state(voicecall_engine_t *pcall_engine * @param[out] active_calls TRUE - If active call exists or FALSE If active call doesn't exists * @param[out] held_calls TRUE - If held call exists or FALSE If held call doesn't exists */ -inline gboolean voicecall_core_is_call_exists(voicecall_engine_t *pcall_engine, gboolean * active_calls, gboolean * held_calls) +inline gboolean voicecall_core_is_call_exists(voicecall_engine_t *pcall_engine, gboolean *active_calls, gboolean *held_calls) { return (ERROR_VOICECALL_NONE == _vc_core_engine_status_isexists_any_call(pcall_engine, active_calls, held_calls)) ? TRUE : FALSE; } @@ -381,9 +385,9 @@ inline gboolean voicecall_core_is_incall_request_possible(voicecall_engine_t *pc * @param[in] pcall_engine Handle to voicecall engine * @param[in] audio_path audio path to be changed */ -inline gboolean voicecall_core_change_audio_path(voicecall_engine_t *pcall_engine, voicecall_audio_path_t audio_path) +inline gboolean voicecall_core_change_audio_path(voicecall_engine_t *pcall_engine, voicecall_audio_path_t audio_path, gboolean bextra_volume) { - return (ERROR_VOICECALL_NONE == _vc_core_engine_change_audio_path(pcall_engine, audio_path)) ? TRUE : FALSE; + return (ERROR_VOICECALL_NONE == _vc_core_engine_change_audio_path(pcall_engine, audio_path, bextra_volume)) ? TRUE : FALSE; } /** @@ -555,7 +559,7 @@ inline gboolean voicecall_core_set_check_ss_on_end(call_vc_core_state_t *pcall_c * This function extracts vaild phone number * * @return void - * @param[in] + * @param[in] */ inline void voicecall_core_extract_phone_number(const char *source_tel_number, char *phone_number, const int buf_size) { @@ -603,39 +607,6 @@ gboolean voicecall_core_get_status(call_vc_core_state_t *pcall_core, call_vc_cor return FALSE; } -#ifdef VC_ENG_FDN_SUPPORT -gboolean voicecall_core_check_fdn_status(call_vc_core_state_t *pcall_core) -{ - gboolean bfdn_enabled = FALSE; - - /*Check the FDN Status of the number with the contact */ - _vc_core_engine_status_isenabled_fdn(pcall_core->pcall_engine, &bfdn_enabled); - voicecall_core_set_status(pcall_core, CALL_VC_CORE_FLAG_FDN_SVC_ENABLED, bfdn_enabled); - - if (TRUE == bfdn_enabled) { - gboolean bct_exists = FALSE; - - CALL_ENG_DEBUG(ENG_DEBUG, "FDN mode enabled.."); - if (!bct_exists) { - vc_engine_msg_box_type event_data; - memset(&event_data, 0, sizeof(event_data)); - - CALL_ENG_DEBUG(ENG_DEBUG, "FDN only..."); - _vc_core_engine_finalize_call(pcall_core->pcall_engine, VC_OUTGOING_CALL, -1); - - event_data.string_id = IDS_CALL_POP_FDNCALLONLY; - vcall_engine_send_event_to_client(VC_ENGINE_MSG_MESSAGE_BOX_TO_UI, (void *)&event_data); - return FALSE; - } - - } else { - CALL_ENG_DEBUG(ENG_DEBUG, "FDN mode disabled.."); - } - - return TRUE; -} -#endif - static gboolean __voicecall_core_minute_minder(gpointer puser_data) { CALL_ENG_DEBUG(ENG_DEBUG, ".."); @@ -671,9 +642,9 @@ static gboolean __voicecall_core_handle_call_end_on_silent_reject(call_vc_core_s CALL_ENG_DEBUG(ENG_DEBUG, "call_handle = %d", call_handle); if ((pcall_core->mtcall_silent_reject_handle == call_handle)) { + /*Call rejected due to lawmo lock */ if (FALSE == voicecall_core_is_connected_call_exist(pcall_core->pcall_engine)) { /*Connected calls need to be checked, Connected emergency calls may be avaialble */ - voicecall_snd_change_mm_path(pcall_core->papp_snd, VOICE_CALL_MM_RESET); voicecall_core_set_to_default(pcall_core); } else { CALL_ENG_DEBUG(ENG_ERR, "Connected calls available"); @@ -715,7 +686,7 @@ static void __voicecall_core_processing_mo_cancel(call_vc_core_state_t *pcall_co CALL_ENG_DEBUG(ENG_DEBUG, "Signal is playing, skipping cancel timer"); return; } - + vc_engine_outgoing_end_type event_data; /* normal outgong end */ @@ -757,7 +728,6 @@ static void __voicecall_core_mocall_signal_play_end_cb(gpointer pdata) if (FALSE == voicecall_core_is_connected_call_exist(pcall_core->pcall_engine)) { CALL_ENG_DEBUG(ENG_DEBUG, "No More calls, resetting path"); - voicecall_snd_change_mm_path(pcall_core->papp_snd, VOICE_CALL_MM_RESET); _vc_core_util_set_call_status(VCONFKEY_CALL_OFF); } @@ -803,32 +773,20 @@ static void __voicecall_core_handle_normal_end(call_vc_core_state_t *pcall_core, } else if ((TRUE == voicecall_core_is_incoming_call_exists(pcall_engine)) || (TRUE == voicecall_core_is_outgoing_call_exists(pcall_engine))) { _vc_core_util_set_call_status(VCONFKEY_CALL_VOICE_CONNECTING); } else { - /*Reset the Path. Actual path must be closed when modem path closed!! */ - voicecall_snd_change_mm_path(pcall_core->papp_snd, VOICE_CALL_MM_RESET); + /*Reset the Path Actual path must be closed when modem path closed!! */ _vc_core_util_set_call_status(VCONFKEY_CALL_OFF); } if (FALSE == voicecall_snd_play_effect_tone(pcall_core->papp_snd, VOICE_CALL_SND_EFFECT_CALL_DISCONNECT)) { CALL_ENG_DEBUG(ENG_DEBUG, "Effect tone not played, check and play busy tone"); } - -#ifdef _NEW_SND_ - if ((FALSE == voicecall_core_is_connected_call_exist(pcall_engine)) - && (TRUE == voicecall_core_is_incoming_call_exists(pcall_engine)) - && (voicecall_snd_get_path_status(pcall_core->papp_snd) == VOICE_CALL_SND_PATH_SPEAKER)) { - CALL_ENG_DEBUG(ENG_DEBUG, "Incoming Call: TRUE,Connected Call:FALSE, Speaker: TRUE. So change path to normal"); - voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_RECEIVER); - voicecall_snd_change_path(pcall_core->papp_snd); - } -#else - if ((FALSE == voicecall_core_is_connected_call_exist(pcall_engine)) - && (TRUE == voicecall_core_is_incoming_call_exists(pcall_engine)) - && (TRUE == voicecall_snd_get_status(pcall_core->papp_snd, VOICE_CALL_AUDIO_SPEAKER))) { + if ((FALSE == voicecall_core_is_connected_call_exist(pcall_engine)) + && (TRUE == voicecall_core_is_incoming_call_exists(pcall_engine)) + && (voicecall_snd_get_path_status(pcall_core->papp_snd) == VOICE_CALL_SND_PATH_SPEAKER)) { CALL_ENG_DEBUG(ENG_DEBUG, "Incoming Call: TRUE,Connected Call:FALSE, Speaker: TRUE. So change path to normal"); - voicecall_snd_set_status(pcall_core->papp_snd, VOICE_CALL_AUDIO_SPEAKER, FALSE); + voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_RECEIVER_EARJACK); voicecall_snd_change_path(pcall_core->papp_snd); } -#endif voicecall_core_clear_connected_call(pcall_engine, call_handle); @@ -903,8 +861,7 @@ static void __voicecall_core_handle_outgoingcall_end(call_vc_core_state_t *pcall /* Set phonestatus value */ _vc_core_util_set_call_status(VCONFKEY_CALL_VOICE_ACTIVE); } else if (FALSE == bsignal_play) { - /*Reset the Path. Actual path must be closed when modem path closed!! */ - voicecall_snd_change_mm_path(pcall_core->papp_snd, VOICE_CALL_MM_RESET); + /*Reset the Path Actual path must be closed when modem path closed!! */ _vc_core_util_set_call_status(VCONFKEY_CALL_OFF); } else { /* othing to do. */ @@ -958,15 +915,11 @@ static gboolean voicecall_core_cb(int event, int param1, int param2, void *param vc_engine_incoming_type event_data; memset(&event_data, 0, sizeof(event_data)); + event_data.bday_remaining_days = -1; CALL_ENG_DEBUG(ENG_DEBUG, "tel_number:[%s]", (char *)param3); _vc_core_util_strcpy(tel_number, sizeof(tel_number), (char *)param3); -#ifdef _NEW_SND_ -#else - __voicecall_core_check_headset_earjack_status(pcall_core); -#endif - /*Changing the path to headset/phone will be decided by user accept action. This will apply for second incoming call, if the first call was accpeted by BT Headset and the path was changed to BT headset, then the path will be in headset for second call by default @@ -979,6 +932,7 @@ static gboolean voicecall_core_cb(int event, int param1, int param2, void *param voicecall_core_set_status(pcall_core, CALL_VC_CORE_FLAG_ACCEPT_BY_BT, FALSE); if (_vc_core_util_check_video_call_status() == TRUE) { + /*Check for Lawmo Lock */ if (TRUE == __voicecall_core_silent_reject_mt(pcall_core, call_handle)) { CALL_ENG_DEBUG(ENG_DEBUG, "Call rejected due to silent reject"); return TRUE; @@ -1010,6 +964,68 @@ static gboolean voicecall_core_cb(int event, int param1, int param2, void *param } event_data.contact_index = -1; event_data.phone_type = -1; + } else { + voicecall_contact_info_t ct_info; + memset(&ct_info, 0, sizeof(ct_info)); + ct_info.ct_index = -1; + + voicecall_service_contact_info_by_number(tel_number, &ct_info); + + _vc_core_util_strcpy(event_data.call_name, sizeof(event_data.call_name), ct_info.display_name); + _vc_core_util_strcpy(event_data.call_file_path, sizeof(event_data.call_file_path), ct_info.caller_id_path); + _vc_core_util_strcpy(event_data.call_full_file_path, sizeof(event_data.call_full_file_path), ct_info.caller_full_id_path); + event_data.contact_index = ct_info.ct_index; + event_data.phone_type = ct_info.phone_type; + event_data.bday_remaining_days = ct_info.bday_remaining_days; + + voicecall_snd_mgr_t *papp_snd = pcall_core->papp_snd; + char ringtone_path[VOICE_CALL_SND_RINGTONE_PATH_LEN] = { 0, }; + memset(papp_snd->ring_tone, 0, VOICE_CALL_SND_RINGTONE_PATH_LEN); + if (TRUE == g_file_test(ct_info.ring_tone, G_FILE_TEST_EXISTS)) { + snprintf(ringtone_path, sizeof(ringtone_path), "file://%s", ct_info.ring_tone); + _vc_core_util_strcpy(papp_snd->ring_tone, VOICE_CALL_SND_RINGTONE_PATH_LEN, ringtone_path); + CALL_ENG_DEBUG(ENG_DEBUG, "From Contact Ringtone: %s", papp_snd->ring_tone); + } else { + /*Get Ringtone File From Settings */ + CALL_ENG_DEBUG(ENG_DEBUG, "Invalid Ringtone from Contact: %s", ct_info.ring_tone); + } + } + + /*Auto Reject Check */ + if (vconf_get_bool(VCONFKEY_CISSAPPL_AUTO_REJECT_BOOL, &bauto_reject)) { + CALL_ENG_DEBUG(ENG_ERR, "vconf_get_bool failed."); + } + + if (bauto_reject) { + CALL_ENG_DEBUG(ENG_DEBUG, "** Auto Reject Enabled. **"); + + if (vconf_get_bool(VCONFKEY_CISSAPPL_AUTO_REJECT_UNKNOWN_BOOL, &bauto_reject_unknown)) { + CALL_ENG_DEBUG(ENG_ERR, "vconf_get_bool failed."); + } + CALL_ENG_DEBUG(ENG_DEBUG, "bauto_reject_unknown:[%d]", bauto_reject_unknown); + + if ((0 == strlen(tel_number)) && (TRUE == bauto_reject_unknown)) { + brejected_number = 1; + CALL_ENG_DEBUG(ENG_DEBUG, "Unknwon Rejected."); + } else { + phone_misc_h *handle = NULL; + + handle = phone_misc_connect(); + if (handle == NULL) { + CALL_ENG_DEBUG(ENG_ERR, "misc connect fail"); + brejected_number = FALSE; + } else { + int ret = phone_misc_block_check(handle, tel_number); + if (ret > 0) { + brejected_number = TRUE; + } else { + brejected_number = FALSE; + } + phone_misc_disconnect(handle); + handle = NULL; + } + CALL_ENG_DEBUG(ENG_DEBUG, "Call Log DB rejected:[%d]", brejected_number); + } } /* send to ui */ @@ -1019,29 +1035,34 @@ static gboolean voicecall_core_cb(int event, int param1, int param2, void *param vcall_engine_send_event_to_client(VC_ENGINE_MSG_INCOM_TO_UI, (void *)&event_data); - _vc_core_util_set_sleep_status(CALL_VC_POWER_PROHIBIT_DIMMING); + { + /* in case of rejected number, sound & callstatus is not processed */ + if (!brejected_number) { + gboolean benabledTestMode = FALSE; + voicecall_snd_register_cm(pcall_core->papp_snd); - /* in case of rejected number, sound & callstatus is not processed */ - if (!brejected_number) { - gboolean benabledTestMode = FALSE; - voicecall_snd_register_cm(pcall_core->papp_snd); + /*Send Incoming Call Event to Blue Tooth */ + _vc_bt_send_response_to_bt(pcall_core, BT_AG_RES_CALL_INCOM, call_handle, tel_number); - /*Send Incoming Call Event to Blue Tooth */ - _vc_bt_send_response_to_bt(pcall_core, BT_AG_RES_CALL_INCOM, call_handle, tel_number); + _vc_core_util_set_call_status(VCONFKEY_CALL_VOICE_CONNECTING); - CALL_ENG_DEBUG(ENG_DEBUG, "Preparing Sound "); - voicecall_snd_prepare_alert(pcall_core->papp_snd, call_handle); - if (FALSE == voicecall_core_is_connected_call_exist(pcall_core->pcall_engine)) { - CALL_ENG_DEBUG(ENG_DEBUG, "Changing MM Path just before playing the ring tone"); - voicecall_snd_change_mm_path(pcall_core->papp_snd, VOICE_CALL_MM_RING_TONE); - } else { - CALL_ENG_DEBUG(ENG_DEBUG, "2nd MT call alert."); - } - voicecall_snd_play_alert(pcall_core->papp_snd); + benabledTestMode = __vc_core_is_answermode_enabled_from_testmode(); + if ((TRUE == __vc_core_is_answermode_enabled()) || (TRUE == benabledTestMode)) { + CALL_ENG_DEBUG(ENG_DEBUG, "auto answer mode is enabled."); + __voicecall_core_start_auto_answer(pcall_core, benabledTestMode); + } - _vc_core_util_set_call_status(VCONFKEY_CALL_VOICE_CONNECTING); + CALL_ENG_DEBUG(ENG_DEBUG, "Preparing Sound "); + voicecall_snd_prepare_alert(pcall_core->papp_snd, call_handle); + if (FALSE == voicecall_core_is_connected_call_exist(pcall_core->pcall_engine)) { + CALL_ENG_DEBUG(ENG_DEBUG, "Changing MM Path just before playing the ring tone"); + sound_manager_call_session_set_mode(pcall_core->papp_snd->psnd_session, SOUND_CALL_SESSION_MODE_RINGTONE); + } else { + CALL_ENG_DEBUG(ENG_DEBUG, "2nd MT call alert."); + } + voicecall_snd_play_alert(pcall_core->papp_snd); + } } - } break; @@ -1071,7 +1092,6 @@ static gboolean voicecall_core_cb(int event, int param1, int param2, void *param CALL_ENG_DEBUG(ENG_DEBUG, "Call Handle = %d, bemergency:[%d]", event_data.call_handle, event_data.bemergency); vcall_engine_send_event_to_client(VC_ENGINE_MSG_OUTGOING_ORIG_TO_UI, (void *)&event_data); - _voicecall_dvc_proximity_sensor_init(pcall_core); g_set_path_timer_handler = g_timeout_add(SET_PATH_TIMER_VALUE, __voicecall_core_set_path_timer_cb, pcall_core); @@ -1088,8 +1108,6 @@ static gboolean voicecall_core_cb(int event, int param1, int param2, void *param memset(&event_data, 0, sizeof(event_data)); - PRINT_CURRENT_TIME("Alert Indication received at "); - event_data.call_handle = call_handle; vcall_engine_send_event_to_client(VC_ENGINE_MSG_OUTGOING_ALERT_TO_UI, (void *)&event_data); @@ -1132,13 +1150,11 @@ static gboolean voicecall_core_cb(int event, int param1, int param2, void *param event_data.bt_status = (int)_vc_bt_get_bt_status(); vcall_engine_send_event_to_client(VC_ENGINE_MSG_CONNECTED_TO_UI, (void *)&event_data); - _voicecall_dvc_proximity_sensor_init(pcall_core); - + voicecall_snd_stop_alert(pcall_core->papp_snd); /* To stop alert in case of call accept by AT command */ voicecall_snd_change_path(pcall_core->papp_snd); - /* Set phonestatus value */ + /* Set phone-status value */ _vc_core_util_set_call_status(VCONFKEY_CALL_VOICE_ACTIVE); - _vc_core_util_set_sleep_status(CALL_VC_POWER_GRANT_DIMMING); /* check minute minder */ if (vconf_get_bool(VCONFKEY_CISSAPPL_MINUTE_MINDER_BOOL, &bstatus)) { @@ -1156,9 +1172,7 @@ static gboolean voicecall_core_cb(int event, int param1, int param2, void *param /*Call is accepted, reset the flag */ voicecall_core_set_status(pcall_core, CALL_VC_CORE_FLAG_ACCEPT_BY_BT, FALSE); -#ifdef PDIAL_SEND_DTMF - g_idle_add(voicecall_core_send_phone_number_dtmf, (gpointer) call_handle); -#endif + } break; @@ -1167,7 +1181,6 @@ static gboolean voicecall_core_cb(int event, int param1, int param2, void *param int call_handle = param1; voice_call_end_cause_type_t end_cause = param2; vc_engine_normal_end_type event_data; - int active_call_members = -1; memset(&event_data, 0, sizeof(event_data)); @@ -1205,7 +1218,6 @@ static gboolean voicecall_core_cb(int event, int param1, int param2, void *param __voicecall_core_handle_incoming_call_end(pcall_core, call_handle); - _vc_core_util_set_sleep_status(CALL_VC_POWER_GRANT_DIMMING); vcall_engine_send_event_to_client(VC_ENGINE_MSG_INCOM_END_TO_UI, (void *)&event_data); } break; @@ -1231,7 +1243,6 @@ static gboolean voicecall_core_cb(int event, int param1, int param2, void *param __voicecall_core_handle_rejected_call_end(pcall_core, call_handle); - _vc_core_util_set_sleep_status(CALL_VC_POWER_GRANT_DIMMING); vcall_engine_send_event_to_client(VC_ENGINE_MSG_REJECTED_END_TO_UI, (void *)&event_data); } break; @@ -1243,11 +1254,6 @@ static gboolean voicecall_core_cb(int event, int param1, int param2, void *param int bauto_redial = -1; CALL_ENG_DEBUG(ENG_DEBUG, "end cause type :[%d]", end_cause_type); - - if (vconf_get_bool(VCONFKEY_CISSAPPL_VOICE_AUTO_REDIAL_BOOL, &bauto_redial)) { - CALL_ENG_DEBUG(ENG_ERR, "vconf_get_bool failed."); - } - CALL_ENG_DEBUG(ENG_DEBUG, "bauto_redial:[%d]", bauto_redial); if ((TRUE == bauto_redial) && (FALSE == voicecall_core_is_connected_call_exist(pcall_engine)) @@ -1268,7 +1274,6 @@ static gboolean voicecall_core_cb(int event, int param1, int param2, void *param } else { __voicecall_core_handle_outgoingcall_end(pcall_core, call_handle, end_cause_type); } - _vc_core_util_set_sleep_status(CALL_VC_POWER_GRANT_DIMMING); } break; @@ -1279,8 +1284,6 @@ static gboolean voicecall_core_cb(int event, int param1, int param2, void *param memset(&event_data, 0, sizeof(event_data)); vcall_engine_send_event_to_client(VC_ENGINE_MSG_OUTGOING_ABORTED_TO_UI, (void *)&event_data); - - _vc_core_util_set_sleep_status(CALL_VC_POWER_GRANT_DIMMING); } break; @@ -1288,9 +1291,7 @@ static gboolean voicecall_core_cb(int event, int param1, int param2, void *param { gboolean bsuccess = param1; CALL_ENG_DEBUG(ENG_DEBUG, "bsuccess:[%d]", bsuccess); -#ifdef PDIAL_SEND_DTMF __voicecall_core_handle_dtmf_ack(pcall_core, bsuccess); -#endif } break; @@ -1302,10 +1303,8 @@ static gboolean voicecall_core_cb(int event, int param1, int param2, void *param case VC_CALL_SS_HELD: { - int io_state = -1; int call_handle = param1; vc_engine_common_type event_data; - PRINT_CURRENT_TIME("Call Hold Ends at"); /* held popup shold not be displayed on outgoing popup */ memset(&event_data, 0, sizeof(event_data)); @@ -1321,7 +1320,6 @@ static gboolean voicecall_core_cb(int event, int param1, int param2, void *param { int call_handle = param1; vc_engine_common_type event_data; - PRINT_CURRENT_TIME("Call Retrieve Ends at"); /* held popup shold not be displayed on outgoing popup */ memset(&event_data, 0, sizeof(event_data)); @@ -1337,7 +1335,6 @@ static gboolean voicecall_core_cb(int event, int param1, int param2, void *param vc_engine_common_type event_data; int call_handle = param1; - PRINT_CURRENT_TIME("Call Swap Ends at"); memset(&event_data, 0, sizeof(event_data)); @@ -1352,8 +1349,6 @@ static gboolean voicecall_core_cb(int event, int param1, int param2, void *param { vc_engine_common_type event_data; - PRINT_CURRENT_TIME("Setup Conf Ends at"); - memset(&event_data, 0, sizeof(event_data)); /* Show Call Joined Message Box */ @@ -1369,8 +1364,6 @@ static gboolean voicecall_core_cb(int event, int param1, int param2, void *param int call_handle = param1; CALL_ENG_DEBUG(ENG_DEBUG, "The handle to be split is %d", call_handle); - PRINT_CURRENT_TIME("Split Conf Ends at"); - memset(&event_data, 0, sizeof(event_data)); event_data.call_handle = call_handle; @@ -1595,6 +1588,7 @@ static gboolean voicecall_core_cb(int event, int param1, int param2, void *param _vc_core_util_strcpy(event_data.call_num, sizeof(event_data.call_num), pcall_core->call_setup_info.tel_number); event_data.contact_index = -1; event_data.phone_type = -1; + event_data.bday_remaining_days = -1; _vc_core_util_strcpy(event_data.call_num, sizeof(event_data.call_num), psat_callinfo->disp_text); vcall_engine_send_event_to_client(VC_ENGINE_MSG_OUTGOING_TO_UI, (void *)&event_data); @@ -1668,7 +1662,7 @@ static gboolean voicecall_core_cb(int event, int param1, int param2, void *param vcui_app_util_strcpy(new_display_data.name, sizeof(new_display_data.name), psat_call_info->disp_text); } - /* todo, Check whether contact search need to be done for the SAT modified number */ + /*todo, Check whether contact search need to be done for the SAT modified number */ /*Set the newly modified data to the CDM */ vcui_app_cdm_set_display_object(pdisplay_mgr, &new_display_data); @@ -1723,6 +1717,18 @@ static gboolean voicecall_core_cb(int event, int param1, int param2, void *param } break; + case VC_CALL_NOTI_WBAMR: + { + vc_engine_wbamr_status_type event_data; + + CALL_ENG_DEBUG(ENG_DEBUG, "Current WBAmr status %d", param1); + + memset(&event_data, 0, sizeof(event_data)); + event_data.bstatus = param1; + vcall_engine_send_event_to_client(VC_ENGINE_MSG_NOTI_WBAMR_TO_UI, (void *)&event_data); + } + break; + default: CALL_ENG_DEBUG(ENG_DEBUG, " Engine Event ID : %d not handled", event); break; @@ -1866,15 +1872,10 @@ gboolean voicecall_core_set_to_default(call_vc_core_state_t *pcall_core) _vc_core_util_set_call_status(VCONFKEY_CALL_OFF); voicecall_core_set_status(pcall_core, CALL_VC_CORE_FLAG_NONE, TRUE); - _vc_core_util_set_sleep_status(CALL_VC_POWER_NORMAL_STATUS); pcall_core->bt_connected = _vc_bt_get_bt_status(); if (FALSE == pcall_core->bt_connected) { -#ifdef _NEW_SND_ - voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_RECEIVER); -#else - voicecall_snd_set_status(pcall_core->papp_snd, VOICE_CALL_AUDIO_HEADSET, pcall_core->bt_connected); -#endif + voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_RECEIVER_EARJACK); } else { CALL_ENG_DEBUG(ENG_DEBUG, "BT connected, Not changing the sound status"); } @@ -1882,6 +1883,10 @@ gboolean voicecall_core_set_to_default(call_vc_core_state_t *pcall_core) /* sound reset */ voicecall_snd_unregister_cm(pcall_core->papp_snd); + if (vconf_set_int(VCONFKEY_FACTORY_CALL_CONNECT_STATE, VCONFKEY_FACTORY_CALL_DISCONNECTED)) { + CALL_ENG_DEBUG(ENG_ERR, "vconf_set_int failed."); + } + return TRUE; } @@ -1927,7 +1932,7 @@ int voicecall_core_init(call_vc_core_state_t *pcall_core) _vc_bt_status_init(pcall_core); _voicecall_dvc_earjack_init(pcall_core); - + voicecall_core_set_status(pcall_core, CALL_VC_CORE_FLAG_NONE, TRUE); return TRUE; } @@ -1938,7 +1943,7 @@ int voicecall_core_init(call_vc_core_state_t *pcall_core) * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_core Handle to voicecall core * @param[in] bemergency emergency call or not from dialer - * @param[in] + * @param[in] */ gboolean voicecall_core_setup_call(call_vc_core_state_t *pcall_core, gboolean bemergency) { @@ -1946,7 +1951,6 @@ gboolean voicecall_core_setup_call(call_vc_core_state_t *pcall_core, gboolean be voicecall_setup_info_t setupcall_info = { 0, }; voicecall_error_t error_code = -1; gboolean bemergency_call = FALSE; - int io_state; gboolean bmocall_exists = FALSE; gboolean bmtcall_exists = FALSE; int nw_status = 0; @@ -2097,26 +2101,14 @@ gboolean voicecall_core_setup_call(call_vc_core_state_t *pcall_core, gboolean be } -#ifdef VC_ENG_FDN_SUPPORT - /*Check FDN Status */ - if (setupcall_info.call_setup_by != VC_CALL_SETUP_BY_SAT) { - if (FALSE == voicecall_core_check_fdn_status(pcall_core)) { - voicecall_core_set_status(pcall_core, CALL_VC_CORE_FLAG_SETUPCALL_FAIL, TRUE); - return FALSE; - } - } -#endif - /*Check for voicemail number if it is not an emergency call */ } CALL_ENG_DEBUG(ENG_DEBUG, "MO Call Setup OVer"); -#ifdef _NEW_SND_ - if(_vc_bt_get_bt_status() == TRUE){ - voicecall_snd_set_path_status(pcall_core->papp_snd,VOICE_CALL_SND_PATH_BT); + if (_vc_bt_get_bt_status() == TRUE) { + voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_BT); } -#endif voicecall_core_make_call(pcall_core); @@ -2138,8 +2130,6 @@ gboolean voicecall_core_make_call(call_vc_core_state_t *pcall_core) CALL_ENG_DEBUG(ENG_DEBUG, ""); - _vc_core_util_set_sleep_status(CALL_VC_POWER_PROHIBIT_DIMMING); - /*Make Actual Call with Voicecall Engine */ error_code = _vc_core_engine_make_call(pcall_engine, pcall_core->call_setup_info.mo_call_index, &call_handle); if (ERROR_VOICECALL_NONE != error_code) { @@ -2166,8 +2156,6 @@ gboolean voicecall_core_make_call(call_vc_core_state_t *pcall_core) } vcall_engine_send_event_to_client(VC_ENGINE_MSG_MESSAGE_BOX_TO_UI, (void *)&event_data); - _vc_core_util_set_sleep_status(CALL_VC_POWER_GRANT_DIMMING); - return FALSE; } @@ -2186,7 +2174,7 @@ gboolean voicecall_core_make_call(call_vc_core_state_t *pcall_core) * * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_core Handle to voicecall core - * @param[in] + * @param[in] */ gboolean voicecall_core_process_sat_setup_call(vcall_engine_sat_setup_call_info_t *sat_setup_call_info) { @@ -2224,7 +2212,7 @@ gboolean voicecall_core_process_sat_setup_call(vcall_engine_sat_setup_call_info_ * * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_core Handle to voicecall core - * @param[in] + * @param[in] */ gboolean voicecall_core_process_incoming_call(call_vc_core_incoming_info_t *incoming_call_info) { @@ -2267,7 +2255,7 @@ gboolean voicecall_core_process_incoming_call(call_vc_core_incoming_info_t *inco * * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_core Handle to voicecall core - * @param[in] + * @param[in] */ gboolean voicecall_core_answer_call(call_vc_core_state_t *pcall_core, gboolean auto_accept) { @@ -2281,6 +2269,8 @@ gboolean voicecall_core_answer_call(call_vc_core_state_t *pcall_core, gboolean a /*First Stop the Incoming alert */ voicecall_snd_stop_alert(pcall_core->papp_snd); + __voicecall_core_cancel_auto_answer(pcall_core); + _vc_core_engine_status_isexists_any_call(pcall_engine, &active_calls, &held_calls); CALL_ENG_DEBUG(ENG_DEBUG, "active_calls=%d, held_calls=%d", active_calls, held_calls); @@ -2334,6 +2324,7 @@ gboolean voicecall_core_answer_call_bytype(call_vc_core_state_t *pcall_core, voi /*First Stop the Incoming alert */ voicecall_snd_stop_alert(pcall_core->papp_snd); + __voicecall_core_cancel_auto_answer(pcall_core); error_code = _vc_core_engine_answer_call(pcall_engine, answer_type); @@ -2367,6 +2358,8 @@ gboolean voicecall_core_reject_mt(call_vc_core_state_t *pcall_core, gboolean bUD /* Stop Incmoing Call Alert */ voicecall_snd_stop_alert(papp_snd); + __voicecall_core_cancel_auto_answer(pcall_core); + CALL_ENG_DEBUG(ENG_DEBUG, "bUDUB = %d", bUDUB); error_code = _vc_core_engine_reject_call(pcall_engine, bUDUB); @@ -2459,7 +2452,7 @@ gboolean voicecall_core_end_all_held_calls(call_vc_core_state_t *pcall_core) * This function cancel outgoing call * * @return Returns TRUE -if answer is sucess, FALSE - otherwise - * @param[in] pcall_core Handle to voicecall core + * @param[in] pcall_core Handle to voicecall core */ gboolean voicecall_core_cancel_call(call_vc_core_state_t *pcall_core) { @@ -2555,7 +2548,7 @@ gboolean voicecall_core_cancel_call(call_vc_core_state_t *pcall_core) * This function process hold/retrive/swap conntected call * * @return Returns TRUE -if answer is sucess, FALSE - otherwise - * @param[in] pcall_core Handle to voicecall core + * @param[in] pcall_core Handle to voicecall core */ gboolean voicecall_core_process_hold_call(call_vc_core_state_t *pcall_core) { @@ -2579,6 +2572,7 @@ gboolean voicecall_core_process_hold_call(call_vc_core_state_t *pcall_core) CALL_ENG_DEBUG(ENG_DEBUG, "active calls: %d, held calls: %d", active_calls, held_calls); if (active_calls && held_calls) { + /*Both Calls available, swap the calls */ if (FALSE == voicecall_core_swap_calls(pcall_engine)) { return FALSE; @@ -2605,7 +2599,7 @@ gboolean voicecall_core_process_hold_call(call_vc_core_state_t *pcall_core) * This function sets up a conference call * * @return Returns TRUE on success or FALSE on failure - * @param[in] pcall_core Handle to voicecall core + * @param[in] pcall_core Handle to voicecall core */ gboolean voicecall_core_setup_conference(call_vc_core_state_t *pcall_core) { @@ -2613,7 +2607,6 @@ gboolean voicecall_core_setup_conference(call_vc_core_state_t *pcall_core) CALL_ENG_DEBUG(ENG_DEBUG, ""); - PRINT_CURRENT_TIME("Setup Conf Start at"); return (ERROR_VOICECALL_NONE == _vc_core_engine_setup_conference(pcall_engine)) ? TRUE : FALSE; } @@ -2621,7 +2614,7 @@ gboolean voicecall_core_setup_conference(call_vc_core_state_t *pcall_core) * This function splits the call corressponding to the given call handle and makes a private call * * @return Returns TRUE on success or FALSE on failure - * @param[in] pcall_core Handle to voicecall core + * @param[in] pcall_core Handle to voicecall core * @param[in] call_handle Call to be splitted from the conference call */ gboolean voicecall_core_make_private_call(call_vc_core_state_t *pcall_core, int call_handle) @@ -2630,7 +2623,6 @@ gboolean voicecall_core_make_private_call(call_vc_core_state_t *pcall_core, int CALL_ENG_DEBUG(ENG_DEBUG, ""); - PRINT_CURRENT_TIME("Split Conf Start at"); return (ERROR_VOICECALL_NONE == _vc_core_engine_private_call(pcall_engine, call_handle)) ? TRUE : FALSE; } @@ -2638,7 +2630,7 @@ gboolean voicecall_core_make_private_call(call_vc_core_state_t *pcall_core, int * This function transfers the call from active call to the held call * * @return Returns TRUE on success or FALSE on failure - * @param[in] pcall_core Handle to voicecall core + * @param[in] pcall_core Handle to voicecall core */ gboolean voicecall_core_transfer_calls(call_vc_core_state_t *pcall_core) { @@ -2653,7 +2645,7 @@ gboolean voicecall_core_transfer_calls(call_vc_core_state_t *pcall_core) * This function sends a dtmf string * * @return Returns TRUE on success or FALSE on failure - * @param[in] pcall_core Handle to voicecall core + * @param[in] pcall_core Handle to voicecall core * @param[in] dtmf_string dtmf string to be sent */ gboolean voicecall_core_send_dtmf(call_vc_core_state_t *pcall_core, char *dtmf_string) @@ -2667,7 +2659,7 @@ gboolean voicecall_core_send_dtmf(call_vc_core_state_t *pcall_core, char *dtmf_s } /** -* This function stops sound alert +* This function stops sound alert in case of reject with msg * * @return Returns TRUE on success or FALSE on failure * @param[in] pcall_core Handle to voicecall core @@ -2706,11 +2698,6 @@ gboolean voicecall_core_start_redial(call_vc_core_state_t *pcall_core, int manua int total_call_member = 0; CALL_ENG_DEBUG(ENG_DEBUG, ""); - - if (vconf_get_bool(VCONFKEY_CISSAPPL_VOICE_AUTO_REDIAL_BOOL, &auto_redial_status)) { - CALL_ENG_DEBUG(ENG_ERR, "vconf_get_bool failed."); - } - CALL_ENG_DEBUG(ENG_DEBUG, "auto_redial_status:[%d]", auto_redial_status); redial_count = voicecall_core_get_auto_redial_count(pcall_core); @@ -2740,8 +2727,6 @@ gboolean voicecall_core_start_redial(call_vc_core_state_t *pcall_core, int manua } else { CALL_ENG_DEBUG(ENG_DEBUG, "You dont need to redial close the MO Call Things"); - voicecall_snd_change_mm_path(pcall_core->papp_snd, VOICE_CALL_MM_RESET); - /* __vcui_app_view_mo_canceltimer_cb() */ _vc_core_engine_status_get_call_handle_bytype(pcall_core->pcall_engine, VC_OUTGOING_CALL, &call_handle); _vc_bt_send_response_to_bt(pcall_core, BT_AG_RES_CALL_END, call_handle, NULL); @@ -2810,7 +2795,6 @@ gboolean voicecall_core_stop_redial(call_vc_core_state_t *pcall_core) CALL_ENG_DEBUG(ENG_DEBUG, "coming inside voicecall_core_stop_redial"); - voicecall_snd_change_mm_path(pcall_core->papp_snd, VOICE_CALL_MM_RESET); _vc_core_util_set_call_status(VCONFKEY_CALL_OFF); /*Cancel the Redial Timer */ @@ -2862,6 +2846,7 @@ static gboolean __voicecall_core_auto_answer_timer_cb(gpointer puser_data) return FALSE; } +#if 0 static gboolean __voicecall_core_callstatus_set_timer_cb(gpointer puser_data) { call_vc_core_state_t *pcall_core = (call_vc_core_state_t *)puser_data; @@ -2875,6 +2860,7 @@ static gboolean __voicecall_core_callstatus_set_timer_cb(gpointer puser_data) return FALSE; } +#endif static gboolean __voicecall_core_auto_answer_idle_cb(gpointer puser_data) { @@ -2904,6 +2890,111 @@ static gboolean __voicecall_core_auto_answer_idle_cb(gpointer puser_data) } /** +* This function checks whether given answer mode is enabled or not +* +* @return returns TRUE if given answer mode type is enabled in the settings or FALSE otherwise +* +*/ +static gboolean __vc_core_is_answermode_enabled_from_testmode(void) +{ + CALL_ENG_DEBUG(ENG_DEBUG, ".."); + int benabled = -1; + int ret = -1; + + ret = vconf_get_int(VCONFKEY_TESTMODE_AUTO_ANSWER, &benabled); + if (0 == ret) { + CALL_ENG_DEBUG(ENG_DEBUG, "benabled = %d", benabled); + if (TRUE == benabled) + return TRUE; + else + return FALSE; + } else { + CALL_ENG_DEBUG(ENG_DEBUG, "vconf_get_int FAILED"); + return FALSE; + } +} + +/** +* This function checks whether given answer mode is enabled or not +* +* @return returns TRUE if given answer mode type is enabled in the settings or FALSE otherwise +* +*/ +static gboolean __vc_core_is_answermode_enabled(void) +{ + CALL_ENG_DEBUG(ENG_DEBUG, "coming inside voicecall_is_answermode_enabled"); + int answer_mode_enabled = -1; + int ret = -1; + + ret = vconf_get_int(VCONFKEY_CISSAPPL_ANSWERING_MODE_INT, &answer_mode_enabled); + if (0 == ret) { + CALL_ENG_DEBUG(ENG_DEBUG, "answer_mode_enabled = %d", answer_mode_enabled); + if (2 == answer_mode_enabled) /* here 2 is auto answer mode is enabled */ + return TRUE; + else + return FALSE; + } else { + CALL_ENG_DEBUG(ENG_DEBUG, "vconf_get_int FAILED"); + return FALSE; + } + +} + +/** +* This function processes auto answer request +* +* @return Returns void +* @param[in] pcall_core Handle to voicecall core +*/ +static void __voicecall_core_start_auto_answer(call_vc_core_state_t *pcall_core, gboolean isTestMode) +{ + gboolean earjack_connected = FALSE; + gboolean headset_connected = FALSE; + + CALL_ENG_DEBUG(ENG_DEBUG, ".."); + + if (TRUE == isTestMode) { + CALL_ENG_DEBUG(ENG_DEBUG, "In case Of Testmode, always auto answer enabled"); + + g_idle_add(__voicecall_core_auto_answer_idle_cb, pcall_core); + return; + } + earjack_connected = _voicecall_dvc_get_earjack_connected(); + + if (TRUE == earjack_connected) { + CALL_ENG_DEBUG(ENG_DEBUG, "earjack is connected"); + } + headset_connected = _vc_bt_get_bt_status(); + + if (TRUE == headset_connected) { + CALL_ENG_DEBUG(ENG_DEBUG, "headset is connected"); + } + + if (TRUE == earjack_connected || TRUE == headset_connected) { + g_idle_add(__voicecall_core_auto_answer_idle_cb, pcall_core); + } else { + CALL_ENG_DEBUG(ENG_DEBUG, "Without earjack or headset, skip auto answer "); + return; + } +} + +/** +* This function cancels the auto answering timer +* +* @return void +* @param[in] pcall_core Handle to voicecall core +*/ +static void __voicecall_core_cancel_auto_answer(call_vc_core_state_t *pcall_core) +{ + CALL_ENG_DEBUG(ENG_DEBUG, "coming inside __voicecall_cancel_auto_answer"); + if (pcall_core->auto_answer_timer > 0) { + g_source_remove(pcall_core->auto_answer_timer); + pcall_core->auto_answer_timer = 0; + } +} + +#if 0 +/** * This function checks BT headset and Earjack status * * @return void @@ -2917,14 +3008,11 @@ static void __voicecall_core_check_headset_earjack_status(call_vc_core_state_t * CALL_ENG_DEBUG(ENG_DEBUG, "Bt connected =%d", bt_connected); pcall_core->bt_connected = bt_connected; -#ifdef _NEW_SND_ -#else - voicecall_snd_set_status(pcall_core->papp_snd, VOICE_CALL_AUDIO_HEADSET, bt_connected); -#endif CALL_ENG_DEBUG(ENG_DEBUG, "Update the earjack status"); _voicecall_dvc_get_earjack_status(pcall_core); } +#endif /** * This function parses the in call supplementary services string and returns the in call ss to be used @@ -3142,12 +3230,6 @@ gboolean voicecall_core_start_incall_ss(call_vc_core_state_t *pcall_core, call_v CALL_ENG_DEBUG(ENG_DEBUG, "Need to show a popup to the user "); vcall_engine_send_event_to_client(VC_ENGINE_MSG_MESSAGE_BOX_TO_UI, (void *)&event_data); } - /* - if ( !(vcui_app_doc_is_transfer_call_possible(papp_document) && TRUE == vcui_app_doc_transfer_calls(papp_document)) ) - { - vcui_app_msgbox(papp_document, vcui_app_rsr_load_string(IDS_CALL_POP_OPERATION_REFUSED),GTK_MESSAGE_ALERT); - } - */ break; default: CALL_ENG_DEBUG(ENG_DEBUG, "Invalid SS State"); @@ -3228,12 +3310,15 @@ gboolean voicecall_core_cancel_dtmf_queue(call_vc_core_state_t *pcall_core) } /*Remove Pauser Timer */ - g_source_remove(pdtmf_info->dtmf_pause_timer); - pdtmf_info->dtmf_pause_timer = -1; + if (pdtmf_info->dtmf_pause_timer > 0) { + g_source_remove(pdtmf_info->dtmf_pause_timer); + pdtmf_info->dtmf_pause_timer = -1; + } /*Reset the Status Flags */ pdtmf_info->bdtmf_queue = FALSE; pdtmf_info->dtmf_index = 0; + pdtmf_info->bdtmf_wait = FALSE; memset(pdtmf_info->dtmf_number, 0, sizeof(pdtmf_info->dtmf_number)); if (TRUE == pdtmf_info->bsat_dtmf) { voicecall_core_send_sat_response(pcall_core->pcall_engine, SAT_RQST_SEND_DTMF, CALL_VC_ME_UNABLE_TO_PROCESS_COMMAND); @@ -3275,7 +3360,7 @@ gboolean __voicecall_core_send_dtmf_idle_cb(gpointer pdata) voicecall_core_cancel_dtmf_queue(pcall_core); memset(&event_data, 0, sizeof(event_data)); event_data.bstatus = FALSE; - event_data.string_id = -1; + event_data.string_id = IDS_CALL_POP_DTMFSENDING_FAIL; vcall_engine_send_event_to_client(VC_ENGINE_MSG_DTMF_ACK_TO_UI, (void *)&event_data); if (TRUE == pdtmf_info->bsat_dtmf) { @@ -3314,13 +3399,6 @@ static gboolean __voicecall_core_handle_dtmf_ack(call_vc_core_state_t *pcall_cor CALL_ENG_DEBUG(ENG_DEBUG, "Current dtmf_index: %d,dtmf_max_length=%d", pdtmf_info->dtmf_index, pdtmf_info->dtmf_max_length); CALL_ENG_DEBUG(ENG_DEBUG, "Current DTMF String: %s", &pdtmf_info->dtmf_number[pdtmf_info->dtmf_index]); - /*Update the DTMF Sending UI only, if it is available */ - memset(&event_data, 0, sizeof(event_data)); - event_data.bstatus = TRUE; - event_data.string_id = IDS_CALL_POP_SENDING; - snprintf(event_data.display_string, sizeof(event_data.display_string), &pdtmf_info->dtmf_number[pdtmf_info->dtmf_index]); - vcall_engine_send_event_to_client(VC_ENGINE_MSG_DTMF_ACK_TO_UI, (void *)&event_data); - /*Find the End of the queue */ if (pdtmf_info->dtmf_index >= pdtmf_info->dtmf_max_length) { @@ -3328,8 +3406,8 @@ static gboolean __voicecall_core_handle_dtmf_ack(call_vc_core_state_t *pcall_cor if (!((TRUE == pdtmf_info->bsat_dtmf) && (TRUE == pdtmf_info->bsat_hidden))) { memset(&event_data, 0, sizeof(event_data)); - event_data.bstatus = FALSE; - event_data.string_id = IDS_CALL_POP_DTMF_SENT; + event_data.bstatus = FALSE; /*check it*/ + event_data.string_id = IDS_CALL_POP_DTMF_SENT; /*check it*/ vcall_engine_send_event_to_client(VC_ENGINE_MSG_DTMF_ACK_TO_UI, (void *)&event_data); } @@ -3337,7 +3415,15 @@ static gboolean __voicecall_core_handle_dtmf_ack(call_vc_core_state_t *pcall_cor voicecall_core_send_sat_response(pcall_core->pcall_engine, SAT_RQST_SEND_DTMF, CALL_VC_ME_RET_SUCCESS); } } else { - if (0 == strcasecmp(dtmf_string, "p")) { + if (0 == strcasecmp(dtmf_string, "p") || 0 == strcmp(dtmf_string, ",")) { + CALL_ENG_DEBUG(ENG_DEBUG, "Pause on the dtmf string"); + + memset(&event_data, 0, sizeof(event_data)); + event_data.bstatus = TRUE; + event_data.string_id = IDS_CALL_POP_SENDING; + snprintf(event_data.display_string, sizeof(event_data.display_string), "%s", &pdtmf_info->dtmf_number[pdtmf_info->dtmf_index]); + vcall_engine_send_event_to_client(VC_ENGINE_MSG_DTMF_ACK_TO_UI, (void *)&event_data); + int dtmf_interval = 0; if (FALSE == _vc_core_util_check_gcf_status()) { @@ -3365,9 +3451,16 @@ static gboolean __voicecall_core_handle_dtmf_ack(call_vc_core_state_t *pcall_cor #else dtmf_interval = (pdtmf_info->dtmf_index == 0) ? DTMF_PAUSE_TIMER_INTERVAL_GCF_FIRST : DTMF_PAUSE_TIMER_INTERVAL_GCF_REST; #endif - CALL_ENG_DEBUG(ENG_DEBUG, "dtmf_interval:%d", dtmf_interval); } + CALL_ENG_DEBUG(ENG_DEBUG, "dtmf_interval:%d", dtmf_interval); pdtmf_info->dtmf_pause_timer = g_timeout_add(dtmf_interval, __voicecall_core_dtmf_pause_timer_cb, pcall_core); + } else if (0 == strcasecmp(dtmf_string, "w") || 0 == strcmp(dtmf_string, ";")) { + CALL_ENG_DEBUG(ENG_DEBUG, "Wait on the dtmf string"); + memset(&event_data, 0, sizeof(event_data)); + event_data.bstatus = TRUE; + event_data.string_id = IDS_CALL_POP_UNAVAILABLE; /*assign ID when string is added*/ + snprintf(event_data.display_string, sizeof(event_data.display_string), "%s", &pdtmf_info->dtmf_number[pdtmf_info->dtmf_index]); + vcall_engine_send_event_to_client(VC_ENGINE_MSG_DTMF_ACK_TO_UI, (void *)&event_data); } else { g_idle_add_full(G_PRIORITY_HIGH_IDLE + 25, __voicecall_core_send_dtmf_idle_cb, pcall_core, NULL); } @@ -3431,22 +3524,17 @@ static gboolean __voicecall_core_queue_dtmf_string(call_vc_core_state_t *pcall_c pdtmf_info->bsat_hidden = bhidden_mode; } - /* Check: It takes only 40 characters from the source, rest of the characters are ignored */ + /*It takes only 40 characters from the source, rest of the characters are ignored*/ memset(pdtmf_info->dtmf_number, 0, sizeof(pdtmf_info->dtmf_number)); - if (1 < sizeof(pdtmf_info->dtmf_number)) - _vc_core_util_strcpy(pdtmf_info->dtmf_number, VC_PHONE_NUMBER_LENGTH_MAX, "P"); - - strncat(pdtmf_info->dtmf_number, dtmf_string, min((sizeof(pdtmf_info->dtmf_number) - 2), strlen(dtmf_string))); - + strncpy(pdtmf_info->dtmf_number, dtmf_string, min((sizeof(pdtmf_info->dtmf_number) - 1), strlen(dtmf_string))); pdtmf_info->dtmf_max_length = strlen(pdtmf_info->dtmf_number); - CALL_ENG_DEBUG(ENG_DEBUG, "Dtmf Number:%s ,dtmf_max_length:%d", pdtmf_info->dtmf_number, pdtmf_info->dtmf_max_length); dtmf_digit[0] = pdtmf_info->dtmf_number[pdtmf_info->dtmf_index]; dtmf_digit[1] = '\0'; /*Send DTMF */ - if (0 == strcasecmp(dtmf_digit, "p")) { + if (0 == strcasecmp(dtmf_digit, "p") || 0 == strcmp(dtmf_digit, ",")) { int dtmf_interval = 0; if (FALSE == _vc_core_util_check_gcf_status()) { @@ -3478,6 +3566,9 @@ static gboolean __voicecall_core_queue_dtmf_string(call_vc_core_state_t *pcall_c CALL_ENG_DEBUG(ENG_DEBUG, "updated dtmf_interval:%d", dtmf_interval); } pdtmf_info->dtmf_pause_timer = g_timeout_add(dtmf_interval, __voicecall_core_dtmf_pause_timer_cb, pcall_core); + } else if (0 == strcasecmp(dtmf_digit, "w") || 0 == strcmp(dtmf_digit, ";")) { + /* enable wait flag for dtmf sending */ + pdtmf_info->bdtmf_wait = TRUE; } else if ((ERROR_VOICECALL_NONE != _vc_core_engine_send_dtmf(pcall_core->pcall_engine, dtmf_digit))) { if (!((TRUE == pdtmf_info->bsat_dtmf) && (TRUE == pdtmf_info->bsat_hidden))) { memset(&event_data, 0, sizeof(event_data)); @@ -3496,7 +3587,12 @@ static gboolean __voicecall_core_queue_dtmf_string(call_vc_core_state_t *pcall_c if (!((TRUE == pdtmf_info->bsat_dtmf) && (TRUE == pdtmf_info->bsat_hidden))) { memset(&event_data, 0, sizeof(event_data)); event_data.bstatus = TRUE; - event_data.string_id = IDS_CALL_POP_SENDING; + CALL_ENG_DEBUG(ENG_DEBUG, "pdtmf_info->bdtmf_wait [%d]", pdtmf_info->bdtmf_wait); + if (pdtmf_info->bdtmf_wait) { + event_data.string_id = IDS_CALL_POP_UNAVAILABLE; + } else { + event_data.string_id = IDS_CALL_POP_SENDING; + } _vc_core_util_strcpy(event_data.display_string, VC_PHONE_NUMBER_LENGTH_MAX, pdtmf_info->dtmf_number); vcall_engine_send_event_to_client(VC_ENGINE_MSG_DTMF_ACK_TO_UI, (void *)&event_data); } else { @@ -3523,33 +3619,18 @@ gboolean voicecall_core_change_sound_path(call_vc_core_state_t *pcall_core, voic switch (sound_path) { case VOICE_CALL_AUDIO_SPEAKER: { -#ifdef _NEW_SND_ if (voicecall_snd_get_path_status(pcall_core->papp_snd) == VOICE_CALL_SND_PATH_BT) { /*_vc_bt_send_response_to_bt(pcall_core, BT_AG_RES_SWITCH_TO_PHONE, -1, NULL);*/ _vc_bt_request_switch_headset_path(pcall_core, FALSE); } - voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_SPEAKER); -#else - if (TRUE == voicecall_snd_get_status(papp_snd, VOICE_CALL_AUDIO_HEADSET)) { - voicecall_snd_set_status(papp_snd, VOICE_CALL_AUDIO_HEADSET, FALSE); - /*_vc_bt_send_response_to_bt(pcall_core, BT_AG_RES_SWITCH_TO_PHONE, -1, NULL);*/ - _vc_bt_request_switch_headset_path(pcall_core, FALSE); - } - - voicecall_snd_set_status(papp_snd, VOICE_CALL_AUDIO_SPEAKER, TRUE); -#endif + voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_SPEAKER); ret = TRUE; } break; case VOICE_CALL_AUDIO_HEADSET: { -#ifdef _NEW_SND_ - voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_BT); -#else - voicecall_snd_set_status(papp_snd, VOICE_CALL_AUDIO_SPEAKER, FALSE); - voicecall_snd_set_status(papp_snd, VOICE_CALL_AUDIO_HEADSET, TRUE); -#endif + voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_BT); /* _vc_bt_send_response_to_bt(pcall_core, BT_AG_RES_SWITCH_TO_HEADSET, -1, NULL);*/ _vc_bt_request_switch_headset_path(pcall_core, TRUE); @@ -3557,23 +3638,13 @@ gboolean voicecall_core_change_sound_path(call_vc_core_state_t *pcall_core, voic } break; - case VOICE_CALL_AUDIO_EARJACK: + case VOICE_CALL_AUDIO_RECEIVER_EARJACK: { -#ifdef _NEW_SND_ if (voicecall_snd_get_path_status(pcall_core->papp_snd) == VOICE_CALL_SND_PATH_BT) { /*_vc_bt_send_response_to_bt(pcall_core, BT_AG_RES_SWITCH_TO_PHONE, -1, NULL);*/ _vc_bt_request_switch_headset_path(pcall_core, FALSE); } - voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_EARJACK); -#else - voicecall_snd_set_status(papp_snd, VOICE_CALL_AUDIO_SPEAKER, FALSE); - - if (TRUE == voicecall_snd_get_status(papp_snd, VOICE_CALL_AUDIO_HEADSET)) { - voicecall_snd_set_status(papp_snd, VOICE_CALL_AUDIO_HEADSET, FALSE); - /*_vc_bt_send_response_to_bt(pcall_core, BT_AG_RES_SWITCH_TO_PHONE, -1, NULL);*/ - _vc_bt_request_switch_headset_path(pcall_core, FALSE); - } -#endif + voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_RECEIVER_EARJACK); ret = TRUE; } break; @@ -3598,81 +3669,76 @@ gboolean voicecall_core_get_sound_path(call_vc_core_state_t *pcall_core, int *so CALL_ENG_DEBUG(ENG_DEBUG, ".."); -#ifdef _NEW_SND_ - switch (voicecall_snd_get_path_status(papp_snd)) - { - case VOICE_CALL_SND_PATH_SPEAKER: - { - *sound_path = VOICE_CALL_AUDIO_SPEAKER; - } - break; - - case VOICE_CALL_SND_PATH_BT: - { - *sound_path = VOICE_CALL_AUDIO_HEADSET; - } - break; - - case VOICE_CALL_SND_PATH_EARJACK: - { - *sound_path = VOICE_CALL_AUDIO_EARJACK; - } - break; + switch (voicecall_snd_get_path_status(papp_snd)) { + case VOICE_CALL_SND_PATH_SPEAKER: + { + *sound_path = VOICE_CALL_AUDIO_SPEAKER; + } + break; - case VOICE_CALL_SND_PATH_RECEIVER: - default: - { - *sound_path = VOICE_CALL_AUDIO_RECEIVER; - } - break; + case VOICE_CALL_SND_PATH_BT: + { + *sound_path = VOICE_CALL_AUDIO_HEADSET; + } + break; + case VOICE_CALL_SND_PATH_RECEIVER_EARJACK: + default: + { + *sound_path = VOICE_CALL_AUDIO_RECEIVER_EARJACK; + } + break; } -#else - if (TRUE == voicecall_snd_get_status(papp_snd, VOICE_CALL_AUDIO_SPEAKER)) { - *sound_path = VOICE_CALL_AUDIO_SPEAKER; - } else if (TRUE == voicecall_snd_get_status(papp_snd, VOICE_CALL_AUDIO_HEADSET)) { - *sound_path = VOICE_CALL_AUDIO_HEADSET; - } else { - *sound_path = VOICE_CALL_AUDIO_EARJACK; - } -#endif return TRUE; } static gboolean __voicecall_core_is_redial_cuase(int end_cause) { - CALL_ENG_DEBUG(ENG_DEBUG, "end_cause(%d)",end_cause); - - switch (end_cause) - { - case VC_ENDCAUSE_CALL_BARRED: - case VC_ENDCAUSE_NO_SERVICE: - case VC_ENDCAUSE_USER_UNAVAILABLE: - case VC_ENDCAUSE_INVALID_NUMBER_FORMAT: - case VC_ENDCAUSE_NUMBER_CHANGED: - case VC_ENDCAUSE_NO_CREDIT: - case VC_ENDCAUSE_UNASSIGNED_NUMBER: - return FALSE; + CALL_ENG_DEBUG(ENG_DEBUG, "end_cause(%d)", end_cause); - case VC_ENDCAUSE_CALL_ENDED: - case VC_ENDCAUSE_CALL_DISCONNECTED: - case VC_ENDCAUSE_NO_ANSWER: - case VC_ENDCAUSE_NW_BUSY: - case VC_ENDCAUSE_CALL_SERVICE_NOT_ALLOWED: - case VC_ENDCAUSE_NW_FAILED: - case VC_ENDCAUSE_REJECTED: - case VC_ENDCAUSE_USER_BUSY: - case VC_ENDCAUSE_WRONG_GROUP: - case VC_ENDCAUSE_CALL_NOT_ALLOWED: - case VC_ENDCAUSE_CALL_FAILED: - case VC_ENDCAUSE_NO_USER_RESPONDING: - case VC_ENDCAUSE_USER_ALERTING_NO_ANSWER: - case VC_ENDCAUSE_SERVICE_TEMP_UNAVAILABLE: - case VC_ENDCAUSE_USER_DOESNOT_RESPOND: - case VC_ENDCAUSE_IMEI_REJECTED: - case VC_ENDCAUSE_TAPI_ERROR: - default: - return TRUE; + switch (end_cause) { + case VC_ENDCAUSE_CALL_BARRED: + case VC_ENDCAUSE_NO_SERVICE: + case VC_ENDCAUSE_USER_UNAVAILABLE: + case VC_ENDCAUSE_INVALID_NUMBER_FORMAT: + case VC_ENDCAUSE_NUMBER_CHANGED: + case VC_ENDCAUSE_NO_CREDIT: + case VC_ENDCAUSE_UNASSIGNED_NUMBER: + return FALSE; + + case VC_ENDCAUSE_CALL_ENDED: + case VC_ENDCAUSE_CALL_DISCONNECTED: + case VC_ENDCAUSE_NO_ANSWER: + case VC_ENDCAUSE_NW_BUSY: + case VC_ENDCAUSE_CALL_SERVICE_NOT_ALLOWED: + case VC_ENDCAUSE_NW_FAILED: + case VC_ENDCAUSE_REJECTED: + case VC_ENDCAUSE_USER_BUSY: + case VC_ENDCAUSE_WRONG_GROUP: + case VC_ENDCAUSE_CALL_NOT_ALLOWED: + case VC_ENDCAUSE_CALL_FAILED: + case VC_ENDCAUSE_NO_USER_RESPONDING: + case VC_ENDCAUSE_USER_ALERTING_NO_ANSWER: + case VC_ENDCAUSE_SERVICE_TEMP_UNAVAILABLE: + case VC_ENDCAUSE_USER_DOESNOT_RESPOND: + case VC_ENDCAUSE_IMEI_REJECTED: + case VC_ENDCAUSE_TAPI_ERROR: + default: + return TRUE; } } + +/** + * This function processed the supplementary services while on call + * + * @return Returns TRUE If transfer call can be made or FALSE if not + * @param[in] pcall_core Handle to voicecall core + */ +void voicecall_core_process_dtmf_send_status(call_vc_core_state_t *pcall_core, gboolean bsuccess) +{ + CALL_ENG_DEBUG(ENG_DEBUG, " .."); + VOICECALL_RETURN_IF_FAIL(pcall_core); + __voicecall_core_handle_dtmf_ack(pcall_core, bsuccess); +} + diff --git a/call-engine/voice-call-dbus.c b/call-engine/voice-call-dbus.c index 11b29a4..2e87463 100755 --- a/call-engine/voice-call-dbus.c +++ b/call-engine/voice-call-dbus.c @@ -26,19 +26,19 @@ #include /* Voice Call <-- BT */ -#define DBUS_BT_MATCH_RULE "type='signal',path='/org/projectx/bluetooth_event',interface='User.Bluetooth.AG'" -#define DBUS_BT_OBJECT_REQUEST "/org/projectx/bluetooth_event" +#define DBUS_BT_MATCH_RULE "type='signal',path='/org/projectx/bluetooth_event',interface='User.Bluetooth.AG'" +#define DBUS_BT_OBJECT_REQUEST "/org/projectx/bluetooth_event" #define DBUS_BT_INTERFACE_REQUEST "User.Bluetooth.AG" -#define DBUS_BT_METHOD_REQUEST "Request" +#define DBUS_BT_METHOD_REQUEST "Request" /* Voice Call --> BT */ #define DBUS_BT_SERVICE "org.projectx.bluetooth" -#define DBUS_BT_OBJECT_RESPONSE "/org/projectx/btcall_event" -#define DBUS_BT_INTERFACE_RESPONSE "User.Bluetooth.AG" +#define DBUS_BT_OBJECT_RESPONSE "/org/projectx/btcall_event" +#define DBUS_BT_INTERFACE_RESPONSE "User.Bluetooth.AG" #define DBUS_BT_METHOD_RESPONSE "Response" -//#define DBUS_BT_METHOD_CONNECT "Connect" +/*#define DBUS_BT_METHOD_CONNECT "Connect"*/ -#define BT_PKG "org.tizen.bluetooth" +#define BT_PKG "org.tizen.bluetooth" static DBusGConnection *gconnection = NULL; @@ -49,7 +49,7 @@ typedef struct _dbus_dest_t { char *method; } dbus_dest_t; -static int vc_engine_send_via_dbus(DBusGConnection * conn, dbus_dest_t * dest, int first_arg_type, ...) +static int vc_engine_send_via_dbus(DBusGConnection *conn, dbus_dest_t *dest, int first_arg_type, ...) { DBusMessage *msg; DBusMessageIter iter; @@ -60,10 +60,10 @@ static int vc_engine_send_via_dbus(DBusGConnection * conn, dbus_dest_t * dest, i dbus_int32_t val_int; char *val_str; - CALL_ENG_DEBUG(ENG_DEBUG, "path:%s, interface:%s, method:%s \n", dest->object_path, dest->interface, dest->method); + CALL_ENG_DEBUG(ENG_DEBUG, "path:%s, interface:%s, method:%s", dest->object_path, dest->interface, dest->method); msg = dbus_message_new_signal(dest->object_path, dest->interface, dest->method); if (msg == NULL) { - CALL_ENG_DEBUG(ENG_DEBUG, "dbus_message_new_signal failed.\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "dbus_message_new_signal failed."); return VC_ERROR; } dbus_message_set_destination(msg, dest->service); @@ -117,18 +117,15 @@ void vc_engine_on_dbus_send_response_to_bt(connectivity_bt_ag_param_info_t bt_re DBUS_BT_INTERFACE_RESPONSE, DBUS_BT_METHOD_RESPONSE }; - CALL_ENG_DEBUG(ENG_DEBUG, "..\n"); - - vc_engine_send_via_dbus(gconnection, &bt_dbus_dest, - DBUS_TYPE_INT32, &bt_resp_info.param1, - DBUS_TYPE_INT32, &bt_resp_info.param2, - DBUS_TYPE_INT32, &bt_resp_info.param3, - DBUS_TYPE_STRING, bt_resp_info.param4, - DBUS_TYPE_INVALID); + CALL_ENG_DEBUG(ENG_DEBUG, ".."); + + vc_engine_send_via_dbus(gconnection, &bt_dbus_dest, DBUS_TYPE_INT32, &bt_resp_info.param1, \ + DBUS_TYPE_INT32, &bt_resp_info.param2, DBUS_TYPE_INT32, &bt_resp_info.param3, DBUS_TYPE_STRING, bt_resp_info.param4, \ + DBUS_TYPE_INVALID); } /* Handle all bluetooth relative signal */ -static void vc_engine_on_dbus_parsing_bt(void *user_data, DBusMessage * message) +static void vc_engine_on_dbus_parsing_bt(void *user_data, DBusMessage *message) { DBusMessageIter iter; connectivity_bt_ag_param_info_t bt_event_info = { 0, }; @@ -146,14 +143,14 @@ static void vc_engine_on_dbus_parsing_bt(void *user_data, DBusMessage * message) if (dbus_message_iter_next(&iter)) dbus_message_iter_get_basic(&iter, &bt_event_info.param4); - CALL_ENG_DEBUG(ENG_DEBUG,"param1:[%d], param2[%d], param3[%d], param4[%s] \n", + CALL_ENG_DEBUG(ENG_DEBUG, "param1:[%d], param2[%d], param3[%d], param4[%s]", bt_event_info.param1, bt_event_info.param2, bt_event_info.param3, bt_event_info.param4); _vc_bt_handle_bt_events(pcall_core, &bt_event_info); } /* Handle all dbus signal */ -static DBusHandlerResult vc_engine_on_dbus_receive(DBusConnection * connection, DBusMessage * message, void *user_data) +static DBusHandlerResult vc_engine_on_dbus_receive(DBusConnection *connection, DBusMessage *message, void *user_data) { int type; @@ -163,12 +160,12 @@ static DBusHandlerResult vc_engine_on_dbus_receive(DBusConnection * connection, type = dbus_message_get_type(message); if (type != DBUS_MESSAGE_TYPE_SIGNAL) { - /* + /* * INVALID: 0 * METHOD_CALL: 1 * METHOD_CALL_RETURN: 2 * ERROR: 3 - * SIGNAL: 4 + * SIGNAL: 4 */ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } @@ -185,9 +182,9 @@ static DBusHandlerResult vc_engine_on_dbus_receive(DBusConnection * connection, /* Check BT Signal */ if ((strcmp(object_path, DBUS_BT_OBJECT_REQUEST) == 0) && (strcmp(interface_name, DBUS_BT_INTERFACE_REQUEST) == 0)) { - CALL_ENG_DEBUG(ENG_DEBUG, "received DBus BT signal!\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "received DBus BT signal!"); if (strcmp(method_name, DBUS_BT_METHOD_REQUEST) == 0) { - CALL_ENG_DEBUG(ENG_DEBUG, "BT Method :[Request] \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "BT Method :[Request]"); vc_engine_on_dbus_parsing_bt(user_data, message); return DBUS_HANDLER_RESULT_HANDLED; } @@ -202,26 +199,25 @@ int vc_engine_dbus_receiver_setup() DBusError derror; int ret; - // connectio to dbus-daemon. + /*connectio to dbus-daemon.*/ gconnection = dbus_g_bus_get(DBUS_BUS_SYSTEM, &error); if (!gconnection) { - printf("Could not get connection: %s\n", error->message); + CALL_ENG_DEBUG(ENG_ERR,"Could not get connection: %s", error->message); return FALSE; } - + dbus_error_init(&derror); dbus_bus_add_match(dbus_g_connection_get_connection(gconnection), DBUS_BT_MATCH_RULE, &derror); - if (dbus_error_is_set(&derror)) // failure - { - CALL_ENG_DEBUG(ENG_DEBUG, "Failed to dbus_bus_add_match(%s): %s\n", DBUS_BT_MATCH_RULE, derror.message); + if (dbus_error_is_set(&derror)) { /*failure*/ + CALL_ENG_DEBUG(ENG_ERR, "Failed to dbus_bus_add_match(%s): %s", DBUS_BT_MATCH_RULE, derror.message); dbus_error_free(&derror); return FALSE; } - // register event filter to handle received dbus-message. + /*register event filter to handle received dbus-message.*/ ret = dbus_connection_add_filter(dbus_g_connection_get_connection(gconnection), vc_engine_on_dbus_receive, NULL, NULL); if (ret != TRUE) { - CALL_ENG_DEBUG(ENG_DEBUG, "Failed to dbus_connection_add_filter"); + CALL_ENG_DEBUG(ENG_ERR, "Failed to dbus_connection_add_filter"); return FALSE; } diff --git a/call-engine/voice-call-device.c b/call-engine/voice-call-device.c index 76d4344..46e08e9 100755 --- a/call-engine/voice-call-device.c +++ b/call-engine/voice-call-device.c @@ -30,11 +30,6 @@ #include #include -static int g_proximity_sensor_handle = -1; -static int g_proximity_sensor_state = -1; - -static gboolean __voicecall_dvc_proximity_sensor_is_request(unsigned int type, sensor_event_data_t *event, void *data); -static void __voicecall_dvc_proximity_sensor_callback_func(unsigned int type, sensor_event_data_t *event, void *data); static gboolean __voicecall_dvc_earjack_status_cb(keynode_t *node, call_vc_core_state_t *pcall_core); static gboolean __voicecall_dvc_earjackkey_status_cb(keynode_t *node, call_vc_core_state_t *pcall_core); @@ -42,57 +37,48 @@ static gboolean __voicecall_dvc_earjackkey_status_cb(keynode_t *node, call_vc_co * This function handles earjack event * * @return Returns TRUE on success or FALSE on failure - * @param[in] node vconf node - * @param[in] pcall_core Handle to voicecall core + * @param[in] node vconf node + * @param[in] pcall_core Handle to voicecall core */ static gboolean __voicecall_dvc_earjack_status_cb(keynode_t *node, call_vc_core_state_t *pcall_core) { - gboolean bRecieverPath = FALSE; int earjack_status; - CALL_ENG_DEBUG(ENG_DEBUG, "..\n"); + CALL_ENG_DEBUG(ENG_DEBUG, ".."); earjack_status = vconf_keynode_get_int(node); - CALL_ENG_DEBUG(ENG_DEBUG, "Earjack Status: %d \n", earjack_status); + CALL_ENG_DEBUG(ENG_DEBUG, "Earjack Status: %d", earjack_status); vc_engine_headset_status_type event_data; /*Change path only if outgoing call or connected call exists */ -#ifdef _NEW_SND_ - if ((TRUE == voicecall_core_is_outgoing_call_exists(pcall_core->pcall_engine)) + if ((TRUE == voicecall_core_is_outgoing_call_exists(pcall_core->pcall_engine)) || (TRUE == voicecall_core_is_connected_call_exist(pcall_core->pcall_engine))) { - if (earjack_status == TRUE) { - voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_EARJACK); + if (earjack_status != FALSE) { + voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_RECEIVER_EARJACK); voicecall_snd_change_path(pcall_core->papp_snd); memset(&event_data, 0, sizeof(event_data)); event_data.bstatus = earjack_status; - vcall_engine_send_event_to_client(VC_ENGINE_MSG_EARJACK_STATUS_TO_UI, (void *)&event_data); + vcall_engine_send_event_to_client(VC_ENGINE_MSG_EARJACK_STATUS_TO_UI, (void *)&event_data); } else { - if (voicecall_snd_get_path_status(pcall_core->papp_snd) == VOICE_CALL_SND_PATH_EARJACK) { + if (voicecall_snd_get_path_status(pcall_core->papp_snd) == VOICE_CALL_SND_PATH_RECEIVER_EARJACK) { if (_vc_bt_is_bt_connected(pcall_core) == TRUE) { - voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_BT); + voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_BT); /*_vc_bt_send_response_to_bt(pcall_core, BT_AG_RES_SWITCH_TO_HEADSET, -1, NULL);*/ _vc_bt_request_switch_headset_path(pcall_core, TRUE); } else { - voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_RECEIVER); + voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_RECEIVER_EARJACK); voicecall_snd_change_path(pcall_core->papp_snd); } memset(&event_data, 0, sizeof(event_data)); event_data.bstatus = earjack_status; - vcall_engine_send_event_to_client(VC_ENGINE_MSG_EARJACK_STATUS_TO_UI, (void *)&event_data); + vcall_engine_send_event_to_client(VC_ENGINE_MSG_EARJACK_STATUS_TO_UI, (void *)&event_data); } else { CALL_ENG_DEBUG(ENG_DEBUG, "No path change"); } } } -#else - if ((TRUE == voicecall_core_is_outgoing_call_exists(pcall_core->pcall_engine)) || (TRUE == voicecall_core_is_connected_call_exist(pcall_core->pcall_engine))) { - memset(&event_data, 0, sizeof(event_data)); - event_data.bstatus = earjack_status; - vcall_engine_send_event_to_client(VC_ENGINE_MSG_EARJACK_STATUS_TO_UI, (void *)&event_data); - } -#endif return TRUE; } @@ -100,26 +86,24 @@ static gboolean __voicecall_dvc_earjack_status_cb(keynode_t *node, call_vc_core_ * This function handles earjack key event * * @return Returns TRUE on success or FALSE on failure - * @param[in] node vconf node - * @param[in] pcall_core Handle to voicecall core + * @param[in] node vconf node + * @param[in] pcall_core Handle to voicecall core */ static gboolean __voicecall_dvc_earjackkey_status_cb(keynode_t *node, call_vc_core_state_t *pcall_core) { int key_value; - CALL_ENG_DEBUG(ENG_DEBUG, "..\n"); + CALL_ENG_DEBUG(ENG_DEBUG, ".."); key_value = vconf_keynode_get_int(node); - CALL_ENG_DEBUG(ENG_DEBUG, "key_value: %d \n", key_value); + CALL_ENG_DEBUG(ENG_DEBUG, "key_value: %d", key_value); if (key_value > 0) { if (voicecall_core_is_connected_call_exist(pcall_core->pcall_engine)) { voicecall_core_end_all_calls(pcall_core); } else if (voicecall_core_is_incoming_call_exists(pcall_core->pcall_engine)) { -#ifdef _NEW_SND_ - voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_EARJACK); -#endif + voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_RECEIVER_EARJACK); voicecall_core_answer_call(pcall_core, FALSE); } else if (voicecall_core_is_outgoing_call_exists(pcall_core->pcall_engine)) { voicecall_core_cancel_call(pcall_core); @@ -133,28 +117,10 @@ static gboolean __voicecall_dvc_earjackkey_status_cb(keynode_t *node, call_vc_co * This function initialize earjack event. * * @return Returns TRUE on success or FALSE on failure - * @param[in] pcall_core Handle to voicecall core + * @param[in] pcall_core Handle to voicecall core */ gboolean _voicecall_dvc_earjack_init(call_vc_core_state_t *pcall_core) { -#ifdef _NEW_SND_ -#else - int earjack_status = -1; - if (!vconf_get_int(VCONFKEY_SYSMAN_EARJACK, &earjack_status)) { - CALL_ENG_DEBUG(ENG_DEBUG, "earjack_status:[%d]\n", earjack_status); - if (earjack_status == VCONFKEY_SYSMAN_EARJACK_REMOVED) { - voicecall_snd_set_status(pcall_core->papp_snd, VOICE_CALL_AUDIO_EARJACK, FALSE); - CALL_ENG_DEBUG(ENG_DEBUG, "*****************VOICE_CALL_AUDIO_EARJACK = FALSE **********\n"); - } else { - voicecall_snd_set_status(pcall_core->papp_snd, VOICE_CALL_AUDIO_EARJACK, TRUE); - CALL_ENG_DEBUG(ENG_DEBUG, "*****************VOICE_CALL_AUDIO_EARJACK = TRUE **********\n"); - } - } else { - CALL_ENG_DEBUG(ENG_ERR, "vconf_get_int failed..\n"); - voicecall_snd_set_status(pcall_core->papp_snd, VOICE_CALL_AUDIO_EARJACK, FALSE); - } -#endif - vconf_notify_key_changed(VCONFKEY_SYSMAN_EARJACK, (void *)__voicecall_dvc_earjack_status_cb, pcall_core); vconf_notify_key_changed(VCONFKEY_SYSMAN_EARJACKKEY, (void *)__voicecall_dvc_earjackkey_status_cb, pcall_core); return TRUE; @@ -164,17 +130,17 @@ void _voicecall_dvc_get_earjack_status(call_vc_core_state_t *pcall_core) { int earjack_status = -1; if (!vconf_get_int(VCONFKEY_SYSMAN_EARJACK, &earjack_status)) { - CALL_ENG_DEBUG(ENG_DEBUG, "earjack_status:[%d]\n", earjack_status); + CALL_ENG_DEBUG(ENG_DEBUG, "earjack_status:[%d]", earjack_status); if (earjack_status == VCONFKEY_SYSMAN_EARJACK_REMOVED) { - voicecall_snd_set_status(pcall_core->papp_snd, VOICE_CALL_AUDIO_EARJACK, FALSE); - CALL_ENG_DEBUG(ENG_DEBUG, "*****************VOICE_CALL_AUDIO_EARJACK = FALSE **********\n"); + voicecall_snd_set_status(pcall_core->papp_snd, VOICE_CALL_AUDIO_RECEIVER_EARJACK, FALSE); + CALL_ENG_DEBUG(ENG_DEBUG, "*****************VOICE_CALL_AUDIO_RECEIVER_EARJACK = FALSE **********"); } else { - voicecall_snd_set_status(pcall_core->papp_snd, VOICE_CALL_AUDIO_EARJACK, TRUE); - CALL_ENG_DEBUG(ENG_DEBUG, "*****************VOICE_CALL_AUDIO_EARJACK = TRUE **********\n"); + voicecall_snd_set_status(pcall_core->papp_snd, VOICE_CALL_AUDIO_RECEIVER_EARJACK, TRUE); + CALL_ENG_DEBUG(ENG_DEBUG, "*****************VOICE_CALL_AUDIO_RECEIVER_EARJACK = TRUE **********"); } } else { - CALL_ENG_DEBUG(ENG_ERR, "vconf_get_int failed..\n"); - voicecall_snd_set_status(pcall_core->papp_snd, VOICE_CALL_AUDIO_EARJACK, FALSE); + CALL_ENG_DEBUG(ENG_ERR, "vconf_get_int failed.."); + voicecall_snd_set_status(pcall_core->papp_snd, VOICE_CALL_AUDIO_RECEIVER_EARJACK, FALSE); } } @@ -182,21 +148,21 @@ gboolean _voicecall_dvc_get_earjack_connected() { int earjack_status = -1; if (!vconf_get_int(VCONFKEY_SYSMAN_EARJACK, &earjack_status)) { - CALL_ENG_DEBUG(ENG_DEBUG, "earjack_status:[%d]\n", earjack_status); + CALL_ENG_DEBUG(ENG_DEBUG, "earjack_status:[%d]", earjack_status); if (earjack_status == VCONFKEY_SYSMAN_EARJACK_REMOVED) { return FALSE; } else { return TRUE; } } else { - CALL_ENG_DEBUG(ENG_ERR, "vconf_get_int failed..\n"); + CALL_ENG_DEBUG(ENG_ERR, "vconf_get_int failed.."); return FALSE; } } void _voicecall_dvc_control_lcd_state(voicecall_lcd_control_t state) { - CALL_ENG_DEBUG(ENG_DEBUG,"[%d]", state); + CALL_ENG_DEBUG(ENG_DEBUG, "[%d]", state); switch (state) { case VC_LCD_OFF: pm_change_state(LCD_OFF); @@ -218,165 +184,4 @@ void _voicecall_dvc_control_lcd_state(voicecall_lcd_control_t state) break; } } - -gboolean _voicecall_dvc_proximity_sensor_init(void *data) -{ - CALL_ENG_DEBUG(ENG_DEBUG, ".."); - int ret = -1; - int handle = -1; -#ifdef _POLLING_PROXIMITY_SENSOR_ - event_condition_t my_cond; -#endif - call_vc_core_state_t *pcall_core = (call_vc_core_state_t *)data; - sensor_data_t cur_sensor_data; - - if (g_proximity_sensor_handle >= 0) { - CALL_ENG_DEBUG(ENG_WARN, "already initialized"); - return FALSE; - } - - handle = sf_connect(PROXIMITY_SENSOR); - if (handle < 0) { - CALL_ENG_DEBUG(ENG_ERR, "sf_connect failed"); - return FALSE; - } - -#ifdef _POLLING_PROXIMITY_SENSOR_ - my_cond.cond_op = CONDITION_EQUAL; - my_cond.cond_value1 = 200; - ret = sf_register_event(handle, PROXIMITY_EVENT_CHANGE_STATE, &my_cond, __voicecall_dvc_proximity_sensor_callback_func, pcall_core); -#else - ret = sf_register_event(handle, PROXIMITY_EVENT_CHANGE_STATE, NULL, __voicecall_dvc_proximity_sensor_callback_func, pcall_core); -#endif - if (ret < 0) { - CALL_ENG_DEBUG(ENG_ERR, "sf_register_event failed"); - return FALSE; - } - - ret = sf_start(handle, 0); - if (ret < 0) { - CALL_ENG_DEBUG(ENG_ERR, "sensor_start fail"); - return FALSE; - } - - ret = sf_get_data(handle, PROXIMITY_BASE_DATA_SET, &cur_sensor_data); - if (ret < 0) { - CALL_ENG_DEBUG(ENG_ERR, "sf_get_data fail"); - return FALSE; - } - - CALL_ENG_DEBUG(ENG_DEBUG, "proximity_state:[%d]\n", cur_sensor_data.values[0]); - if (cur_sensor_data.values[0] == PROXIMITY_STATE_NEAR) { - if (__voicecall_dvc_proximity_sensor_is_required(pcall_core)) { - CALL_ENG_DEBUG(ENG_DEBUG, "PROXIMITY_STATE_NEAR"); - g_proximity_sensor_state = VCALL_SENSOR_NEAR; - _voicecall_dvc_control_lcd_state(VC_LCD_OFF); - } - } - - g_proximity_sensor_handle = handle; - CALL_ENG_DEBUG(ENG_DEBUG, "_voicecall_dvc_proximity_sensor_init done"); -} - -gboolean __voicecall_dvc_proximity_sensor_is_required(call_vc_core_state_t *pcall_core) -{ - voicecall_engine_t *pcall_engine = NULL; - CALL_ENG_DEBUG(ENG_DEBUG, ""); - - if (pcall_core == NULL) { - CALL_ENG_DEBUG(ENG_ERR, "Wrong pointer for pcall_core"); - return FALSE; - } - - pcall_engine = pcall_core->pcall_engine; - if (pcall_engine == NULL) { - CALL_ENG_DEBUG(ENG_ERR, "Wrong pointer for pcall_engine"); - return FALSE; - } - if (_vc_core_cm_isexists_incoming_call(&(pcall_engine->call_manager)) == TRUE) { - CALL_ENG_DEBUG(ENG_DEBUG, "we'll not excute sensor in case of incoming call"); - return FALSE; - } - - if ((_vc_core_cm_isexists_connected_call(&(pcall_engine->call_manager)) == FALSE) && - (_vc_core_cm_isexits_outgoing_call(&(pcall_engine->call_manager)) == FALSE)) { - CALL_ENG_DEBUG(ENG_DEBUG, "we'll not excute sensor in case of NO call"); - return FALSE; - } - - if (voicecall_snd_get_path_status(pcall_core->papp_snd) == VOICE_CALL_SND_PATH_SPEAKER) { - CALL_ENG_DEBUG(ENG_DEBUG, "we'll not excute sensor in case of speaker mode"); - return FALSE; - } - - return TRUE; -} - -gboolean _voicecall_dvc_proximity_sensor_deinit(void) -{ - CALL_ENG_DEBUG(ENG_DEBUG, ".."); - int ret = -1; - - if (g_proximity_sensor_handle < 0) { - CALL_ENG_DEBUG(ENG_WARN, "not initialized."); - return FALSE; - } - - ret = sf_unregister_event(g_proximity_sensor_handle, PROXIMITY_EVENT_CHANGE_STATE); - if (ret < 0) { - CALL_ENG_DEBUG(ENG_ERR, "sf_unregister_event failed"); - } - ret = sf_stop(g_proximity_sensor_handle); - if (ret < 0) { - CALL_ENG_DEBUG(ENG_ERR, "sf_stop failed"); - } - ret = sf_disconnect(g_proximity_sensor_handle); - if (ret < 0) { - CALL_ENG_DEBUG(ENG_ERR, "sf_disconnect failed"); - } - - g_proximity_sensor_handle = -1; - return TRUE; -} - -static void __voicecall_dvc_proximity_sensor_callback_func(unsigned int type, sensor_event_data_t *event, void *data) -{ - int *proxi_state; - call_vc_core_state_t *pcall_core = (call_vc_core_state_t *)data; - voicecall_engine_t *pcall_engine = NULL; - CALL_ENG_DEBUG(ENG_DEBUG, ""); - - if (__voicecall_dvc_proximity_sensor_is_required(pcall_core) == FALSE) { - CALL_ENG_DEBUG(ENG_DEBUG, "Proximity sensor update is not required"); - return; - } - - if (type != PROXIMITY_EVENT_CHANGE_STATE) { - return; - } - - proxi_state = (int *)(event->event_data); - switch (*proxi_state) { - case PROXIMITY_STATE_FAR: - CALL_ENG_DEBUG(ENG_DEBUG, "PROXIMITY_STATE_FAR"); - g_proximity_sensor_state = VCALL_SENSOR_FAR; - _voicecall_dvc_control_lcd_state(VC_LCD_ON); - break; - case PROXIMITY_STATE_NEAR: - CALL_ENG_DEBUG(ENG_DEBUG, "PROXIMITY_STATE_NEAR"); - g_proximity_sensor_state = VCALL_SENSOR_NEAR; - _voicecall_dvc_control_lcd_state(VC_LCD_OFF); - break; - default: - CALL_ENG_DEBUG(ENG_DEBUG, "wrong data"); - break; - } -} - -int _voicecall_dvc_get_proximity_sensor_state(void) -{ - CALL_ENG_DEBUG(ENG_DEBUG, "g_proximity_sensor_state(%d)", g_proximity_sensor_state); - - return g_proximity_sensor_state; -} diff --git a/call-engine/voice-call-engine.c b/call-engine/voice-call-engine.c index a9b5377..8339e24 100755 --- a/call-engine/voice-call-engine.c +++ b/call-engine/voice-call-engine.c @@ -16,11 +16,14 @@ #include "voice-call-engine.h" -#include "vc-core-util.h" #include "voice-call-core.h" -#include "vc-core-engine-types.h" #include "voice-call-service.h" #include "voice-call-dbus.h" +#include "voice-call-device.h" +#include "vc-core-util.h" +#include "vc-core-engine-types.h" +#include "vc-core-engine-status.h" +#include "vc-core-engine-group.h" typedef struct { void *puser_data; @@ -35,16 +38,16 @@ static app_cb_t *app_client_data = NULL; * This function send events to client. * * @return int API Result Code. - * @param[in] + * @param[in] */ gboolean vcall_engine_send_event_to_client(int event, void *pdata) { - CALL_ENG_DEBUG(ENG_DEBUG, "..\n"); + CALL_ENG_DEBUG(ENG_DEBUG, ".."); if (app_client_data->cb_func != NULL) { - CALL_ENG_DEBUG(ENG_DEBUG, "Sending Event to APP Client\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Sending Event to APP Client"); app_client_data->cb_func(event, pdata, app_client_data->puser_data); } - CALL_ENG_DEBUG(ENG_ERR, "End..\n"); + CALL_ENG_DEBUG(ENG_ERR, "End.."); return TRUE; } @@ -52,25 +55,18 @@ gboolean vcall_engine_send_event_to_client(int event, void *pdata) * This function initialize voice call engine. * * @return int API Result Code. - * @param[in] + * @param[in] */ int vcall_engine_init(vcall_engine_app_cb pcb_func, void *puser_data) { - CALL_ENG_DEBUG(ENG_WARN, "..\n"); - - /* thread system initialization */ - if (!g_thread_supported()) { - CALL_ENG_KPI("g_thread_init start"); - g_thread_init(NULL); - CALL_ENG_KPI("g_thread_init done"); - } + CALL_ENG_DEBUG(ENG_WARN, ".."); global_pcall_core = (call_vc_core_state_t *)calloc(1, sizeof(call_vc_core_state_t)); if (global_pcall_core == NULL) { - CALL_ENG_DEBUG(ENG_ERR, "Memory Allocation Failed\n"); + CALL_ENG_DEBUG(ENG_ERR, "Memory Allocation Failed"); return VCALL_ENGINE_API_FAILED; } - CALL_ENG_DEBUG(ENG_DEBUG, "global_pcall_core alloctated memory:[%d],global_pcall_core(0x%x) \n", sizeof(call_vc_core_state_t), global_pcall_core); + CALL_ENG_DEBUG(ENG_DEBUG, "global_pcall_core alloctated memory:[%d],global_pcall_core(0x%x)", sizeof(call_vc_core_state_t), global_pcall_core); if (FALSE == voicecall_core_init(global_pcall_core)) { CALL_ENG_DEBUG(ENG_DEBUG, "voicecall_core_init() failed"); @@ -79,13 +75,13 @@ int vcall_engine_init(vcall_engine_app_cb pcb_func, void *puser_data) app_client_data = (app_cb_t *) calloc(1, sizeof(app_cb_t)); if (app_client_data == NULL) { - CALL_ENG_DEBUG(ENG_ERR, "Memory Allocation Failed\n"); + CALL_ENG_DEBUG(ENG_ERR, "Memory Allocation Failed"); return VCALL_ENGINE_API_FAILED; } app_client_data->cb_func = pcb_func; app_client_data->puser_data = puser_data; - CALL_ENG_DEBUG(ENG_DEBUG, "Init dbus connection\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Init dbus connection"); vc_engine_dbus_receiver_setup(); return VCALL_ENGINE_API_SUCCESS; @@ -95,11 +91,11 @@ int vcall_engine_init(vcall_engine_app_cb pcb_func, void *puser_data) * This function processes mo nomal call. * * @return int API Result Code. - * @param[in] + * @param[in] */ int vcall_engine_process_normal_call(char *number, int ct_index, gboolean b_download_call) { - CALL_ENG_DEBUG(ENG_DEBUG, " number is (%s)\n", number); + CALL_ENG_DEBUG(ENG_DEBUG, " number is (%s)", number); voicecall_engine_t *pcall_engine = global_pcall_core->pcall_engine; vc_engine_outgoing_type event_data; char number_after_removal[VC_PHONE_NUMBER_LENGTH_MAX] = {"\0",}; @@ -113,7 +109,7 @@ int vcall_engine_process_normal_call(char *number, int ct_index, gboolean b_down /* check the call-engine state before proceeding with call processing */ _vc_core_engine_status_get_engine_iostate(pcall_engine, &io_state); if (io_state != VC_INOUT_STATE_NONE) { - CALL_ENG_DEBUG(ENG_DEBUG, "IO State [%d] not NONE, cannot proceed with the call \n", io_state); + CALL_ENG_DEBUG(ENG_DEBUG, "IO State [%d] not NONE, cannot proceed with the call", io_state); voicecall_core_set_status(global_pcall_core, CALL_VC_CORE_FLAG_SETUPCALL_FAIL, TRUE); vc_engine_msg_box_type mbox_event_data; @@ -130,12 +126,12 @@ int vcall_engine_process_normal_call(char *number, int ct_index, gboolean b_down memset(&event_data, 0, sizeof(event_data)); _vc_core_util_remove_invalid_chars(number, number_after_removal); - snprintf(global_pcall_core->call_setup_info.source_tel_number, VC_PHONE_NUMBER_LENGTH_MAX, number_after_removal); + snprintf(global_pcall_core->call_setup_info.source_tel_number, VC_PHONE_NUMBER_LENGTH_MAX, "%s", number_after_removal); voicecall_core_extract_phone_number(number_after_removal, event_data.call_num, VC_PHONE_NUMBER_LENGTH_MAX); - if (strlen(event_data.call_num) > VC_PHONE_NUMBER_LENGTH_MAX) { - CALL_ENG_DEBUG(ENG_ERR, " WARNING!! number is larger than max num length!! \n"); - memcpy(global_pcall_core->call_setup_info.tel_number, event_data.call_num, VC_PHONE_NUMBER_LENGTH_MAX); + if (strlen(event_data.call_num) >= VC_PHONE_NUMBER_LENGTH_MAX) { + CALL_ENG_DEBUG(ENG_ERR, " WARNING!! number is larger than max num length!!"); + memcpy(global_pcall_core->call_setup_info.tel_number, event_data.call_num, VC_PHONE_NUMBER_LENGTH_MAX-1); } else { memcpy(global_pcall_core->call_setup_info.tel_number, event_data.call_num, strlen(event_data.call_num)); } @@ -145,12 +141,28 @@ int vcall_engine_process_normal_call(char *number, int ct_index, gboolean b_down CALL_ENG_DEBUG(ENG_DEBUG, "global_pcall_core->call_setup_info.tel_number:[%s]", global_pcall_core->call_setup_info.tel_number); CALL_ENG_DEBUG(ENG_DEBUG, "event_data.call_num:[%s]", event_data.call_num); + { + voicecall_contact_info_t ct_info; + memset(&ct_info, 0, sizeof(ct_info)); + + ct_info.ct_index = ct_index; + + voicecall_service_contact_info_by_number(event_data.call_num, &ct_info); + event_data.contact_index = ct_info.ct_index; + event_data.phone_type = ct_info.phone_type; + event_data.bday_remaining_days = ct_info.bday_remaining_days; + + _vc_core_util_strcpy(event_data.call_name, sizeof(event_data.call_name), ct_info.display_name); + _vc_core_util_strcpy(event_data.call_file_path, sizeof(event_data.call_file_path), ct_info.caller_id_path); + _vc_core_util_strcpy(event_data.call_full_file_path, sizeof(event_data.call_full_file_path), ct_info.caller_full_id_path); + CALL_ENG_DEBUG(ENG_DEBUG, " contact copy ended!!"); + } vcall_engine_send_event_to_client(VC_ENGINE_MSG_OUTGOING_TO_UI, (void *)&event_data); if (voicecall_core_setup_call(global_pcall_core, FALSE)) { - CALL_ENG_DEBUG(ENG_DEBUG, " success!! \n"); + CALL_ENG_DEBUG(ENG_DEBUG, " success!!"); } else { - CALL_ENG_DEBUG(ENG_DEBUG, " failed!! \n"); + CALL_ENG_DEBUG(ENG_DEBUG, " failed!!"); } return VCALL_ENGINE_API_SUCCESS; @@ -160,11 +172,11 @@ int vcall_engine_process_normal_call(char *number, int ct_index, gboolean b_down * This function processes mo emergency call. * * @return int API Result Code. - * @param[in] + * @param[in] */ int vcall_engine_process_emergency_call(char *number) { - CALL_ENG_DEBUG(ENG_DEBUG, " number is : [%s] \n", number); + CALL_ENG_DEBUG(ENG_DEBUG, " number is : [%s]", number); voicecall_engine_t *pcall_engine = global_pcall_core->pcall_engine; gboolean bDefaultNumber = FALSE; vc_engine_outgoing_type event_data; @@ -173,7 +185,7 @@ int vcall_engine_process_emergency_call(char *number) /* check the call-engine state before proceeding with emergency call processing */ _vc_core_engine_status_get_engine_iostate(pcall_engine, &io_state); if (io_state != VC_INOUT_STATE_NONE) { - CALL_ENG_DEBUG(ENG_DEBUG, "IO State [%d] not NONE, cannot proceed with the call \n", io_state); + CALL_ENG_DEBUG(ENG_DEBUG, "IO State [%d] not NONE, cannot proceed with the call", io_state); voicecall_core_set_status(global_pcall_core, CALL_VC_CORE_FLAG_SETUPCALL_FAIL, TRUE); vc_engine_msg_box_type mbox_event_data; @@ -200,7 +212,7 @@ int vcall_engine_process_emergency_call(char *number) global_pcall_core->call_setup_info.call_type = VC_CALL_ORIG_TYPE_PINLOCK; voicecall_core_extract_phone_number(number, event_data.call_num, VC_PHONE_NUMBER_LENGTH_MAX); if (strlen(number) > VC_PHONE_NUMBER_LENGTH_MAX) { - CALL_ENG_DEBUG(ENG_ERR, " WARNING!! number is larger than max num length!! \n"); + CALL_ENG_DEBUG(ENG_ERR, " WARNING!! number is larger than max num length!!"); memcpy(global_pcall_core->call_setup_info.source_tel_number, number, VC_PHONE_NUMBER_LENGTH_MAX); memcpy(global_pcall_core->call_setup_info.tel_number, number, VC_PHONE_NUMBER_LENGTH_MAX); } else { @@ -211,20 +223,27 @@ int vcall_engine_process_emergency_call(char *number) event_data.contact_index = -1; event_data.phone_type = -1; + event_data.bday_remaining_days = -1; vcall_engine_send_event_to_client(VC_ENGINE_MSG_OUTGOING_TO_UI, (void *)&event_data); if (voicecall_core_setup_call(global_pcall_core, TRUE)) { - CALL_ENG_DEBUG(ENG_DEBUG, " success!! \n"); + CALL_ENG_DEBUG(ENG_DEBUG, " success!!"); } else { - CALL_ENG_DEBUG(ENG_DEBUG, " failed!! \n"); + CALL_ENG_DEBUG(ENG_DEBUG, " failed!!"); } return VCALL_ENGINE_API_SUCCESS; } +/** + * This function processes emergency call for testing purpose. + * + * @return int API Result Code. + * @param[in] +*/ int vcall_engine_process_emergency_call_test(char *number) { - CALL_ENG_DEBUG(ENG_DEBUG, " number is : [%s] \n", number); + CALL_ENG_DEBUG(ENG_DEBUG, " number is : [%s]", number); voicecall_engine_t *pcall_engine = global_pcall_core->pcall_engine; gboolean bDefaultNumber = FALSE; vc_engine_outgoing_type event_data; @@ -233,7 +252,7 @@ int vcall_engine_process_emergency_call_test(char *number) /* check the call-engine state before proceeding with emergency call processing */ _vc_core_engine_status_get_engine_iostate(pcall_engine, &io_state); if (io_state != VC_INOUT_STATE_NONE) { - CALL_ENG_DEBUG(ENG_DEBUG, "IO State [%d] not NONE, cannot proceed with the call \n", io_state); + CALL_ENG_DEBUG(ENG_DEBUG, "IO State [%d] not NONE, cannot proceed with the call", io_state); voicecall_core_set_status(global_pcall_core, CALL_VC_CORE_FLAG_SETUPCALL_FAIL, TRUE); vc_engine_msg_box_type mbox_event_data; @@ -260,7 +279,7 @@ int vcall_engine_process_emergency_call_test(char *number) global_pcall_core->call_setup_info.call_type = VC_CALL_ORIG_TYPE_PINLOCK; voicecall_core_extract_phone_number(number, event_data.call_num, VC_PHONE_NUMBER_LENGTH_MAX); if (strlen(number) > VC_PHONE_NUMBER_LENGTH_MAX) { - CALL_ENG_DEBUG(ENG_ERR, " WARNING!! number is larger than max num length!! \n"); + CALL_ENG_DEBUG(ENG_ERR, " WARNING!! number is larger than max num length!!"); memcpy(global_pcall_core->call_setup_info.source_tel_number, number, VC_PHONE_NUMBER_LENGTH_MAX); memcpy(global_pcall_core->call_setup_info.tel_number, number, VC_PHONE_NUMBER_LENGTH_MAX); } else { @@ -271,19 +290,19 @@ int vcall_engine_process_emergency_call_test(char *number) event_data.contact_index = -1; event_data.phone_type = -1; + event_data.bday_remaining_days = -1; vcall_engine_send_event_to_client(VC_ENGINE_MSG_OUTGOING_TO_UI, (void *)&event_data); { int call_handle = 1; vc_engine_outgoing_orig_type orig_event_data; - call_vc_call_objectinfo_t callobject_info; memset(&orig_event_data, 0, sizeof(orig_event_data)); orig_event_data.call_handle = call_handle; orig_event_data.bemergency = TRUE; - CALL_ENG_DEBUG(ENG_DEBUG, "Call Handle = %d, bemergency:[%d] \n", orig_event_data.call_handle, orig_event_data.bemergency); + CALL_ENG_DEBUG(ENG_DEBUG, "Call Handle = %d, bemergency:[%d]", orig_event_data.call_handle, orig_event_data.bemergency); vcall_engine_send_event_to_client(VC_ENGINE_MSG_OUTGOING_ORIG_TO_UI_TEST, (void *)&orig_event_data); } @@ -294,11 +313,11 @@ int vcall_engine_process_emergency_call_test(char *number) * This function processes sat setup call. * * @return int API Result Code. - * @param[in] + * @param[in] */ int vcall_engine_process_sat_setup_call(vcall_engine_sat_setup_call_info_t *sat_setup_call_info) { - CALL_ENG_DEBUG(ENG_WARN, "..\n"); + CALL_ENG_DEBUG(ENG_WARN, ".."); voicecall_core_process_sat_setup_call(sat_setup_call_info); return VCALL_ENGINE_API_SUCCESS; } @@ -307,13 +326,13 @@ int vcall_engine_process_sat_setup_call(vcall_engine_sat_setup_call_info_t *sat_ * This function processes incoming call. * * @return int API Result Code. - * @param[in] + * @param[in] */ int vcall_engine_process_incoming_call(vcall_engine_incoming_info_t *incoming_call_info) { call_vc_core_incoming_info_t tmp_incom_info = { 0, }; - CALL_ENG_DEBUG(ENG_WARN, "..\n"); + CALL_ENG_DEBUG(ENG_WARN, ".."); tmp_incom_info.call_handle = incoming_call_info->call_handle; tmp_incom_info.call_type = incoming_call_info->call_type; @@ -339,11 +358,11 @@ int vcall_engine_process_incoming_call(vcall_engine_incoming_info_t *incoming_ca */ int vcall_engine_answer_call(void) { - CALL_ENG_DEBUG(ENG_WARN, "..\n"); + CALL_ENG_DEBUG(ENG_WARN, ".."); int ret = VCALL_ENGINE_API_FAILED; ret = voicecall_core_answer_call(global_pcall_core, FALSE); - CALL_ENG_DEBUG(ENG_DEBUG, " ret:[%d] \n", ret); + CALL_ENG_DEBUG(ENG_DEBUG, " ret:[%d]", ret); return ret; } @@ -355,8 +374,8 @@ int vcall_engine_answer_call(void) */ int vcall_engine_answer_call_by_type(vcall_engine_answer_type_t answer_type) { - CALL_ENG_DEBUG(ENG_WARN, "..\n"); - CALL_ENG_DEBUG(ENG_DEBUG, "answer_type:[%d]\n", answer_type); + CALL_ENG_DEBUG(ENG_WARN, ".."); + CALL_ENG_DEBUG(ENG_DEBUG, "answer_type:[%d]", answer_type); if (TRUE == voicecall_core_answer_call_bytype(global_pcall_core, answer_type)) { return VCALL_ENGINE_API_SUCCESS; @@ -374,7 +393,7 @@ int vcall_engine_answer_call_by_type(vcall_engine_answer_type_t answer_type) */ int vcall_engine_cancel_call(void) { - CALL_ENG_DEBUG(ENG_WARN, "..\n"); + CALL_ENG_DEBUG(ENG_WARN, ".."); if (TRUE == voicecall_core_cancel_call(global_pcall_core)) { return VCALL_ENGINE_API_SUCCESS; @@ -391,7 +410,7 @@ int vcall_engine_cancel_call(void) */ int vcall_engine_reject_call(void) { - CALL_ENG_DEBUG(ENG_WARN, "..\n"); + CALL_ENG_DEBUG(ENG_WARN, ".."); if (TRUE == voicecall_core_reject_mt(global_pcall_core, TRUE)) { return VCALL_ENGINE_API_SUCCESS; @@ -408,7 +427,7 @@ int vcall_engine_reject_call(void) */ int vcall_engine_release_call(void) { - CALL_ENG_DEBUG(ENG_WARN, "..\n"); + CALL_ENG_DEBUG(ENG_WARN, ".."); if (TRUE == voicecall_core_end_call(global_pcall_core)) { return VCALL_ENGINE_API_SUCCESS; @@ -425,8 +444,8 @@ int vcall_engine_release_call(void) */ int vcall_engine_release_call_by_handle(int call_handle) { - CALL_ENG_DEBUG(ENG_WARN, "..\n"); - CALL_ENG_DEBUG(ENG_DEBUG, "call_handle:[%d]\n", call_handle); + CALL_ENG_DEBUG(ENG_WARN, ".."); + CALL_ENG_DEBUG(ENG_DEBUG, "call_handle:[%d]", call_handle); if (TRUE == voicecall_core_end_call_by_handle(global_pcall_core, call_handle)) { return VCALL_ENGINE_API_SUCCESS; @@ -443,10 +462,10 @@ int vcall_engine_release_call_by_handle(int call_handle) */ int vcall_engine_release_call_by_type(vcall_engine_release_type_t release_type) { - CALL_ENG_DEBUG(ENG_WARN, "..\n"); + CALL_ENG_DEBUG(ENG_WARN, ".."); int ret = FALSE; - CALL_ENG_DEBUG(ENG_DEBUG, " release_type : [%d]\n", release_type); + CALL_ENG_DEBUG(ENG_DEBUG, " release_type : [%d]", release_type); switch (release_type) { case VCALL_ENGINE_RELEASE_ALL_ACTIVE_CALLS: { @@ -467,7 +486,7 @@ int vcall_engine_release_call_by_type(vcall_engine_release_type_t release_type) break; default: - CALL_ENG_DEBUG(ENG_DEBUG, " Unknown release_type : [%d]\n", release_type); + CALL_ENG_DEBUG(ENG_DEBUG, " Unknown release_type : [%d]", release_type); break; } @@ -487,7 +506,7 @@ int vcall_engine_release_call_by_type(vcall_engine_release_type_t release_type) */ int vcall_engine_process_hold_call(void) { - CALL_ENG_DEBUG(ENG_WARN, "..\n"); + CALL_ENG_DEBUG(ENG_WARN, ".."); int ret = FALSE; ret = voicecall_core_process_hold_call(global_pcall_core); @@ -506,7 +525,7 @@ int vcall_engine_process_hold_call(void) */ void vcall_engine_process_incall_ss(char *number) { - CALL_ENG_DEBUG(ENG_WARN, "number(%s)\n"); + CALL_ENG_DEBUG(ENG_WARN, "number(%s)"); voicecall_core_process_incall_ss(global_pcall_core, number); } @@ -519,7 +538,7 @@ void vcall_engine_process_incall_ss(char *number) */ int vcall_engine_join_call(void) { - CALL_ENG_DEBUG(ENG_WARN, "..\n"); + CALL_ENG_DEBUG(ENG_WARN, ".."); int ret = FALSE; ret = voicecall_core_setup_conference(global_pcall_core); @@ -538,7 +557,7 @@ int vcall_engine_join_call(void) */ int vcall_engine_split_call(int call_handle) { - CALL_ENG_DEBUG(ENG_WARN, "..\n"); + CALL_ENG_DEBUG(ENG_WARN, ".."); int ret = FALSE; ret = voicecall_core_make_private_call(global_pcall_core, call_handle); @@ -557,7 +576,7 @@ int vcall_engine_split_call(int call_handle) */ int vcall_engine_transfer_call(void) { - CALL_ENG_DEBUG(ENG_WARN, "..\n"); + CALL_ENG_DEBUG(ENG_WARN, ".."); int ret = FALSE; ret = voicecall_core_transfer_calls(global_pcall_core); @@ -576,10 +595,10 @@ int vcall_engine_transfer_call(void) */ int vcall_engine_process_loudspeaker(int bstatus) { - CALL_ENG_DEBUG(ENG_WARN, "..\n"); + CALL_ENG_DEBUG(ENG_WARN, ".."); int ret = FALSE; - CALL_ENG_DEBUG(ENG_DEBUG, " bstatus : [%d]\n", bstatus); + CALL_ENG_DEBUG(ENG_DEBUG, " bstatus : [%d]", bstatus); if (bstatus) { ret = voicecall_service_loudspeaker_on(global_pcall_core); } else { @@ -601,10 +620,10 @@ int vcall_engine_process_loudspeaker(int bstatus) */ int vcall_engine_process_voice_mute(int bstatus) { - CALL_ENG_DEBUG(ENG_WARN, "..\n"); + CALL_ENG_DEBUG(ENG_WARN, ".."); int ret = FALSE; - CALL_ENG_DEBUG(ENG_DEBUG, " bstatus : [%d]\n", bstatus); + CALL_ENG_DEBUG(ENG_DEBUG, " bstatus : [%d]", bstatus); if (bstatus) { ret = voicecall_service_mute_status_on(global_pcall_core); } else { @@ -627,9 +646,10 @@ int vcall_engine_process_voice_mute(int bstatus) */ int vcall_engine_get_volume_level(vcall_engine_vol_type_t vol_type) { - CALL_ENG_DEBUG(ENG_WARN, "..\n"); + CALL_ENG_DEBUG(ENG_WARN, ".."); - CALL_ENG_DEBUG(ENG_DEBUG, " vol_type : [%d]\n", vol_type); + CALL_ENG_DEBUG(ENG_DEBUG, " vol_type : [%d]", vol_type); + /* jspark 201007 decide to sync or async. */ return voicecall_snd_get_volume(global_pcall_core->papp_snd, vol_type); @@ -644,10 +664,10 @@ int vcall_engine_get_volume_level(vcall_engine_vol_type_t vol_type) */ int vcall_engine_set_volume_level(vcall_engine_vol_type_t vol_type, int vol_level) { - CALL_ENG_DEBUG(ENG_WARN, "..\n"); + CALL_ENG_DEBUG(ENG_WARN, ".."); int ret = FALSE; - CALL_ENG_DEBUG(ENG_DEBUG, " vol_type : [%d], vol_level:[%d]\n", vol_type, vol_level); + CALL_ENG_DEBUG(ENG_DEBUG, " vol_type : [%d], vol_level:[%d]", vol_type, vol_level); ret = voicecall_service_set_volume(global_pcall_core, vol_type, vol_level); if (ret == TRUE) { return VCALL_ENGINE_API_SUCCESS; @@ -664,7 +684,7 @@ int vcall_engine_set_volume_level(vcall_engine_vol_type_t vol_type, int vol_leve */ int vcall_engine_stop_alert(void) { - CALL_ENG_DEBUG(ENG_WARN, "..\n"); + CALL_ENG_DEBUG(ENG_WARN, ".."); int ret = FALSE; ret = voicecall_core_stop_alert(global_pcall_core); @@ -683,7 +703,7 @@ int vcall_engine_stop_alert(void) */ int vcall_engine_mute_alert(void) { - CALL_ENG_DEBUG(ENG_WARN, "..\n"); + CALL_ENG_DEBUG(ENG_WARN, ".."); int ret = FALSE; ret = voicecall_snd_mute_alert(global_pcall_core->papp_snd); @@ -702,10 +722,10 @@ int vcall_engine_mute_alert(void) */ int vcall_engine_process_auto_redial(int bstatus) { - CALL_ENG_DEBUG(ENG_WARN, "..\n"); + CALL_ENG_DEBUG(ENG_WARN, ".."); int ret = FALSE; - CALL_ENG_DEBUG(ENG_DEBUG, " bstatus : [%d]\n", bstatus); + CALL_ENG_DEBUG(ENG_DEBUG, " bstatus : [%d]", bstatus); if (bstatus) { ret = voicecall_core_start_redial(global_pcall_core, TRUE); } else { @@ -726,7 +746,7 @@ int vcall_engine_process_auto_redial(int bstatus) */ int vcall_engine_send_dtmf_number(char *dtmf_number) { - CALL_ENG_DEBUG(ENG_WARN, "..\n"); + CALL_ENG_DEBUG(ENG_WARN, ".."); int ret = FALSE; ret = voicecall_core_send_dtmf(global_pcall_core, dtmf_number); @@ -746,7 +766,7 @@ int vcall_engine_send_dtmf_number(char *dtmf_number) */ int vcall_engine_change_sound_path(vcall_engine_audio_type_t sound_path) { - CALL_ENG_DEBUG(ENG_WARN, "..\n"); + CALL_ENG_DEBUG(ENG_WARN, ".."); int ret = FALSE; ret = voicecall_core_change_sound_path(global_pcall_core, sound_path); @@ -766,7 +786,7 @@ int vcall_engine_change_sound_path(vcall_engine_audio_type_t sound_path) */ int vcall_engine_get_sound_path(int *sound_path) { - CALL_ENG_DEBUG(ENG_WARN, "..\n"); + CALL_ENG_DEBUG(ENG_WARN, ".."); int ret = FALSE; int snd_path = 0; @@ -774,14 +794,12 @@ int vcall_engine_get_sound_path(int *sound_path) if (snd_path == VOICE_CALL_AUDIO_SPEAKER) { *sound_path = VCALL_ENGINE_AUDIO_SPEAKER; - } else if (snd_path == VOICE_CALL_AUDIO_RECEIVER) { - *sound_path = VCALL_ENGINE_AUDIO_RECEIVER; } else if (snd_path == VOICE_CALL_AUDIO_HEADSET) { *sound_path = VCALL_ENGINE_AUDIO_HEADSET; - } else if (snd_path == VOICE_CALL_AUDIO_EARJACK) { - *sound_path = VCALL_ENGINE_AUDIO_EARJACK; + } else if (snd_path == VOICE_CALL_AUDIO_RECEIVER_EARJACK) { + *sound_path = VCALL_ENGINE_AUDIO_RECEIVER_EARJACK; } else { - *sound_path = VCALL_ENGINE_AUDIO_RECEIVER; + *sound_path = VCALL_ENGINE_AUDIO_RECEIVER_EARJACK; } if (ret == TRUE) { @@ -795,11 +813,11 @@ int vcall_engine_get_sound_path(int *sound_path) * This function set call engine to default * * @return int API Result Code. - * @param[in] + * @param[in] */ int vcall_engine_set_to_default() { - CALL_ENG_DEBUG(ENG_WARN, "..\n"); + CALL_ENG_DEBUG(ENG_WARN, ".."); int ret = FALSE; ret = voicecall_core_set_to_default(global_pcall_core); @@ -826,7 +844,6 @@ gpointer vcall_engine_get_core_state(void) */ gboolean vcall_engine_util_strcpy(char *pbuffer, int buf_count, const char *pstring) { - CALL_ENG_DEBUG(ENG_DEBUG, ".."); return _vc_core_util_strcpy(pbuffer, buf_count, pstring); } @@ -870,3 +887,54 @@ void vcall_engine_force_reset(void) voicecall_core_end_all_calls(global_pcall_core); } + +/** + * This function will process the dtmf send request from UI + * It is executed when wait(w/W/;) is finished while sending a dtmf string + * + * @return void + * @param[in] void + */ +void vcall_engine_send_dtmf(gboolean bsuccess) +{ + CALL_ENG_DEBUG(ENG_DEBUG, ".."); + + voicecall_core_process_dtmf_send_status(global_pcall_core, bsuccess); +} + +/** + * This function is interface to call-utility to check for ss string + * + * @return TRUE or FALSE if success/failure + * @param[in] call_number pointer to the number + */ +gboolean vcall_engine_check_incall_ss_string(char *call_number) +{ + CALL_ENG_DEBUG(ENG_DEBUG, ".."); + return _vc_core_util_check_incall_ss_string(call_number); +} + +/** + * This function checks whether a given number is a SS string or not + * + * @return TRUE or FALSE if success/failure + * @param[in] call_number pointer to the number + */ +gboolean vcall_engine_check_ss_string(char *call_number) +{ + CALL_ENG_DEBUG(ENG_DEBUG, ".."); + return _vc_core_util_check_ss_string(call_number); +} + +/** + * This function controls the lcd state + * + * @return void + * @param[in] lcd_state state of the lcd control + */ +void vcall_engine_device_control_lcd_state(voicecall_lcd_control_t lcd_state) +{ + CALL_ENG_DEBUG(ENG_DEBUG, ".."); + _voicecall_dvc_control_lcd_state(lcd_state); +} + diff --git a/call-engine/voice-call-service.c b/call-engine/voice-call-service.c index f48e808..f8cf736 100755 --- a/call-engine/voice-call-service.c +++ b/call-engine/voice-call-service.c @@ -22,33 +22,257 @@ #include "voice-call-sound.h" #include "voice-call-bt.h" +/* + * If the birthday is Today then it will return 0 + * If the birthday is within 1 week gap then it will return between 1 to 7 + * In all other cases it will return -1 + */ +static int __voicecall_service_get_bday_remaining_days(CTSstruct *contact) +{ + int diff = -1; + GSList *event_list = NULL; + GSList *cursor = NULL; + + contacts_svc_struct_get_list(contact, CTS_CF_EVENT_LIST, &event_list); + for (cursor = event_list; cursor; cursor = cursor->next) { + if (CTS_EVENT_TYPE_BIRTH == contacts_svc_value_get_int(cursor->data, CTS_EVENT_VAL_TYPE_INT)) { + int bday_date; + time_t t_now; + time_t t_bday; + struct tm *timeinfo; + bday_date = contacts_svc_value_get_int(cursor->data, CTS_EVENT_VAL_DATE_INT); + time(&t_now); + timeinfo = localtime(&t_now); + timeinfo->tm_sec = timeinfo->tm_min = 59; + timeinfo->tm_hour = 23; + timeinfo->tm_mday = bday_date % 100; + timeinfo->tm_mon = (bday_date%10000)/100 - 1; + CALL_ENG_DEBUG(ENG_DEBUG, "bday date = %d, month = %d", timeinfo->tm_mday, timeinfo->tm_mon); + t_bday = mktime(timeinfo); + if (t_now < t_bday) { + diff = (int)((t_bday - t_now) / (24 * 60 * 60)); + if (diff < 0 || diff > 7) { + diff = -1; /* All the other days which dont fall in one week gap is invalid */ + } + } else { + CALL_ENG_DEBUG(ENG_DEBUG, "No need to show bday icon, becauae bday is not falling in 1 week gap"); + } + + break; + } + } + + CALL_ENG_DEBUG(ENG_DEBUG, "diff = %d", diff); + return diff; +} + +/** + * This function gets contact info from phone number + * + * @return gboolean + * @param[in] phonenumber phone number + * @param[out] ct_info contact info + */ +gboolean voicecall_service_contact_info_by_number(char *phonenumber, voicecall_contact_info_t * ct_info) +{ + CALL_ENG_KPI("voicecall_service_contact_info_by_number start"); + int index = 0; + int ret = -1; + CTSstruct *contact = NULL; + CTSvalue *name = NULL, *base = NULL; + const char *first = NULL, *last = NULL, *display = NULL; + GSList *get_list, *cursor; + + VOICECALL_RETURN_FALSE_IF_FAIL(phonenumber != NULL); + VOICECALL_RETURN_FALSE_IF_FAIL(ct_info != NULL); + + CALL_ENG_DEBUG(ENG_DEBUG, "num:[%s],index:[%d]..", phonenumber, ct_info->ct_index); + + contacts_svc_connect(); + + if (ct_info->ct_index == -1) { + index = contacts_svc_find_contact_by(CTS_FIND_BY_NUMBER, phonenumber); + if (index < CTS_SUCCESS) { + CALL_ENG_DEBUG(ENG_DEBUG, "ret:[%d]..No found record", ret); + ct_info->ct_index = -1; + ct_info->phone_type = -1; + ct_info->bday_remaining_days = -1; + return FALSE; + } else + ct_info->ct_index = index; + } + + ret = contacts_svc_get_contact(ct_info->ct_index, &contact); + + if (ret < 0) { + CALL_ENG_DEBUG(ENG_DEBUG, "ret:[%d]..No found record", ret); + ct_info->ct_index = -1; + ct_info->phone_type = -1; + return FALSE; + } + /* If it comes to here, it means we have found a contact. */ + contacts_svc_struct_get_value(contact, CTS_CF_NAME_VALUE, &name); + first = contacts_svc_value_get_str(name, CTS_NAME_VAL_FIRST_STR); + last = contacts_svc_value_get_str(name, CTS_NAME_VAL_LAST_STR); + display = contacts_svc_value_get_str(name, CTS_NAME_VAL_DISPLAY_STR); + + if (display != NULL) { + snprintf(ct_info->display_name, sizeof(ct_info->display_name), "%s", display); + } else { + if (first != NULL && last != NULL) { + if (CTS_ORDER_NAME_FIRSTLAST == contacts_svc_get_order(CTS_ORDER_OF_DISPLAY)) + snprintf(ct_info->display_name, sizeof(ct_info->display_name), "%s %s", first, last); + else + snprintf(ct_info->display_name, sizeof(ct_info->display_name), "%s %s", last, first); + } else if (first == NULL && last != NULL) { + snprintf(ct_info->display_name, sizeof(ct_info->display_name), "%s", last); + } else if (first != NULL && last == NULL) { + snprintf(ct_info->display_name, sizeof(ct_info->display_name), "%s", first); + } else { + CALL_ENG_DEBUG(ENG_DEBUG, "Error!. first & last name is NULL!!"); + snprintf(ct_info->display_name, sizeof(ct_info->display_name), "%s", "no name"); + } + } + get_list = NULL; + contacts_svc_struct_get_list(contact, CTS_CF_NUMBER_LIST, &get_list); + cursor = get_list; + while (cursor) { + if (strcmp(contacts_svc_value_get_str(cursor->data, CTS_NUM_VAL_NUMBER_STR), phonenumber) == 0) { + ct_info->phone_type = contacts_svc_value_get_int(cursor->data, CTS_NUM_VAL_TYPE_INT); + } + cursor = cursor->next; + if (cursor == NULL) + break; + } + + contacts_svc_struct_get_value(contact, CTS_CF_BASE_INFO_VALUE, &base); + + _vc_core_util_strcpy(ct_info->caller_id_path, sizeof(ct_info->caller_id_path), contacts_svc_value_get_str(base, CTS_BASE_VAL_IMG_PATH_STR)); + + char *full_path = NULL; + contacts_svc_get_image(CTS_IMG_FULL, ct_info->ct_index, &full_path); + if (full_path != NULL) { + _vc_core_util_strcpy(ct_info->caller_full_id_path, sizeof(ct_info->caller_full_id_path), full_path); + } + free(full_path); + + _vc_core_util_strcpy(ct_info->ring_tone, sizeof(ct_info->ring_tone), contacts_svc_value_get_str(base, CTS_BASE_VAL_RINGTONE_PATH_STR)); + + ct_info->bday_remaining_days = __voicecall_service_get_bday_remaining_days(contact); + + CALL_ENG_DEBUG(ENG_DEBUG, "contact index:[%d]", ct_info->ct_index); + CALL_ENG_DEBUG(ENG_DEBUG, "phone_type:[%d]", ct_info->phone_type); + CALL_ENG_DEBUG(ENG_DEBUG, "bday_remaining_days :[%d]", ct_info->bday_remaining_days); + CALL_ENG_DEBUG(ENG_DEBUG, "display name:[%s]", ct_info->display_name); + CALL_ENG_DEBUG(ENG_DEBUG, "img path:[%s]", ct_info->caller_id_path); + CALL_ENG_DEBUG(ENG_DEBUG, "full img path:[%s]", ct_info->caller_full_id_path); + CALL_ENG_DEBUG(ENG_DEBUG, "ringtone path:[%s]", ct_info->ring_tone); + + contacts_svc_struct_free(contact); + contacts_svc_disconnect(); + CALL_ENG_DEBUG(ENG_DEBUG, "Ended!!"); + CALL_ENG_KPI("voicecall_service_contact_info_by_number done"); + return TRUE; +} + +/** + * This function gets contact info from contact id + * + * @return gboolean + * @param[in] phonenumber phone number + * @param[in] contact_id contact id + * @param[in] storage_type storage type + * @param[out] ct_info contact info + */ +gboolean voicecall_service_contact_info_by_contact_id(char *phonenumber, int contact_id, voicecall_contact_info_t * ct_info) +{ +#ifdef _CT_SEARCH_BY_ID_ + VOICECALL_RETURN_FALSE_IF_FAIL(phonenumber != NULL); + VOICECALL_RETURN_FALSE_IF_FAIL(ct_info != NULL); + + int bfound = FALSE; + int ret; + contact_t record; + int index = 0; + + CALL_ENG_DEBUG(ENG_DEBUG, ".."); + + memset(&record, 0, sizeof(contact_t)); + + if (contact_db_service_connect() != CONTACT_OPERATION_SUCCESS) { + CALL_ENG_DEBUG(ENG_DEBUG, "contact_db_service_connect error"); + return FALSE; + } + + ret = contact_db_service_contact_get(CONTACT_DB_GET_RECORD_BY_KEY, contact_id, storage_type, &record); + + if (ret == CONTACT_OPERATION_SUCCESS) { + bfound = TRUE; + } else { + bfound = FALSE; + } + + CALL_ENG_DEBUG(ENG_DEBUG, " bfound = [%d]", bfound); + if (bfound) { + if (record.contact.display_name != NULL) + _vc_core_util_strcpy(ct_info->display_name, sizeof(ct_info->display_name), record.contact.display_name); + if (record.contact.media_data.ringtone_path != NULL) + _vc_core_util_strcpy(ct_info->ring_tone, sizeof(ct_info->ring_tone), record.contact.media_data.ringtone_path); + + ct_info->ct_index = contact_id; + ct_info->storage_type = storage_type; + + CALL_ENG_DEBUG(ENG_DEBUG, "phone count:[%d]", record.phone_count); + for (index = 0; index < record.phone_count; index++) { + if (strcmp(record.phone_info[index].number, phonenumber) == 0) { + ct_info->phone_type = record.phone_info[index].type; + } + } + CALL_ENG_DEBUG(ENG_DEBUG, "*** found ***"); + CALL_ENG_DEBUG(ENG_DEBUG, "name:[%s] vs [%s]", ct_info->display_name, record.contact.display_name); + CALL_ENG_DEBUG(ENG_DEBUG, "ringtone path:[%s] vs [%s]", ct_info->ring_tone, record.contact.media_data.ringtone_path); + } else { + ct_info->ct_index = contact_id; + ct_info->storage_type = storage_type; + ct_info->phone_type = -1; + + CALL_ENG_DEBUG(ENG_DEBUG, "not found. name:[%s], path:[%s]", ct_info->display_name, ct_info->caller_id_path); + } + + contact_db_service_contact_free(&record); + if (contact_db_service_disconnect() != CONTACT_OPERATION_SUCCESS) { + CALL_ENG_DEBUG(ENG_DEBUG, "contact_db_service_disconnect error"); + return FALSE; + } +#endif + return TRUE; +} + /** * This function on the loud speaker state * * @return gboolean - * @param[in] pcall_core Handle to voicecall core + * @param[in] pcall_core Handle to voicecall core */ gboolean voicecall_service_loudspeaker_on(call_vc_core_state_t *pcall_core) { VOICECALL_RETURN_FALSE_IF_FAIL(pcall_core != NULL); - - gboolean bloud_speaker = FALSE; + voicecall_snd_mgr_t *papp_snd = pcall_core->papp_snd; gboolean ret = FALSE; int total_call_member = -1; - CALL_ENG_DEBUG(ENG_DEBUG, "\n"); + CALL_ENG_DEBUG(ENG_DEBUG, ""); voicecall_core_get_total_call_member(pcall_core->pcall_engine, &total_call_member); if (total_call_member == 0) { - CALL_ENG_DEBUG(ENG_DEBUG, "There are not active calls hence it should not work \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "There are not active calls hence it should not work"); return FALSE; } /* Toggle the LoudSpeaker Status */ -#ifdef _NEW_SND_ if (voicecall_snd_get_path_status(pcall_core->papp_snd) != VOICE_CALL_SND_PATH_SPEAKER) { - if (TRUE == _vc_bt_is_bt_connected(pcall_core) && + if (TRUE == _vc_bt_is_bt_connected(pcall_core) && (voicecall_snd_get_path_status(pcall_core->papp_snd) == VOICE_CALL_SND_PATH_BT)) { voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_SPEAKER); /* _vc_bt_send_response_to_bt(pcall_core, BT_AG_RES_SWITCH_TO_PHONE, -1, NULL);*/ @@ -58,34 +282,9 @@ gboolean voicecall_service_loudspeaker_on(call_vc_core_state_t *pcall_core) voicecall_snd_change_path(papp_snd); } } else { - CALL_ENG_DEBUG(ENG_DEBUG, "loudspeacker is already on.\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "loudspeacker is already on."); ret = FALSE; } -#else - bloud_speaker = voicecall_snd_get_status(papp_snd, VOICE_CALL_AUDIO_SPEAKER); - if (bloud_speaker == FALSE) { - CALL_ENG_DEBUG(ENG_DEBUG, "Change to Speaker On. \n"); - - /*If current Path is Set to BT Headset, Change Path from Headset to Phone */ - if (TRUE == _vc_bt_is_bt_connected(pcall_core)) { - if (TRUE == voicecall_snd_get_status(papp_snd, VOICE_CALL_AUDIO_HEADSET)) { - voicecall_snd_set_status(papp_snd, VOICE_CALL_AUDIO_HEADSET, FALSE); -/* _vc_bt_send_response_to_bt(pcall_core, BT_AG_RES_SWITCH_TO_PHONE, -1, NULL);*/ - _vc_bt_request_switch_headset_path(pcall_core, FALSE); - voicecall_snd_change_path(papp_snd); - } - } - - voicecall_snd_set_status(papp_snd, VOICE_CALL_AUDIO_SPEAKER, TRUE); - - /* Change Audio Path according to the current status */ - voicecall_snd_change_path(papp_snd); - ret = TRUE; - } else { - CALL_ENG_DEBUG(ENG_DEBUG, "loudspeacker is already on.\n"); - ret = FALSE; - } -#endif return ret; } @@ -93,57 +292,37 @@ gboolean voicecall_service_loudspeaker_on(call_vc_core_state_t *pcall_core) * This function off the loud speaker state * * @return gboolean - * @param[in] pcall_core Handle to voicecall core + * @param[in] pcall_core Handle to voicecall core */ gboolean voicecall_service_loudspeaker_off(call_vc_core_state_t *pcall_core) { VOICECALL_RETURN_FALSE_IF_FAIL(pcall_core != NULL); - gboolean bloud_speaker = FALSE; gboolean ret = FALSE; voicecall_snd_mgr_t *papp_snd = pcall_core->papp_snd; int total_call_member = -1; voicecall_core_get_total_call_member(pcall_core->pcall_engine, &total_call_member); if (total_call_member == 0) { - CALL_ENG_DEBUG(ENG_DEBUG, "There are not active calls hence it should not work \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "There are not active calls hence it should not work"); return FALSE; } - CALL_ENG_DEBUG(ENG_DEBUG, "\n"); + CALL_ENG_DEBUG(ENG_DEBUG, ""); -#ifdef _NEW_SND_ if (voicecall_snd_get_path_status(pcall_core->papp_snd) == VOICE_CALL_SND_PATH_SPEAKER) { if (TRUE == _vc_bt_is_bt_connected(pcall_core)) { voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_BT); /*_vc_bt_send_response_to_bt(pcall_core, BT_AG_RES_SWITCH_TO_HEADSET, -1, NULL);*/ _vc_bt_request_switch_headset_path(pcall_core, TRUE); } else { - voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_RECEIVER); + CALL_ENG_DEBUG(ENG_DEBUG, "Set VOICE_CALL_SND_PATH_RECEIVER_EARJACK"); + voicecall_snd_set_path_status(pcall_core->papp_snd, VOICE_CALL_SND_PATH_RECEIVER_EARJACK); voicecall_snd_change_path(papp_snd); } } else { - CALL_ENG_DEBUG(ENG_DEBUG, "loudspeacker is already on.\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "loudspeacker is already on."); ret = FALSE; } -#else - - /* Toggle the LoudSpeaker Status */ - bloud_speaker = voicecall_snd_get_status(papp_snd, VOICE_CALL_AUDIO_SPEAKER); - if (bloud_speaker == TRUE) { - CALL_ENG_DEBUG(ENG_DEBUG, "Change to Speaker Off. \n"); - - voicecall_snd_set_status(papp_snd, VOICE_CALL_AUDIO_SPEAKER, FALSE); - - /* Change Audio Path according to the current status */ - voicecall_snd_change_path(papp_snd); - - ret = TRUE; - } else { - CALL_ENG_DEBUG(ENG_DEBUG, "loudspeacker is already off.\n"); - ret = FALSE; - } -#endif - return ret; } @@ -151,7 +330,7 @@ gboolean voicecall_service_loudspeaker_off(call_vc_core_state_t *pcall_core) * This function is mute on * * @return void - * @param[in] pcall_core Handle to voicecall core + * @param[in] pcall_core Handle to voicecall core */ gboolean voicecall_service_mute_status_on(call_vc_core_state_t *pcall_core) @@ -164,23 +343,23 @@ gboolean voicecall_service_mute_status_on(call_vc_core_state_t *pcall_core) voicecall_snd_mgr_t *papp_snd = pcall_core->papp_snd; voicecall_engine_t *pcall_engine = pcall_core->pcall_engine; - CALL_ENG_DEBUG(ENG_DEBUG, "..\n"); + CALL_ENG_DEBUG(ENG_DEBUG, ".."); voicecall_core_is_call_exists(pcall_engine, &bactive_calls, &bheld_calls); if (FALSE == bactive_calls && TRUE == bheld_calls) { - CALL_ENG_DEBUG(ENG_DEBUG, "nothing to do.\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "nothing to do."); /*Mute button should not be handled if only held calls exists */ return TRUE; } if (FALSE == papp_snd->bmute_status) { - CALL_ENG_DEBUG(ENG_DEBUG, "Setting Voice Audio Mute Status On. \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Setting Voice Audio Mute Status On."); voicecall_core_set_audio_mute_status(pcall_engine, TRUE); papp_snd->bmute_status = TRUE; return TRUE; } else { - CALL_ENG_DEBUG(ENG_DEBUG, "mute status is already on.\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "mute status is already on."); return FALSE; } @@ -190,7 +369,7 @@ gboolean voicecall_service_mute_status_on(call_vc_core_state_t *pcall_core) * This function is mute off * * @return void - * @param[in] pcall_core Handle to voicecall core + * @param[in] pcall_core Handle to voicecall core */ gboolean voicecall_service_mute_status_off(call_vc_core_state_t *pcall_core) { @@ -202,23 +381,23 @@ gboolean voicecall_service_mute_status_off(call_vc_core_state_t *pcall_core) voicecall_snd_mgr_t *papp_snd = pcall_core->papp_snd; voicecall_engine_t *pcall_engine = pcall_core->pcall_engine; - CALL_ENG_DEBUG(ENG_DEBUG, "..\n"); + CALL_ENG_DEBUG(ENG_DEBUG, ".."); voicecall_core_is_call_exists(pcall_engine, &bactive_calls, &bheld_calls); if (FALSE == bactive_calls && TRUE == bheld_calls) { - CALL_ENG_DEBUG(ENG_DEBUG, "nothing to do.\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "nothing to do."); /*Mute button should not be handled if only held calls exists */ return TRUE; } if (TRUE == papp_snd->bmute_status) { - CALL_ENG_DEBUG(ENG_DEBUG, "Setting Voice Audio Mute Status Off. \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Setting Voice Audio Mute Status Off."); voicecall_core_set_audio_mute_status(pcall_engine, FALSE); papp_snd->bmute_status = FALSE; return TRUE; } else { - CALL_ENG_DEBUG(ENG_DEBUG, "mute status is already off.\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "mute status is already off."); return FALSE; } @@ -228,7 +407,7 @@ gboolean voicecall_service_mute_status_off(call_vc_core_state_t *pcall_core) * This function set volume level. * * @return Returns TRUE on success or FALSE on failure - * @param[in] pcall_core Handle to voicecall core + * @param[in] pcall_core Handle to voicecall core * @param[in] vol_alert_type volume alert type * @param[in] volume_level volume level to be set */ @@ -242,3 +421,4 @@ gboolean voicecall_service_set_volume(call_vc_core_state_t *pcall_core, voicecal return TRUE; } + diff --git a/call-engine/voice-call-sound.c b/call-engine/voice-call-sound.c index fa24390..f88f882 100755 --- a/call-engine/voice-call-sound.c +++ b/call-engine/voice-call-sound.c @@ -21,12 +21,13 @@ #include "voice-call-core.h" #include "voice-call-bt.h" #include "voice-call-service.h" +#include "voice-call-device.h" #include #include #include #include -#include +#include #include #include #include @@ -56,11 +57,6 @@ #define VOICE_CALL_SND_NW_CONGESTION_SIGNAL_PATH MEDIADIR"/Call_NwCongestionTone.wav" #define VOICE_CALL_SND_ERROR_SIGNAL_PATH MEDIADIR"/Call_ErrorTone.wav" -#ifdef VOICE_CALL_RINGTONE_ELEVATOR -#define VOICE_CALL_SND_INITIAL_VOL_LEVEL 1 -#define VOICE_CALL_SND_RING_ELEVATOR_TIME_VAL 2000 /*3 Seconds Approx. */ -#endif - /** * Enumeration for volume level of 10 levels */ @@ -120,14 +116,6 @@ static void __voicecall_snd_start_vibration(voicecall_snd_mgr_t *papp_snd); */ static void __voicecall_snd_stop_vibration(voicecall_snd_mgr_t *papp_snd); -/** -* This function serves as the callback for vibration then melody timer -* -* @return Returns TRUE on success or FALSE on failure -* @param[in] data Local data set by the caller -*/ -static gboolean __voicecall_snd_vib_then_melody_cb(void *data); - /** * This function serves as the callbback for the MM Player * @@ -158,6 +146,15 @@ static gboolean __voicecall_snd_increasing_melody_cb(void *data); static gboolean __voicecall_snd_play_melody(voicecall_snd_mgr_t *papp_snd, gboolean bis_increasing); /** +* This function sets the mm player volume according to the settings volume level +* +* @return void +* @param[in] papp_snd Handle to the Sound Manager +* @param[in] bis_increasing TRUE if incremntal melody type, FALSE otherwise +*/ +static void __voicecall_snd_set_mm_volume(voicecall_snd_mgr_t *papp_snd, int bis_increasing); + +/** * This function retreives the tapi sound path to be used according to the current status * * @return void @@ -166,13 +163,6 @@ static gboolean __voicecall_snd_play_melody(voicecall_snd_mgr_t *papp_snd, gbool */ static void __voicecall_snd_get_voice_path(voicecall_snd_mgr_t *papp_snd, int *voice_snd_path); -#ifdef VOICE_CALL_RINGTONE_ELEVATOR - -static gboolean __voicecall_and_start_ring_elevator_cb(gpointer pdata); -static void __voicecall_snd_start_ring_elevator(voicecall_snd_mgr_t *papp_snd); -static void __voicecall_snd_cancel_ring_elevator(voicecall_snd_mgr_t *papp_snd); -#endif - /*Function Defintions*/ /** * This function initializes the sound functionalties required by the Application @@ -185,23 +175,20 @@ gboolean voicecall_snd_init(void *pcall_core, voicecall_snd_mgr_t **papp_snd) { voicecall_snd_mgr_t *psnd_mgr = NULL; - CALL_ENG_DEBUG(ENG_DEBUG, "Sound CM Test\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Sound CM Test"); psnd_mgr = (voicecall_snd_mgr_t *)calloc(1, sizeof(voicecall_snd_mgr_t)); if (psnd_mgr == NULL) { - CALL_ENG_DEBUG(ENG_ERR, "Memory Allocation Failed\n"); + CALL_ENG_DEBUG(ENG_ERR, "Memory Allocation Failed"); return FALSE; } - CALL_ENG_DEBUG(ENG_DEBUG, "psnd_mgr alloctated memory:[%d]\n", sizeof(voicecall_snd_mgr_t)); + CALL_ENG_DEBUG(ENG_DEBUG, "psnd_mgr alloctated memory:[%d]", sizeof(voicecall_snd_mgr_t)); /*Store voice call Handle */ psnd_mgr->pcall_core = pcall_core; -#ifdef _NEW_SND_ - psnd_mgr->current_snd_path = VOICE_CALL_SND_PATH_RECEIVER; + psnd_mgr->current_snd_path = VOICE_CALL_SND_PATH_RECEIVER_EARJACK; psnd_mgr->old_snd_path = VOICE_CALL_SND_PATH_NONE; -#endif - psnd_mgr->bsound_cm_state = FALSE; psnd_mgr->pmm_player = VOICE_CALL_SND_INVALID_PLAYER_HANDLE; @@ -228,15 +215,15 @@ gboolean __voicecall_snd_alternate_sound_idle_cb(void *puser_data) voicecall_snd_mgr_t *papp_snd = (voicecall_snd_mgr_t *)puser_data; call_vc_core_state_t *pcall_core = (call_vc_core_state_t *)papp_snd->pcall_core; - CALL_ENG_DEBUG(ENG_DEBUG, "..\n"); + CALL_ENG_DEBUG(ENG_DEBUG, ".."); if (TRUE == papp_snd->balternate_play) { if ((FALSE == voicecall_core_is_connected_call_exist(pcall_core->pcall_engine)) && (TRUE == voicecall_core_is_incoming_call_exists(pcall_core->pcall_engine))) { /* case : during 2nd incoming call, connected call is cleared. so, just 1 incoming call case... */ - CALL_ENG_DEBUG(ENG_DEBUG, "2nd incoming -> just single incoming call.\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "2nd incoming -> just single incoming call."); voicecall_snd_prepare_alert(papp_snd, papp_snd->incoming_call_handle); - voicecall_snd_change_mm_path(papp_snd, VOICE_CALL_MM_RING_TONE); + sound_manager_call_session_set_mode(papp_snd->psnd_session, SOUND_CALL_SESSION_MODE_RINGTONE); voicecall_snd_play_alert(papp_snd); } else { __voicecall_snd_play_alternate_sound(papp_snd); @@ -250,7 +237,7 @@ gboolean __voicecall_snd_alternate_play_timeout_cb(gpointer pdata) { voicecall_snd_mgr_t *papp_snd = (voicecall_snd_mgr_t *)pdata; - CALL_ENG_DEBUG(ENG_DEBUG, "..\n"); + CALL_ENG_DEBUG(ENG_DEBUG, ".."); if (papp_snd->balternate_play == TRUE) { __voicecall_snd_play_alternate_sound(papp_snd); } @@ -260,38 +247,38 @@ gboolean __voicecall_snd_alternate_play_timeout_cb(gpointer pdata) void __voicecall_snd_play_alternate_sound(voicecall_snd_mgr_t *papp_snd) { - CALL_ENG_DEBUG(ENG_DEBUG, "..\n"); + CALL_ENG_DEBUG(ENG_DEBUG, ".."); call_vc_core_state_t *pcall_core = (call_vc_core_state_t *)papp_snd->pcall_core; if (TRUE == voicecall_core_is_incoming_call_exists(pcall_core->pcall_engine)) { - CALL_ENG_DEBUG(ENG_DEBUG, "Incoming call is there!Play Alternate Sound \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Incoming call is there!Play Alternate Sound"); int mmf_error = -1; char ring_tone[VOICE_CALL_SND_RINGTONE_PATH_LEN]; snprintf(ring_tone, sizeof(ring_tone), "file://%s", VOICE_CALL_SND_SECOND_RINGTONE_PATH); - voicecall_snd_change_mm_path(pcall_core->papp_snd, VOICE_CALL_MM_SECOND_CALL_TONE); + sound_manager_call_session_set_mode(pcall_core->papp_snd->psnd_session, SOUND_CALL_SESSION_MODE_MEDIA); - CALL_ENG_DEBUG(ENG_DEBUG, "Call mm_sound_play_sound to play alternate ringtonen\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Call mm_sound_play_sound to play alternate ringtonen"); mmf_error = mm_sound_play_sound(VOICE_CALL_SND_SECOND_RINGTONE_PATH, VOLUME_TYPE_CALL, __voicecall_snd_alternate_sound_cb, papp_snd, &papp_snd->mmfalternateplay_handle); if (MM_ERROR_NONE == mmf_error) { papp_snd->balternate_play = TRUE; papp_snd->ringtone_sound_status = VOICE_CALL_SND_STATUS_PLAY; - CALL_ENG_DEBUG(ENG_DEBUG, "Alternate Sound Play Called,papp_snd->balternate_play=%d \n", papp_snd->balternate_play); + CALL_ENG_DEBUG(ENG_DEBUG, "Alternate Sound Play Called,papp_snd->balternate_play=%d", papp_snd->balternate_play); } else { papp_snd->ringtone_sound_status = VOICE_CALL_SND_STATUS_STOP; papp_snd->balternate_play = FALSE; - CALL_ENG_DEBUG(ENG_DEBUG, "mmf_error = [0x%x] \n", mmf_error); + CALL_ENG_DEBUG(ENG_DEBUG, "mmf_error = [0x%x]", mmf_error); } - CALL_ENG_DEBUG(ENG_DEBUG, "End of Alternate Sound!\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "End of Alternate Sound!"); } } gboolean __voicecall_snd_stop_alternate_sound(voicecall_snd_mgr_t *papp_snd) { - CALL_ENG_DEBUG(ENG_DEBUG, " papp_snd->balternate_play = %d\n", papp_snd->balternate_play); + CALL_ENG_DEBUG(ENG_DEBUG, " papp_snd->balternate_play = %d", papp_snd->balternate_play); if (TRUE == papp_snd->balternate_play) { /*Only Stop if it is in Play State */ if (VOICE_CALL_SND_STATUS_PLAY == papp_snd->ringtone_sound_status) { @@ -299,7 +286,7 @@ gboolean __voicecall_snd_stop_alternate_sound(voicecall_snd_mgr_t *papp_snd) error = mm_sound_stop_sound(papp_snd->mmfalternateplay_handle); papp_snd->mmfalternateplay_handle = -1; papp_snd->ringtone_sound_status = VOICE_CALL_SND_STATUS_STOP; - CALL_ENG_DEBUG(ENG_ERR, "Alternate Ringtone Stopeed,Error Code: [0x%x] \n", error); + CALL_ENG_DEBUG(ENG_ERR, "Alternate Ringtone Stopeed,Error Code: [0x%x]", error); } papp_snd->balternate_play = FALSE; return TRUE; @@ -312,7 +299,7 @@ void __voicecall_snd_alternate_sound_cb(void *puser_data) voicecall_snd_mgr_t *papp_snd = (voicecall_snd_mgr_t *)puser_data; call_vc_core_state_t *pcall_core = (call_vc_core_state_t *)papp_snd->pcall_core; - CALL_ENG_DEBUG(ENG_DEBUG, "papp_snd->balternate_play= %d\n", papp_snd->balternate_play); + CALL_ENG_DEBUG(ENG_DEBUG, "papp_snd->balternate_play= %d", papp_snd->balternate_play); papp_snd->ringtone_sound_status = VOICE_CALL_SND_STATUS_STOPPED; @@ -327,15 +314,23 @@ void __voicecall_snd_alternate_sound_cb(void *puser_data) void voicecall_snd_prepare_alert(voicecall_snd_mgr_t *papp_snd, int call_handle) { - CALL_ENG_DEBUG(ENG_DEBUG, "..\n"); + CALL_ENG_DEBUG(ENG_DEBUG, ".."); call_vc_core_state_t *pcall_core = (call_vc_core_state_t *)papp_snd->pcall_core; int err_code = -1; papp_snd->incoming_call_handle = call_handle; + /* Save the original volume level to reset */ + err_code = mm_sound_volume_get_value(VOLUME_TYPE_RINGTONE, (unsigned int *) &(papp_snd->org_ringtone_value)); + + if (MM_ERROR_NONE != err_code) { + CALL_ENG_DEBUG(ENG_ERR, "Get Volume Error: [0x%x]", err_code); + return; + } + if (TRUE == voicecall_core_is_connected_call_exist(pcall_core->pcall_engine)) { - CALL_ENG_DEBUG(ENG_DEBUG, "Alternate Sound Needs to be played \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Alternate Sound Needs to be played"); papp_snd->ringtone_sound_status = VOICE_CALL_AND_STATUS_ALTERNATE_PLAY; return; } @@ -352,117 +347,63 @@ void voicecall_snd_prepare_alert(voicecall_snd_mgr_t *papp_snd, int call_handle) papp_snd->settings_vib_status = FALSE; err_code = vconf_get_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, &papp_snd->settings_sound_status); - CALL_ENG_DEBUG(ENG_DEBUG, "cur_sound_status = %d, error_code = %d\n", papp_snd->settings_sound_status, err_code); + CALL_ENG_DEBUG(ENG_DEBUG, "cur_sound_status = %d, error_code = %d", papp_snd->settings_sound_status, err_code); err_code = vconf_get_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, &papp_snd->settings_vib_status); - CALL_ENG_DEBUG(ENG_DEBUG, "cur_vib_status = %d, error_code = %d\n", papp_snd->settings_vib_status, err_code); + CALL_ENG_DEBUG(ENG_DEBUG, "cur_vib_status = %d, error_code = %d", papp_snd->settings_vib_status, err_code); if (papp_snd->settings_sound_status == FALSE) papp_snd->bmute_play = TRUE; __voicecall_snd_start_melody(papp_snd, FALSE, call_handle); - } void voicecall_snd_play_alert(voicecall_snd_mgr_t *papp_snd) { call_vc_core_state_t *pcall_core = (call_vc_core_state_t *)papp_snd->pcall_core; - CALL_ENG_DEBUG(ENG_DEBUG, "papp_snd->ringtone_sound_status=%d \n ", papp_snd->ringtone_sound_status); + CALL_ENG_DEBUG(ENG_DEBUG, "papp_snd->ringtone_sound_status=%d", papp_snd->ringtone_sound_status); if (VOICE_CALL_AND_STATUS_ALTERNATE_PLAY == papp_snd->ringtone_sound_status) { if (TRUE == voicecall_core_is_connected_call_exist(pcall_core->pcall_engine)) { - CALL_ENG_DEBUG(ENG_DEBUG, "Starting Alternate Sound \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Starting Alternate Sound"); papp_snd->balternate_play_count = 0; __voicecall_snd_play_alternate_sound(papp_snd); } } if (VOICE_CALL_SND_STATUS_READY != papp_snd->ringtone_sound_status) { - CALL_ENG_DEBUG(ENG_DEBUG, " Invalid ringtone_sound_status: %d \n ", papp_snd->ringtone_sound_status); + CALL_ENG_DEBUG(ENG_DEBUG, " Invalid ringtone_sound_status: %d", papp_snd->ringtone_sound_status); return; } papp_snd->ringtone_sound_status = VOICE_CALL_SND_STATUS_PROCESSED; - CALL_ENG_DEBUG(ENG_DEBUG, " [##### papp_snd->settings_sound_status #####] : %d \n ", papp_snd->settings_sound_status); - CALL_ENG_DEBUG(ENG_DEBUG, " [##### papp_snd->settings_vib_status #####] : %d \n ", papp_snd->settings_vib_status); + CALL_ENG_DEBUG(ENG_DEBUG, " [##### papp_snd->settings_sound_status #####] : %d", papp_snd->settings_sound_status); + CALL_ENG_DEBUG(ENG_DEBUG, " [##### papp_snd->settings_vib_status #####] : %d", papp_snd->settings_vib_status); + + sound_manager_call_session_set_mode(papp_snd->psnd_session, SOUND_CALL_SESSION_MODE_RINGTONE); + __voicecall_snd_play_melody(papp_snd, FALSE); - if (papp_snd->settings_sound_status) { - __voicecall_snd_play_melody(papp_snd, FALSE); - } else if (papp_snd->bmute_play) { - /*Change the path to the earjack headset and play the ringtone */ - voicecall_snd_change_mm_path(papp_snd, VOICE_CALL_MM_MUTE_PLAY); - __voicecall_snd_play_melody(papp_snd, FALSE); - } if (papp_snd->settings_vib_status) { __voicecall_snd_start_vibration(papp_snd); } } -#ifdef VOICE_CALL_RINGTONE_ELEVATOR - -gboolean __voicecall_and_start_ring_elevator_cb(gpointer pdata) -{ - voicecall_snd_mgr_t *papp_snd = (voicecall_snd_mgr_t *)pdata; - int volume_level = VOICE_CALL_VOL_LEVEL_1; - int ret_value = -1; - - CALL_ENG_DEBUG(ENG_DEBUG, "..\n"); - - /*Get the settings current ringtone volume level and set to media player */ - ret_value = vconf_get_int(VCONFKEY_SETAPPL_PROFILE_CURRENT_CALL_VOLUME_INT, &volume_level); - if (ret_value != 0) { - CALL_ENG_DEBUG(ENG_ERR, "settings read failed Error: %d\n", ret_value); - } - CALL_ENG_DEBUG(ENG_DEBUG, "Settings Volume Level = %d\n", volume_level); - - if (papp_snd->pmm_player != VOICE_CALL_SND_INVALID_PLAYER_HANDLE) { - ret_value = mm_sound_volume_set_value(VOLUME_TYPE_RINGTONE, volume_level); - if (MM_ERROR_NONE != ret_value) { - CALL_ENG_DEBUG(ENG_ERR, "Set Volume Error: [0x%x]\n", ret_value); - } - } else { - CALL_ENG_DEBUG(ENG_ERR, "Invalid MM Plauer %d\n", papp_snd->pmm_player); - } - - return FALSE; -} - -void __voicecall_snd_start_ring_elevator(voicecall_snd_mgr_t *papp_snd) -{ - CALL_ENG_DEBUG(ENG_DEBUG, "..\n"); - - papp_snd->ring_elvator_timerid = g_timeout_add(VOICE_CALL_SND_RING_ELEVATOR_TIME_VAL, __voicecall_and_start_ring_elevator_cb, papp_snd); -} - -void __voicecall_snd_cancel_ring_elevator(voicecall_snd_mgr_t *papp_snd) -{ - CALL_ENG_DEBUG(ENG_DEBUG, "..\n"); - if (papp_snd->ring_elvator_timerid > 0) { - g_source_remove(papp_snd->ring_elvator_timerid); - papp_snd->ring_elvator_timerid = 0; - } -} -#endif - gboolean voicecall_snd_mute_alert(voicecall_snd_mgr_t *papp_snd) { - CALL_ENG_DEBUG(ENG_DEBUG, "..\n"); + CALL_ENG_DEBUG(ENG_DEBUG, ".."); if (papp_snd->pmm_player != VOICE_CALL_SND_INVALID_PLAYER_HANDLE) { int ret_value = 0; ret_value = mm_player_set_mute(papp_snd->pmm_player, TRUE); - CALL_ENG_DEBUG(ENG_DEBUG, "MM Set Mute Error code: [0x%x] \n", ret_value); + CALL_ENG_DEBUG(ENG_DEBUG, "MM Set Mute Error code: [0x%x]", ret_value); } if (TRUE == papp_snd->bvibration) { - CALL_ENG_DEBUG(ENG_DEBUG, "Vibration is playing, stopping vibration \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Vibration is playing, stopping vibration"); __voicecall_snd_stop_vibration(papp_snd); } -#ifdef VOICE_CALL_RINGTONE_ELEVATOR - __voicecall_snd_cancel_ring_elevator(papp_snd); -#endif /*Make Vibration than melody flag to FALSE, so melody will not be played when it is muted */ papp_snd->bvibration_then_melody = FALSE; @@ -481,21 +422,16 @@ gboolean voicecall_snd_mute_alert(voicecall_snd_mgr_t *papp_snd) */ void voicecall_snd_stop_alert(voicecall_snd_mgr_t *papp_snd) { - - CALL_ENG_DEBUG(ENG_DEBUG, "..\n"); + CALL_ENG_DEBUG(ENG_DEBUG, ".."); __voicecall_snd_stop_vibration(papp_snd); if (TRUE == __voicecall_snd_stop_alternate_sound(papp_snd)) { - CALL_ENG_DEBUG(ENG_DEBUG, "Alternate sound stopped \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Alternate sound stopped"); return; } -#ifdef VOICE_CALL_RINGTONE_ELEVATOR - /*Stop Ring Elevator */ - __voicecall_snd_cancel_ring_elevator(papp_snd); -#endif - CALL_ENG_DEBUG(ENG_DEBUG, "pmm_player = %d \n", papp_snd->pmm_player); + CALL_ENG_DEBUG(ENG_DEBUG, "pmm_player = %d", papp_snd->pmm_player); if (papp_snd->pmm_player != VOICE_CALL_SND_INVALID_PLAYER_HANDLE) { int ret_value = 0; MMPlayerStateType mmplayer_state = MM_PLAYER_STATE_NONE; @@ -505,28 +441,34 @@ void voicecall_snd_stop_alert(voicecall_snd_mgr_t *papp_snd) mm_player_get_state(papp_snd->pmm_player, &mmplayer_state); - CALL_ENG_DEBUG(ENG_DEBUG, "Callling mmplayer_stop, current mm state = %d, Player = %d\n", mmplayer_state, papp_snd->pmm_player); + CALL_ENG_DEBUG(ENG_DEBUG, "Callling mmplayer_stop, current mm state = %d, Player = %d", mmplayer_state, papp_snd->pmm_player); if (MM_PLAYER_STATE_PLAYING == mmplayer_state || MM_PLAYER_STATE_PAUSED == mmplayer_state) { ret_value = mm_player_stop(papp_snd->pmm_player); if (MM_ERROR_NONE != ret_value) { - CALL_ENG_DEBUG(ENG_ERR, "mmplayer_stop failed: [0x%x]\n", ret_value); + CALL_ENG_DEBUG(ENG_ERR, "mmplayer_stop failed: [0x%x]", ret_value); } } - CALL_ENG_DEBUG(ENG_DEBUG, "Callling mmplayer_unrealize, Player = %d\n", papp_snd->pmm_player); + CALL_ENG_DEBUG(ENG_DEBUG, "Callling mmplayer_unrealize, Player = %d", papp_snd->pmm_player); ret_value = mm_player_unrealize(papp_snd->pmm_player); if (MM_ERROR_NONE != ret_value) { - CALL_ENG_DEBUG(ENG_ERR, "mmplayer_unrealize failed: [0x%x]\n", ret_value); + CALL_ENG_DEBUG(ENG_ERR, "mmplayer_unrealize failed: [0x%x]", ret_value); } - CALL_ENG_DEBUG(ENG_DEBUG, "Callling mmplayer_destroy, Player = %d\n", papp_snd->pmm_player); + CALL_ENG_DEBUG(ENG_DEBUG, "Callling mmplayer_destroy, Player = %d", papp_snd->pmm_player); ret_value = mm_player_destroy(papp_snd->pmm_player); if (MM_ERROR_NONE != ret_value) { - CALL_ENG_DEBUG(ENG_ERR, "mmplayer_destroy failed: [0x%x]\n", ret_value); + CALL_ENG_DEBUG(ENG_ERR, "mmplayer_destroy failed: [0x%x]", ret_value); } papp_snd->pmm_player = VOICE_CALL_SND_INVALID_PLAYER_HANDLE; papp_snd->ringtone_sound_status = VOICE_CALL_SND_STATUS_STOPPED; + + ret_value = mm_sound_volume_set_value(VOLUME_TYPE_RINGTONE, papp_snd->org_ringtone_value); + + if (MM_ERROR_NONE != ret_value) { + CALL_ENG_DEBUG(ENG_ERR, "Set Volume Error: [0x%x]", ret_value); + } } /* Stop All periodic Timers */ @@ -537,14 +479,15 @@ void voicecall_snd_stop_alert(voicecall_snd_mgr_t *papp_snd) papp_snd->current_playing_call_handle = -1; papp_snd->bmute_play = FALSE; + } gboolean voicecall_snd_set_play_end_callback(voicecall_snd_mgr_t *papp_snd, voicecall_snd_callback psignal_play_end_cb, gpointer psignal_play_end_cb_data) { - CALL_ENG_DEBUG(ENG_DEBUG, "signal_type = %d\n", papp_snd->signal_type); + CALL_ENG_DEBUG(ENG_DEBUG, "signal_type = %d", papp_snd->signal_type); if (VOICE_CALL_SND_STATUS_NONE == papp_snd->signal_sound_status) { - CALL_ENG_DEBUG(ENG_DEBUG, "No Signal Being Played\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "No Signal Being Played"); return FALSE; } @@ -562,13 +505,13 @@ gboolean voicecall_snd_set_play_end_callback(voicecall_snd_mgr_t *papp_snd, voic */ gboolean voicecall_snd_is_signal_playing(voicecall_snd_mgr_t *papp_snd) { - CALL_ENG_DEBUG(ENG_DEBUG, "Signal Sound Status : [%d] \n", papp_snd->signal_sound_status); + CALL_ENG_DEBUG(ENG_DEBUG, "Signal Sound Status : [%d]", papp_snd->signal_sound_status); if ((papp_snd->pmm_signal_player != VOICE_CALL_SND_INVALID_SND_HANDLE) && (VOICE_CALL_SND_STATUS_PLAY == papp_snd->signal_sound_status)) { - CALL_ENG_DEBUG(ENG_DEBUG, "Signal is playing \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Signal is playing"); return TRUE; } - CALL_ENG_DEBUG(ENG_DEBUG, "Signal is not playing \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Signal is not playing"); return FALSE; } @@ -576,10 +519,10 @@ gboolean voicecall_snd_play_signal(voicecall_snd_mgr_t *papp_snd, voicecall_snd_ { int ret_value = 0; - CALL_ENG_DEBUG(ENG_DEBUG, "signal_type = %d\n", papp_snd->signal_type); + CALL_ENG_DEBUG(ENG_DEBUG, "signal_type = %d", papp_snd->signal_type); if (VOICE_CALL_SIGNAL_NONE == papp_snd->signal_type) { - CALL_ENG_DEBUG(ENG_DEBUG, "No Signal Type Assinged\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "No Signal Type Assinged"); return FALSE; } @@ -591,30 +534,30 @@ gboolean voicecall_snd_play_signal(voicecall_snd_mgr_t *papp_snd, voicecall_snd_ /*Set status, the signal play is being prepared */ papp_snd->signal_sound_status = VOICE_CALL_SND_STATUS_READY; - CALL_ENG_DEBUG(ENG_DEBUG, "papp_snd->signal_sound_status = %d\n", papp_snd->signal_sound_status); + CALL_ENG_DEBUG(ENG_DEBUG, "papp_snd->signal_sound_status = %d", papp_snd->signal_sound_status); papp_snd->psignal_play_end_cb = psignal_play_end_cb; papp_snd->psignal_play_end_cb_data = psignal_play_end_cb_data; if (TRUE == voicecall_snd_is_effect_playing(papp_snd)) { - CALL_ENG_DEBUG(ENG_ERR, "Stopping effect tone to play signal \n "); + CALL_ENG_DEBUG(ENG_ERR, "Stopping effect tone to play signal"); voicecall_snd_stop_effect_tone(papp_snd); } - CALL_ENG_DEBUG(ENG_ERR, "Changing path to play signal\n "); - voicecall_snd_change_mm_path(papp_snd, VOICE_CALL_MM_SIGNAL_TONE); - CALL_ENG_DEBUG(ENG_ERR, "Changing path to play signal Over\n "); + CALL_ENG_DEBUG(ENG_ERR, "Changing path to play signal"); + sound_manager_call_session_set_mode(papp_snd->psnd_session, SOUND_CALL_SESSION_MODE_MEDIA); + CALL_ENG_DEBUG(ENG_ERR, "Changing path to play signal Over"); - CALL_ENG_DEBUG(ENG_DEBUG, "signal_tone = %s\n", papp_snd->signal_tone); + CALL_ENG_DEBUG(ENG_DEBUG, "signal_tone = %s", papp_snd->signal_tone); ret_value = mm_sound_play_sound(papp_snd->signal_tone, VOLUME_TYPE_CALL, __voicecall_snd_mmplayer_signal_cb, papp_snd, &papp_snd->pmm_signal_player); if (MM_ERROR_NONE != ret_value) { papp_snd->signal_sound_status = VOICE_CALL_SND_STATUS_NONE; - CALL_ENG_DEBUG(ENG_ERR, "mm_sound_play_sound failed,Error: [0x%x]\n", ret_value); + CALL_ENG_DEBUG(ENG_ERR, "mm_sound_play_sound failed,Error: [0x%x]", ret_value); } else { - CALL_ENG_DEBUG(ENG_DEBUG, "papp_snd->pmm_signal_player[%d]\n", papp_snd->pmm_signal_player); + CALL_ENG_DEBUG(ENG_DEBUG, "papp_snd->pmm_signal_player[%d]", papp_snd->pmm_signal_player); papp_snd->signal_sound_status = VOICE_CALL_SND_STATUS_PLAY; } - CALL_ENG_DEBUG(ENG_DEBUG, "Signal Play Started, Sound Status is: %d\n", papp_snd->signal_sound_status); + CALL_ENG_DEBUG(ENG_DEBUG, "Signal Play Started, Sound Status is: %d", papp_snd->signal_sound_status); return TRUE; } @@ -629,18 +572,18 @@ void voicecall_snd_stop_signal(voicecall_snd_mgr_t *papp_snd) { int ret_value = 0; - CALL_ENG_DEBUG(ENG_DEBUG, "Sound Status: %d, papp_snd->pmm_signal_player(%d)\n", papp_snd->signal_sound_status, papp_snd->pmm_signal_player); + CALL_ENG_DEBUG(ENG_DEBUG, "Sound Status: %d, papp_snd->pmm_signal_player(%d)", papp_snd->signal_sound_status, papp_snd->pmm_signal_player); if (papp_snd->pmm_signal_player != VOICE_CALL_SND_INVALID_SND_HANDLE) { if (VOICE_CALL_SND_STATUS_PLAY == papp_snd->signal_sound_status) { papp_snd->signal_sound_status = VOICE_CALL_SND_STATUS_STOPPED; - CALL_ENG_DEBUG(ENG_DEBUG, "Stopping Signal Sound \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Stopping Signal Sound"); ret_value = mm_sound_stop_sound(papp_snd->pmm_signal_player); if (MM_ERROR_NONE != ret_value) { - CALL_ENG_DEBUG(ENG_ERR, "mm_sound_stop_sound failed: [0x%x]\n", ret_value); + CALL_ENG_DEBUG(ENG_ERR, "mm_sound_stop_sound failed: [0x%x]", ret_value); } } else { - CALL_ENG_DEBUG(ENG_DEBUG, "Sound Play Over / Already Stopped \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Sound Play Over / Already Stopped"); } papp_snd->pmm_signal_player = VOICE_CALL_SND_INVALID_SND_HANDLE; } @@ -650,7 +593,7 @@ void voicecall_snd_stop_signal(voicecall_snd_mgr_t *papp_snd) papp_snd->psignal_play_end_cb_data = NULL; } - CALL_ENG_DEBUG(ENG_DEBUG, "Application Sound Status:%d \n", papp_snd->signal_sound_status); + CALL_ENG_DEBUG(ENG_DEBUG, "Application Sound Status:%d", papp_snd->signal_sound_status); } /** @@ -664,7 +607,7 @@ void voicecall_snd_set_signal_type(voicecall_snd_mgr_t *papp_snd, voicecall_snd_ { char signal_tone[VOICE_CALL_SND_RINGTONE_PATH_LEN]; - CALL_ENG_DEBUG(ENG_DEBUG, "Signal Type: %d\n", signal_type); + CALL_ENG_DEBUG(ENG_DEBUG, "Signal Type: %d", signal_type); memset(signal_tone, 0, sizeof(signal_tone)); @@ -687,7 +630,7 @@ void voicecall_snd_set_signal_type(voicecall_snd_mgr_t *papp_snd, voicecall_snd_ } break; default: - CALL_ENG_DEBUG(ENG_ERR, "Invalid Signal Type \n"); + CALL_ENG_DEBUG(ENG_ERR, "Invalid Signal Type"); break; } @@ -699,9 +642,8 @@ static void __voicecall_snd_get_voice_path(voicecall_snd_mgr_t *papp_snd, int *v { voicecall_audio_path_t tmp_audio_path; -#ifdef _NEW_SND_ - CALL_ENG_DEBUG(ENG_DEBUG, "current path = %d\n", voicecall_snd_get_path_status(papp_snd)); - + CALL_ENG_DEBUG(ENG_DEBUG, "current path = %d", voicecall_snd_get_path_status(papp_snd)); + switch (voicecall_snd_get_path_status(papp_snd)) { case VOICE_CALL_SND_PATH_BT: { @@ -713,181 +655,69 @@ static void __voicecall_snd_get_voice_path(voicecall_snd_mgr_t *papp_snd, int *v tmp_audio_path = VC_AUDIO_PATH_SPK_PHONE; } break; - case VOICE_CALL_SND_PATH_EARJACK: - { - tmp_audio_path = VC_AUDIO_PATH_HEADSET; - } - break; - case VOICE_CALL_SND_PATH_RECEIVER: + case VOICE_CALL_SND_PATH_RECEIVER_EARJACK: default: { - tmp_audio_path = VC_AUDIO_PATH_HANDSET; + if (_voicecall_dvc_get_earjack_connected() == TRUE) + tmp_audio_path = VC_AUDIO_PATH_HEADSET; + else + tmp_audio_path = VC_AUDIO_PATH_HANDSET; } } -#else - CALL_ENG_DEBUG(ENG_DEBUG, "Headset Status = %d\n", papp_snd->bcall_audio_status[VOICE_CALL_AUDIO_HEADSET]); - CALL_ENG_DEBUG(ENG_DEBUG, "Loud Speaker Status = %d\n", papp_snd->bcall_audio_status[VOICE_CALL_AUDIO_SPEAKER]); - - /*Priority is given to Headset, incase both loudspeaker and headset is enabled */ - if (TRUE == papp_snd->bcall_audio_status[VOICE_CALL_AUDIO_HEADSET]) { - tmp_audio_path = VC_AUDIO_PATH_BLUETOOTH; - } else if (TRUE == papp_snd->bcall_audio_status[VOICE_CALL_AUDIO_SPEAKER]) { - tmp_audio_path = VC_AUDIO_PATH_SPK_PHONE; - } else if (TRUE == papp_snd->bcall_audio_status[VOICE_CALL_AUDIO_EARJACK]) { - tmp_audio_path = VC_AUDIO_PATH_HEADSET; - } else { - tmp_audio_path = VC_AUDIO_PATH_HANDSET; - } -#endif *voice_snd_path = tmp_audio_path; - CALL_ENG_DEBUG(ENG_DEBUG, "voice_snd_path = %d\n", *voice_snd_path); + CALL_ENG_DEBUG(ENG_DEBUG, "voice_snd_path = %d", *voice_snd_path); } -void voicecall_snd_change_mm_path(voicecall_snd_mgr_t *papp_snd, voicecall_snd_mm_path_type_t mm_path_type) +void voicecall_snd_change_mm_path(voicecall_snd_mgr_t *papp_snd) { - call_vc_core_state_t *pcall_core = (call_vc_core_state_t *)papp_snd->pcall_core; - voicecall_engine_t *pcall_engine = pcall_core->pcall_engine; - int in_path = 0; - int out_path = 0; - int gain_type = 0; - int mm_error = 0; - int option_field = MM_SOUND_PATH_OPTION_AUTO_HEADSET_CONTROL; + sound_route_e route = 0; - CALL_ENG_DEBUG(ENG_DEBUG, "mm_path_type = %d\n", mm_path_type); - CALL_ENG_DEBUG(ENG_DEBUG, "papp_snd->current_path_type = %d\n", papp_snd->current_path_type); + CALL_ENG_DEBUG(ENG_DEBUG, "papp_snd->current_path_type = %d", papp_snd->current_path_type); -#ifdef _NEW_SND_ switch (voicecall_snd_get_path_status(papp_snd)) { case VOICE_CALL_SND_PATH_BT: - { - out_path = MM_SOUND_PATH_BTHEADSET; - in_path = MM_SOUND_PATH_BTMIC; - } + CALL_ENG_DEBUG(ENG_DEBUG, "route path : SOUND_ROUTE_INOUT_BLUETOOTH"); + route = SOUND_ROUTE_INOUT_BLUETOOTH; break; + case VOICE_CALL_SND_PATH_SPEAKER: - { - out_path = MM_SOUND_PATH_SPK; - in_path = MM_SOUND_PATH_MIC; - option_field = MM_SOUND_PATH_OPTION_NONE; - } + CALL_ENG_DEBUG(ENG_DEBUG, "route path : SOUND_ROUTE_IN_MIC_OUT_SPEAKER"); + route = SOUND_ROUTE_IN_MIC_OUT_SPEAKER; break; - case VOICE_CALL_SND_PATH_EARJACK: - case VOICE_CALL_SND_PATH_RECEIVER: - default: - { - out_path = MM_SOUND_PATH_RECV; - in_path = MM_SOUND_PATH_MIC; - } - break; - } - -#else - /*Define OutPath */ - if (TRUE == papp_snd->bcall_audio_status[VOICE_CALL_AUDIO_HEADSET]) { - out_path = MM_SOUND_PATH_BTHEADSET; - } else if (TRUE == papp_snd->bcall_audio_status[VOICE_CALL_AUDIO_SPEAKER]) { - out_path = MM_SOUND_PATH_SPK; - option_field = MM_SOUND_PATH_OPTION_NONE; - } else { /*Normal Phone Reciever */ - - out_path = MM_SOUND_PATH_RECV; - } - if (TRUE == papp_snd->bcall_audio_status[VOICE_CALL_AUDIO_HEADSET]) { - in_path = MM_SOUND_PATH_BTMIC; - } else { - CALL_ENG_DEBUG(ENG_DEBUG, "Don't off the MIC. Mute only modem\n"); - in_path = MM_SOUND_PATH_MIC; - } -#endif - - CALL_ENG_DEBUG(ENG_DEBUG, "Out Path = %d, In Path = %d \n", out_path, in_path); - - /* This patch is required : if voice path is not reset, - * the volume played for ringtone and signal tone will not be audible enough to hear - */ - if ((VOICE_CALL_MM_VOICE == papp_snd->current_path_type) && ((VOICE_CALL_MM_RING_TONE == mm_path_type) || (VOICE_CALL_MM_SIGNAL_TONE == mm_path_type))) { - CALL_ENG_DEBUG(ENG_DEBUG, "Resetting Voice Path before changing to some other path \n"); - } - - /*Define Gain Type */ - switch (mm_path_type) { - case VOICE_CALL_MM_ALERT_TONE: - { - gain_type = MM_SOUND_GAIN_CALLTONE; - in_path = MM_SOUND_PATH_NONE; - } - break; - case VOICE_CALL_MM_SECOND_CALL_TONE: - { - /* MMFW sound request. always set it. */ - gain_type = MM_SOUND_GAIN_KEYTONE; /* In case of earjack inserting, during second call */ - in_path = MM_SOUND_PATH_NONE; - } - break; - case VOICE_CALL_MM_RING_TONE: + case VOICE_CALL_SND_PATH_RECEIVER_EARJACK: + default: { - int io_state = VC_INOUT_STATE_NONE; - - gain_type = MM_SOUND_GAIN_RINGTONE; - in_path = MM_SOUND_PATH_NONE; - option_field = MM_SOUND_PATH_OPTION_SPEAKER_WITH_HEADSET; - - voicecall_core_get_engine_state(pcall_engine, &io_state); - if ((voicecall_core_is_incoming_call_exists(pcall_engine)) && (io_state != VC_INOUT_STATE_INCOME_END)) { - out_path = MM_SOUND_PATH_SPK; + if (_voicecall_dvc_get_earjack_connected() == TRUE) { + if (sound_manager_is_route_available (MM_SOUND_ROUTE_INOUT_HEADSET)) { + CALL_ENG_DEBUG(ENG_DEBUG, "route path : MM_SOUND_ROUTE_INOUT_HEADSET"); + route = MM_SOUND_ROUTE_INOUT_HEADSET; + } else if (sound_manager_is_route_available (SOUND_ROUTE_IN_MIC_OUT_HEADPHONE)) { + route = SOUND_ROUTE_IN_MIC_OUT_HEADPHONE; + CALL_ENG_DEBUG(ENG_DEBUG, "route path : SOUND_ROUTE_IN_MIC_OUT_HEADPHONE"); + } else { + route = SOUND_ROUTE_IN_MIC_OUT_RECEIVER; + } + } else { + CALL_ENG_DEBUG(ENG_DEBUG, "route path : SOUND_ROUTE_IN_MIC_OUT_RECEIVER"); + route = SOUND_ROUTE_IN_MIC_OUT_RECEIVER; } } break; - case VOICE_CALL_MM_MUTE_PLAY: - { - gain_type = MM_SOUND_GAIN_RINGTONE; - in_path = MM_SOUND_PATH_NONE; - out_path = MM_SOUND_PATH_HEADSET; - } - break; - case VOICE_CALL_MM_RESET: - { - gain_type = MM_SOUND_GAIN_VOICECALL; - in_path = MM_SOUND_PATH_NONE; - out_path = MM_SOUND_PATH_NONE; - } - break; - case VOICE_CALL_MM_SIGNAL_TONE: - { - gain_type = MM_SOUND_GAIN_CALLTONE; - in_path = MM_SOUND_PATH_NONE; - } - break; - case VOICE_CALL_MM_RECORD: - { - gain_type = MM_SOUND_GAIN_VOICECALL; - } - break; - case VOICE_CALL_MM_VOICE: - { - gain_type = MM_SOUND_GAIN_VOICECALL; - } - break; - default: - CALL_ENG_DEBUG(ENG_DEBUG, "Invalid MM Path Type: %d\n", mm_path_type); } + CALL_ENG_DEBUG(ENG_ERR, "route = 0x04X", route); if (papp_snd->bsound_cm_state == TRUE) { - CALL_ENG_DEBUG(ENG_DEBUG, "mm_sound_set_path- Gain:[%d],OutPath:[%d],InPath:[%d],option:[%d] \n", gain_type, out_path, in_path, option_field); - CALL_ENG_KPI("mm_sound_set_path start"); - mm_error = mm_sound_set_path(gain_type, out_path, in_path, option_field); + CALL_ENG_DEBUG(ENG_ERR, "sound_manager_set_active_route [0x%X]", route); + sound_manager_set_active_route(route); + CALL_ENG_KPI("mm_sound_set_path done"); - if (mm_error != MM_ERROR_NONE) { - CALL_ENG_DEBUG(ENG_ERR, "MM Path Change Failed,mm_error = [0x%x]\n", mm_error); - } - papp_snd->current_path_type = mm_path_type; + papp_snd->current_path_type = VOICE_CALL_MM_VOICE; } else { - CALL_ENG_DEBUG(ENG_ERR, "** we can't change mm path. check it. **** \n"); + CALL_ENG_DEBUG(ENG_ERR, "** we can't change mm path. check it. ****"); } - } /** @@ -898,11 +728,10 @@ void voicecall_snd_change_mm_path(voicecall_snd_mgr_t *papp_snd, voicecall_snd_m */ void voicecall_snd_change_path(voicecall_snd_mgr_t *papp_snd) { - CALL_ENG_DEBUG(ENG_DEBUG, "..\n"); + CALL_ENG_DEBUG(ENG_DEBUG, ".."); CALL_ENG_KPI("voicecall_snd_change_path start"); call_vc_core_state_t *pcall_core = (call_vc_core_state_t *)papp_snd->pcall_core; -#ifdef _NEW_SND_ if (voicecall_snd_get_path_status(papp_snd) == VOICE_CALL_SND_PATH_BT) { int bt_sco_status = 0; @@ -910,19 +739,19 @@ void voicecall_snd_change_path(voicecall_snd_mgr_t *papp_snd) if (FALSE == bt_sco_status) { gboolean bevent_wait = FALSE; - CALL_ENG_DEBUG(ENG_ERR, "BT Sco is OFF, request BT for path change\n"); + CALL_ENG_DEBUG(ENG_ERR, "BT Sco is OFF, request BT for path change"); bevent_wait = voicecall_core_get_status(pcall_core, CALL_VC_CORE_FLAG_BT_EVENT_WAITING); if (FALSE == bevent_wait) { /*Request BT for change path to headset */ _vc_bt_request_switch_headset_path(pcall_core, TRUE); } else { - CALL_ENG_DEBUG(ENG_ERR, "bevent_wait = %d, waiting for BT Event \n", bevent_wait); + CALL_ENG_DEBUG(ENG_ERR, "bevent_wait = %d, waiting for BT Event", bevent_wait); } } else { - CALL_ENG_DEBUG(ENG_DEBUG, "BT SCO is open, Change the path to sync with BT Path\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "BT SCO is open, Change the path to sync with BT Path"); voicecall_snd_change_path_real(papp_snd); } - }else { + } else { CALL_ENG_DEBUG(ENG_DEBUG, "new PATH is not BT."); gboolean bevent_wait = FALSE; @@ -931,57 +760,33 @@ void voicecall_snd_change_path(voicecall_snd_mgr_t *papp_snd) /*Request BT for change path to headset */ voicecall_snd_change_path_real(papp_snd); } else { - CALL_ENG_DEBUG(ENG_ERR, "bevent_wait = %d, waiting for BT Event \n", bevent_wait); + CALL_ENG_DEBUG(ENG_ERR, "bevent_wait = %d, waiting for BT Event", bevent_wait); } } -#else - if ((TRUE == _vc_bt_is_bt_connected(pcall_core)) - && (TRUE == papp_snd->bcall_audio_status[VOICE_CALL_AUDIO_HEADSET])) { - - int bt_sco_status = 0; - - bt_sco_status = _vc_bt_get_bt_sco_status(); - if (FALSE == bt_sco_status) { - gboolean bevent_wait = FALSE; - - CALL_ENG_DEBUG(ENG_ERR, "BT Sco is OFF, request BT for path change\n"); - bevent_wait = voicecall_core_get_status(pcall_core, CALL_VC_CORE_FLAG_BT_EVENT_WAITING); - if (FALSE == bevent_wait) { - /*Request BT for change path to headset */ - _vc_bt_request_switch_headset_path(pcall_core, TRUE); - } else { - CALL_ENG_DEBUG(ENG_ERR, "bevent_wait = %d, waiting for BT Event \n", bevent_wait); - } - } else { - CALL_ENG_DEBUG(ENG_DEBUG, "BT SCO is open, Change the path to sync with BT Path\n"); - voicecall_snd_change_path_real(papp_snd); - } - } else if ((TRUE == _vc_bt_is_bt_connected(pcall_core)) && (TRUE == voicecall_core_get_status(pcall_core, CALL_VC_CORE_FLAG_ACCEPT_BY_BT))) { - /*Request BT for change path to headset, actual voice path will be changed in the response from BT */ - CALL_ENG_DEBUG(ENG_ERR, "Headset Connected Call is accepted by BT, requesting BT to change path\n"); - _vc_bt_request_switch_headset_path(pcall_core, TRUE); - } else { - CALL_ENG_DEBUG(ENG_DEBUG, "No Headset connected/Headset connected call accepted by Phone, Normal Path Change..\n"); - voicecall_snd_change_path_real(papp_snd); - } -#endif CALL_ENG_KPI("voicecall_snd_change_path done"); - } void voicecall_snd_change_path_real(voicecall_snd_mgr_t *papp_snd) { - CALL_ENG_DEBUG(ENG_DEBUG, "..\n"); + sound_call_session_mode_e current_session_mode; + CALL_ENG_DEBUG(ENG_DEBUG, ".."); /* Change the mm sound path */ - voicecall_snd_change_mm_path(papp_snd, VOICE_CALL_MM_VOICE); + sound_manager_call_session_get_mode(papp_snd->psnd_session, ¤t_session_mode); + + CALL_ENG_DEBUG(ENG_ERR, "current session mode = %d..", current_session_mode); + if (current_session_mode != SOUND_CALL_SESSION_MODE_VOICE) { + sound_manager_call_session_set_mode(papp_snd->psnd_session, SOUND_CALL_SESSION_MODE_VOICE); + } else { + voicecall_snd_change_mm_path(papp_snd); + } voicecall_snd_change_modem_path(papp_snd); } void voicecall_snd_change_modem_path(voicecall_snd_mgr_t *papp_snd) { - CALL_ENG_DEBUG(ENG_DEBUG, "..\n"); + CALL_ENG_DEBUG(ENG_DEBUG, ".."); call_vc_core_state_t *pcall_core = (call_vc_core_state_t *)papp_snd->pcall_core; int audio_path = VC_AUDIO_PATH_HANDSET; @@ -989,8 +794,8 @@ void voicecall_snd_change_modem_path(voicecall_snd_mgr_t *papp_snd) /* Change the tapi sound path */ __voicecall_snd_get_voice_path(papp_snd, &audio_path); - if (FALSE == voicecall_core_change_audio_path(pcall_core->pcall_engine, audio_path)) { - CALL_ENG_DEBUG(ENG_ERR, "TAPI Audio Change Path ERROR \n"); + if (FALSE == voicecall_core_change_audio_path(pcall_core->pcall_engine, audio_path, papp_snd->bextra_volume_status)) { + CALL_ENG_DEBUG(ENG_ERR, "TAPI Audio Change Path ERROR"); } } @@ -1004,11 +809,11 @@ void voicecall_snd_change_modem_path(voicecall_snd_mgr_t *papp_snd) */ void voicecall_snd_set_status(voicecall_snd_mgr_t *papp_snd, voicecall_snd_audio_type_t snd_audio_type, gboolean status) { - CALL_ENG_DEBUG(ENG_DEBUG, "snd_audio_type:[%d], status:[%d]\n", snd_audio_type, status); + CALL_ENG_DEBUG(ENG_DEBUG, "snd_audio_type:[%d], status:[%d]", snd_audio_type, status); /*if BT headset is connected , switch off loud speaker - it will be reflectd in the next sound path change */ - if (((VOICE_CALL_AUDIO_HEADSET == snd_audio_type) || (VOICE_CALL_AUDIO_EARJACK == snd_audio_type)) && (TRUE == status)) { - CALL_ENG_DEBUG(ENG_DEBUG, "loud speaker status is to be FALSE\n"); + if (((VOICE_CALL_AUDIO_HEADSET == snd_audio_type) || (VOICE_CALL_AUDIO_RECEIVER_EARJACK == snd_audio_type)) && (TRUE == status)) { + CALL_ENG_DEBUG(ENG_DEBUG, "loud speaker status is to be FALSE"); papp_snd->bcall_audio_status[VOICE_CALL_AUDIO_SPEAKER] = FALSE; } papp_snd->bcall_audio_status[snd_audio_type] = status; @@ -1023,11 +828,10 @@ void voicecall_snd_set_status(voicecall_snd_mgr_t *papp_snd, voicecall_snd_audio */ gboolean voicecall_snd_get_status(voicecall_snd_mgr_t *papp_snd, voicecall_snd_audio_type_t snd_audio_type) { - CALL_ENG_DEBUG(ENG_DEBUG, "Status[%d] = %d \n", snd_audio_type, papp_snd->bcall_audio_status[snd_audio_type]); + CALL_ENG_DEBUG(ENG_DEBUG, "Status[%d] = %d", snd_audio_type, papp_snd->bcall_audio_status[snd_audio_type]); return papp_snd->bcall_audio_status[snd_audio_type]; } -#ifdef _NEW_SND_ /** * This function sets the status of the given call audio type * @@ -1038,7 +842,7 @@ gboolean voicecall_snd_get_status(voicecall_snd_mgr_t *papp_snd, voicecall_snd_a */ void voicecall_snd_set_path_status(voicecall_snd_mgr_t *papp_snd, voicecall_snd_path_t path) { - CALL_ENG_DEBUG(ENG_DEBUG, "current path:[%d], new path:[%d]\n", papp_snd->current_snd_path, path); + CALL_ENG_DEBUG(ENG_DEBUG, "current path:[%d], new path:[%d]", papp_snd->current_snd_path, path); papp_snd->old_snd_path = papp_snd->current_snd_path; papp_snd->current_snd_path = path; @@ -1046,11 +850,10 @@ void voicecall_snd_set_path_status(voicecall_snd_mgr_t *papp_snd, voicecall_snd_ voicecall_snd_path_t voicecall_snd_get_path_status(voicecall_snd_mgr_t *papp_snd) { - CALL_ENG_DEBUG(ENG_DEBUG, "old path:[%d], current path:[%d]\n", papp_snd->old_snd_path, papp_snd->current_snd_path); + CALL_ENG_DEBUG(ENG_DEBUG, "old path:[%d], current path:[%d]", papp_snd->old_snd_path, papp_snd->current_snd_path); return papp_snd->current_snd_path; } -#endif /** * This function sets the volume level for the given volume alert type @@ -1062,7 +865,7 @@ voicecall_snd_path_t voicecall_snd_get_path_status(voicecall_snd_mgr_t *papp_snd */ void voicecall_snd_set_volume(voicecall_snd_mgr_t *papp_snd, voicecall_snd_volume_alert_type_t vol_alert_type, int volume_level) { - CALL_ENG_DEBUG(ENG_DEBUG, "volume_level = %d \n", volume_level); + CALL_ENG_DEBUG(ENG_DEBUG, "volume_level = %d", volume_level); call_vc_core_state_t *pcall_core = (call_vc_core_state_t *)papp_snd->pcall_core; switch (vol_alert_type) { @@ -1072,7 +875,7 @@ void voicecall_snd_set_volume(voicecall_snd_mgr_t *papp_snd, voicecall_snd_volum int volume; if (VOICE_CALL_SND_INVALID_PLAYER_HANDLE == papp_snd->pmm_player) { - CALL_ENG_DEBUG(ENG_ERR, "Invalid MM Player Handle \n"); + CALL_ENG_DEBUG(ENG_ERR, "Invalid MM Player Handle"); return; } @@ -1083,11 +886,8 @@ void voicecall_snd_set_volume(voicecall_snd_mgr_t *papp_snd, voicecall_snd_volum ret_value = mm_sound_volume_set_value(VOLUME_TYPE_RINGTONE, volume); if (MM_ERROR_NONE != ret_value) { - CALL_ENG_DEBUG(ENG_ERR, "mmplayer_set_volume failed Error: [0x%x]\n", ret_value); + CALL_ENG_DEBUG(ENG_ERR, "mmplayer_set_volume failed Error: [0x%x]", ret_value); } -#ifdef VOICE_CALL_RINGTONE_ELEVATOR - __voicecall_snd_cancel_ring_elevator(papp_snd); -#endif } break; case VOICE_CALL_VOL_TYPE_VOICE: @@ -1109,7 +909,7 @@ void voicecall_snd_set_volume(voicecall_snd_mgr_t *papp_snd, voicecall_snd_volum /* MODEM want to get volume level as 0~5, not a 1~6. So pass -1 value */ if (FALSE == voicecall_core_set_audio_volume(pcall_core->pcall_engine, audio_path, (incall_vol_level-1))) { - CALL_ENG_DEBUG(ENG_DEBUG, "voicecall_doc_set_audio_volume failed\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "voicecall_doc_set_audio_volume failed"); } } break; @@ -1117,11 +917,11 @@ void voicecall_snd_set_volume(voicecall_snd_mgr_t *papp_snd, voicecall_snd_volum { int bt_vol_level = 0; if (TRUE == voicecall_core_get_status(pcall_core, CALL_VC_CORE_FLAG_VOL_CHNGD_BYBT)) { - CALL_ENG_DEBUG(ENG_DEBUG, "BT Requested Volume flag is enabled, not sending response \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "BT Requested Volume flag is enabled, not sending response"); voicecall_core_set_status(pcall_core, CALL_VC_CORE_FLAG_VOL_CHNGD_BYBT, FALSE); } else { bt_vol_level = volume_level; - CALL_ENG_DEBUG(ENG_DEBUG, "bt_vol_level = %d\n", bt_vol_level); + CALL_ENG_DEBUG(ENG_DEBUG, "bt_vol_level = %d", bt_vol_level); _vc_bt_send_response_to_bt(pcall_core, BT_AG_RES_SPK_GAIN, bt_vol_level, NULL); } @@ -1129,7 +929,7 @@ void voicecall_snd_set_volume(voicecall_snd_mgr_t *papp_snd, voicecall_snd_volum } break; default: - CALL_ENG_DEBUG(ENG_DEBUG, "No Actions Defined for the volume alert type: %d \n", vol_alert_type); + CALL_ENG_DEBUG(ENG_DEBUG, "No Actions Defined for the volume alert type: %d", vol_alert_type); } } @@ -1143,7 +943,7 @@ void voicecall_snd_set_volume(voicecall_snd_mgr_t *papp_snd, voicecall_snd_volum */ int voicecall_snd_get_volume(voicecall_snd_mgr_t *papp_snd, voicecall_snd_volume_alert_type_t vol_alert_type) { - CALL_ENG_DEBUG(ENG_DEBUG, "\n"); + CALL_ENG_DEBUG(ENG_DEBUG, ""); call_vc_core_state_t *pcall_core = (call_vc_core_state_t *)papp_snd->pcall_core; switch (vol_alert_type) { @@ -1154,10 +954,10 @@ int voicecall_snd_get_volume(voicecall_snd_mgr_t *papp_snd, voicecall_snd_volume ret_val = mm_sound_volume_get_value(VOLUME_TYPE_RINGTONE, &volume); if (MM_ERROR_NONE != ret_val) { - CALL_ENG_DEBUG(ENG_DEBUG, "ret_val = [0x%x]\n", ret_val); + CALL_ENG_DEBUG(ENG_DEBUG, "ret_val = [0x%x]", ret_val); return VC_INVALID_VOLUME; } - CALL_ENG_DEBUG(ENG_DEBUG, "MM Volume Level : %d\n", volume); + CALL_ENG_DEBUG(ENG_DEBUG, "MM Volume Level : %d", volume); return volume; @@ -1190,28 +990,30 @@ static gboolean __voicecall_snd_start_melody(voicecall_snd_mgr_t *papp_snd, gboo { char *setting_file_path = NULL; char ringtone_path[VOICE_CALL_SND_RINGTONE_PATH_LEN] = { 0, }; - call_vc_call_objectinfo_t callobject_info; - voicecall_contact_info_t ct_info; - - call_vc_core_state_t *pcall_core = (call_vc_core_state_t *)papp_snd->pcall_core; - CALL_ENG_DEBUG(ENG_DEBUG, "call_handle = %d\n", call_handle); + CALL_ENG_DEBUG(ENG_DEBUG, "call_handle = %d", call_handle); - CALL_ENG_DEBUG(ENG_DEBUG, "Contact ring_tone_path = [%s]\n", papp_snd->ring_tone); + CALL_ENG_DEBUG(ENG_DEBUG, "Contact ring_tone_path = [%s]", papp_snd->ring_tone); if (strlen(papp_snd->ring_tone) <= 0) { setting_file_path = vconf_get_str(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR); +#ifdef DRM_USED + if ((setting_file_path == NULL) || (strlen(setting_file_path) <= 0) || + (FALSE == g_file_test(setting_file_path, G_FILE_TEST_EXISTS)) || + (FALSE == voicecall_util_is_valid_drm_file(setting_file_path, DRM_PERMISSION_PLAY))) +#else if ((setting_file_path == NULL) || (strlen(setting_file_path) <= 0) || (FALSE == g_file_test(setting_file_path, G_FILE_TEST_EXISTS))) +#endif { - CALL_ENG_DEBUG(ENG_ERR, "setting ring tone path is invalid : [%s]\n", setting_file_path); + CALL_ENG_DEBUG(ENG_ERR, "setting ring tone path is invalid : [%s]", setting_file_path); /*snprintf(ringtone_path, sizeof(ringtone_path), "file://%s", VOICE_CALL_SND_DEFAULT_RINGTONE_PATH);*/ - return; + return FALSE; } else { snprintf(ringtone_path, sizeof(ringtone_path), "file://%s", setting_file_path); } - CALL_ENG_DEBUG(ENG_DEBUG, "Ringtone From Settings : %s\n", ringtone_path); + CALL_ENG_DEBUG(ENG_DEBUG, "Ringtone From Settings : %s", ringtone_path); _vc_core_util_strcpy(papp_snd->ring_tone, sizeof(papp_snd->ring_tone), ringtone_path); } @@ -1219,6 +1021,9 @@ static gboolean __voicecall_snd_start_melody(voicecall_snd_mgr_t *papp_snd, gboo papp_snd->pmm_player = VOICE_CALL_SND_INVALID_PLAYER_HANDLE; __voicecall_snd_create_player(papp_snd, &papp_snd->pmm_player, VOICE_CALL_PLAY_TYPE_RINGTONE); + /*Set Volume */ + __voicecall_snd_set_mm_volume(papp_snd, bis_increasing); + papp_snd->ringtone_sound_status = VOICE_CALL_SND_STATUS_READY; return TRUE; @@ -1230,20 +1035,20 @@ static gboolean __voicecall_snd_create_player(voicecall_snd_mgr_t *papp_snd, MMH MMMessageCallback callback = NULL; char *mmf_error = NULL; - CALL_ENG_DEBUG(ENG_DEBUG, "Start..\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Start.."); if (*pPlayer != VOICE_CALL_SND_INVALID_SND_HANDLE) { - CALL_ENG_DEBUG(ENG_DEBUG, "Player = %d \n", *pPlayer); + CALL_ENG_DEBUG(ENG_DEBUG, "Player = %d", *pPlayer); mm_player_destroy(*pPlayer); *pPlayer = VOICE_CALL_SND_INVALID_SND_HANDLE; } ret_value = mm_player_create(pPlayer); if (MM_ERROR_NONE != ret_value || *pPlayer == VOICE_CALL_SND_INVALID_SND_HANDLE) { - CALL_ENG_DEBUG(ENG_ERR, "mmplayer_create failed , Error:[0x%x]\n", ret_value); + CALL_ENG_DEBUG(ENG_ERR, "mmplayer_create failed , Error:[0x%x]", ret_value); return FALSE; } - CALL_ENG_DEBUG(ENG_DEBUG, "*pPlayer: %d\n", *pPlayer); + CALL_ENG_DEBUG(ENG_DEBUG, "*pPlayer: %d", *pPlayer); switch (play_type) { /*Set the MM Player Attributes according to the Display Priority Type */ @@ -1265,41 +1070,70 @@ static gboolean __voicecall_snd_create_player(voicecall_snd_mgr_t *papp_snd, MMH ret_value = mm_player_realize(*pPlayer); if (MM_ERROR_NONE != ret_value) { - CALL_ENG_DEBUG(ENG_ERR, "mmplayer_realize failed , Error:[0x%x]\n", ret_value); + CALL_ENG_DEBUG(ENG_ERR, "mmplayer_realize failed , Error:[0x%x]", ret_value); return FALSE; } - CALL_ENG_DEBUG(ENG_DEBUG, "Finish..\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Finish.."); return TRUE; } +static void __voicecall_snd_set_mm_volume(voicecall_snd_mgr_t *papp_snd, int bis_increasing) +{ +#ifdef _VOL_LEVEL_FROM_SETTINGS_ + int ret_value = 0; + int set_volume_level = VOICE_CALL_VOL_LEVEL_1; + int volume_val; + + CALL_ENG_DEBUG(ENG_DEBUG, ".."); + + /*Get the settings current ringtone volume level and set to media player */ + if (FALSE == vconf_get_int(VCONFKEY_SETAPPL_CALL_RINGTONE_SOUND_VOLUME_INT, &set_volume_level)) { + CALL_ENG_DEBUG(ENG_ERR, "settings read failed Error: %d", ret_value); + } + CALL_ENG_DEBUG(ENG_DEBUG, "Settings Volume Level = %d", set_volume_level); + + if (set_volume_level > 0) { + if (TRUE == bis_increasing) { + papp_snd->increment_melody_value = set_volume_level = 1; + } + } else { + CALL_ENG_DEBUG(ENG_DEBUG, "Increasing melody not set to VOICE_CALL_VOL_LEVEL_1"); + } + + volume_val = set_volume_level; + ret_value = mm_sound_volume_set_value(VOLUME_TYPE_RINGTONE, volume_val); + if (MM_ERROR_NONE != ret_value) { + CALL_ENG_DEBUG(ENG_ERR, "Set Volume Error: [0x%x]", ret_value); + } else { + CALL_ENG_DEBUG(ENG_DEBUG, "Final Volume Set to [%d]", volume_val); + } +#endif +} + static gboolean __voicecall_snd_play_melody(voicecall_snd_mgr_t *papp_snd, gboolean bis_increasing) { - CALL_ENG_DEBUG(ENG_DEBUG, "..\n"); + CALL_ENG_DEBUG(ENG_DEBUG, ".."); if (strlen(papp_snd->ring_tone) > 0) { int mm_error = MM_ERROR_NONE; mm_error = mm_player_start(papp_snd->pmm_player); if (MM_ERROR_NONE != mm_error) { - CALL_ENG_DEBUG(ENG_ERR, "mm_player_start failed,Error: [0x%x]\n", mm_error); + CALL_ENG_DEBUG(ENG_ERR, "mm_player_start failed,Error: [0x%x]", mm_error); } else { if (TRUE == bis_increasing) { papp_snd->bincreasingmelody = TRUE; g_timeout_add(VOICE_CALL_SND_INCREMENT_TIMER_INTERVAL, __voicecall_snd_increasing_melody_cb, (gpointer) papp_snd); - } else { -#ifdef VOICE_CALL_RINGTONE_ELEVATOR - CALL_ENG_DEBUG(ENG_DEBUG, "Starting Ringtone Elevator\n"); - /*Start only when the volume is not incremental volume */ - __voicecall_snd_start_ring_elevator(papp_snd); -#endif } + CALL_ENG_DEBUG(ENG_DEBUG, "ringtone_sound_status : %d", papp_snd->ringtone_sound_status); + papp_snd->ringtone_sound_status = VOICE_CALL_SND_STATUS_PLAY; return TRUE; } } else { - CALL_ENG_DEBUG(ENG_ERR, "Ringtone is empty(Problem) \n"); + CALL_ENG_DEBUG(ENG_ERR, "Ringtone is empty(Problem)"); } return FALSE; @@ -1309,14 +1143,14 @@ static int __voicecall_snd_mmplayer_cb(int message, void *data, void *user_data) { voicecall_snd_mgr_t *papp_snd = (voicecall_snd_mgr_t *)user_data; if (VOICE_CALL_SND_STATUS_PLAY != papp_snd->ringtone_sound_status) { - CALL_ENG_DEBUG(ENG_DEBUG, "Sound Play stopped by application, callback not handled \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Sound Play stopped by application, callback not handled"); return FALSE; } switch (message) { case MM_MESSAGE_END_OF_STREAM: { - CALL_ENG_DEBUG(ENG_DEBUG, "Ringtone loop count is supported by MMF , need not restart the ringtone \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Ringtone loop count is supported by MMF , need not restart the ringtone"); } break; default: @@ -1330,12 +1164,12 @@ gboolean __voicecall_snd_mmplayer_signal_end_callback_idle_cb(gpointer pdata) { voicecall_snd_mgr_t *papp_snd = (voicecall_snd_mgr_t *)pdata; - CALL_ENG_DEBUG(ENG_DEBUG, " \n"); + CALL_ENG_DEBUG(ENG_DEBUG, ""); /*Callback needs to be called, only when the tone is played completely and it is ended if the signal is explictly stopped, don't call the user callback */ if (papp_snd->psignal_play_end_cb != NULL) { - CALL_ENG_DEBUG(ENG_DEBUG, "Calling user callback \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Calling user callback"); papp_snd->psignal_play_end_cb(papp_snd->psignal_play_end_cb_data); papp_snd->psignal_play_end_cb = NULL; papp_snd->psignal_play_end_cb_data = NULL; @@ -1348,10 +1182,10 @@ static void __voicecall_snd_mmplayer_signal_cb(gpointer puser_data) { voicecall_snd_mgr_t *papp_snd = (voicecall_snd_mgr_t *)puser_data; - CALL_ENG_DEBUG(ENG_DEBUG, "Sound Play Over \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Sound Play Over"); if (papp_snd->signal_sound_status != VOICE_CALL_SND_STATUS_PLAY) { - CALL_ENG_DEBUG(ENG_DEBUG, "Sound Play already stopped by application \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Sound Play already stopped by application"); return; } @@ -1367,14 +1201,10 @@ static gboolean __voicecall_snd_increasing_melody_cb(void *data) int set_volume_level = VOICE_CALL_VOL_LEVEL_1; if (FALSE == papp_snd->bincreasingmelody) { - CALL_ENG_DEBUG(ENG_DEBUG, "Already Deactivated\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Already Deactivated"); return FALSE; } - if (FALSE == vconf_get_int(VCONFKEY_SETAPPL_PROFILE_CURRENT_CALL_VOLUME_INT, &set_volume_level)) { - CALL_ENG_DEBUG(ENG_ERR, "settings read failed Error: %d\n", ret_value); - } - if ((set_volume_level != 0) && (papp_snd->increment_melody_value <= set_volume_level)) { int volume_val; @@ -1384,19 +1214,19 @@ static gboolean __voicecall_snd_increasing_melody_cb(void *data) ret_value = mm_sound_volume_set_value(VOLUME_TYPE_RINGTONE, volume_val); if (MM_ERROR_NONE != ret_value) { - CALL_ENG_DEBUG(ENG_ERR, "Set Volume Error: [0x%x]\n", ret_value); + CALL_ENG_DEBUG(ENG_ERR, "Set Volume Error: [0x%x]", ret_value); } - CALL_ENG_DEBUG(ENG_DEBUG, "Increasing Melody Continuing, Current Increased Melody : %d\n", papp_snd->increment_melody_value); + CALL_ENG_DEBUG(ENG_DEBUG, "Increasing Melody Continuing, Current Increased Melody : %d", papp_snd->increment_melody_value); if (papp_snd->increment_melody_value >= set_volume_level) { - CALL_ENG_DEBUG(ENG_DEBUG, "Increasing Melody Ended\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Increasing Melody Ended"); return FALSE; } return TRUE; } - CALL_ENG_DEBUG(ENG_DEBUG, "Increasing Melody Ended\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Increasing Melody Ended"); return FALSE; } @@ -1404,7 +1234,7 @@ static void __voicecall_snd_start_vibration(voicecall_snd_mgr_t *papp_snd) { /*First Stop the previous Vibration and then start it again */ - CALL_ENG_DEBUG(ENG_DEBUG, "..\n"); + CALL_ENG_DEBUG(ENG_DEBUG, ".."); int vib_type = -1; int vib_level = -1; int haptic_vib_type = -1; @@ -1413,18 +1243,18 @@ static void __voicecall_snd_start_vibration(voicecall_snd_mgr_t *papp_snd) papp_snd->vibration_handle = device_haptic_open(DEV_IDX_0, 0); - CALL_ENG_DEBUG(ENG_DEBUG, "srart vibration device_handle=%d \n", papp_snd->vibration_handle); + CALL_ENG_DEBUG(ENG_DEBUG, "srart vibration device_handle=%d", papp_snd->vibration_handle); if (papp_snd->vibration_handle < 0) { - CALL_ENG_DEBUG(ENG_DEBUG, "device_haptic_open error \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "device_haptic_open error"); return; } if (vconf_get_int(VCONFKEY_SETAPPL_CALL_VIBRATION_PATTERN_INT, &vib_type)) { - CALL_ENG_DEBUG(ENG_ERR, "VCONFKEY_SETAPPL_CALL_VIBRATION_PATTERN_INT vconf_get_bool failed.\n"); + CALL_ENG_DEBUG(ENG_ERR, "VCONFKEY_SETAPPL_CALL_VIBRATION_PATTERN_INT vconf_get_bool failed."); } if (vconf_get_int(VCONFKEY_SETAPPL_NOTI_VIBRATION_LEVEL_INT, &vib_level)) { - CALL_ENG_DEBUG(ENG_ERR, "VCONFKEY_SETAPPL_NOTI_VIBRATION_LEVEL_INT vconf_get_bool failed.\n"); + CALL_ENG_DEBUG(ENG_ERR, "VCONFKEY_SETAPPL_NOTI_VIBRATION_LEVEL_INT vconf_get_bool failed."); } if (vib_level > 5) @@ -1445,11 +1275,11 @@ static void __voicecall_snd_start_vibration(voicecall_snd_mgr_t *papp_snd) break; } if (device_haptic_play_pattern(papp_snd->vibration_handle, haptic_vib_type, 255, vib_level)) { - CALL_ENG_DEBUG(ENG_DEBUG, "device_haptic_play_pattern error \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "device_haptic_play_pattern error"); return; } if (device_haptic_play_monotone(papp_snd->vibration_handle, 60000)) { - CALL_ENG_DEBUG(ENG_DEBUG, "device_haptic_play_monotone error \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "device_haptic_play_monotone error"); return; } @@ -1457,51 +1287,20 @@ static void __voicecall_snd_start_vibration(voicecall_snd_mgr_t *papp_snd) } -static gboolean __voicecall_snd_vib_then_melody_cb(void *data) -{ - voicecall_snd_mgr_t *papp_snd = (voicecall_snd_mgr_t *)data; - call_vc_core_state_t *pcall_core = (call_vc_core_state_t *)papp_snd->pcall_core; - - __voicecall_snd_stop_vibration(papp_snd); - - if (FALSE == papp_snd->bvibration_then_melody) { - return FALSE; - } - - if (FALSE == voicecall_core_is_connected_call_exist(pcall_core->pcall_engine)) { - - int ret_value = -1; - int set_volume_level = 0; - int volume_val; - - vconf_get_int(VCONFKEY_SETAPPL_PROFILE_CURRENT_CALL_VOLUME_INT, &set_volume_level); - - volume_val = set_volume_level; - - ret_value = mm_sound_volume_set_value(VOLUME_TYPE_RINGTONE, volume_val); - - CALL_ENG_DEBUG(ENG_ERR, "__voicecall_snd_vib_then_melody_cb() : volume = %d\n", volume_val); - - __voicecall_snd_play_melody(papp_snd, FALSE); - } - - return FALSE; -} - static void __voicecall_snd_stop_vibration(voicecall_snd_mgr_t *papp_snd) { - CALL_ENG_DEBUG(ENG_DEBUG, "..\n"); + CALL_ENG_DEBUG(ENG_DEBUG, ".."); if (TRUE == papp_snd->bvibration) { - CALL_ENG_DEBUG(ENG_DEBUG, "Stopping Vibration , handle=%d \n", papp_snd->vibration_handle); + CALL_ENG_DEBUG(ENG_DEBUG, "Stopping Vibration , handle=%d", papp_snd->vibration_handle); if (device_haptic_stop_play(papp_snd->vibration_handle)) { - CALL_ENG_DEBUG(ENG_DEBUG, "device_haptic_play_stop error \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "device_haptic_play_stop error"); return; } if (device_haptic_close(papp_snd->vibration_handle)) { - CALL_ENG_DEBUG(ENG_DEBUG, "device_haptic_close error \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "device_haptic_close error"); return; } @@ -1509,7 +1308,7 @@ static void __voicecall_snd_stop_vibration(voicecall_snd_mgr_t *papp_snd) papp_snd->bvibration = FALSE; } else { - CALL_ENG_DEBUG(ENG_DEBUG, "bvibration is not enabled.\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "bvibration is not enabled."); } } @@ -1527,7 +1326,7 @@ void voicecall_snd_route_change_cb(void *data, system_audio_route_t policy) if (policy != SYSTEM_AUDIO_ROUTE_POLICY_IGNORE_A2DP) { error_code = mm_sound_route_set_system_policy(SYSTEM_AUDIO_ROUTE_POLICY_IGNORE_A2DP); if (error_code) { - CALL_ENG_DEBUG(ENG_ERR, "mm_sound_route_set_system_policy failed. error_code:[0x%x]\n", error_code); + CALL_ENG_DEBUG(ENG_ERR, "mm_sound_route_set_system_policy failed. error_code:[0x%x]", error_code); } } } @@ -1542,32 +1341,14 @@ void voicecall_snd_register_cm(voicecall_snd_mgr_t *papp_snd) { int error_code = 0; - CALL_ENG_DEBUG(ENG_DEBUG, "current bsound_cm_state:[%d]. \n", papp_snd->bsound_cm_state); + CALL_ENG_DEBUG(ENG_DEBUG, "current bsound_cm_state:[%d].", papp_snd->bsound_cm_state); if (FALSE == papp_snd->bsound_cm_state) { - CALL_ENG_KPI("mm_session_init start"); - error_code = mm_session_init(MM_SESSION_TYPE_CALL); - CALL_ENG_KPI("mm_session_init done"); - if (error_code) { - CALL_ENG_DEBUG(ENG_ERR, "mm_session_init failed. error_code:[0x%x]\n", error_code); - return; - } - error_code = mm_sound_route_get_system_policy(&papp_snd->backup_route_policy); + error_code = sound_manager_call_session_create(SOUND_SESSION_TYPE_CALL, &papp_snd->psnd_session); if (error_code) { - CALL_ENG_DEBUG(ENG_ERR, "mm_sound_route_get_system_policy failed. error_code:[0x%x]\n", error_code); + CALL_ENG_DEBUG(ENG_ERR, "sound_manager_call_session_create failed. error_code:[0x%x]", error_code); return; } - error_code = mm_sound_route_set_system_policy(SYSTEM_AUDIO_ROUTE_POLICY_IGNORE_A2DP); - if (error_code) { - CALL_ENG_DEBUG(ENG_ERR, "mm_sound_route_set_system_policy failed. error_code:[0x%x]\n", error_code); - return; - } - error_code = mm_sound_route_add_change_callback(voicecall_snd_route_change_cb, NULL); - if (error_code) { - CALL_ENG_DEBUG(ENG_ERR, "mm_sound_route_add_change_callback failed. error_code:[0x%x]\n", error_code); - return; - } - papp_snd->bsound_cm_state = TRUE; } return; @@ -1583,27 +1364,17 @@ void voicecall_snd_unregister_cm(voicecall_snd_mgr_t *papp_snd) { int error_code = 0; - CALL_ENG_DEBUG(ENG_DEBUG, "current bsound_cm_state:[%d]. \n", papp_snd->bsound_cm_state); + CALL_ENG_DEBUG(ENG_DEBUG, "current bsound_cm_state:[%d].", papp_snd->bsound_cm_state); if (TRUE == papp_snd->bsound_cm_state) { /*Reset the Path when the app is closed - safety code */ - voicecall_snd_change_mm_path(papp_snd, VOICE_CALL_MM_RESET); - CALL_ENG_DEBUG(ENG_DEBUG, "Sound Path reset to Default\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Sound Path reset to Default"); papp_snd->bsound_cm_state = FALSE; - CALL_ENG_DEBUG(ENG_DEBUG, "Unregistering Sound CM\n"); - error_code = mm_session_finish(); - if (error_code) { - CALL_ENG_DEBUG(ENG_ERR, "mm_session_finish failed. error_code:[0x%x]\n", error_code); - } - error_code = mm_sound_route_remove_change_callback(); - if (error_code) { - CALL_ENG_DEBUG(ENG_ERR, "mm_sound_route_remove_change_callback failed. error_code:[0x%x]\n", error_code); - } - error_code = mm_sound_route_set_system_policy(papp_snd->backup_route_policy); + error_code = sound_manager_call_session_destroy(papp_snd->psnd_session); if (error_code) { - CALL_ENG_DEBUG(ENG_ERR, "mm_sound_route_set_system_policy failed. error_code:[0x%x]\n", error_code); + CALL_ENG_DEBUG(ENG_ERR, "sound_manager_call_session_destroy failed. error_code:[0x%x]", error_code); } } /*Set to Defaults */ @@ -1617,23 +1388,23 @@ gboolean __voicecall_snd_effect_idle_cb(gpointer puser_data) call_vc_core_state_t *pcall_core = (call_vc_core_state_t *)papp_snd->pcall_core; papp_snd->effect_tone_status = VOICE_CALL_SND_STATUS_NONE; - CALL_ENG_DEBUG(ENG_DEBUG, "papp_snd->effect_tone_status = %d\n", papp_snd->effect_tone_status); + CALL_ENG_DEBUG(ENG_DEBUG, "papp_snd->effect_tone_status = %d", papp_snd->effect_tone_status); /*If connected call exists then change the audio path */ if ((TRUE == voicecall_core_is_connected_call_exist(pcall_core->pcall_engine)) || (TRUE == voicecall_core_is_outgoing_call_exists(pcall_core->pcall_engine))) { - CALL_ENG_DEBUG(ENG_DEBUG, "Connected call exists, changing path at the end of effect tone \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Connected call exists, changing path at the end of effect tone"); - CALL_ENG_DEBUG(ENG_ERR, "papp_snd->signal_sound_status = %d \n", papp_snd->signal_sound_status); + CALL_ENG_DEBUG(ENG_ERR, "papp_snd->signal_sound_status = %d", papp_snd->signal_sound_status); /*Check the signal play status, if signal is being prepared / played, don't change the path */ if (VOICE_CALL_SND_STATUS_NONE == papp_snd->signal_sound_status) { voicecall_snd_change_path(papp_snd); } else { - CALL_ENG_DEBUG(ENG_ERR, "Signal is playing, skipping path change, it will be done at the end of signal \n"); + CALL_ENG_DEBUG(ENG_ERR, "Signal is playing, skipping path change, it will be done at the end of signal"); } } else { - CALL_ENG_DEBUG(ENG_DEBUG, "non connected call\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "non connected call"); } - CALL_ENG_DEBUG(ENG_DEBUG, "Over\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Over"); return FALSE; } @@ -1641,11 +1412,11 @@ static void __voicecall_snd_effect_cb(gpointer puser_data) { voicecall_snd_mgr_t *papp_snd = (voicecall_snd_mgr_t *)puser_data; - CALL_ENG_DEBUG(ENG_DEBUG, "effect_tone_status = %d, Calling Idle\n", papp_snd->effect_tone_status); + CALL_ENG_DEBUG(ENG_DEBUG, "effect_tone_status = %d, Calling Idle", papp_snd->effect_tone_status); papp_snd->effect_tone_status = VOICE_CALL_SND_STATUS_STOPPED; __voicecall_snd_effect_idle_cb(papp_snd); - CALL_ENG_DEBUG(ENG_DEBUG, "End : papp_snd->effect_tone_status = %d\n", papp_snd->effect_tone_status); + CALL_ENG_DEBUG(ENG_DEBUG, "End : papp_snd->effect_tone_status = %d", papp_snd->effect_tone_status); } gboolean voicecall_snd_play_effect_tone(voicecall_snd_mgr_t *papp_snd, int effect_type) @@ -1655,7 +1426,7 @@ gboolean voicecall_snd_play_effect_tone(voicecall_snd_mgr_t *papp_snd, int effec gboolean bstatus = FALSE; call_vc_core_state_t *pcall_core = (call_vc_core_state_t *)papp_snd->pcall_core; - CALL_ENG_DEBUG(ENG_DEBUG, "effect type:[%d] \n", effect_type); + CALL_ENG_DEBUG(ENG_DEBUG, "effect type:[%d]", effect_type); switch (effect_type) { case VOICE_CALL_SND_EFFECT_CALL_CONNECT: @@ -1665,23 +1436,23 @@ gboolean voicecall_snd_play_effect_tone(voicecall_snd_mgr_t *papp_snd, int effec CALL_ENG_KPI("voicecall_core_get_zuhause done"); if (bzuhause == TRUE) { - CALL_ENG_DEBUG(ENG_DEBUG, "It's zuhause area! don't play connect tone!\n"); + CALL_ENG_DEBUG(ENG_DEBUG, "It's zuhause area! don't play connect tone!"); return FALSE; } CALL_ENG_KPI("get VCONFKEY_CISSAPPL_CALL_CONNECT_TONE_BOOL start"); if (vconf_get_bool(VCONFKEY_CISSAPPL_CALL_CONNECT_TONE_BOOL, &bstatus)) { - CALL_ENG_DEBUG(ENG_ERR, "vconf_get_bool failed.\n"); + CALL_ENG_DEBUG(ENG_ERR, "vconf_get_bool failed."); } CALL_ENG_KPI("get VCONFKEY_CISSAPPL_CALL_CONNECT_TONE_BOOL done"); if (!bstatus) { - CALL_ENG_DEBUG(ENG_DEBUG, "Connect Tone Settings not enabled \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Connect Tone Settings not enabled"); return FALSE; } /*First Reset the audio Path to PDA */ - voicecall_snd_change_mm_path(papp_snd, VOICE_CALL_MM_ALERT_TONE); + sound_manager_call_session_set_mode(papp_snd->psnd_session, SOUND_CALL_SESSION_MODE_MEDIA); error_code = mm_sound_play_sound(VOICE_CALL_SND_CONNECT_SIGNAL_PATH, VOLUME_TYPE_CALL, __voicecall_snd_effect_cb, papp_snd, &papp_snd->mmfsoundplay_handle); } @@ -1690,15 +1461,15 @@ gboolean voicecall_snd_play_effect_tone(voicecall_snd_mgr_t *papp_snd, int effec { if (vconf_get_bool(VCONFKEY_CISSAPPL_CALL_END_TONE_BOOL, &bstatus)) { - CALL_ENG_DEBUG(ENG_ERR, "vconf_get_bool failed.\n"); + CALL_ENG_DEBUG(ENG_ERR, "vconf_get_bool failed."); } if (!bstatus) { - CALL_ENG_DEBUG(ENG_DEBUG, "Disconnect Tone Settings not enabled \n"); + CALL_ENG_DEBUG(ENG_DEBUG, "Disconnect Tone Settings not enabled"); return FALSE; } - voicecall_snd_change_mm_path(papp_snd, VOICE_CALL_MM_ALERT_TONE); + sound_manager_call_session_set_mode(papp_snd->psnd_session, SOUND_CALL_SESSION_MODE_MEDIA); error_code = mm_sound_play_sound(VOICE_CALL_SND_DISCONNECT_SIGNAL_PATH, VOLUME_TYPE_CALL, __voicecall_snd_effect_cb, papp_snd, &papp_snd->mmfsoundplay_handle); @@ -1707,13 +1478,13 @@ gboolean voicecall_snd_play_effect_tone(voicecall_snd_mgr_t *papp_snd, int effec case VOICE_CALL_SND_EFFECT_CALL_MINUTE_MINDER: { - voicecall_snd_change_mm_path(papp_snd, VOICE_CALL_MM_ALERT_TONE); + sound_manager_call_session_set_mode(papp_snd->psnd_session, SOUND_CALL_SESSION_MODE_MEDIA); error_code = mm_sound_play_sound(VOICE_CALL_SND_MINUTE_MINDER_SIGNAL_PATH, VOLUME_TYPE_CALL, __voicecall_snd_effect_cb, papp_snd, &papp_snd->mmfsoundplay_handle); } break; default: - CALL_ENG_DEBUG(ENG_DEBUG, "Invalid Effect Type: %d \n", effect_type); + CALL_ENG_DEBUG(ENG_DEBUG, "Invalid Effect Type: %d", effect_type); } @@ -1721,13 +1492,13 @@ gboolean voicecall_snd_play_effect_tone(voicecall_snd_mgr_t *papp_snd, int effec papp_snd->effect_tone_status = VOICE_CALL_SND_STATUS_PLAY; } - CALL_ENG_DEBUG(ENG_DEBUG, "error code = [0x%x] \n", error_code); + CALL_ENG_DEBUG(ENG_DEBUG, "error code = [0x%x]", error_code); return (MM_ERROR_NONE == error_code) ? TRUE : FALSE; } gboolean voicecall_snd_is_effect_playing(voicecall_snd_mgr_t *papp_snd) { - CALL_ENG_DEBUG(ENG_ERR, "Effect tone status: %d\n", papp_snd->effect_tone_status); + CALL_ENG_DEBUG(ENG_ERR, "Effect tone status: %d", papp_snd->effect_tone_status); if (VOICE_CALL_SND_STATUS_PLAY == papp_snd->effect_tone_status) { return TRUE; } @@ -1737,24 +1508,24 @@ gboolean voicecall_snd_is_effect_playing(voicecall_snd_mgr_t *papp_snd) void voicecall_snd_stop_effect_tone(voicecall_snd_mgr_t *papp_snd) { - CALL_ENG_DEBUG(ENG_ERR, "Effect tone status: %d\n", papp_snd->effect_tone_status); + CALL_ENG_DEBUG(ENG_ERR, "Effect tone status: %d", papp_snd->effect_tone_status); if (VOICE_CALL_SND_STATUS_PLAY == papp_snd->effect_tone_status) { if (MM_ERROR_NONE != mm_sound_stop_sound(papp_snd->mmfsoundplay_handle)) { - CALL_ENG_DEBUG(ENG_ERR, "MM Stop Sound Failed \n"); + CALL_ENG_DEBUG(ENG_ERR, "MM Stop Sound Failed"); } papp_snd->effect_tone_status = VOICE_CALL_SND_STATUS_NONE; papp_snd->mmfsoundplay_handle = VOICE_CALL_SND_INVALID_SND_HANDLE; } - CALL_ENG_DEBUG(ENG_ERR, "Effect tone status: %d\n", papp_snd->effect_tone_status); + CALL_ENG_DEBUG(ENG_ERR, "Effect tone status: %d", papp_snd->effect_tone_status); } void voicecall_snd_set_to_defaults(voicecall_snd_mgr_t *papp_snd) { call_vc_core_state_t *pcall_core = NULL; - CALL_ENG_DEBUG(ENG_DEBUG, "papp_snd = %p \n", papp_snd); + CALL_ENG_DEBUG(ENG_DEBUG, "papp_snd = %p", papp_snd); /*Backup core handle */ pcall_core = (call_vc_core_state_t *)papp_snd->pcall_core; diff --git a/debian/README b/debian/README deleted file mode 100755 index 1aea91c..0000000 --- a/debian/README +++ /dev/null @@ -1,6 +0,0 @@ -The Debian Package call ----------------------------- - -Comments regarding the Package - - -- unknown Tue, 17 Nov 2009 09:51:48 +0900 diff --git a/debian/changelog b/debian/changelog deleted file mode 100755 index 423071f..0000000 --- a/debian/changelog +++ /dev/null @@ -1,9 +0,0 @@ -call (0.2.333) unstable; urgency=low - - * 1. Apply EFL migration change - 2. Update bilerplate - 3. Support appsvc mo call - * Git: pkgs/c/call - * Tag: call_0.2.333 - - -- Jungmin Kim Fri, 17 Feb 2012 21:14:16 +0900 diff --git a/debian/compat b/debian/compat deleted file mode 100755 index 7ed6ff8..0000000 --- a/debian/compat +++ /dev/null @@ -1 +0,0 @@ -5 diff --git a/debian/control b/debian/control deleted file mode 100755 index 229a680..0000000 --- a/debian/control +++ /dev/null @@ -1,42 +0,0 @@ -Source: call -Section: comm -Priority: extra -Maintainer: Sung Joon Won , SHUAIB SHUKUR , Goo Lee -Uploaders: Sung Joon Won , SHUAIB SHUKUR , JongSeok Lee , Yountaek Oh , Goo Lee -Build-Depends: debhelper (>= 5), - autotools-dev, - libappcore-efl-dev, - libelm-dev, - libslp-tapi-dev, - libslp-setting-dev, - libcontacts-service-dev, - libui-gadget-dev, - libslp-utilx-dev, - libmm-sound-dev, - libmm-player-dev, - libslp-pm-dev, - libaul-1-dev, - libdevman-haptic-dev, - libmm-camcorder-dev, - libmm-session-dev, - dlog-dev, - libslp-sensor-0, - libslp-sysman, - libslp-msg-service-dev, - libicu-dev, - libappsvc-dev, - libnotification-dev, - libug-contacts-dev (>= 0.1.0-31), -Standards-Version: 3.7.2 - -Package: org.tizen.call -Section: comm -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: call application - -Package: org.tizen.call-dbg -Section: comm -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: call application (unstripped) diff --git a/debian/copyright b/debian/copyright deleted file mode 100755 index e69de29..0000000 diff --git a/debian/dirs b/debian/dirs deleted file mode 100755 index ca882bb..0000000 --- a/debian/dirs +++ /dev/null @@ -1,2 +0,0 @@ -usr/bin -usr/sbin diff --git a/debian/docs b/debian/docs deleted file mode 100755 index 7a77580..0000000 --- a/debian/docs +++ /dev/null @@ -1,2 +0,0 @@ -CMakeCache.txt -CMakeLists.txt diff --git a/debian/org.tizen.call.install.in b/debian/org.tizen.call.install.in deleted file mode 100755 index d693a62..0000000 --- a/debian/org.tizen.call.install.in +++ /dev/null @@ -1,4 +0,0 @@ -@PREFIX@/bin/* -@PREFIX@/res/* -@PREFIX@/data -/opt/share/applications/* diff --git a/debian/org.tizen.call.postinst b/debian/org.tizen.call.postinst deleted file mode 100755 index 8c2fa75..0000000 --- a/debian/org.tizen.call.postinst +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -if [ ${USER} == "root" ] -then - # 5000 is inhouse user id - # do not use relative path - chown -R 5000:5000 /opt/apps/org.tizen.call/data - /usr/bin/vconftool set -t int "memory/call/state" "0" -g 6521 -i - /usr/bin/vconftool set -t int "db/call/vol_level" "4" -g 6521 -else - /usr/bin/vconftool set -t int "memory/call/state" "0" -i -fi - diff --git a/debian/rules b/debian/rules deleted file mode 100755 index 2de8e30..0000000 --- a/debian/rules +++ /dev/null @@ -1,154 +0,0 @@ -#!/usr/bin/make -f -# -*- makefile -*- -# Sample debian/rules that uses debhelper. -# This file was originally written by Joey Hess and Craig Small. -# As a special exception, when this file is copied by dh-make into a -# dh-make output file, you may use that output file without restriction. -# This special exception was added by Craig Small in version 0.37 of dh-make. - -# Uncomment this to turn on verbose mode. -#export DH_VERBOSE=1 - -CFLAGS ?= -Wall -g -CXXFLAGS ?= -Wall -g -LDFLAGS ?= -PREFIX ?= /opt/apps/org.tizen.call -RESDIR ?= ${PREFIX}/res -DATADIR ?= ${PREFIX}/data - -ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) - CFLAGS += -O0 - CXXFLAGS += -O0 -else - CFLAGS += -O2 - CXXFLAGS += -O2 -endif - -CFLAGS += -fPIC -CXXFLAGS += -fPIC - -LDFLAGS += -Wl,--rpath=$(/PREFIX)/lib -Wl,--hash-style=both -Wl,--as-needed - -CMAKE_TMP_DIR = $(CURDIR)/cmake_tmp - - -configure: configure-stamp -configure-stamp: - dh_testdir - # Add here commands to configure the package. - mkdir -p $(CMAKE_TMP_DIR); - cd $(CMAKE_TMP_DIR); CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" cmake .. -DCMAKE_INSTALL_PREFIX=$(PREFIX) - - touch configure-stamp - -build: build-stamp - -build-stamp: configure-stamp - dh_testdir - - # Add here commands to compile the package. - cd $(CMAKE_TMP_DIR) && $(MAKE) - #docbook-to-man debian/wavplayer.sgml > wavplayer.1 - - for f in `find $(CURDIR)/debian/ -name "*.in"`; do \ - cat $$f > $${f%.in}; \ - sed -i -e "s#@PREFIX@#$(PREFIX)#g" $${f%.in}; \ - sed -i -e "s#@PREFIX@#$(RESDIR)#g" $${f%.in}; \ - sed -i -e "s#@DATADIR@#$(DATADIR)#g" $${f%.in}; \ - done - - - touch $@ - -clean: - dh_testdir - dh_testroot - rm -f build-stamp configure-stamp - - # Add here commands to clean up after the build process. - -cd $(CMAKE_TMP_DIR) && $(MAKE) clean - rm -rf $(CMAKE_TMP_DIR) - - rm -rf CMakeCache.txt - rm -rf CMakeFiles - rm -rf cmake_install.cmake - rm -rf Makefile - rm -rf install_manifest.txt - - rm -rf daemon/CMakeFiles - rm -rf daemon/cmake_install.cmake - rm -rf daemon/Makefile - rm -rf daemon/install_manifest.txt - - rm -rf ui/CMakeFiles - rm -rf ui/cmake_install.cmake - rm -rf ui/Makefile - rm -rf ui/install_manifest.txt - - rm -rf ui/*.edj - rm -rf ui/themes/*.edj - - rm -rf ui/po/CMakeFiles - rm -rf ui/po/cmake_install.cmake - rm -rf ui/po/Makefile - - rm -rf ui/org.tizen.call.desktop - - rm -rf cmake_tmp - - - - for f in `find $(CURDIR)/debian/ -name "*.in"`; do \ - rm -f $${f%.in}; \ - done - - dh_clean - -install: build - dh_testdir - dh_testroot - dh_clean -k - dh_installdirs - - # Add here commands to install the package into debian/wavplayer. - cd $(CMAKE_TMP_DIR) && $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install - - -# Build architecture-independent files here. -binary-indep: build install -# We have nothing to do by default. - -# Build architecture-dependent files here. -binary-arch: build install - dh_testdir - dh_testroot -# dh_installchangelogs -# dh_installdocs -# dh_installexamples - dh_install --sourcedir=debian/tmp -# dh_installmenu -# dh_installdebconf -# dh_installlogrotate -# dh_installemacsen -# dh_installpam -# dh_installmime -# dh_python -# dh_installinit -# dh_installcron -# dh_installinfo - dh_installman - dh_link -# dh_strip - dh_strip --dbg-package=org.tizen.call-dbg - dh_compress - dh_fixperms -# dh_perl - dh_makeshlibs - dh_installdeb - dh_shlibdeps - dh_gencontrol - dh_md5sums - dh_builddeb - -binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary install configure diff --git a/packaging/org.tizen.call.spec b/packaging/org.tizen.call.spec old mode 100644 new mode 100755 index 030f352..b3d6a96 --- a/packaging/org.tizen.call.spec +++ b/packaging/org.tizen.call.spec @@ -1,9 +1,9 @@ Name: org.tizen.call Summary: call application -Version: 0.2.333 +Version: 0.2.380 Release: 1 -Group: Applications -License: Flora Software License +Group: comm +License: Flora Software License Source0: %{name}-%{version}.tar.gz BuildRequires: pkgconfig(appcore-efl) BuildRequires: pkgconfig(elementary) @@ -15,7 +15,7 @@ BuildRequires: pkgconfig(sensor) BuildRequires: pkgconfig(dlog) BuildRequires: pkgconfig(aul) BuildRequires: pkgconfig(contacts-service) -BuildRequires: pkgconfig(ui-gadget) +BuildRequires: pkgconfig(ui-gadget-1) BuildRequires: pkgconfig(tapi) BuildRequires: pkgconfig(mm-sound) BuildRequires: pkgconfig(mm-camcorder) @@ -27,8 +27,15 @@ BuildRequires: pkgconfig(ecore-x) BuildRequires: pkgconfig(ecore-input) BuildRequires: pkgconfig(icu-i18n) BuildRequires: pkgconfig(appsvc) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(capi-base-common) BuildRequires: pkgconfig(notification) -BuildRequires: libug-contacts-devel +BuildRequires: pkgconfig(phone-misc) +BuildRequires: pkgconfig(minicontrol-provider) +BuildRequires: pkgconfig(capi-media-sound-manager) +BuildRequires: pkgconfig(dbus-1) +BuildRequires: pkgconfig(dbus-glib-1) +BuildRequires: libug-contacts-devel BuildRequires: cmake BuildRequires: gettext-tools BuildRequires: edje-tools @@ -41,8 +48,8 @@ call application. %prep %setup -q -%build +%build %define PREFIX "/opt/apps/org.tizen.call" cmake . -DCMAKE_INSTALL_PREFIX=%{PREFIX} @@ -54,13 +61,18 @@ rm -rf %{buildroot} %make_install %post -/usr/bin/vconftool set -t int "memory/call/state" "0" -g 6521 -i -/usr/bin/vconftool set -t int "db/call/vol_level" "4" -g 6521 +# 5000 is inhouse user id +# do not use relative path chown -R 5000:5000 /opt/apps/org.tizen.call/data +/usr/bin/vconftool set -t int memory/call/state "0" -g 6521 -i +/usr/bin/vconftool set -t int "db/call/vol_level" "4" -g 6521 %files -/opt/apps/org.tizen.call/bin/* -/opt/apps/org.tizen.call/res/* -/opt/share/applications/org.tizen.call.desktop -%dir /opt/apps/org.tizen.call/data - +%defattr(-,root,root,-) +/opt/apps/org.tizen.call/bin/voice-call-ui +/opt/apps/org.tizen.call/res/edje/*.edj +/opt/apps/org.tizen.call/res/images/*.png +/opt/apps/org.tizen.call/res/locale/*/LC_MESSAGES/voice-call-ui.mo +/opt/apps/org.tizen.call/res/media/*.wav +/opt/share/packages/org.tizen.call.xml +/opt/share/icons/default/small/org.tizen.call.png diff --git a/ui/CMakeLists.txt b/ui/CMakeLists.txt index 9c7d4bc..e012b36 100755 --- a/ui/CMakeLists.txt +++ b/ui/CMakeLists.txt @@ -11,34 +11,34 @@ SET(UI_SRCS ../call-engine/core/vc-core-engine-group.c ../call-engine/core/vc-core-svcall.c ../call-engine/core/vc-core-tapi-rqst.c + ../call-engine/core/vc-core-ecc.c ../call-engine/voice-call-core.c ../call-engine/voice-call-sound.c ../call-engine/voice-call-service.c ../call-engine/voice-call-device.c ../call-engine/voice-call-bt.c ../call-engine/voice-call-engine.c - ../call-engine/voice-call-dbus.c - vcui-application.c - vcui-app-window.c - vcui-view-choice.c - vcui-engine-interface.c - vcui-document.c - vcui-view-dialing.c - vcui-view-incoming.c - vcui-view-incoming-lock.c - vcui-view-keypad.c - vcui-view-elements.c - vcui-view-common.c - vcui-view-single-call.c - vcui-view-multi-call-split.c - vcui-view-multi-call-conf.c - vcui-view-multi-call-list.c - vcui-view-popup.c - vcui-doc-launch.c - vcui-view-callend.c - ) - -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR} ../call-engine/include ../call-engine/core/include) + ../call-engine/voice-call-dbus.c + ./src/vcui-application.c + ./src/vcui-app-window.c + ./src/vcui-view-choice.c + ./src/vcui-document.c + ./src/vcui-view-dialing.c + ./src/vcui-view-incoming-lock.c + ./src/vcui-view-keypad.c + ./src/vcui-view-elements.c + ./src/vcui-view-common.c + ./src/vcui-view-single-call.c + ./src/vcui-view-multi-call-split.c + ./src/vcui-view-multi-call-conf.c + ./src/vcui-view-multi-call-list.c + ./src/vcui-view-popup.c + ./src/vcui-doc-launch.c + ./src/vcui-view-callend.c + ./src/vcui-view-quickpanel.c #_QUICKPANNEL_SUPPORT_ +) + +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR} ../call-engine/include ../call-engine/core/include ./src/include) SET(PREFIX ${CMAKE_INSTALL_PREFIX}) SET(BINDIR "${PREFIX}/bin") @@ -63,18 +63,17 @@ ADD_DEFINITIONS("-DCALL_DEBUG_ON_DLOG") ADD_DEFINITIONS("-DSWAP_SUPPORT") ADD_DEFINITIONS("-DCALL_VC_SEND_SAT_RESPONSE_ORIG") ADD_DEFINITIONS("-DRELEASE_ALL_AND_ACCEPT_SUPPORT") -ADD_DEFINITIONS("-DVC_ENG_FDN_SUPPORT") + +# for SOUND # for debuging -#ADD_DEFINITIONS("-DTIMER_ENABLED") #ADD_DEFINITIONS("-DVOICECALL_KPI") #ADD_DEFINITIONS("-DCALLDETAILS_DUMP") #for UI -ADD_DEFINITIONS("-DEND_KEY_PROCESSING") +#ADD_DEFINITIONS("-DSEND_END_TO_UG") ADD_DEFINITIONS("-DPDIAL_SEND_DTMF") -#ADD_DEFINITIONS("-DBG") -ADD_DEFINITIONS("-D_NEW_SND_") +ADD_DEFINITIONS("-D_QUICKPANNEL_SUPPORT_") ADD_DEFINITIONS("-DSIGNAL_HANDLER") INCLUDE(FindPkgConfig) @@ -82,15 +81,17 @@ pkg_check_modules(ui_pkgs REQUIRED appcore-efl vconf utilX + phone-misc alsa pmapi sensor dlog aul contacts-service - ui-gadget + ui-gadget-1 tapi contacts-service + capi-media-sound-manager mm-sound mm-camcorder mm-player @@ -108,6 +109,9 @@ pkg_check_modules(ui_pkgs REQUIRED icu-i18n appsvc notification + minicontrol-provider + dbus-1 + dbus-glib-1 ) @@ -128,7 +132,7 @@ ADD_DEFINITIONS("-DIMGDIR=\"${IMGDIR}\"") ADD_DEFINITIONS("-DMEDIADIR=\"${MEDIADIR}\"") ADD_EXECUTABLE(voice-call-ui ${UI_SRCS}) -TARGET_LINK_LIBRARIES(voice-call-ui "-pie" ${ui_pkgs_LDFLAGS}) +TARGET_LINK_LIBRARIES(voice-call-ui "-pie" "-ldl" ${ui_pkgs_LDFLAGS}) message(${ui_pkgs_LDFLAGS}) ADD_CUSTOM_TARGET(voice-call-ui.edj @@ -153,11 +157,12 @@ INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/themes/call_theme.edj DESTINATION ${ED # install ini file ( not used) #INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/voice-call-ui.ini DESTINATION share/process-info) -# install desktop file & icon +# install manifest file & icon SET(PREFIX ${CMAKE_INSTALL_PREFIX}) -CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/org.tizen.call.desktop.in ${CMAKE_CURRENT_SOURCE_DIR}/org.tizen.call.desktop) -INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/org.tizen.call.desktop DESTINATION /opt/share/applications) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/org.tizen.call.xml DESTINATION /opt/share/packages) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/org.tizen.call.png DESTINATION /opt/share/icons/default/small) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/images/hd/icon/ DESTINATION ${IMGDIR} FILES_MATCHING PATTERN "*.png") +INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/images/hd/landscape/ DESTINATION ${IMGDIR} FILES_MATCHING PATTERN "*.png") INSTALL(DIRECTORY ../call-engine/sounds/ DESTINATION ${MEDIADIR} FILES_MATCHING PATTERN "*.wav") # install application HOME directory diff --git a/ui/call_edc/vcui-view-button-layout.edc b/ui/call_edc/vcui-view-button-layout.edc new file mode 100644 index 0000000..fc9b1c8 --- /dev/null +++ b/ui/call_edc/vcui-view-button-layout.edc @@ -0,0 +1,260 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +group{ + name: "separator-layout"; + parts{ + part { name: "background"; + type: RECT; + description { + state: "default" 0.0; + color: 0 0 0 153; + } + } + + part { name: "top_horiz_sep"; + type: RECT; + description { + state: "default" 0.0; + min: 0 1; + rel1 { relative: 0 0; offset: 0 -1; to: "background";} + rel2 { relative: 1 0; to: "background";} + color: 80 80 80 192; + } + } + + part { name: "topline_left_vert_1"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + min: 1 1; + rel1 { relative: TOPLINE_LEFT_VERT_SEP_1_L TOPLINE_LEFT_VERT_SEP_1_T; to: "background";} + rel2 { relative: TOPLINE_LEFT_VERT_SEP_1_R TOPLINE_LEFT_VERT_SEP_1_B; to: "background";} + color: 70 70 70 255; + } + } + + part { name: "topline_left_vert_2"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + min: 1 1; + rel1 { relative: TOPLINE_LEFT_VERT_SEP_2_L TOPLINE_LEFT_VERT_SEP_2_T; to: "background";} + rel2 { relative: TOPLINE_LEFT_VERT_SEP_2_R TOPLINE_LEFT_VERT_SEP_2_B; to: "background";} + color: 35 33 31 255; + } + } + + part { name: "topline_right_vert_1"; + type: RECT; + description { + state: "default" 0.0; + min: 1 0; + rel1 { relative: TOPLINE_RIGHT_VERT_SEP_1_L TOPLINE_RIGHT_VERT_SEP_1_T; to: "background";} + rel2 { relative: TOPLINE_RIGHT_VERT_SEP_1_R TOPLINE_RIGHT_VERT_SEP_1_B; to: "background";} + color: 70 70 70 255; + } + } + + part { name: "topline_right_vert_2"; + type: RECT; + description { + state: "default" 0.0; + min: 1 0; + rel1 { relative: TOPLINE_RIGHT_VERT_SEP_2_L TOPLINE_RIGHT_VERT_SEP_2_T; to: "background";} + rel2 { relative: TOPLINE_RIGHT_VERT_SEP_2_R TOPLINE_RIGHT_VERT_SEP_2_B; to: "background";} + color: 35 33 31 255; + } + } + + part { name: "topline_horiz_sep_1"; + type: RECT; + description { + state: "default" 0.0; + min: 0 1; + rel1 { relative: TOPLINE_HORIZ_SEP_1_L TOPLINE_HORIZ_SEP_1_T; to: "background";} + rel2 { relative: TOPLINE_HORIZ_SEP_1_R TOPLINE_HORIZ_SEP_1_B; to: "background";} + color: 70 70 70 255; + } + } + + part { name: "topline_horiz_sep_2"; + type: RECT; + description { + state: "default" 0.0; + min: 0 1; + rel1 { relative: TOPLINE_HORIZ_SEP_2_L TOPLINE_HORIZ_SEP_2_T; to: "background";} + rel2 { relative: TOPLINE_HORIZ_SEP_2_R TOPLINE_HORIZ_SEP_2_B; to: "background";} + color: 35 33 31 255; + } + } + + part { name: "botline_left_vert_1"; + type: RECT; + description { + state: "default" 0.0; + min: 1 0; + rel1 { relative: BOTLINE_LEFT_VERT_SEP_1_L BOTLINE_LEFT_VERT_SEP_1_T; to: "background";} + rel2 { relative: BOTLINE_LEFT_VERT_SEP_1_R BOTLINE_LEFT_VERT_SEP_1_B; to: "background";} + color: 70 70 70 255; + } + } + + part { name: "botline_left_vert_2"; + type: RECT; + description { + state: "default" 0.0; + min: 1 0; + rel1 { relative: BOTLINE_LEFT_VERT_SEP_2_L BOTLINE_LEFT_VERT_SEP_2_T; to: "background";} + rel2 { relative: BOTLINE_LEFT_VERT_SEP_2_R BOTLINE_LEFT_VERT_SEP_2_B; to: "background";} + color: 35 33 31 255; + } + } + + part { name: "botline_right_vert_1"; + type: RECT; + description { + state: "default" 0.0; + min: 1 0; + rel1 { relative: BOTLINE_RIGHT_VERT_SEP_1_L BOTLINE_RIGHT_VERT_SEP_1_T; to: "background";} + rel2 { relative: BOTLINE_RIGHT_VERT_SEP_1_R BOTLINE_RIGHT_VERT_SEP_1_B; to: "background";} + color: 70 70 70 255; + } + } + + part { name: "botline_right_vert_2"; + type: RECT; + description { + state: "default" 0.0; + min: 1 0; + rel1 { relative: BOTLINE_RIGHT_VERT_SEP_2_L BOTLINE_RIGHT_VERT_SEP_2_T; to: "background";} + rel2 { relative: BOTLINE_RIGHT_VERT_SEP_2_R BOTLINE_RIGHT_VERT_SEP_2_B; to: "background";} + color: 35 33 31 255; + } + } + + part { name: "botline_horiz_sep_1"; + type: RECT; + description { + state: "default" 0.0; + min: 0 1; + rel1 { relative: BOTLINE_HORIZ_SEP_1_L BOTLINE_HORIZ_SEP_1_T; to: "background";} + rel2 { relative: BOTLINE_HORIZ_SEP_1_R BOTLINE_HORIZ_SEP_1_B; to: "background";} + color: 70 70 70 255; + } + } + + part { name: "botline_horiz_sep_2"; + type: RECT; + description { + state: "default" 0.0; + min: 0 1; + rel1 { relative: BOTLINE_HORIZ_SEP_2_L BOTLINE_HORIZ_SEP_2_T; to: "background";} + rel2 { relative: BOTLINE_HORIZ_SEP_2_R BOTLINE_HORIZ_SEP_2_B; to: "background";} + color: 35 33 31 255; + } + } + } + + programs{ + + } +} + +group{ + name: "button-layout"; + parts{ + part { name: "background"; + type: RECT; + description { + state: "default" 0.0; + color: COLOR_BG_ALPHA; + } + } + + /*TOP LEFT BUTTON*/ + part { name: "top_left_button"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: TOP_LEFT_BUTTON_L TOP_LEFT_BUTTON_T; to: "background";} + rel2 { relative: TOP_LEFT_BUTTON_R TOP_LEFT_BUTTON_B; to: "background";} + } + } + + /*TOP MIDDLE BUTTON*/ + part { name: "top_middle_button"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: TOP_MIDDLE_BUTTON_L TOP_MIDDLE_BUTTON_T; to: "background";} + rel2 { relative: TOP_MIDDLE_BUTTON_R TOP_MIDDLE_BUTTON_B; to: "background";} + } + } + + /*TOP RIGHT BUTTON*/ + part { name: "top_right_button"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: TOP_RIGHT_BUTTON_L TOP_RIGHT_BUTTON_T; to: "background";} + rel2 { relative: TOP_RIGHT_BUTTON_R TOP_RIGHT_BUTTON_B; to: "background";} + } + } + + /*BOTTOM LEFT BUTTON*/ + part { name: "bottom_left_button"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: BOTTOM_LEFT_BUTTON_L BOTTOM_LEFT_BUTTON_T; to: "background";} + rel2 { relative: BOTTOM_LEFT_BUTTON_R BOTTOM_LEFT_BUTTON_B; to: "background";} + } + } + + /*BOTTOM MIDDLE BUTTON*/ + part { name: "bottom_middle_button"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: BOTTOM_MIDDLE_BUTTON_L BOTTOM_MIDDLE_BUTTON_T; to: "background";} + rel2 { relative: BOTTOM_MIDDLE_BUTTON_R BOTTOM_MIDDLE_BUTTON_B; to: "background";} + } + } + + /*BOTTOM RIGHT BUTTON*/ + part { name: "bottom_right_button"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: BOTTOM_RIGHT_BUTTON_L BOTTOM_RIGHT_BUTTON_T; to: "background";} + rel2 { relative: BOTTOM_RIGHT_BUTTON_R BOTTOM_RIGHT_BUTTON_B; to: "background";} + } + } + } + + programs{ + + } +} diff --git a/ui/call_edc/vcui-view-caller-info.edc b/ui/call_edc/vcui-view-caller-info.edc new file mode 100755 index 0000000..d51118c --- /dev/null +++ b/ui/call_edc/vcui-view-caller-info.edc @@ -0,0 +1,233 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +group{ + name: "caller-info"; + parts{ + part { name: "background"; + type: RECT; + description { + state: "default" 0.0; + color: 0 0 0 150; + } + description { + state: "hide" 0.0; + color: 0 0 0 0; + } + } + + /*TOP PADDING*/ + part { name: "top_area"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + rel1 { relative: CALLER_INFO_TOP_L CALLER_INFO_TOP_T; to: "background";} + rel2 { relative: CALLER_INFO_TOP_R CALLER_INFO_TOP_B; to: "background";} + state: "default" 0.0; + color: 171 240 5 255; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + fixed: 1 1; + } + description { + state: "end_color" 0.0; + inherit: "default" 0.0; + visible: 1; + fixed: 1 1; + color: 190 47 48 255; + } + } + + /*CALLER NAME*/ + part { name: "txt_call_name"; /* call name or number */ + type: TEXT; + effect: SHADOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: CALLER_INFO_NAME_L CALLER_INFO_NAME_T; to: "background";} + rel2 { relative: CALLER_INFO_NAME_R CALLER_INFO_NAME_B; to: "background";} + text { font, FONT_SLP_Roman; size, 70; align, 0 0.5; text_class, TEXT_CLASS_SLP_ROMAN;} + color: 255 255 255 255; + color2: 0 0 0 255; + } + } + + /*CALLER INFO Seprator*/ + part { name: "vert_sep_1"; /*Caller info for more*/ + type: RECT; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + } + description { + state: "show" 0.0; + visible: 1; + min: 2 70; + rel1 { relative: CALLER_INFO_VERT_SEP_1_L CALLER_INFO_VERT_SEP_1_T; to: "background";} + rel2 { relative: CALLER_INFO_VERT_SEP_1_R CALLER_INFO_VERT_SEP_1_B; to: "background";} + color: 0 0 0 128; + } + } + + part { name: "vert_sep_2"; /*Caller info for more*/ + type: RECT; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + } + description { + state: "show" 0.0; + visible: 1; + min: 2 70; + rel1 { relative: CALLER_INFO_VERT_SEP_2_L CALLER_INFO_VERT_SEP_2_T; to: "background";} + rel2 { relative: CALLER_INFO_VERT_SEP_2_R CALLER_INFO_VERT_SEP_2_B; to: "background";} + color: 179 179 179 128; + } + } + + /*CALLER INFO*/ + part { name: "caller_info_icon"; /*Caller info for more*/ + type: SWALLOW; + scale: 1; + mouse_events: 1; + description { + state: "default" 0.0; + visible: 1; + rel1 { relative: CALLER_INFO_ICON_L CALLER_INFO_ICON_T; to: "background";} + rel2 { relative: CALLER_INFO_ICON_R CALLER_INFO_ICON_B; to: "background";} + } + } + + + /*CALL NUMBER*/ + part { name: "txt_phone_num"; /* Phone number*/ + type: TEXT; + effect: SHADOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: CALLER_INFO_NUMBER_L CALLER_INFO_NUMBER_T; to: "background";} + rel2 { relative: CALLER_INFO_NUMBER_R CALLER_INFO_NUMBER_B; to: "background";} + text { font, FONT_SLP_Roman; size, 48; align, 0 0.5; text_class, TEXT_CLASS_SLP_ROMAN; } + color: 255 255 255 255; + color2: 0 0 0 255; + } + } + + /* CALL STATUS*/ + part { name: "txt_status"; + type: TEXT; + effect: SHADOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: CALLER_INFO_TIMER_L CALLER_INFO_TIMER_T;to: "background";} + rel2 { relative: CALLER_INFO_TIMER_R CALLER_INFO_TIMER_B;to: "background";} + text { font, FONT_SLP_Roman; size, 48; align, 1.0 0.5; text_class, TEXT_CLASS_SLP_ROMAN; } + color: 249 249 249 255; + color2: 0 0 0 255; + } + description { + state: "end_color" 0.0; + inherit: "default" 0.0; + color: 255 0 0 255; + color2: 0 0 0 255; + } + description { + state: "hide" 0.0; + visible: 0; + } + } + + /* CALL TIME*/ + part { name: "txt_timer"; /*Call time or Call status*/ + type: TEXT; + effect: SHADOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: CALLER_INFO_TIMER_L CALLER_INFO_TIMER_T; to: "background";} + rel2 { relative: CALLER_INFO_TIMER_R CALLER_INFO_TIMER_B; to: "background";} + text { font, FONT_SLP_Roman; size, 48; align, 1.0 0.5; text_class, TEXT_CLASS_SLP_ROMAN; } + color: 139 246 50 255; + color2: 0 0 0 255; + } + description { + state: "hide" 0.0; + visible: 0; + } + } + + programs { + program { name: "hold_call"; + signal: "set-hold-state"; + source: "call-screen"; + action: STATE_SET "hide" 0.0; + target: "top_area"; + target: "txt_timer"; + after: "show_status"; + } + program { name: "show_status"; + action: STATE_SET "default" 0.0; + target: "txt_status"; + } + + program { name: "unhold_call"; + signal: "set-unhold-state"; + source: "call-screen"; + action: STATE_SET "default" 0.0; + target: "top_area"; + target: "txt_timer"; + after: "hide_status"; + } + program { name: "hide_status"; + action: STATE_SET "hide" 0.0; + target: "txt_status"; + } + + program { name: "end_caller_info"; + signal: "set-end-caller_ifno"; + source: "end-screen"; + action: STATE_SET "end_color" 0.0; + target: "top_area"; + target: "txt_status"; + } + + program { name: "hold_caller_info"; + signal: "set-hold-caller_ifno"; + source: "call-screen"; + action: STATE_SET "hide" 0.0; + target: "top_area"; + } + + program { name: "vert_seperator"; + signal: "show_vert_separtor"; + source: "call-screen"; + action: STATE_SET "show" 0.0; + target: "vert_sep_1"; + target: "vert_sep_2"; + } + } + } +} diff --git a/ui/call_edc/vcui-view-dialing.edc b/ui/call_edc/vcui-view-dialing.edc index ff23891..b734a3f 100755 --- a/ui/call_edc/vcui-view-dialing.edc +++ b/ui/call_edc/vcui-view-dialing.edc @@ -14,7 +14,6 @@ * limitations under the License. */ - group{ name: "mo-view"; parts{ @@ -35,11 +34,13 @@ group{ } } - part { name: "bg_alpha"; - type: RECT; + part { name: "call_bg_img"; + type: SWALLOW; + mouse_events: 0; description { state: "default" 0.0; - color: COLOR_BG_ALPHA; + rel1 { relative: 0 0; to: "background";} + rel2 { relative: 1 1; to: "background";} } } @@ -52,66 +53,80 @@ group{ } } - part { name: "txt_mo_status"; // dialling or connecting text - type: TEXT; - effect: SHADOW; + part { name: "caller_info"; + type: SWALLOW; scale: 1; description { state: "default" 0.0; - rel1 { relative: DIALLING_STATUS_L DIALLING_STATUS_T;to: "background";} - rel2 { relative: DIALLING_STATUS_R DIALLING_STATUS_B;to: "background"; } - text { font, FONT_SLP_Roman; size, 48; align, 0.5 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; + visible: 1; + rel1 { relative: CALLER_INFO_L CALLER_INFO_T; to: "background";} + rel2 { relative: CALLER_INFO_R CALLER_INFO_B; to: "background";} + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; } } - - - part { name: "txt_call_name"; // call name or number - type: TEXT; - effect: SHADOW; - scale: 1; + + part { name: "swl-cid-noid"; + type: SWALLOW; description { state: "default" 0.0; - rel1 { relative: DIALLING_NAME_L DIALLING_NAME_T;to: "background";} - rel2 { relative: DIALLING_NAME_R DIALLING_NAME_B;to: "background"; } - text { font, FONT_SLP_Roman; size, 76; align, 0.5 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; + visible:0; + rel1 { relative: DIALLING_CID_NOIMAGE_L DIALLING_CID_NOIMAGE_T; } + rel2 { relative: DIALLING_CID_NOIMAGE_R DIALLING_CID_NOIMAGE_B; } + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; } } - part { name: "txt_contact_phone_type"; // contact phone type -> call number - type: TEXT; - effect: SHADOW; + part { name: "keypad_region"; + type: SWALLOW; scale: 1; description { state: "default" 0.0; - rel1 { relative: DIALLING_NUMBER_L DIALLING_NUMBER_T; to: "background"; } - rel2 { relative: DIALLING_NUMBER_R DIALLING_NUMBER_B;to: "background"; } - text { font, FONT_SLP_Roman; size, 48; align, 0.5 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; + visible: 0; + rel1 { relative: KEYPAD_AREA_L KEYPAD_AREA_T; to: "background";} + rel2 { relative: KEYPAD_AREA_R KEYPAD_AREA_B; to: "background";} + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; } } - part { name: "btn_speaker"; + part { name: "btn_bg"; type: SWALLOW; scale: 1; description { state: "default" 0.0; - rel1 { relative: SIX_BTN_1_L SIX_BTN_2_T; to: "background";} - rel2 { relative: SIX_BTN_1_R SIX_BTN_2_B; to: "background";} + rel1 { relative: SIX_BTN_LAYOUT_L SIX_BTN_LAYOUT_T; to: "background";} + rel2 { relative: SIX_BTN_LAYOUT_R SIX_BTN_LAYOUT_B; to: "background";} } } - part { name: "btn_bigend"; + part { name: "btn_region"; type: SWALLOW; scale: 1; description { state: "default" 0.0; - rel1 { relative: SIX_BTN_BIG_END_L SIX_BTN_BIG_END_T; to: "background";} - rel2 { relative: SIX_BTN_BIG_END_R SIX_BTN_BIG_END_B; to: "background";} + rel1 { relative: 0 0; to: "btn_bg"; } + rel2 { relative: 1 1; to: "btn_bg"; } } } } @@ -125,5 +140,38 @@ group{ target: "swl_cid"; target: "swl_cid_background"; } + + program { name: "noid_image"; + signal: "show-noid-image"; + source: "show-noid"; + action: STATE_SET "show" 0.0; + target: "swl-cid-noid"; + } + + program { name: "show_keypadbtn"; + signal: "SHOW"; + source: "KEYPAD_BTN"; + action: STATE_SET "show" 0.0; + target: "keypad_region"; + } + program { name: "hide_keypadbtn"; + signal: "HIDE"; + source: "KEYPAD_BTN"; + action: STATE_SET "hide" 0.0; + target: "keypad_region"; + } + + program { name: "show_after_keypad"; + signal: "SHOW"; + source: "CALL_AREA"; + action: STATE_SET "show" 0.0; + target: "caller_info"; + } + program { name: "hide_caller_info"; + signal: "HIDE"; + source: "CALL_AREA"; + action: STATE_SET "hide" 0.0; + target: "caller_info"; + } } -} \ No newline at end of file +} diff --git a/ui/call_edc/vcui-view-end-conf-call.edc b/ui/call_edc/vcui-view-end-conf-call.edc index f6a1c7a..3b45e03 100755 --- a/ui/call_edc/vcui-view-end-conf-call.edc +++ b/ui/call_edc/vcui-view-end-conf-call.edc @@ -14,7 +14,6 @@ * limitations under the License. */ - group { name: "end-confcall"; parts { @@ -34,11 +33,13 @@ group { } } - part { name: "bg_alpha"; - type: RECT; + part { name: "call_bg_img"; + type: SWALLOW; + mouse_events: 0; description { state: "default" 0.0; - color: COLOR_BG_ALPHA; + rel1 { relative: 0 0; to: "background";} + rel2 { relative: 1 1; to: "background";} } } @@ -77,67 +78,61 @@ group { } } - part { name: "txt_call_name"; /*call name or number*/ - type: TEXT; - effect: SHADOW; + part { name: "caller_info"; + type: SWALLOW; scale: 1; description { state: "default" 0.0; - rel1 { relative: INCALL_NAME_L INCALL_NAME_T; } - rel2 { relative: INCALL_NAME_R INCALL_NAME_B; } - text { font, FONT_SLP_Roman; size, 76; align, 0.5 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; + visible: 1; + rel1 { relative: CALLER_INFO_L CALLER_INFO_T; to: "background";} + rel2 { relative: CALLER_INFO_R CALLER_INFO_B; to: "background";} } } - part { name: "txt_contact_phone_type"; /*in case of multicallconf, it is num of people*/ - type: TEXT; - effect: SHADOW; + part { name: "btn_hold_swap"; + type: SWALLOW; scale: 1; description { state: "default" 0.0; - rel1 { relative: INCALL_NUMBER_L INCALL_NUMBER_T; } - rel2 { relative: INCALL_NUMBER_R INCALL_NUMBER_B; } - text { font, FONT_SLP_Roman; size, 48; align, 0.5 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; + rel1 { relative: INCALL_HOLD_L INCALL_HOLD_T; to: "background";} + rel2 { relative: INCALL_HOLD_R INCALL_HOLD_B; to: "background";} } } - part { name: "txt_timer"; + part { name: "txt_hold_swap"; type: TEXT; effect: SHADOW; scale: 1; description { state: "default" 0.0; - rel1 { relative: INCALL_TIMER_L INCALL_TIMER_T; } - rel2 { relative: INCALL_TIMER_R INCALL_TIMER_B; } - text { font, FONT_SLP_Roman; size, 48; align, 1.0 0.5; } - color: 255 255 255 255; + rel1 { relative: INCALL_HOLD_TXT_L INCALL_HOLD_TXT_T; to: "background";} + rel2 { relative: INCALL_HOLD_TXT_R INCALL_HOLD_TXT_B; to: "background";} + text { font, FONT_SLP_Roman; size, 26; align, 0.0 0.5; text_class, TEXT_CLASS_SLP_ROMAN; } + color: 204 204 204 255; color2: 0 0 0 255; } } - part { name: "btn_bigend"; + part { name: "btn_bg"; type: SWALLOW; scale: 1; description { state: "default" 0.0; - rel1 { relative: SIX_BTN_BIG_END_L SIX_BTN_BIG_END_T; to: "background";} - rel2 { relative: SIX_BTN_BIG_END_R SIX_BTN_BIG_END_B; to: "background";} + rel1 { relative: SIX_BTN_LAYOUT_L SIX_BTN_LAYOUT_T; to: "background";} + rel2 { relative: SIX_BTN_LAYOUT_R SIX_BTN_LAYOUT_B; to: "background";} } } - part { name: "btn_speaker"; + part { name: "btn_region"; type: SWALLOW; scale: 1; description { state: "default" 0.0; - rel1 { relative: SIX_BTN_1_L SIX_BTN_2_T; to: "background";} - rel2 { relative: SIX_BTN_1_R SIX_BTN_2_B; to: "background";} + rel1 { relative: 0 0; to: "btn_bg"; } + rel2 { relative: 1 1; to: "btn_bg"; } } } + } programs { diff --git a/ui/call_edc/vcui-view-end-single-call.edc b/ui/call_edc/vcui-view-end-single-call.edc index e3475ed..adf12ca 100755 --- a/ui/call_edc/vcui-view-end-single-call.edc +++ b/ui/call_edc/vcui-view-end-single-call.edc @@ -14,6 +14,80 @@ * limitations under the License. */ +group{ + name: "separator-layout-3button"; + parts{ + part { name: "background"; + type: RECT; + description { + state: "default" 0.0; + color: 0 0 0 153; + } + } + + part { name: "topline_horiz_sep_1"; + type: RECT; + description { + state: "default" 0.0; + min: 0 1; + rel1 { relative: 0 0; offset: 0 -1; to: "background";} + rel2 { relative: 1 0; to: "background";} + color: 80 80 80 204; + } + } + + part { name: "left_vert_sep_1"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + min: 1 1; + rel1 { relative: ENDCALL_LEFT_VERT_SEP_1_L ENDCALL_LEFT_VERT_SEP_1_T; to: "background";} + rel2 { relative: ENDCALL_LEFT_VERT_SEP_1_R ENDCALL_LEFT_VERT_SEP_1_B; to: "background";} + color: 70 70 70 255; + } + } + + part { name: "left_vert_sep_2"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + min: 1 1; + rel1 { relative: ENDCALL_LEFT_VERT_SEP_2_L ENDCALL_LEFT_VERT_SEP_2_T ; to: "background";} + rel2 { relative: ENDCALL_LEFT_VERT_SEP_2_R ENDCALL_LEFT_VERT_SEP_2_B ; to: "background";} + color: 35 33 31 255; + } + } + + part { name: "right_vert_sep_1"; + type: RECT; + description { + state: "default" 0.0; + min: 1 0; + rel1 { relative: ENDCALL_RIGHT_VERT_SEP_1_L ENDCALL_RIGHT_VERT_SEP_1_T ; to: "background";} + rel2 { relative: ENDCALL_RIGHT_VERT_SEP_1_R ENDCALL_RIGHT_VERT_SEP_1_B ; to: "background";} + color: 70 70 70 255; + } + } + + part { name: "right_vert_sep_2"; + type: RECT; + description { + state: "default" 0.0; + min: 1 0; + rel1 { relative: ENDCALL_RIGHT_VERT_SEP_2_L ENDCALL_RIGHT_VERT_SEP_2_T ; to: "background";} + rel2 { relative: ENDCALL_RIGHT_VERT_SEP_2_R ENDCALL_RIGHT_VERT_SEP_2_B ; to: "background";} + color: 35 33 31 255; + } + } + } + + programs{ + + } +} + group { name: "end-singlecall"; @@ -36,11 +110,13 @@ group { } } - part { name: "bg_alpha"; - type: RECT; + part { name: "call_bg_img"; + type: SWALLOW; + mouse_events: 0; description { state: "default" 0.0; - color: COLOR_BG_ALPHA; + rel1 { relative: 0 0; to: "background";} + rel2 { relative: 1 1; to: "background";} } } @@ -53,46 +129,66 @@ group { } } - part { name: "txt_call_name"; // call name or number - type: TEXT; - effect: SHADOW; + part { name: "caller_info"; + type: SWALLOW; scale: 1; description { state: "default" 0.0; - rel1 { relative: ENDSINGLECALL_NAME_L ENDSINGLECALL_NAME_T; } - rel2 { relative: ENDSINGLECALL_NAME_R ENDSINGLECALL_NAME_B; } - text { font, FONT_SLP_Roman; size, 76; align, 0.5 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; + visible: 1; + rel1 { relative: CALLER_INFO_L CALLER_INFO_T; to: "background";} + rel2 { relative: CALLER_INFO_R CALLER_INFO_B; to: "background";} } } - part { name: "txt_contact_phone_type"; // contact phone type -> call number - type: TEXT; - effect: SHADOW; + part { name: "btn_bg"; + type: SWALLOW; scale: 1; description { state: "default" 0.0; - rel1 { relative: ENDSINGLECALL_NUMBER_L ENDSINGLECALL_NUMBER_T; } - rel2 { relative: ENDSINGLECALL_NUMBER_R ENDSINGLECALL_NUMBER_B; } - text { font, FONT_SLP_Roman; size, 48; align, 0.5 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; + rel1 { relative: ENDSINGLECALL_BTN_BG_L ENDSINGLECALL_BTN_BG_T; to: "background";} + rel2 { relative: ENDSINGLECALL_BTN_BG_R ENDSINGLECALL_BTN_BG_B; to: "background";} } } - part { name: "txt_timer"; - type: TEXT; - effect: SHADOW; + part { name: "btn_voicecall"; + type: SWALLOW; scale: 1; description { state: "default" 0.0; - rel1 { relative: ENDSINGLECALL_TIMER_L ENDSINGLECALL_TIMER_T; } - rel2 { relative: ENDSINGLECALL_TIMER_R ENDSINGLECALL_TIMER_B; } - text { font, FONT_SLP_Roman; size, 44; align, 1.0 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; + rel1 { relative: ENDSINGLECALL_VOICE_BTN_L ENDSINGLECALL_VOICE_BTN_T; to: "background";} + rel2 { relative: ENDSINGLECALL_VOICE_BTN_R ENDSINGLECALL_VOICE_BTN_B; to: "background";} } } + + part { name: "btn_videocall"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: ENDSINGLECALL_VIDEO_BTN_L ENDSINGLECALL_VIDEO_BTN_T; to: "background";} + rel2 { relative: ENDSINGLECALL_VIDEO_BTN_R ENDSINGLECALL_VIDEO_BTN_B; to: "background";} + } + } + + part { name: "btn_message"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: ENDSINGLECALL_MSG_BTN_L ENDSINGLECALL_MSG_BTN_T; to: "background";} + rel2 { relative: ENDSINGLECALL_MSG_BTN_R ENDSINGLECALL_MSG_BTN_B; to: "background";} + } + } + + part { name: "btn_contacts"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + rel1 { relative: ENDSINGLECALL_CONTACT_BTN_L ENDSINGLECALL_CONTACT_BTN_T; to: "background";} + rel2 { relative: ENDSINGLECALL_CONTACT_BTN_R ENDSINGLECALL_CONTACT_BTN_B; to: "background";} + } + } } - } \ No newline at end of file +} \ No newline at end of file diff --git a/ui/call_edc/vcui-view-incoming-lock.edc b/ui/call_edc/vcui-view-incoming-lock.edc index 2911a01..98e8220 100755 --- a/ui/call_edc/vcui-view-incoming-lock.edc +++ b/ui/call_edc/vcui-view-incoming-lock.edc @@ -14,199 +14,256 @@ * limitations under the License. */ +#define COLOR_OPACITY_100 255 255 255 255 +#define COLOR_OPACITY_75 255 255 255 191 +#define COLOR_OPACITY_60 255 255 255 153 +#define COLOR_OPACITY_50 255 255 255 128 +#define COLOR_OPACITY_25 255 255 255 64 +#define COLOR_OPACITY_20 255 255 255 51 +#define COLOR_OPACITY_0 255 255 255 0 +#define SHIFT_VALUE (20/720) group { - name: "lock_accept"; + name: "lock_reject_with_msg"; parts { part { - name: "accept_bg"; + name: "reject_msg_bg"; type: IMAGE; mouse_events:1; scale: 1; description { state: "default" 0.0; - rel1 { relative: INCOMING_LOCK_ACCEPT_BG_L INCOMING_LOCK_ACCEPT_BG_T; } - rel2 { relative: INCOMING_LOCK_ACCEPT_BG_R INCOMING_LOCK_ACCEPT_BG_B; } - image { - normal: IMG_SRC_DIR/"vc_lock_left_bg.png"; - } + rel1 { relative: MTLOCK_REJECT_MSG_BG_L MTLOCK_REJECT_MSG_BG_T; } + rel2 { relative: MTLOCK_REJECT_MSG_BG_R MTLOCK_REJECT_MSG_BG_B; } + image { normal: IMG_SRC_DIR/"vc_lock_reject_message_bg.png"; } align: 0.0 0.5; - color: 255 255 255 255; - visible: 1; - } - description { - state: "alpha" 0.0; - inherit: "default" 0.0; - color: 255 255 255 76; // 30% + color: 255 255 255 255; visible: 1; - } + } } - - part { - name: "accept_icon"; - type: IMAGE; - mouse_events:1; + + part { + name: "reject_msg_arw"; + type: IMAGE; + mouse_events:1; scale: 1; - description { - state: "default" 0.0; - rel1 { relative: INCOMING_LOCK_ACCEPT_ICON_L INCOMING_LOCK_ACCEPT_ICON_T; to: "accept_bg"; } - rel2 { relative: INCOMING_LOCK_ACCEPT_ICON_R INCOMING_LOCK_ACCEPT_ICON_B; to: "accept_bg"; } - image { - normal: IMG_SRC_DIR/"vc_lock_accept_icon.png"; - } + description { + state: "default" 0.0; + rel1 { relative: MTLOCK_REJECT_MSG_ARW_L MTLOCK_REJECT_MSG_ARW_T; } + rel2 { relative: MTLOCK_REJECT_MSG_ARW_R MTLOCK_REJECT_MSG_ARW_B; } align: 0.5 0.5; color: 255 255 255 255; + visible: 0; + } + description { + state: "list_close" 0.0; + inherit: "default" 0.0; + image { normal: IMG_SRC_DIR/"vc_lock_reject_message_arrow_open.png"; } visible: 1; - } - description { - state: "alpha" 0.0; + } + description { + state: "list_open" 0.0; inherit: "default" 0.0; - color: 255 255 255 76; // 30% + image { normal: IMG_SRC_DIR/"vc_lock_reject_message_arrow_close.png"; } visible: 1; - } + } } part { - name: "accept_text"; - type: TEXT; - mouse_events:0; + name: "reject_msg_text_area"; + type: RECT; + mouse_events: 0; scale: 1; - description { - state: "default" 0.0; - rel1 { relative: INCOMING_LOCK_ACCEPT_TEXT_L INCOMING_LOCK_ACCEPT_TEXT_T; to: "accept_bg"; } - rel2 { relative: INCOMING_LOCK_ACCEPT_TEXT_R INCOMING_LOCK_ACCEPT_TEXT_B; to: "accept_bg"; } - text { font, FONT_SLP_Roman; size, 58; align, 0.5 0.5; } + description { + state: "default" 0.0; + rel1 { relative: MTLOCK_REJECT_MSG_TEXT_L MTLOCK_REJECT_MSG_TEXT_T; } + rel2 { relative: MTLOCK_REJECT_MSG_TEXT_R MTLOCK_REJECT_MSG_TEXT_B; } + visible: 0; + } + } + + part { + name: "reject_msg_icon"; + type: IMAGE; + mouse_events:0; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0 0; to: "reject_msg_text_area";} + rel2 { relative: 0 1; to: "txt_padding";} + align: 1 0.5; + min: MTLOCK_REJECT_MSG_ICON_WIDTH MTLOCK_REJECT_MSG_ICON_HEIGHT; + max: MTLOCK_REJECT_MSG_ICON_WIDTH MTLOCK_REJECT_MSG_ICON_HEIGHT; color: 255 255 255 255; + image { normal: IMG_SRC_DIR/"vc_reject_msg_icon.png"; } visible: 1; - } - description { - state: "alpha" 0.0; - inherit: "default" 0.0; - color: 255 255 255 76; // 30% - visible: 1; - } + } } - } - programs { - program { - name: "lock_accept,default"; - signal: "lock_accept,default"; - source: "prog"; - action: STATE_SET "default" 0.0; - target: "accept_bg"; - target: "accept_icon"; - target: "accept_text"; - transition: LINEAR 0.3; - } - program { - name: "lock_accept,alpha"; - signal: "lock_accept,alpha"; - source: "prog"; - action: STATE_SET "alpha" 0.0; - target: "accept_bg"; - target: "accept_icon"; - target: "accept_text"; - transition: LINEAR 0.3; + part { name: "txt_padding"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 0; + min: MTLOCK_REJECT_MSG_PAD 0; + align: 1 0; + visible: 0; + rel1 { relative: 0 0; to: "reject_msg_text";} + rel2 { relative: 0 1; to: "reject_msg_text";} + } } - } -} -group { - name: "lock_reject"; - parts { - part { - name: "reject_bg"; - type: IMAGE; - mouse_events:1; + part { + name: "reject_msg_text"; + type: TEXT; + mouse_events: 0; scale: 1; - description { - state: "default" 0.0; - rel1 { relative: INCOMING_LOCK_REJECT_BG_L INCOMING_LOCK_REJECT_BG_T; } - rel2 { relative: INCOMING_LOCK_REJECT_BG_R INCOMING_LOCK_REJECT_BG_B; } - image { - normal: IMG_SRC_DIR/"vc_lock_right_bg.png"; - } - align: 0.0 0.5; + description { + state: "default" 0.0; + rel1 { relative: (0.5+((MTLOCK_REJECT_MSG_ICON_WIDTH+MTLOCK_REJECT_MSG_PAD)/(MTLOCK_REJECT_MSG_TEXT_WIDTH*2))) 0; to: "reject_msg_text_area";} + rel2 { relative: (0.5+((MTLOCK_REJECT_MSG_ICON_WIDTH+MTLOCK_REJECT_MSG_PAD)/(MTLOCK_REJECT_MSG_TEXT_WIDTH*2))) 1; to: "reject_msg_text_area";} + fixed: 0 1; + max: (MTLOCK_REJECT_MSG_TEXT_WIDTH-MTLOCK_REJECT_MSG_ICON_WIDTH-MTLOCK_REJECT_MSG_PAD) MTLOCK_REJECT_MSG_TEXT_HEIGHT; + text { font, FONT_SLP_Roman; size, 32; align, 0.5 0.5; min: 1 0; text_class, TEXT_CLASS_SLP_ROMAN; } color: 255 255 255 255; + color2: 0 0 0 191; visible: 1; - } - description { - state: "alpha" 0.0; + } + } + + part { + name: "swl_msglist_bg"; + type: RECT; + description { + state: "default" 0.0; + visible: 0; + color: 0 0 0 255; + rel1 { relative: MTLOCK_REJECT_MSG_LIST_L MTLOCK_REJECT_MSG_LIST_T; } + } + description { + state: "one-line" 0.0; inherit: "default" 0.0; - color: 255 255 255 76; // 30% visible: 1; - } - } - - part { - name: "reject_icon"; - type: IMAGE; - mouse_events:1; - scale: 1; - description { - state: "default" 0.0; - rel1 { relative: INCOMING_LOCK_REJECT_ICON_L INCOMING_LOCK_REJECT_ICON_T; to: "reject_bg"; } - rel2 { relative: INCOMING_LOCK_REJECT_ICON_R INCOMING_LOCK_REJECT_ICON_B; to: "reject_bg"; } - image { - normal: IMG_SRC_DIR/"vc_lock_reject_icon.png"; - } - align: 0.5 0.5; - color: 255 255 255 255; + rel2 { relative: MTLOCK_REJECT_MSG_LIST_R MTLOCK_REJECT_MSG_ONE_LINE_LIST_B; } + } + description { + state: "two-line" 0.0; + inherit: "default" 0.0; visible: 1; - } - description { - state: "alpha" 0.0; + rel2 { relative: MTLOCK_REJECT_MSG_LIST_R MTLOCK_REJECT_MSG_TWO_LINE_LIST_B; } + } + description { + state: "three-line" 0.0; inherit: "default" 0.0; - color: 255 255 255 76; // 30% visible: 1; - } + rel2 { relative: MTLOCK_REJECT_MSG_LIST_R MTLOCK_REJECT_MSG_THREE_LINE_LIST_B; } + } + description { + state: "four-line" 0.0; + inherit: "default" 0.0; + visible: 1; + rel2 { relative: MTLOCK_REJECT_MSG_LIST_R MTLOCK_REJECT_MSG_FOUR_LINE_LIST_B; } + } + description { + state: "five-line" 0.0; + inherit: "default" 0.0; + visible: 1; + rel2 { relative: MTLOCK_REJECT_MSG_LIST_R MTLOCK_REJECT_MSG_FIVE_LINE_LIST_B; } + } + description { + state: "six-line" 0.0; + inherit: "default" 0.0; + visible: 1; + rel2 { relative: MTLOCK_REJECT_MSG_LIST_R MTLOCK_REJECT_MSG_SIX_LINE_LIST_B; } + } } - + part { - name: "reject_text"; - type: TEXT; - mouse_events:0; - scale: 1; - description { - state: "default" 0.0; - rel1 { relative: INCOMING_LOCK_REJECT_TEXT_L INCOMING_LOCK_REJECT_TEXT_T; to: "reject_bg"; } - rel2 { relative: INCOMING_LOCK_REJECT_TEXT_R INCOMING_LOCK_REJECT_TEXT_B; to: "reject_bg"; } - text { font, FONT_SLP_Roman; size, 58; align, 0.5 0.5; } - color: 255 255 255 255; + name: "swl_msglist"; + type: SWALLOW; + description { + state: "default" 0.0; visible: 1; - } - description { - state: "alpha" 0.0; - inherit: "default" 0.0; - color: 255 255 255 76; // 30% + rel1 { relative: 0.0 0.0; to: "swl_msglist_bg"; } + rel2 { relative: 1.0 1.0; to: "swl_msglist_bg"; } + } + } + + part { + name: "swl_msgtoolbar"; + type: SWALLOW; + description { + state: "default" 0.0; visible: 1; - } + rel1 { relative: 0.0 1.0; to: "swl_msglist_bg"; } + rel2 { relative: 1.0 1.0; to: "swl_msglist_bg"; offset: 0 MTLOCK_REJECT_MSG_TOOLBAR_HEIGHT; } + } } } programs { + program { - name: "lock_reject,default"; - signal: "lock_reject,default"; - source: "prog"; - action: STATE_SET "default" 0.0; - target: "reject_bg"; - target: "reject_icon"; - target: "reject_text"; - transition: LINEAR 0.3; - } + name: "up_arrow"; + signal: "show-up-arrow"; + source: "reject_msg"; + action: STATE_SET "list_close" 0.0; + target: "reject_msg_arw"; + transition: LINEAR 0.0; + } + program { + name: "down_arrow"; + signal: "show-down-arrow"; + source: "reject_msg"; + action: STATE_SET "list_open" 0.0; + target: "reject_msg_arw"; + transition: LINEAR 0.0; + } + + program { + name: "one-line-list"; + signal: "show-one-line"; + source: "reject-list"; + action: STATE_SET "one-line" 0.0; + target: "swl_msglist_bg"; + } + program { + name: "two-line-list"; + signal: "show-two-line"; + source: "reject-list"; + action: STATE_SET "two-line" 0.0; + target: "swl_msglist_bg"; + } program { - name: "lock_reject,alpha"; - signal: "lock_reject,alpha"; - source: "prog"; - action: STATE_SET "alpha" 0.0; - target: "reject_bg"; - target: "reject_icon"; - target: "reject_text"; - transition: LINEAR 0.3; + name: "three-line-list"; + signal: "show-three-line"; + source: "reject-list"; + action: STATE_SET "three-line" 0.0; + target: "swl_msglist_bg"; + } + program { + name: "four-line-list"; + signal: "show-four-line"; + source: "reject-list"; + action: STATE_SET "four-line" 0.0; + target: "swl_msglist_bg"; + } + program { + name: "five-line-list"; + signal: "show-five-line"; + source: "reject-list"; + action: STATE_SET "five-line" 0.0; + target: "swl_msglist_bg"; + } + program { + name: "six-line-list"; + signal: "show-six-line"; + source: "reject-list"; + action: STATE_SET "six-line" 0.0; + target: "swl_msglist_bg"; } } } @@ -215,15 +272,18 @@ group { name: "mtlock"; parts { part { name: "background"; - type: RECT; - description { - state: "default" 0.0; + type: RECT; + mouse_events: 1; + pointer_mode: NOGRAB; + description { + state: "default" 0.0; color: COLOR_DEFAULT; } } part { name: "swl_cid_background"; type: SWALLOW; + mouse_events: 0; description { state: "default" 0.0; rel1 { relative: DIALLING_BACKGROUND_CID_L DIALLING_BACKGROUND_CID_T; to: "background";} @@ -231,25 +291,19 @@ group { } } - part { name: "bg_alpha"; - type: RECT; - description { - state: "default" 0.0; - color: COLOR_BG_ALPHA; - } - } - - part { name: "swl_calling_name_bg"; + part { name: "call_bg_img"; type: SWALLOW; + mouse_events: 0; description { state: "default" 0.0; - rel1 { relative: MT_CALLING_BG_L MT_CALLING_BG_T; to: "background";} - rel2 { relative: MT_CALLING_BG_R MT_CALLING_BG_B; to: "background";} + rel1 { relative: 0 0; to: "background";} + rel2 { relative: 1 1; to: "background";} } } part { name: "swl_cid"; type: SWALLOW; + mouse_events: 0; description { state: "default" 0.0; rel1 { relative: DIALLING_CID_L DIALLING_CID_T; } @@ -257,49 +311,37 @@ group { } } - part { name: "txt_call_name"; // call name or number - type: TEXT; - effect: SHADOW; + part { name: "caller_info"; + type: SWALLOW; scale: 1; + mouse_events: 0; description { state: "default" 0.0; - rel1 { relative: DIALLING_NAME_L DIALLING_NAME_T;to: "background";} - rel2 { relative: DIALLING_NAME_R DIALLING_NAME_B;to: "background"; } - text { font, FONT_SLP_Roman; size, 76; align, 0.5 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; + visible: 1; + rel1 { relative: CALLER_INFO_L CALLER_INFO_T; to: "background";} + rel2 { relative: CALLER_INFO_R CALLER_INFO_B; to: "background";} } } - part { name: "txt_contact_phone_type"; // contact phone type -> call number - type: TEXT; - effect: SHADOW; + part { name: "btn_accept"; + type: SWALLOW; scale: 1; description { state: "default" 0.0; - rel1 { relative: DIALLING_NUMBER_L DIALLING_NUMBER_T; to: "background"; } - rel2 { relative: DIALLING_NUMBER_R DIALLING_NUMBER_B;to: "background"; } - text { font, FONT_SLP_Roman; size, 48; align, 0.5 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; + rel1 { relative: DIALLING_MT_BTN1_L DIALLING_MT_BTN1_T; to: "background";} + rel2 { relative: DIALLING_MT_BTN1_R DIALLING_MT_BTN1_B; to: "background";} } - } - - /* - part { name: "txt_mt_status"; // Voice call - type: TEXT; - effect: SHADOW; - scale: 1; - description { - state: "default" 0.0; - rel1 { relative: DIALLING_MT_STATUS_L DIALLING_MT_STATUS_T;to: "background";} - rel2 { relative: DIALLING_MT_STATUS_R DIALLING_MT_STATUS_B;to: "background"; } - text { font, FONT_SLP_Roman; size, 48; align, 0.5 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; - } + } + part { name: "btn_reject"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: DIALLING_MT_BTN2_L DIALLING_MT_BTN2_T; to: "background";} + rel2 { relative: DIALLING_MT_BTN2_R DIALLING_MT_BTN2_B; to: "background";} } - */ + } + }//parts programs { @@ -311,6 +353,6 @@ group { target: "background"; target: "swl_cid"; target: "swl_cid_background"; - } + } } } \ No newline at end of file diff --git a/ui/call_edc/vcui-view-incoming.edc b/ui/call_edc/vcui-view-incoming.edc deleted file mode 100755 index 4a7aaf5..0000000 --- a/ui/call_edc/vcui-view-incoming.edc +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.tizenopensource.org/license - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -group{ - name: "mt-view"; - parts { - part { name: "background"; - type: RECT; - description { - state: "default" 0.0; - color: COLOR_DEFAULT; - } - } - - part { name: "swl_cid_background"; - type: SWALLOW; - description { - state: "default" 0.0; - rel1 { relative: DIALLING_BACKGROUND_CID_L DIALLING_BACKGROUND_CID_T; to: "background";} - rel2 { relative: DIALLING_BACKGROUND_CID_R DIALLING_BACKGROUND_CID_B; to: "background";} - } - } - - part { name: "bg_alpha"; - type: RECT; - description { - state: "default" 0.0; - color: COLOR_BG_ALPHA; - } - } - - part { name: "swl_calling_name_bg"; - type: SWALLOW; - description { - state: "default" 0.0; - rel1 { relative: MT_CALLING_BG_L MT_CALLING_BG_T; to: "background";} - rel2 { relative: MT_CALLING_BG_R MT_CALLING_BG_B; to: "background";} - } - } - - part { name: "txt_call_name"; // call name or number - type: TEXT; - effect: SHADOW; - scale: 1; - description { - state: "default" 0.0; - rel1 { relative: DIALLING_NAME_L DIALLING_NAME_T;to: "background";} - rel2 { relative: DIALLING_NAME_R DIALLING_NAME_B;to: "background"; } - text { font, FONT_SLP_Roman; size, 76; align, 0.5 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; - } - } - - part { name: "txt_contact_phone_type"; // contact phone type -> call number - type: TEXT; - effect: SHADOW; - scale: 1; - description { - state: "default" 0.0; - rel1 { relative: DIALLING_NUMBER_L DIALLING_NUMBER_T; to: "background"; } - rel2 { relative: DIALLING_NUMBER_R DIALLING_NUMBER_B;to: "background"; } - text { font, FONT_SLP_Roman; size, 48; align, 0.5 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; - } - } - - part { name: "swl_cid"; - type: SWALLOW; - description { - state: "default" 0.0; - rel1 { relative: DIALLING_CID_L DIALLING_CID_T; } - rel2 { relative: DIALLING_CID_R DIALLING_CID_B; } - } - } - - /* - part { name: "txt_mt_status"; // Voice call - type: TEXT; - effect: SHADOW; - scale: 1; - description { - state: "default" 0.0; - rel1 { relative: DIALLING_MT_STATUS_L DIALLING_MT_STATUS_T;to: "background";} - rel2 { relative: DIALLING_MT_STATUS_R DIALLING_MT_STATUS_B;to: "background"; } - text { font, FONT_SLP_Roman; size, 48; align, 0.5 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; - } - } - */ - - part { name: "btn_accept"; - type: SWALLOW; - scale: 1; - description { - state: "default" 0.0; - rel1 { relative: DIALLING_MT_BTN1_L DIALLING_MT_BTN1_T; to: "background";} - rel2 { relative: DIALLING_MT_BTN1_R DIALLING_MT_BTN1_B; to: "background";} - } - } - part { name: "btn_reject"; - type: SWALLOW; - scale: 1; - description { - state: "default" 0.0; - rel1 { relative: DIALLING_MT_BTN2_L DIALLING_MT_BTN2_T; to: "background";} - rel2 { relative: DIALLING_MT_BTN2_R DIALLING_MT_BTN2_B; to: "background";} - } - } - - part { name: "btn_incoming1"; - type: SWALLOW; - scale: 1; - description { - state: "default" 0.0; - rel1 { relative: SIX_BTN_INCOMING_1_L SIX_BTN_INCOMING_1_T; to: "background";} - rel2 { relative: SIX_BTN_INCOMING_1_R SIX_BTN_INCOMING_1_B; to: "background";} - } - } - part { name: "btn_incoming2"; - type: SWALLOW; - scale: 1; - description { - state: "default" 0.0; - rel1 { relative: SIX_BTN_INCOMING_2_L SIX_BTN_INCOMING_2_T; to: "background";} - rel2 { relative: SIX_BTN_INCOMING_2_R SIX_BTN_INCOMING_2_B; to: "background";} - } - } - part { name: "btn_incoming3"; - type: SWALLOW; - scale: 1; - description { - state: "default" 0.0; - rel1 { relative: SIX_BTN_INCOMING_3_L SIX_BTN_INCOMING_3_T; to: "background";} - rel2 { relative: SIX_BTN_INCOMING_3_R SIX_BTN_INCOMING_3_B; to: "background";} - } - } - part { name: "btn_incoming4"; - type: SWALLOW; - scale: 1; - description { - state: "default" 0.0; - rel1 { relative: SIX_BTN_BIG_END_L SIX_BTN_BIG_END_T; to: "background";} - rel2 { relative: SIX_BTN_BIG_END_R SIX_BTN_BIG_END_B; to: "background";} - } - } - }//parts - - programs{ - - program { name: "init"; - signal: "INIT"; - source: "PROG"; - action: STATE_SET "default" 0.0; - target: "background"; - target: "swl_cid"; - target: "swl_cid_background"; - } - } - - } diff --git a/ui/call_edc/vcui-view-keypad.edc b/ui/call_edc/vcui-view-keypad.edc index 4d293ad..9316ac5 100755 --- a/ui/call_edc/vcui-view-keypad.edc +++ b/ui/call_edc/vcui-view-keypad.edc @@ -14,38 +14,7 @@ * limitations under the License. */ - -#define KEYPAD_EACH_BTN_WIDTH 200 -#define KEYPAD_COL1_BTN_L_PAD 40 -#define KEYPAD_COL2_BTN_L_PAD 260 -#define KEYPAD_COL3_BTN_L_PAD 480 - -#define KEYPAD_EACH_BTN_HEIGHT 138 -#define KEYPAD_BTN_TXT_REGION_HEIGHT 112 -#define KEYPAD_ROW1_BTN_T_PAD 0 -#define KEYPAD_ROW2_BTN_T_PAD 158 -#define KEYPAD_ROW3_BTN_T_PAD 316 -#define KEYPAD_ROW4_BTN_T_PAD 474 - -#define RIGHT_ICON_L_PAD 28 -#define RIGHT_ICON_WIDTH 70 -#define RIGHT_ICON_HEIGHT 36 - -#define LEFT_TXT_L_PAD 24 -#define LEFT_TXT_WIDTH 64 -#define RIGHT_TXT_TYPE1_L_PAD 28 -#define RIGHT_TXT_TYPE2_L_PAD 10 - -#define REL_KEYPAD_BTN_W(x) ((x)/KEYPAD_EACH_BTN_WIDTH) - -#define KEYPAD_BTN_LEFT_TXT_L REL_KEYPAD_BTN_W(LEFT_TXT_L_PAD) -#define KEYPAD_BTN_LEFT_TXT_R REL_KEYPAD_BTN_W(LEFT_TXT_L_PAD+LEFT_TXT_WIDTH) -#define KEYPAD_BTN_RIGHT_TXT_TYPE1_L REL_KEYPAD_BTN_W(LEFT_TXT_L_PAD+LEFT_TXT_WIDTH+RIGHT_TXT_TYPE1_L_PAD) -#define KEYPAD_BTN_RIGHT_TXT_TYPE2_L REL_KEYPAD_BTN_W(LEFT_TXT_L_PAD+LEFT_TXT_WIDTH+RIGHT_TXT_TYPE2_L_PAD) -#define KEYPAD_BTN_RIGHT_ICON_L REL_KEYPAD_BTN_W(LEFT_TXT_L_PAD+LEFT_TXT_WIDTH+RIGHT_ICON_L_PAD) -#define KEYPAD_BTN_RIGHT_ICON_R REL_KEYPAD_BTN_W(LEFT_TXT_L_PAD+LEFT_TXT_WIDTH+RIGHT_ICON_L_PAD+RIGHT_ICON_WIDTH) - -#define PART_KEYPAD_CUSTOM_TWO_LABLE(txt, offx, offy, file, file_press,label_left_text,label_left_font,label_left_size,label_right_text,label_right_font,label_right_size, right_txt_lpad) \ +#define PART_KEYPAD_CUSTOM_TWO_LABLE(txt, offx, offy, label_left_text, label_left_size, label_right_text, label_right_size, right_txt_lpad) \ part { \ name: txt; \ type: IMAGE; \ @@ -53,19 +22,15 @@ mouse_events: 1; \ description { \ state: "default" 0.0; \ - rel1 { relative: REL_KEYPAD_W(offx) REL_KEYPAD_H(offy); to:"keypad/bg";} \ - rel2 { relative: REL_KEYPAD_W(offx+KEYPAD_EACH_BTN_WIDTH) REL_KEYPAD_H(offy+KEYPAD_EACH_BTN_HEIGHT); to:"keypad/bg"; } \ - color: 255 255 255 179; \ - image { \ - normal: file; \ - border: 7 7 7 7; \ - border_scale: 1; \ - } \ + visible: 0; \ + rel1 { relative: REL_KEYPAD_W(offx) REL_KEYPAD_H(offy); to:"keypad/area";} \ + rel2 { relative: REL_KEYPAD_W(offx+KEYPAD_EACH_BTN_WIDTH) REL_KEYPAD_H(offy+KEYPAD_EACH_BTN_HEIGHT); to:"keypad/area"; } \ } \ description { \ state: "pressed" 0.0; \ inherit: "default" 0.0; \ - image.normal: file_press; \ + visible: 1; \ + image.normal: IMG_SRC_DIR/"vc_keypad_btn_press.png"; \ } \ description { \ state: "hide" 0.0; \ @@ -87,11 +52,12 @@ align: 0.5 0.5; \ color: 221 210 202 255; \ text { \ - font: label_left_font; \ + font: FONT_SLP_Light; \ text: label_left_text; \ size: label_left_size; \ min: 1 1; \ align: 0.5 0.5; \ + text_class: TEXT_CLASS_SLP_LIGHT; \ } \ } \ description { \ @@ -114,11 +80,12 @@ align: 0.5 0.5; \ color: 221 210 202 255; \ text { \ - font: label_right_font; \ + font: FONT_SLP_Roman; \ text: label_right_text; \ size: label_right_size; \ min: 1 1; \ align: 0.0 0.5; \ + text_class: TEXT_CLASS_SLP_ROMAN; \ } \ } \ description { \ @@ -126,30 +93,35 @@ inherit: "default" 0.0; \ visible: 0; \ } \ - } + } \ + part { name: "over_"txt; \ + mouse_events: 1; \ + repeat_events: 1; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + rel1 { relative: 0 0; to: txt; } \ + rel2 { relative: 1 1; to: txt; } \ + } \ + } -#define PART_KEYPAD_CUSTOM_ONELABEL_ONEICON(txt, offx, offy, file, file_press,icon_right,icon_right_sizex,icon_right_sizey,label_left_text,label_left_font,label_left_size) \ +#define PART_KEYPAD_CUSTOM_ONELABEL_ONEICON(txt, offx, offy, icon_right, icon_right_sizex, icon_right_sizey, label_left_text, label_left_size) \ part { \ name: txt; \ type: IMAGE; \ scale: 1; \ - mouse_events: 1; \ + mouse_events: 0; \ description { \ state: "default" 0.0; \ - rel1 { relative: REL_KEYPAD_W(offx) REL_KEYPAD_H(offy); to:"keypad/bg";} \ - rel2 { relative: REL_KEYPAD_W(offx+KEYPAD_EACH_BTN_WIDTH) REL_KEYPAD_H(offy+KEYPAD_EACH_BTN_HEIGHT); to:"keypad/bg"; } \ - color: 255 255 255 179; \ - image { \ - normal: file; \ - border: 7 7 7 7; \ - border_scale: 1; \ - } \ + visible: 0; \ + rel1 { relative: REL_KEYPAD_W(offx) REL_KEYPAD_H(offy); to:"keypad/area";} \ + rel2 { relative: REL_KEYPAD_W(offx+KEYPAD_EACH_BTN_WIDTH) REL_KEYPAD_H(offy+KEYPAD_EACH_BTN_HEIGHT); to:"keypad/area"; } \ } \ description { \ state: "pressed" 0.0; \ inherit: "default" 0.0; \ - image.normal: file_press; \ + visible: 1; \ + image.normal: IMG_SRC_DIR/"vc_keypad_btn_press.png"; \ } \ description { \ state: "hide" 0.0; \ @@ -171,11 +143,12 @@ align: 0.5 0.5; \ color: 221 210 202 255; \ text { \ - font: label_left_font; \ + font: FONT_SLP_Light; \ text: label_left_text; \ size: label_left_size; \ min: 1 1; \ align: 0.5 0.5; \ + text_class: TEXT_CLASS_SLP_LIGHT; \ } \ } \ description { \ @@ -204,15 +177,22 @@ inherit: "default" 0.0; \ visible: 0; \ } \ - } - - + } \ + part { name: "over_"txt; \ + mouse_events: 1; \ + repeat_events: 1; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + rel1 { relative: 0 0; to: txt; } \ + rel2 { relative: 1 1; to: txt; } \ + } \ + } #define PROG_KEYPAD(txt) \ program { \ name: "down_"txt; \ signal: "mouse,down,*"; \ - source: txt; \ + source: "over_"txt; \ script { \ set_state(PART:txt, "pressed", 0.0); \ emit("pad_down", txt); \ @@ -221,7 +201,7 @@ program { \ name: "ani_"txt; \ signal: "ani"; \ - source: txt; \ + source: "over_"txt; \ action: STATE_SET "default" 0.0; \ transition: SINUSOIDAL 0.1; \ target: txt; \ @@ -229,16 +209,17 @@ program { \ name: "up_"txt; \ signal: "mouse,up,1"; \ - source: txt; \ + source: "over_"txt; \ script { \ + set_state(PART:txt, "default", 0.0); \ emit("pad_up", txt); \ - emit("ani", txt); \ + emit("ani", "over_"txt); \ } \ } \ program { \ name: "clicked_"txt; \ signal: "mouse,clicked,1"; \ - source: txt; \ + source: "over_"txt; \ script { \ emit("pad_clicked", txt); \ } \ @@ -247,70 +228,124 @@ #define TARGET_KEYPAD(txt) \ target: txt; \ target: txt"_left"; \ - target: txt"_right"; + target: txt"_right"; \ + target: "over_"txt; -group{ - name: "keypad"; - parts { - part { name: "background"; +#define SEPARATOR_LINE_1(part_name, left, right, top, bottom) \ + part { name: part_name; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: 1 1; \ + rel1 { relative: left top; to: "background"; } \ + rel2 { relative: right bottom; to: "background"; } \ + color: 140 136 137 255; \ + } \ + } + +#define SEPARATOR_LINE_2(part_name, left, right, top, bottom) \ + part { name: part_name; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: 1 1; \ + rel1 { relative: left top; to: "background"; } \ + rel2 { relative: right bottom; to: "background"; } \ + color: 91 91 91 255; \ + } \ + } + +group { + name: "keypad-separator"; + parts { + part { name: "background"; type: RECT; description { state: "default" 0.0; - color: COLOR_DEFAULT; + color: COLOR_BG_ALPHA; } } - part { name: "swl_cid_background"; - type: SWALLOW; - description { - state: "default" 0.0; - rel1 { relative: DIALLING_BACKGROUND_CID_L DIALLING_BACKGROUND_CID_T; to: "background";} - rel2 { relative: DIALLING_BACKGROUND_CID_R DIALLING_BACKGROUND_CID_B; to: "background";} - } - } + SEPARATOR_LINE_1("row1_left_vert_1", KEYPAD_ROW1_LVERT_SEP1_L, KEYPAD_ROW1_LVERT_SEP1_R, KEYPAD_ROW1_LVERT_SEP1_T, KEYPAD_ROW1_LVERT_SEP1_B) + SEPARATOR_LINE_2("row1_left_vert_2", KEYPAD_ROW1_LVERT_SEP2_L, KEYPAD_ROW1_LVERT_SEP2_R, KEYPAD_ROW1_LVERT_SEP2_T, KEYPAD_ROW1_LVERT_SEP2_B) + SEPARATOR_LINE_1("row1_right_vert_1", KEYPAD_ROW1_RVERT_SEP1_L, KEYPAD_ROW1_RVERT_SEP1_R, KEYPAD_ROW1_RVERT_SEP1_T, KEYPAD_ROW1_RVERT_SEP1_B) + SEPARATOR_LINE_2("row1_right_vert_2", KEYPAD_ROW1_RVERT_SEP2_L, KEYPAD_ROW1_RVERT_SEP2_R, KEYPAD_ROW1_RVERT_SEP2_T, KEYPAD_ROW1_RVERT_SEP2_B) + + SEPARATOR_LINE_1("row1_horiz_1", KEYPAD_ROW1_HORIZ_SEP1_L, KEYPAD_ROW1_HORIZ_SEP1_R, KEYPAD_ROW1_HORIZ_SEP1_T, KEYPAD_ROW1_HORIZ_SEP1_B) + SEPARATOR_LINE_2("row1_horiz_2", KEYPAD_ROW1_HORIZ_SEP2_L, KEYPAD_ROW1_HORIZ_SEP2_R, KEYPAD_ROW1_HORIZ_SEP2_T, KEYPAD_ROW1_HORIZ_SEP2_B) + + SEPARATOR_LINE_1("row2_left_vert_1", KEYPAD_ROW2_LVERT_SEP1_L, KEYPAD_ROW2_LVERT_SEP1_R, KEYPAD_ROW2_LVERT_SEP1_T, KEYPAD_ROW2_LVERT_SEP1_B) + SEPARATOR_LINE_2("row2_left_vert_2", KEYPAD_ROW2_LVERT_SEP2_L, KEYPAD_ROW2_LVERT_SEP2_R, KEYPAD_ROW2_LVERT_SEP2_T, KEYPAD_ROW2_LVERT_SEP2_B) + SEPARATOR_LINE_1("row2_right_vert_1", KEYPAD_ROW2_RVERT_SEP1_L, KEYPAD_ROW2_RVERT_SEP1_R, KEYPAD_ROW2_RVERT_SEP1_T, KEYPAD_ROW2_RVERT_SEP1_B) + SEPARATOR_LINE_2("row2_right_vert_2", KEYPAD_ROW2_RVERT_SEP2_L, KEYPAD_ROW2_RVERT_SEP2_R, KEYPAD_ROW2_RVERT_SEP2_T, KEYPAD_ROW2_RVERT_SEP2_B) + + SEPARATOR_LINE_1("row2_horiz_1", KEYPAD_ROW2_HORIZ_SEP1_L, KEYPAD_ROW2_HORIZ_SEP1_R, KEYPAD_ROW2_HORIZ_SEP1_T, KEYPAD_ROW2_HORIZ_SEP1_B) + SEPARATOR_LINE_2("row2_horiz_2", KEYPAD_ROW2_HORIZ_SEP2_L, KEYPAD_ROW2_HORIZ_SEP2_R, KEYPAD_ROW2_HORIZ_SEP2_T, KEYPAD_ROW2_HORIZ_SEP2_B) + + SEPARATOR_LINE_1("row3_left_vert_1", KEYPAD_ROW3_LVERT_SEP1_L, KEYPAD_ROW3_LVERT_SEP1_R, KEYPAD_ROW3_LVERT_SEP1_T, KEYPAD_ROW3_LVERT_SEP1_B) + SEPARATOR_LINE_2("row3_left_vert_2", KEYPAD_ROW3_LVERT_SEP2_L, KEYPAD_ROW3_LVERT_SEP2_R, KEYPAD_ROW3_LVERT_SEP2_T, KEYPAD_ROW3_LVERT_SEP2_B) + SEPARATOR_LINE_1("row3_right_vert_1", KEYPAD_ROW3_RVERT_SEP1_L, KEYPAD_ROW3_RVERT_SEP1_R, KEYPAD_ROW3_RVERT_SEP1_T, KEYPAD_ROW3_RVERT_SEP1_B) + SEPARATOR_LINE_2("row3_right_vert_2", KEYPAD_ROW3_RVERT_SEP2_L, KEYPAD_ROW3_RVERT_SEP2_R, KEYPAD_ROW3_RVERT_SEP2_T, KEYPAD_ROW3_RVERT_SEP2_B) + + SEPARATOR_LINE_1("row3_horiz_1", KEYPAD_ROW3_HORIZ_SEP1_L, KEYPAD_ROW3_HORIZ_SEP1_R, KEYPAD_ROW3_HORIZ_SEP1_T, KEYPAD_ROW3_HORIZ_SEP1_B) + SEPARATOR_LINE_2("row3_horiz_2", KEYPAD_ROW3_HORIZ_SEP2_L, KEYPAD_ROW3_HORIZ_SEP2_R, KEYPAD_ROW3_HORIZ_SEP2_T, KEYPAD_ROW3_HORIZ_SEP2_B) + + SEPARATOR_LINE_1("row4_left_vert_1", KEYPAD_ROW4_LVERT_SEP1_L, KEYPAD_ROW4_LVERT_SEP1_R, KEYPAD_ROW4_LVERT_SEP1_T, KEYPAD_ROW4_LVERT_SEP1_B) + SEPARATOR_LINE_2("row4_left_vert_2", KEYPAD_ROW4_LVERT_SEP2_L, KEYPAD_ROW4_LVERT_SEP2_R, KEYPAD_ROW4_LVERT_SEP2_T, KEYPAD_ROW4_LVERT_SEP2_B) + SEPARATOR_LINE_1("row4_right_vert_1", KEYPAD_ROW4_RVERT_SEP1_L, KEYPAD_ROW4_RVERT_SEP1_R, KEYPAD_ROW4_RVERT_SEP1_T, KEYPAD_ROW4_RVERT_SEP1_B) + SEPARATOR_LINE_2("row4_right_vert_2", KEYPAD_ROW4_RVERT_SEP2_L, KEYPAD_ROW4_RVERT_SEP2_R, KEYPAD_ROW4_RVERT_SEP2_T, KEYPAD_ROW4_RVERT_SEP2_B) + } +} - part { name: "bg_alpha"; +group{ + name: "keypad"; + parts { + part { name: "background"; type: RECT; description { state: "default" 0.0; - color: COLOR_BG_ALPHA; + color: 255 255 255 0; } } - - part { name: "keypad/bg"; + part { name: "keypad/area"; type: SWALLOW; scale: 1; description { state: "default" 0.0; visible: 0; - rel1 { relative: DIALLING_KEYPAD_L DIALLING_KEYPAD_B; to: "background";} - rel2 { relative: DIALLING_KEYPAD_R DIALLING_KEYPAD_B; to: "background";} + rel1 { relative: 0 1; to: "background"; } + rel2 { relative: 1 1; to: "background"; } } description { state: "show" 0.0; visible: 1; - rel1 { relative: DIALLING_KEYPAD_L DIALLING_KEYPAD_T; to: "background";} - rel2 { relative: DIALLING_KEYPAD_R DIALLING_KEYPAD_B; to: "background";} + rel1 { relative: 0 0; to: "background"; } + rel2 { relative: 1 1; to: "background"; } } description { state: "hide" 0.0; inherit: "default" 0.0; - visible: 0; } } part { name: "textblock/bg"; - type: SWALLOW; + type: IMAGE; mouse_events: 0; scale: 1; description { state: "default" 0.0; - rel1 { relative:DIALLING_ENTRY_TEXT_L DIALLING_ENTRY_TEXT_T ; to: "background";} - rel2 { relative: DIALLING_ENTRY_TEXT_R DIALLING_ENTRY_TEXT_B ; to: "background";} - //rel2 { relative: 1.0 0.0; to: "button/bg";} - // color: 246 245 237 255; + rel1 { relative: KEYPAD_ENTRY_TEXT_L KEYPAD_ENTRY_TEXT_T; to: "keypad/area"; } + rel2 { relative: KEYPAD_ENTRY_TEXT_R KEYPAD_ENTRY_TEXT_B; to: "keypad/area"; } + color: 255 255 255 179; + image { + normal: IMG_SRC_DIR/"vc_keypad_btn_normal.png"; + border: 9 9 9 9; + border_scale: 1; + } } } @@ -322,104 +357,73 @@ group{ state: "default" 0.0; fixed: 1 1; align: 0.5 0.5; - rel1 { relative: 0.0 0.0; to: "textblock/bg"; } + rel1 { relative: 0.04 0.0; to: "textblock/bg"; } rel2 { relative: 1.0 1.0; to: "textblock/bg"; } } - description { - state: "hide" 0.0; + description { + state: "show" 0.0; + inherit: "default" 0.0; + } + description { + state: "hide" 0.0; inherit: "default" 0.0; - visible: 0; - } + visible: 0; + } } - part { - name: "txt_timer"; - type: TEXT; - effect: SHADOW; + part { + name: "keypad_btns/bg"; + type: IMAGE; + mouse_events: 0; scale: 1; description { state: "default" 0.0; - visible: 0; - rel1 { relative: INCALL_DIALER_TIMER_L INCALL_DIALER_TIMER_T; to:"background";} - rel2 { relative: INCALL_DIALER_TIMER_R INCALL_DIALER_TIMER_B; to:"background";} - text { font, FONT_SLP_Roman; size, 48; align, 1.0 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; + rel1 { relative: KEYPAD_BTNS_BG_L KEYPAD_BTNS_BG_T; to: "keypad/area"; } + rel2 { relative: KEYPAD_BTNS_BG_R KEYPAD_BTNS_BG_B; to: "keypad/area"; } + color: 255 255 255 179; + image { + normal: IMG_SRC_DIR/"vc_keypad_btn_normal.png"; + border: 9 9 9 9; + border_scale: 1; + } } - description { - state: "show" 0.0; - inherit: "default" 0.0; - visible: 1; - } - description { - state: "hide" 0.0; - inherit: "default" 0.0; - visible: 0; - } } - - part { - name: "txt_call_name"; // call name or number - type: TEXT; - effect: SHADOW; + part { + name: "separator/bg"; + type: SWALLOW; scale: 1; description { state: "default" 0.0; visible: 0; - rel1 { relative: INCALL_DIALER_NAME_L INCALL_DIALER_NAME_T;to: "background";} - rel2 { relative: INCALL_DIALER_NAME_R INCALL_DIALER_NAME_B;to: "background"; } - text { font, FONT_SLP_Roman; size, 48; align, 0.0 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; + rel1 { relative: 0 0; to: "keypad_btns/bg"; } + rel2 { relative: 1 1; to: "keypad_btns/bg"; } } description { state: "show" 0.0; inherit: "default" 0.0; visible: 1; - } + } description { state: "hide" 0.0; inherit: "default" 0.0; - visible: 0; - } + visible: 0; + } } - PART_KEYPAD_CUSTOM_ONELABEL_ONEICON("1", KEYPAD_COL1_BTN_L_PAD, KEYPAD_ROW1_BTN_T_PAD, IMG_SRC_DIR/"./keypad/vc_keypad_btn_normal.png", IMG_SRC_DIR/"./keypad/vc_keypad_btn_press.png", IMG_SRC_DIR/"./keypad/vc_keypad_btn_icon.png", RIGHT_ICON_WIDTH, RIGHT_ICON_HEIGHT, "1", FONT_SLP_Roman, KEYPAD_BTN_TXT_REGION_HEIGHT) - PART_KEYPAD_CUSTOM_TWO_LABLE("2", KEYPAD_COL2_BTN_L_PAD, KEYPAD_ROW1_BTN_T_PAD, IMG_SRC_DIR/"./keypad/vc_keypad_btn_normal.png", IMG_SRC_DIR/"./keypad/vc_keypad_btn_press.png", "2", FONT_SLP_Roman, KEYPAD_BTN_TXT_REGION_HEIGHT, "ABC", FONT_SLP_Roman, 32, KEYPAD_BTN_RIGHT_TXT_TYPE1_L) - PART_KEYPAD_CUSTOM_TWO_LABLE("3", KEYPAD_COL3_BTN_L_PAD, KEYPAD_ROW1_BTN_T_PAD, IMG_SRC_DIR/"./keypad/vc_keypad_btn_normal.png", IMG_SRC_DIR/"./keypad/vc_keypad_btn_press.png", "3", FONT_SLP_Roman, KEYPAD_BTN_TXT_REGION_HEIGHT, "DEF", FONT_SLP_Roman, 32, KEYPAD_BTN_RIGHT_TXT_TYPE1_L) - PART_KEYPAD_CUSTOM_TWO_LABLE("4", KEYPAD_COL1_BTN_L_PAD, KEYPAD_ROW2_BTN_T_PAD, IMG_SRC_DIR/"./keypad/vc_keypad_btn_normal.png", IMG_SRC_DIR/"./keypad/vc_keypad_btn_press.png", "4", FONT_SLP_Roman, KEYPAD_BTN_TXT_REGION_HEIGHT, "GHI", FONT_SLP_Roman, 32, KEYPAD_BTN_RIGHT_TXT_TYPE1_L) - PART_KEYPAD_CUSTOM_TWO_LABLE("5", KEYPAD_COL2_BTN_L_PAD, KEYPAD_ROW2_BTN_T_PAD, IMG_SRC_DIR/"./keypad/vc_keypad_btn_normal.png", IMG_SRC_DIR/"./keypad/vc_keypad_btn_press.png", "5", FONT_SLP_Roman, KEYPAD_BTN_TXT_REGION_HEIGHT, "JKL", FONT_SLP_Roman, 32, KEYPAD_BTN_RIGHT_TXT_TYPE1_L) - PART_KEYPAD_CUSTOM_TWO_LABLE("6", KEYPAD_COL3_BTN_L_PAD, KEYPAD_ROW2_BTN_T_PAD, IMG_SRC_DIR/"./keypad/vc_keypad_btn_normal.png", IMG_SRC_DIR/"./keypad/vc_keypad_btn_press.png", "6", FONT_SLP_Roman, KEYPAD_BTN_TXT_REGION_HEIGHT, "MNO", FONT_SLP_Roman, 32, KEYPAD_BTN_RIGHT_TXT_TYPE1_L) - PART_KEYPAD_CUSTOM_TWO_LABLE("7", KEYPAD_COL1_BTN_L_PAD, KEYPAD_ROW3_BTN_T_PAD, IMG_SRC_DIR/"./keypad/vc_keypad_btn_normal.png", IMG_SRC_DIR/"./keypad/vc_keypad_btn_press.png", "7", FONT_SLP_Roman, KEYPAD_BTN_TXT_REGION_HEIGHT, "PQRS", FONT_SLP_Roman, 32, KEYPAD_BTN_RIGHT_TXT_TYPE2_L) - PART_KEYPAD_CUSTOM_TWO_LABLE("8", KEYPAD_COL2_BTN_L_PAD, KEYPAD_ROW3_BTN_T_PAD, IMG_SRC_DIR/"./keypad/vc_keypad_btn_normal.png", IMG_SRC_DIR/"./keypad/vc_keypad_btn_press.png", "8", FONT_SLP_Roman, KEYPAD_BTN_TXT_REGION_HEIGHT, "TUV", FONT_SLP_Roman, 32, KEYPAD_BTN_RIGHT_TXT_TYPE1_L) - PART_KEYPAD_CUSTOM_TWO_LABLE("9", KEYPAD_COL3_BTN_L_PAD, KEYPAD_ROW3_BTN_T_PAD, IMG_SRC_DIR/"./keypad/vc_keypad_btn_normal.png", IMG_SRC_DIR/"./keypad/vc_keypad_btn_press.png", "9", FONT_SLP_Roman, KEYPAD_BTN_TXT_REGION_HEIGHT, "WXYZ", FONT_SLP_Roman, 32, KEYPAD_BTN_RIGHT_TXT_TYPE2_L) - PART_KEYPAD_CUSTOM_TWO_LABLE("star", KEYPAD_COL1_BTN_L_PAD, KEYPAD_ROW4_BTN_T_PAD, IMG_SRC_DIR/"./keypad/vc_keypad_btn_normal.png", IMG_SRC_DIR/"./keypad/vc_keypad_btn_press.png", "*", FONT_SLP_Roman, KEYPAD_BTN_TXT_REGION_HEIGHT, "P", FONT_SLP_Roman, 64, KEYPAD_BTN_RIGHT_TXT_TYPE1_L) - PART_KEYPAD_CUSTOM_TWO_LABLE("0", KEYPAD_COL2_BTN_L_PAD, KEYPAD_ROW4_BTN_T_PAD, IMG_SRC_DIR/"./keypad/vc_keypad_btn_normal.png", IMG_SRC_DIR/"./keypad/vc_keypad_btn_press.png", "0", FONT_SLP_Roman, KEYPAD_BTN_TXT_REGION_HEIGHT, "+", FONT_SLP_Roman, 64, KEYPAD_BTN_RIGHT_TXT_TYPE1_L) - PART_KEYPAD_CUSTOM_TWO_LABLE("sharp", KEYPAD_COL3_BTN_L_PAD, KEYPAD_ROW4_BTN_T_PAD, IMG_SRC_DIR/"./keypad/vc_keypad_btn_normal.png", IMG_SRC_DIR/"./keypad/vc_keypad_btn_press.png", "#", FONT_SLP_Roman, KEYPAD_BTN_TXT_REGION_HEIGHT, "", FONT_SLP_Roman, 64, KEYPAD_BTN_RIGHT_TXT_TYPE2_L) - - - part { - name: "btn_hide"; - type: SWALLOW; - scale: 1; - description { - state: "default" 0.0; - rel1 { relative: DIALER_BTN1_L DIALER_BTN1_T; to: "background";} - rel2 { relative: DIALER_BTN1_R DIALER_BTN1_B; to: "background";} - } - } + PART_KEYPAD_CUSTOM_ONELABEL_ONEICON("1", KEYPAD_COL1_BTN_L_PAD, KEYPAD_ROW1_BTN_T_PAD, IMG_SRC_DIR/"vc_keypad_btn_icon.png", RIGHT_ICON_WIDTH, RIGHT_ICON_HEIGHT, "1", KEYPAD_BTN_TXT_REGION_HEIGHT) + PART_KEYPAD_CUSTOM_TWO_LABLE("2", KEYPAD_COL2_BTN_L_PAD, KEYPAD_ROW1_BTN_T_PAD, "2", KEYPAD_BTN_TXT_REGION_HEIGHT, "ABC", 32, KEYPAD_BTN_RIGHT_TXT_TYPE1_L) + PART_KEYPAD_CUSTOM_TWO_LABLE("3", KEYPAD_COL3_BTN_L_PAD, KEYPAD_ROW1_BTN_T_PAD, "3", KEYPAD_BTN_TXT_REGION_HEIGHT, "DEF", 32, KEYPAD_BTN_RIGHT_TXT_TYPE1_L) + PART_KEYPAD_CUSTOM_TWO_LABLE("4", KEYPAD_COL1_BTN_L_PAD, KEYPAD_ROW2_BTN_T_PAD, "4", KEYPAD_BTN_TXT_REGION_HEIGHT, "GHI", 32, KEYPAD_BTN_RIGHT_TXT_TYPE1_L) + PART_KEYPAD_CUSTOM_TWO_LABLE("5", KEYPAD_COL2_BTN_L_PAD, KEYPAD_ROW2_BTN_T_PAD, "5", KEYPAD_BTN_TXT_REGION_HEIGHT, "JKL", 32, KEYPAD_BTN_RIGHT_TXT_TYPE1_L) + PART_KEYPAD_CUSTOM_TWO_LABLE("6", KEYPAD_COL3_BTN_L_PAD, KEYPAD_ROW2_BTN_T_PAD, "6", KEYPAD_BTN_TXT_REGION_HEIGHT, "MNO", 32, KEYPAD_BTN_RIGHT_TXT_TYPE1_L) + PART_KEYPAD_CUSTOM_TWO_LABLE("7", KEYPAD_COL1_BTN_L_PAD, KEYPAD_ROW3_BTN_T_PAD, "7", KEYPAD_BTN_TXT_REGION_HEIGHT, "PQRS", 32, KEYPAD_BTN_RIGHT_TXT_TYPE2_L) + PART_KEYPAD_CUSTOM_TWO_LABLE("8", KEYPAD_COL2_BTN_L_PAD, KEYPAD_ROW3_BTN_T_PAD, "8", KEYPAD_BTN_TXT_REGION_HEIGHT, "TUV", 32, KEYPAD_BTN_RIGHT_TXT_TYPE1_L) + PART_KEYPAD_CUSTOM_TWO_LABLE("9", KEYPAD_COL3_BTN_L_PAD, KEYPAD_ROW3_BTN_T_PAD, "9", KEYPAD_BTN_TXT_REGION_HEIGHT, "WXYZ", 32, KEYPAD_BTN_RIGHT_TXT_TYPE2_L) + PART_KEYPAD_CUSTOM_TWO_LABLE("star", KEYPAD_COL1_BTN_L_PAD, KEYPAD_ROW4_BTN_T_PAD, "*", KEYPAD_BTN_TXT_REGION_HEIGHT, "", 64, KEYPAD_BTN_RIGHT_TXT_TYPE1_L) + PART_KEYPAD_CUSTOM_TWO_LABLE("0", KEYPAD_COL2_BTN_L_PAD, KEYPAD_ROW4_BTN_T_PAD, "0", KEYPAD_BTN_TXT_REGION_HEIGHT, "", 64, KEYPAD_BTN_RIGHT_TXT_TYPE1_L) + PART_KEYPAD_CUSTOM_TWO_LABLE("sharp", KEYPAD_COL3_BTN_L_PAD, KEYPAD_ROW4_BTN_T_PAD, "#", KEYPAD_BTN_TXT_REGION_HEIGHT, "", 64, KEYPAD_BTN_RIGHT_TXT_TYPE2_L) - part { - name: "btn_end"; - type: SWALLOW; - scale: 1; - description { - state: "default" 0.0; - rel1 { relative: DIALER_BTN2_L DIALER_BTN2_T; to: "background";} - rel2 { relative: DIALER_BTN2_R DIALER_BTN2_B; to: "background";} - } - } } programs{ @@ -428,44 +432,31 @@ group{ source: "KEYPADBTN"; action: STATE_SET "show" 0.0; transition: LINEAR 0.5; - target: "keypad/bg"; + target: "keypad/area"; after: "show_keypadbtn_next"; } program { name: "show_keypadbtn_next"; action: STATE_SET "show" 0.0; - target: "txt_call_name"; - target: "txt_timer"; - } + target: "textblock/textarea"; + target: "separator/bg"; + } program { name: "hide_keypadbtn"; signal: "HIDE"; source: "KEYPADBTN"; action: STATE_SET "hide" 0.0; target: "textblock/textarea"; - target: "txt_call_name"; - target: "txt_timer"; + target: "separator/bg"; after: "hide_keypadbtn_next"; - } + } program { name: "hide_keypadbtn_next"; action: STATE_SET "hide" 0.0; transition: ACCELERATE 0.5; - target: "keypad/bg"; - TARGET_KEYPAD("1") - TARGET_KEYPAD("2") - TARGET_KEYPAD("3") - TARGET_KEYPAD("4") - TARGET_KEYPAD("5") - TARGET_KEYPAD("6") - TARGET_KEYPAD("7") - TARGET_KEYPAD("8") - TARGET_KEYPAD("9") - TARGET_KEYPAD("star") - TARGET_KEYPAD("0") - TARGET_KEYPAD("sharp") + target: "keypad/area"; after: "hide_keypadbtn_done"; - } + } program { name: "hide_keypadbtn_done"; action: SIGNAL_EMIT "DONE" "HIDEKEYPAD"; - } + } PROG_KEYPAD("1") PROG_KEYPAD("2") PROG_KEYPAD("3") diff --git a/ui/call_edc/vcui-view-landscape-quick-pannel.edc b/ui/call_edc/vcui-view-landscape-quick-pannel.edc new file mode 100755 index 0000000..cc62e80 --- /dev/null +++ b/ui/call_edc/vcui-view-landscape-quick-pannel.edc @@ -0,0 +1,122 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +group { + name: "quickpanel-lscape"; + parts { + + part { name: "background"; + type: RECT; + description { + state: "default" 0.0; + color: 20 20 20 255; + } + } + + part { name: "swl_cid"; + type: SWALLOW; + description { + state: "default" 0.0; + rel1 { relative: LSCAPE_QUICKPANEL_CID_L LSCAPE_QUICKPANEL_CID_T; to: "background";} + rel2 { relative: LSCAPE_QUICKPANEL_CID_R LSCAPE_QUICKPANEL_CID_B; to: "background";} + } + } + + part { name: "btn_left"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: LSCAPE_QUICKPANEL_BTN_MUTE_L LSCAPE_QUICKPANEL_BTN_MUTE_T; to: "background";} + rel2 { relative: LSCAPE_QUICKPANEL_BTN_MUTE_R LSCAPE_QUICKPANEL_BTN_MUTE_B; to: "background";} + } + } + + part { name: "btn_right"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: LSCAPE_QUICKPANEL_BTN_END_L LSCAPE_QUICKPANEL_BTN_END_T; to: "background";} + rel2 { relative: LSCAPE_QUICKPANEL_BTN_END_R LSCAPE_QUICKPANEL_BTN_END_B; to: "background";} + } + } + + part { name: "txt_area"; + type: RECT; + effect: SHADOW; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: LSCAPE_QUICKPANEL_NAME_L LSCAPE_QUICKPANEL_NAME_T; to: "background";} + rel2 { relative: LSCAPE_QUICKPANEL_NAME_R LSCAPE_QUICKPANEL_NAME_B; to: "background";} + } + } + + part { name: "txt_call_name"; + type: TEXT; + effect: SHADOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0 0; to: "txt_area";} + rel2 { relative: 0 1; to: "txt_padding";} + max: LSCAPE_QP_NAME_WIDTH LSCAPE_QP_NAME_HEIGHT; + min: QP_STR_MIN_WIDTH LSCAPE_QP_NAME_HEIGHT; + fixed: 0 1; + align: 0 0; + text { font, FONT_SLP_Regular; size, 32; align: 0 0.5; text_class, TEXT_CLASS_SLP_ROMAN; } + color: 249 249 249 255; + color2: 0 0 0 128; + } + } + + part { name: "txt_padding"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 0; + min: QP_CID_L_PAD 0; + align: 1 0; + visible: 0; + rel1 { relative: 0 0; to: "txt_timer";} + rel2 { relative: 0 1; to: "txt_timer";} + } + } + + part { name: "txt_timer"; + type: TEXT; + effect: SHADOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 1.0 0; to: "txt_area";} + rel2 { relative: 1.0 1; to: "txt_area";} + max: LSCAPE_QP_NAME_WIDTH LSCAPE_QP_NAME_HEIGHT; + min: QP_STR_MIN_WIDTH LSCAPE_QP_NAME_HEIGHT; + fixed: 0 1; + align: 1 0; + text { font, FONT_SLP_Regular; size, 32; align: 1 0.5; min: 1 0; text_class, TEXT_CLASS_SLP_ROMAN; } + color: 98 161 22 255; + color2: 0 0 0 191; + } + } + } +} \ No newline at end of file diff --git a/ui/call_edc/vcui-view-multi-call-conf.edc b/ui/call_edc/vcui-view-multi-call-conf.edc index 7937bc1..ca3f2dc 100755 --- a/ui/call_edc/vcui-view-multi-call-conf.edc +++ b/ui/call_edc/vcui-view-multi-call-conf.edc @@ -14,7 +14,6 @@ * limitations under the License. */ - group { name: "multicall-conf"; parts { @@ -35,11 +34,13 @@ group { } } - part { name: "bg_alpha"; - type: RECT; + part { name: "call_bg_img"; + type: SWALLOW; + mouse_events: 0; description { state: "default" 0.0; - color: COLOR_BG_ALPHA; + rel1 { relative: 0 0; to: "background";} + rel2 { relative: 1 1; to: "background";} } } @@ -78,72 +79,112 @@ group { } } - part { name: "txt_call_name"; /*call name or number*/ - type: TEXT; - effect: SHADOW; + part { name: "caller_info"; + type: SWALLOW; scale: 1; description { state: "default" 0.0; - rel1 { relative: INCALL_NAME_L INCALL_NAME_T; } - rel2 { relative: INCALL_NAME_R INCALL_NAME_B; } - text { font, FONT_SLP_Roman; size, 76; align, 0.5 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; + visible: 1; + rel1 { relative: CALLER_INFO_L CALLER_INFO_T; to: "background";} + rel2 { relative: CALLER_INFO_R CALLER_INFO_B; to: "background";} + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; } } - part { name: "txt_contact_phone_type"; /*in case of multicallconf, it is num of people*/ - type: TEXT; - effect: SHADOW; + part { name: "btn_hold_swap"; + type: SWALLOW; scale: 1; description { state: "default" 0.0; - rel1 { relative: INCALL_NUMBER_L INCALL_NUMBER_T; } - rel2 { relative: INCALL_NUMBER_R INCALL_NUMBER_B; } - text { font, FONT_SLP_Roman; size, 48; align, 0.5 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; + rel1 { relative: INCALL_HOLD_L INCALL_HOLD_T; to: "background";} + rel2 { relative: INCALL_HOLD_R INCALL_HOLD_B; to: "background";} + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; } } - part { name: "txt_timer"; + part { name: "txt_hold_swap"; type: TEXT; effect: SHADOW; scale: 1; description { state: "default" 0.0; - rel1 { relative: INCALL_TIMER_L INCALL_TIMER_T; } - rel2 { relative: INCALL_TIMER_R INCALL_TIMER_B; } - text { font, FONT_SLP_Roman; size, 48; align, 1.0 0.5; } - color: 255 255 255 255; + rel1 { relative: INCALL_HOLD_TXT_L INCALL_HOLD_TXT_T; to: "background";} + rel2 { relative: INCALL_HOLD_TXT_R INCALL_HOLD_TXT_B; to: "background";} + text { font, FONT_SLP_Roman; size, 26; align, 0.0 0.5; text_class, TEXT_CLASS_SLP_ROMAN; } + color: 204 204 204 255; color2: 0 0 0 255; } description { - state: "end" 0.0; + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; inherit: "default" 0.0; visible: 0; } } - part { name: "btn_bigend"; + part { name: "btn_bg"; type: SWALLOW; scale: 1; description { state: "default" 0.0; - rel1 { relative: SIX_BTN_BIG_END_L SIX_BTN_BIG_END_T; to: "background";} - rel2 { relative: SIX_BTN_BIG_END_R SIX_BTN_BIG_END_B; to: "background";} + rel1 { relative: SIX_BTN_LAYOUT_L SIX_BTN_LAYOUT_T; to: "background";} + rel2 { relative: SIX_BTN_LAYOUT_R SIX_BTN_LAYOUT_B; to: "background";} } } - part { name: "btn_speaker"; + part { name: "btn_region"; type: SWALLOW; scale: 1; description { state: "default" 0.0; - rel1 { relative: SIX_BTN_1_L SIX_BTN_2_T; to: "background";} - rel2 { relative: SIX_BTN_1_R SIX_BTN_2_B; to: "background";} + rel1 { relative: 0 0; to: "btn_bg"; } + rel2 { relative: 1 1; to: "btn_bg"; } } } + + part { name: "keypad_region"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: KEYPAD_AREA_L KEYPAD_AREA_T; to: "background";} + rel2 { relative: KEYPAD_AREA_R KEYPAD_AREA_B; to: "background";} + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + }//parts programs { @@ -165,5 +206,35 @@ group { action: STATE_SET "hd" 0.0; target: "swl_cid_dim"; } + + program { name: "show_keypadbtn"; + signal: "SHOW"; + source: "KEYPAD_BTN"; + action: STATE_SET "show" 0.0; + target: "keypad_region"; + } + program { name: "hide_keypadbtn"; + signal: "HIDE"; + source: "KEYPAD_BTN"; + action: STATE_SET "hide" 0.0; + target: "keypad_region"; + } + + program { name: "show_after_keypad"; + signal: "SHOW"; + source: "CALL_AREA"; + action: STATE_SET "show" 0.0; + target: "caller_info"; + target: "btn_hold_swap"; + target: "txt_hold_swap"; + } + program { name: "hide_caller_info"; + signal: "HIDE"; + source: "CALL_AREA"; + action: STATE_SET "hide" 0.0; + target: "caller_info"; + target: "btn_hold_swap"; + target: "txt_hold_swap"; + } } -} \ No newline at end of file +} diff --git a/ui/call_edc/vcui-view-multi-call-list.edc b/ui/call_edc/vcui-view-multi-call-list.edc index 5028996..b0af10a 100755 --- a/ui/call_edc/vcui-view-multi-call-list.edc +++ b/ui/call_edc/vcui-view-multi-call-list.edc @@ -14,7 +14,6 @@ * limitations under the License. */ - group { name: "multicall-list"; parts { @@ -24,19 +23,6 @@ group { state: "default" 0.0; color: COLOR_DEFAULT; } - description { - state: "show" 0.0; - color: COLOR_DEFAULT; - } - } - - part { name: "swl_cid_background"; - type: SWALLOW; - description { - state: "default" 0.0; - rel1 { relative: MULTICALL_SPLIT_BACKGROUND_CID_L MULTICALL_SPLIT_BACKGROUND_CID_T; to: "background";} - rel2 { relative: MULTICALL_SPLIT_BACKGROUND_CID_R MULTICALL_SPLIT_BACKGROUND_CID_B; to: "background";} - } } part { name: "bg_alpha"; @@ -46,19 +32,6 @@ group { color: COLOR_BG_ALPHA; } } - - part { name: "navigation_bar"; - type: SWALLOW; - scale: 1; - mouse_events: 1; - description { - fixed: 1 1; - min: 0 50; - state: "default" 0.0; - rel1 { relative: CALL_NAVIGATION_BAR_L CALL_NAVIGATION_BAR_T; to: "background";} - rel2 { relative: CALL_NAVIGATION_BAR_R CALL_NAVIGATION_BAR_B; to: "background";} - } - } part { name: "swl_calllist"; type: SWALLOW; @@ -81,8 +54,8 @@ group { state: "default" 0.0; rel1 { relative: MULTICALL_LIST_TIMER_L MULTICALL_LIST_TIMER_T; to: "background"; } rel2 { relative: MULTICALL_LIST_TIMER_R MULTICALL_LIST_TIMER_B; to: "background"; } - text { font, FONT_SLP_Roman; size, 48; align, 0.5 0.5; } - color: 255 255 255 255; + text { font, FONT_SLP_Roman; size, 48; align, 0.5 0.5; text_class, TEXT_CLASS_SLP_ROMAN; } + color: 249 249 249 255; color2: 0 0 0 255; } description { @@ -92,6 +65,16 @@ group { } } + part { name: "btn_hold"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: MULTICALL_LIST_HOLD_L MULTICALL_LIST_HOLD_T; to: "background"; } + rel2 { relative: MULTICALL_LIST_HOLD_R MULTICALL_LIST_HOLD_B; to: "background"; } + } + } + part { name: "btn_bigend"; type: SWALLOW; scale: 1; diff --git a/ui/call_edc/vcui-view-multi-call-split.edc b/ui/call_edc/vcui-view-multi-call-split.edc index 5579bf1..65e0511 100755 --- a/ui/call_edc/vcui-view-multi-call-split.edc +++ b/ui/call_edc/vcui-view-multi-call-split.edc @@ -14,7 +14,6 @@ * limitations under the License. */ - group { name: "multicall-split"; parts { @@ -41,80 +40,29 @@ group { } } - part { name: "bg_alpha"; - type: RECT; - description { - state: "default" 0.0; - color: COLOR_BG_ALPHA; - } - } - - part { name: "swl_cid_1"; + part { name: "swl_cid_unhold"; type: SWALLOW; description { state: "default" 0.0; visible: 0; - } - description { - state: "portrait" 0.0; - visible: 1; rel1 { relative: MULTICALL_SPLIT_CID_1_L MULTICALL_SPLIT_CID_1_T; } rel2 { relative: MULTICALL_SPLIT_CID_1_R MULTICALL_SPLIT_CID_1_B; } } - } - - part { name: "swl_pause"; - type: SWALLOW; - description { - state: "default" 0.0; - visible: 0; - } description { state: "portrait" 0.0; + inherit: "default" 0.0; visible: 1; - rel1 { relative: MULTICALL_SPLIT_PAUSE_L MULTICALL_SPLIT_PAUSE_T; } - rel2 { relative: MULTICALL_SPLIT_PAUSE_R MULTICALL_SPLIT_PAUSE_B; } } } - part { name: "swl_cid_2"; + part { name: "swl_cid_hold"; type: SWALLOW; description { state: "default" 0.0; visible: 0; - } - description { - state: "portrait" 0.0; - visible: 1; rel1 { relative: MULTICALL_SPLIT_CID_2_L MULTICALL_SPLIT_CID_2_T; } rel2 { relative: MULTICALL_SPLIT_CID_2_R MULTICALL_SPLIT_CID_2_B; } } - } - - part { name: "swl_cid_2_dim"; /*dim icon for held call*/ - type: RECT; - scale: 1; - mouse_events: 1; - repeat_events: 1; - description { - state: "default" 0.0; - visible: 0; - color: COLOR_BG_FOR_HELD_CALL_DIM; - } - description { - state: "portrait_wvga" 0.0; - inherit: "default" 0.0; - rel1 { relative: 0.0 0.0; offset: 4 0; to: "swl_cid_2"; } - rel2 { relative: 1.0 1.0; offset: -5 0; to: "swl_cid_2"; } - visible: 1; - } - description { - state: "portrait_hd" 0.0; - inherit: "default" 0.0; - rel1 { relative: 0.0 0.0; to: "swl_cid_2"; } - rel2 { relative: 1.0 1.0; to: "swl_cid_2"; } - visible: 1; - } description { state: "portrait" 0.0; inherit: "default" 0.0; @@ -122,466 +70,105 @@ group { } } - part { name: "swl_play"; + part { name: "call_bg_img"; type: SWALLOW; + mouse_events: 0; description { state: "default" 0.0; - visible: 0; - } - description { - state: "portrait" 0.0; - visible: 1; - rel1 { relative: MULTICALL_SPLIT_PLAY_L MULTICALL_SPLIT_PLAY_T; } - rel2 { relative: MULTICALL_SPLIT_PLAY_R MULTICALL_SPLIT_PLAY_B; } - } - } - - part { name: "txt_call_name_1"; /*call name or number*/ - type: TEXT; - effect: SHADOW; - scale: 1; - description { - state: "default" 0.0; - visible: 0; - text { font, FONT_SLP_Roman; size, 58; align, 0.5 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; - } - description { - state: "portrait" 0.0; - inherit: "default" 0.0; - visible: 1; - rel1 { relative: MULTICALL_SPLIT_NAME_1_L MULTICALL_SPLIT_NAME_1_T; } - rel2 { relative: MULTICALL_SPLIT_NAME_1_R MULTICALL_SPLIT_NAME_1_B; } + rel1 { relative: 0 0; to: "background";} + rel2 { relative: 1 1; to: "background";} } } - part { name: "txt_call_name_2"; /*call name or number*/ - type: TEXT; - effect: SHADOW; - scale: 1; - description { - state: "default" 0.0; - visible: 0; - text { font, FONT_SLP_Roman; size, 36; align, 0.5 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; - } - description { - state: "portrait" 0.0; - inherit: "default" 0.0; - visible: 1; - rel1 { relative: MULTICALL_SPLIT_NAME_2_L MULTICALL_SPLIT_NAME_2_T; } - rel2 { relative: MULTICALL_SPLIT_NAME_2_R MULTICALL_SPLIT_NAME_2_B; } - } - } - - /* part { name: "txt_active"; - type: TEXT; - effect: SHADOW; - scale: 1; - description { - state: "default" 0.0; - visible: 0; - text { font, FONT_SLP_Roman; size, 28; align, 0.0 0.5; } - color: 139 246 50 255; - color2: 0 0 0 255; - } - description { - state: "portrait" 0.0; - inherit: "default" 0.0; - visible: 1; - rel1 { relative: MULTICALL_SPLIT_ACTIVE_TXT_L MULTICALL_SPLIT_ACTIVE_TXT_T; } - rel2 { relative: MULTICALL_SPLIT_ACTIVE_TXT_R MULTICALL_SPLIT_ACTIVE_TXT_B; } - } - } - */ - - part { name: "swl_more"; + part { name: "caller_info_unhold"; type: SWALLOW; scale: 1; description { state: "default" 0.0; visible: 0; - } - description { - state: "portrait" 0.0; - visible: 1; - rel1 { relative: MULTICALL_SPLIT_MORE_ICON_L MULTICALL_SPLIT_MORE_ICON_T; to: "background";} - rel2 { relative: MULTICALL_SPLIT_MORE_ICON_R MULTICALL_SPLIT_MORE_ICON_B; to: "background";} - } - } - - part { name: "txt_onhold"; - type: TEXT; - effect: SHADOW; - scale: 1; - description { - state: "default" 0.0; - visible: 0; - text { font, FONT_SLP_Roman; size, 36; align, 0.5 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; + rel1 { relative: CALLER_INFO_L CALLER_INFO_T; to: "background";} + rel2 { relative: CALLER_INFO_R CALLER_INFO_B; to: "background";} } description { state: "portrait" 0.0; inherit: "default" 0.0; visible: 1; - rel1 { relative: MULTICALL_SPLIT_ON_HOLD_TXT_L MULTICALL_SPLIT_ON_HOLD_TXT_T; } - rel2 { relative: MULTICALL_SPLIT_ON_HOLD_TXT_R MULTICALL_SPLIT_ON_HOLD_TXT_B; } } description { - state: "portrait_icon" 0.0; - inherit: "default" 0.0; - visible: 1; - rel1 { relative: MULTICALL_SPLIT_ON_HOLD_TXT_WITH_ICON_L MULTICALL_SPLIT_ON_HOLD_TXT_WITH_ICON_T; } - rel2 { relative: MULTICALL_SPLIT_ON_HOLD_TXT_WITH_ICON_R MULTICALL_SPLIT_ON_HOLD_TXT_WITH_ICON_B; } - } - } - - part { name: "txt_timer"; - type: TEXT; - effect: SHADOW; - scale: 1; - description { - state: "default" 0.0; - visible: 0; - text { font, FONT_SLP_Roman; size, 44; align, 0.5 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; - } - description { - state: "end" 0.0; + state: "hide" 0.0; inherit: "default" 0.0; visible: 0; } - description { - state: "portrait" 0.0; - inherit: "default" 0.0; - visible: 1; - rel1 { relative: MULTICALL_SPLIT_TIMER_L MULTICALL_SPLIT_TIMER_T; } - rel2 { relative: MULTICALL_SPLIT_TIMER_R MULTICALL_SPLIT_TIMER_B; } - } - } - - part { name: "btn_bigend"; - type: SWALLOW; - scale: 1; - description { - state: "default" 0.0; - visible: 0; - } - description { - state: "portrait" 0.0; - visible: 1; - rel1 { relative: SIX_BTN_BIG_END_L SIX_BTN_BIG_END_T; to: "background";} - rel2 { relative: SIX_BTN_BIG_END_R SIX_BTN_BIG_END_B; to: "background";} - } } - part { name: "btn_speaker"; + part { name: "caller_info_hold"; type: SWALLOW; scale: 1; description { state: "default" 0.0; visible: 0; + rel1 { relative: CALLER_INFO_HOLD_L CALLER_INFO_HOLD_T; to: "background";} + rel2 { relative: CALLER_INFO_HOLD_R CALLER_INFO_HOLD_B; to: "background";} } description { state: "portrait" 0.0; - visible: 1; - rel1 { relative: SIX_BTN_1_L SIX_BTN_2_T; to: "background";} - rel2 { relative: SIX_BTN_1_R SIX_BTN_2_B; to: "background";} - } - } - }//parts - - programs { - program { name: "show_portrait_mode"; - signal: "set-portrait"; - source: "incall-split1-view"; - action: STATE_SET "portrait" 0.0; - target: "swl_cid_background"; - target: "swl_cid_1"; - target: "swl_cid_2"; - target: "swl_pause"; - target: "swl_play"; - target: "txt_call_name_1"; - target: "txt_call_name_2"; - target: "txt_onhold"; - target: "txt_timer"; - target: "btn_bigend"; - target: "btn_speaker"; - } - program { name: "show_portrait_swl_dim_wvga"; - signal: "show-swl-dim-wvga"; - source: "cid-wvga"; - action: STATE_SET "portrait_wvga" 0.0; - target: "swl_cid_2_dim"; - } - program { name: "show_portrait_swl_dim_hd"; - signal: "show-swl-dim-hd"; - source: "cid-hd"; - action: STATE_SET "portrait_hd" 0.0; - target: "swl_cid_2_dim"; - } - program { name: "show_conf_list_portrait"; - signal: "show-more-portrait"; - source: "incall-split1-conf-call"; - action: STATE_SET "portrait" 0.0; - target: "swl_more"; - } - program { name: "show_conf_list_portrait_onhold"; - signal: "show-more-portrait"; - source: "incall-split1-conf-call"; - action: STATE_SET "portrait_icon" 0.0; - target: "txt_onhold"; - } - } -} - -group { - - name: "multicall-split2"; - parts { - - part { name: "background"; - type: RECT; - description { - state: "default" 0.0; - color: COLOR_DEFAULT; - } - } - - part { name: "swl_cid_background"; - type: SWALLOW; - description { - state: "default" 0.0; - visible: 0; - } - description { - state: "portrait" 0.0; - visible: 1; - rel1 { relative: MULTICALL_SPLIT_BACKGROUND_CID_L MULTICALL_SPLIT_BACKGROUND_CID_T; to: "background";} - rel2 { relative: MULTICALL_SPLIT_BACKGROUND_CID_R MULTICALL_SPLIT_BACKGROUND_CID_B; to: "background";} - } - } - - part { name: "bg_alpha"; - type: RECT; - description { - state: "default" 0.0; - color: COLOR_BG_ALPHA; - } - } - - part { name: "swl_cid_1"; - type: SWALLOW; - description { - state: "default" 0.0; - visible: 0; - } - description { - state: "portrait" 0.0; - visible: 1; - rel1 { relative: MULTICALL_SPLIT_SWAP_CID_2_L MULTICALL_SPLIT_SWAP_CID_2_T; } - rel2 { relative: MULTICALL_SPLIT_SWAP_CID_2_R MULTICALL_SPLIT_SWAP_CID_2_B; } - } - } - - part { name: "swl_pause"; - type: SWALLOW; - description { - state: "default" 0.0; - visible: 0; - } - description { - state: "portrait" 0.0; - visible: 1; - rel1 { relative: MULTICALL_SPLIT_SWAP_PAUSE_L MULTICALL_SPLIT_SWAP_PAUSE_T; } - rel2 { relative: MULTICALL_SPLIT_SWAP_PAUSE_R MULTICALL_SPLIT_SWAP_PAUSE_B; } - } - } - - part { name: "swl_cid_2"; - type: SWALLOW; - description { - state: "default" 0.0; - visible: 0; - } - description { - state: "portrait" 0.0; - visible: 1; - rel1 { relative: MULTICALL_SPLIT_SWAP_CID_1_L MULTICALL_SPLIT_SWAP_CID_1_T; } - rel2 { relative: MULTICALL_SPLIT_SWAP_CID_1_R MULTICALL_SPLIT_SWAP_CID_1_B; } - } - } - - part { name: "swl_cid_2_dim"; /*for held call dim*/ - type: RECT; - scale: 1; - mouse_events: 1; - repeat_events: 1; - description { - state: "default" 0.0; - visible: 0; - rel1 { relative: 0.0 0.0; to: "swl_cid_2"; } - rel2 { relative: 1.0 1.0; to: "swl_cid_2"; } - color: COLOR_BG_FOR_HELD_CALL_DIM; - } - description { - state: "portrait_wvga" 0.0; inherit: "default" 0.0; - rel1 { relative: 0.0 0.0; offset: 4 0; to: "swl_cid_2"; } - rel2 { relative: 1.0 1.0; offset: -5 0; to: "swl_cid_2"; } visible: 1; } description { - state: "portrait_hd" 0.0; + state: "hide" 0.0; inherit: "default" 0.0; - rel1 { relative: 0.0 0.0; to: "swl_cid_2"; } - rel2 { relative: 1.0 1.0; to: "swl_cid_2"; } - visible: 1; + visible: 0; } } - part { name: "swl_play"; + part { name: "btn_hold_swap"; type: SWALLOW; - description { - state: "default" 0.0; - visible: 0; - } - description { - state: "portrait" 0.0; - visible: 1; - rel1 { relative: MULTICALL_SPLIT_SWAP_PLAY_L MULTICALL_SPLIT_SWAP_PLAY_T; } - rel2 { relative: MULTICALL_SPLIT_SWAP_PLAY_R MULTICALL_SPLIT_SWAP_PLAY_B; } - } - } - - part { name: "txt_call_name_1"; /*call name or number*/ - type: TEXT; - effect: SHADOW; scale: 1; description { state: "default" 0.0; visible: 0; - text { font, FONT_SLP_Roman; size, 58; align, 0.5 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; + rel1 { relative: INCALL_HOLD_L INCALL_HOLD_T; to: "background";} + rel2 { relative: INCALL_HOLD_R INCALL_HOLD_B; to: "background";} } description { state: "portrait" 0.0; inherit: "default" 0.0; visible: 1; - rel1 { relative: MULTICALL_SPLIT_SWAP_NAME_2_L MULTICALL_SPLIT_SWAP_NAME_2_T; } - rel2 { relative: MULTICALL_SPLIT_SWAP_NAME_2_R MULTICALL_SPLIT_SWAP_NAME_2_B; } - } - } - - part { name: "txt_call_name_2"; /*call name or number*/ - type: TEXT; - effect: SHADOW; - scale: 1; - description { - state: "default" 0.0; - visible: 0; - text { font, FONT_SLP_Roman; size, 36; align, 0.5 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; } description { - state: "portrait" 0.0; + state: "hide" 0.0; inherit: "default" 0.0; - visible: 1; - rel1 { relative: MULTICALL_SPLIT_SWAP_NAME_1_L MULTICALL_SPLIT_SWAP_NAME_1_T; } - rel2 { relative: MULTICALL_SPLIT_SWAP_NAME_1_R MULTICALL_SPLIT_SWAP_NAME_1_B; } - } - } - - part { name: "swl_more"; - type: SWALLOW; - scale: 1; - description { - state: "default" 0.0; visible: 0; } - description { - state: "portrait" 0.0; - visible: 1; - rel1 { relative: MULTICALL_SPLIT_SWAP_MORE_ICON_L MULTICALL_SPLIT_SWAP_MORE_ICON_T; to: "background";} - rel2 { relative: MULTICALL_SPLIT_SWAP_MORE_ICON_R MULTICALL_SPLIT_SWAP_MORE_ICON_B; to: "background";} - } } - part { name: "txt_onhold"; + part { name: "txt_hold_swap"; type: TEXT; effect: SHADOW; scale: 1; description { state: "default" 0.0; visible: 0; - text { font, FONT_SLP_Roman; size, 36; align, 0.5 0.5; } - color: 255 255 255 255; + rel1 { relative: INCALL_HOLD_TXT_L INCALL_HOLD_TXT_T; to: "background";} + rel2 { relative: INCALL_HOLD_TXT_R INCALL_HOLD_TXT_B; to: "background";} + text { font, FONT_SLP_Roman; size, 26; align, 0.0 0.5; text_class, TEXT_CLASS_SLP_ROMAN; } + color: 204 204 204 255; color2: 0 0 0 255; } description { state: "portrait" 0.0; inherit: "default" 0.0; visible: 1; - rel1 { relative: MULTICALL_SPLIT_SWAP_ON_HOLD_TXT_L MULTICALL_SPLIT_SWAP_ON_HOLD_TXT_T; } - rel2 { relative: MULTICALL_SPLIT_SWAP_ON_HOLD_TXT_R MULTICALL_SPLIT_SWAP_ON_HOLD_TXT_B; } - } - } - - - part { name: "txt_timer"; - type: TEXT; - effect: SHADOW; - scale: 1; - description { - state: "default" 0.0; - visible: 0; - text { font, FONT_SLP_Roman; size, 44; align, 0.5 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; } description { - state: "end" 0.0; + state: "hide" 0.0; inherit: "default" 0.0; visible: 0; } - description { - state: "portrait" 0.0; - inherit: "default" 0.0; - visible: 1; - rel1 { relative: MULTICALL_SPLIT_SWAP_TIMER_L MULTICALL_SPLIT_SWAP_TIMER_T; } - rel2 { relative: MULTICALL_SPLIT_SWAP_TIMER_R MULTICALL_SPLIT_SWAP_TIMER_B; } - } - description { - state: "portrait_icon" 0.0; - inherit: "default" 0.0; - visible: 1; - rel1 { relative: MULTICALL_SPLIT_SWAP_TIMER_WITH_ICON_L MULTICALL_SPLIT_SWAP_TIMER_WITH_ICON_T; } - rel2 { relative: MULTICALL_SPLIT_SWAP_TIMER_WITH_ICON_R MULTICALL_SPLIT_SWAP_TIMER_WITH_ICON_B; } - } - } - - part { name: "btn_bigend"; - type: SWALLOW; - scale: 1; - description { - state: "default" 0.0; - visible: 0; - } - description { - state: "portrait" 0.0; - visible: 1; - rel1 { relative: SIX_BTN_BIG_END_L SIX_BTN_BIG_END_T; to: "background";} - rel2 { relative: SIX_BTN_BIG_END_R SIX_BTN_BIG_END_B; to: "background";} - } } - part { name: "btn_keypad"; + part { name: "btn_bg"; type: SWALLOW; scale: 1; description { @@ -591,12 +178,12 @@ group { description { state: "portrait" 0.0; visible: 1; - rel1 { relative: SIX_BTN_1_L SIX_BTN_1_T; to: "background";} - rel2 { relative: SIX_BTN_1_R SIX_BTN_1_B; to: "background";} + rel1 { relative: SIX_BTN_LAYOUT_L SIX_BTN_LAYOUT_T; to: "background";} + rel2 { relative: SIX_BTN_LAYOUT_R SIX_BTN_LAYOUT_B; to: "background";} } } - part { name: "btn_addcall"; + part { name: "btn_region"; type: SWALLOW; scale: 1; description { @@ -606,123 +193,78 @@ group { description { state: "portrait" 0.0; visible: 1; - rel1 { relative: SIX_BTN_2_L SIX_BTN_1_T; to: "background";} - rel2 { relative: SIX_BTN_2_R SIX_BTN_1_B; to: "background";} + rel1 { relative: 0 0; to: "btn_bg"; } + rel2 { relative: 1 1; to: "btn_bg"; } } } - part { name: "btn_join"; + part { name: "keypad_region"; type: SWALLOW; scale: 1; description { state: "default" 0.0; visible: 0; + rel1 { relative: KEYPAD_AREA_L KEYPAD_AREA_T; to: "background";} + rel2 { relative: KEYPAD_AREA_R KEYPAD_AREA_B; to: "background";} } description { - state: "portrait" 0.0; - visible: 1; - rel1 { relative: SIX_BTN_3_L SIX_BTN_1_T; to: "background";} - rel2 { relative: SIX_BTN_3_R SIX_BTN_1_B; to: "background";} - } - } - - part { name: "btn_speaker"; - type: SWALLOW; - scale: 1; - description { - state: "default" 0.0; - visible: 0; - } - description { - state: "portrait" 0.0; - visible: 1; - rel1 { relative: SIX_BTN_1_L SIX_BTN_2_T; to: "background";} - rel2 { relative: SIX_BTN_1_R SIX_BTN_2_B; to: "background";} - } - } - - part { name: "btn_mute"; - type: SWALLOW; - scale: 1; - description { - state: "default" 0.0; - visible: 0; - } - description { - state: "portrait" 0.0; + state: "show" 0.0; + inherit: "default" 0.0; visible: 1; - rel1 { relative: SIX_BTN_2_L SIX_BTN_2_T; to: "background";} - rel2 { relative: SIX_BTN_2_R SIX_BTN_2_B; to: "background";} } - } - - part { name: "btn_contacts"; - type: SWALLOW; - scale: 1; description { - state: "default" 0.0; + state: "hide" 0.0; + inherit: "default" 0.0; visible: 0; } - description { - state: "portrait" 0.0; - visible: 1; - rel1 { relative: SIX_BTN_3_L SIX_BTN_2_T; to: "background";} - rel2 { relative: SIX_BTN_3_R SIX_BTN_2_B; to: "background";} - } } }//parts programs { program { name: "show_portrait_mode"; signal: "set-portrait"; - source: "incall-split2-view"; + source: "incall-split-view"; action: STATE_SET "portrait" 0.0; - target: "swl_cid_background"; - target: "swl_cid_1"; - target: "swl_cid_2"; - target: "swl_pause"; - target: "swl_play"; - target: "txt_call_name_1"; - target: "txt_call_name_2"; - target: "txt_onhold"; - target: "txt_timer"; - target: "btn_bigend"; - target: "btn_keypad"; - target: "btn_contacts"; - target: "btn_join"; - target: "btn_speaker"; - target: "btn_mute"; - target: "btn_addcall"; - } - program { name: "show_portrait_swl_dim_wvga"; - signal: "show-swl-dim-wvga"; - source: "cid-wvga"; - action: STATE_SET "portrait_wvga" 0.0; - target: "swl_cid_2_dim"; - } - program { name: "show_portrait_swl_dim_hd"; - signal: "show-swl-dim-hd"; - source: "cid-hd"; - action: STATE_SET "portrait_hd" 0.0; - target: "swl_cid_2_dim"; - } - program { name: "show_conf_list_portrait"; - signal: "show-more-portrait"; - source: "incall-split2-conf-call"; + target: "btn_hold_swap"; + target: "txt_hold_swap"; + target: "btn_bg"; + target: "btn_region"; + target: "swl_cid_unhold"; + target: "swl_cid_hold"; + target: "caller_info_hold"; + target: "caller_info_unhold"; + } + + program { name: "show_keypadbtn"; + signal: "SHOW"; + source: "KEYPAD_BTN"; + action: STATE_SET "show" 0.0; + target: "keypad_region"; + } + program { name: "hide_keypadbtn"; + signal: "HIDE"; + source: "KEYPAD_BTN"; + action: STATE_SET "hide" 0.0; + target: "keypad_region"; + } + + program { name: "show_after_keypad"; + signal: "SHOW"; + source: "CALL_AREA"; action: STATE_SET "portrait" 0.0; - target: "swl_more"; - } - program { name: "show_conf_list_portrait_onhold"; - signal: "show-more-portrait"; - source: "incall-split2-conf-call"; - action: STATE_SET "portrait_icon" 0.0; - target: "txt_timer"; - } - program { name: "hide_conf_list"; - signal: "hide-more"; - source: "incall-split-view"; - action: STATE_SET "default" 0.0; - target: "swl_more"; + target: "caller_info_hold"; + target: "caller_info_unhold"; + target: "btn_hold_swap"; + target: "txt_hold_swap"; + } + program { name: "hide_caller_info"; + signal: "HIDE"; + source: "CALL_AREA"; + action: STATE_SET "hide" 0.0; + target: "caller_info_hold"; + target: "caller_info_unhold"; + target: "btn_hold_swap"; + target: "txt_hold_swap"; } } } diff --git a/ui/call_edc/vcui-view-naviframe.edc b/ui/call_edc/vcui-view-naviframe.edc index 64eaf3c..2821dc3 100755 --- a/ui/call_edc/vcui-view-naviframe.edc +++ b/ui/call_edc/vcui-view-naviframe.edc @@ -14,17 +14,29 @@ * limitations under the License. */ - group { - name: "navigation_view"; - parts { - part { + name: "navigation_view"; + parts { + part { name: "base"; type: RECT; description { - state: "default" 0.0; - color: 0 0 0 0; + state: "default" 0.0; + color: 0 0 0 0; + } + } + + part { name: "swl_msglist"; + type: SWALLOW; + description { + state: "show" 0.0; + rel1 { relative: REJECT_W_MSG_LIST_L REJECT_W_MSG_LIST_T; to: "base";} + rel2 { relative: REJECT_W_MSG_LIST_R REJECT_W_MSG_LIST_B; to: "base";} + } + description { + state: "hide" 0.0; + visible: 0; } } - } + } } \ No newline at end of file diff --git a/ui/call_edc/vcui-view-quick-pannel.edc b/ui/call_edc/vcui-view-quick-pannel.edc new file mode 100755 index 0000000..49bb47d --- /dev/null +++ b/ui/call_edc/vcui-view-quick-pannel.edc @@ -0,0 +1,133 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +group { + name: "quickpanel"; + + parts { + + part { name: "background"; + type: RECT; + description { + state: "default" 0.0; + color: 20 20 20 255; + } + } + + part { name: "swl_cid"; + type: SWALLOW; + description { + state: "default" 0.0; + rel1 { relative: CALL_QUICKPANEL_CID_L CALL_QUICKPANEL_CID_T; to: "background";} + rel2 { relative: CALL_QUICKPANEL_CID_R CALL_QUICKPANEL_CID_B; to: "background";} + } + } + + part { name: "btn_left"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: CALL_QUICKPANEL_BTN_MUTE_L CALL_QUICKPANEL_BTN_MUTE_T; to: "background";} + rel2 { relative: CALL_QUICKPANEL_BTN_MUTE_R CALL_QUICKPANEL_BTN_MUTE_B; to: "background";} + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "btn_right"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: CALL_QUICKPANEL_BTN_END_L CALL_QUICKPANEL_BTN_END_T; to: "background";} + rel2 { relative: CALL_QUICKPANEL_BTN_END_R CALL_QUICKPANEL_BTN_END_B; to: "background";} + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "txt_area"; + type: RECT; + effect: SHADOW; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: CALL_QUICKPANEL_NAME_L CALL_QUICKPANEL_NAME_T; to: "background";} + rel2 { relative: CALL_QUICKPANEL_NAME_R CALL_QUICKPANEL_NAME_B; to: "background";} + } + } + + part { name: "txt_call_name"; + type: TEXT; + effect: SHADOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0 0; to: "txt_area";} + rel2 { relative: 0 1; to: "txt_padding";} + max: QP_NAME_WIDTH QP_NAME_HEIGHT; + min: QP_STR_MIN_WIDTH QP_NAME_HEIGHT; + fixed: 0 1; + align: 0 0; + text { font, FONT_SLP_Regular; size, 32; align: 0 0.5; text_class, TEXT_CLASS_SLP_ROMAN; } + color: 249 249 249 255; + color2: 0 0 0 128; + } + } + + part { name: "txt_padding"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 0; + min: QP_CID_L_PAD 0; + align: 1 0; + visible: 0; + rel1 { relative: 0 0; to: "txt_timer";} + rel2 { relative: 0 1; to: "txt_timer";} + } + } + + part { name: "txt_timer"; + type: TEXT; + effect: SHADOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 1.0 0; to: "txt_area";} + rel2 { relative: 1.0 1; to: "txt_area";} + max: QP_NAME_WIDTH QP_NAME_HEIGHT; + min: QP_STR_MIN_WIDTH QP_NAME_HEIGHT; + fixed: 0 1; + align: 1 0; + text { font, FONT_SLP_Regular; size, 32; align: 1 0.5; min: 1 0; text_class, TEXT_CLASS_SLP_ROMAN; } + color: 98 161 22 255; + color2: 0 0 0 191; + } + } + } +} \ No newline at end of file diff --git a/ui/call_edc/vcui-view-reject.edc b/ui/call_edc/vcui-view-reject.edc new file mode 100755 index 0000000..3095362 --- /dev/null +++ b/ui/call_edc/vcui-view-reject.edc @@ -0,0 +1,72 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +group { + name: "reject_with_msg"; + parts { + part { name: "background"; + type: RECT; + description { + state: "default" 0.0; + color: COLOR_DEFAULT; + } + description { + state: "show" 0.0; + color: COLOR_DEFAULT; + } + } + + part { name: "swl_cid_background"; + type: SWALLOW; + description { + state: "default" 0.0; + rel1 { relative: INCALL_BACKGROUND_CID_L INCALL_BACKGROUND_CID_T; to: "background";} + rel2 { relative: INCALL_BACKGROUND_CID_R INCALL_BACKGROUND_CID_B; to: "background";} + } + } + + part { name: "bg_alpha"; + type: RECT; + description { + state: "default" 0.0; + color: COLOR_BG_ALPHA; + } + } + + part { name: "swl_naviframe"; + type: SWALLOW; + scale: 1; + mouse_events: 1; + description { + fixed: 1 1; + min: 0 50; + state: "default" 0.0; + rel1 { relative: CALL_NAVIGATION_BAR_L CALL_NAVIGATION_BAR_T; to: "background";} + rel2 { relative: CALL_NAVIGATION_BAR_R CALL_NAVIGATION_BAR_B; to: "background";} + } + } + + part { name: "btn_create_new"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: REJECT_W_MSG_CREATE_NEW_L REJECT_W_MSG_CREATE_NEW_T; to: "background";} + rel2 { relative: REJECT_W_MSG_CREATE_NEW_R REJECT_W_MSG_CREATE_NEW_B; to: "background";} + } + } + } +} diff --git a/ui/call_edc/vcui-view-single-call.edc b/ui/call_edc/vcui-view-single-call.edc index a7daf0d..3b74e4d 100755 --- a/ui/call_edc/vcui-view-single-call.edc +++ b/ui/call_edc/vcui-view-single-call.edc @@ -14,7 +14,6 @@ * limitations under the License. */ - group { name: "incall"; parts { @@ -31,22 +30,24 @@ group { type: SWALLOW; description { state: "default" 0.0; - visible: 1; + visible: 1; rel1 { relative: INCALL_BACKGROUND_CID_L INCALL_BACKGROUND_CID_T; to: "background";} rel2 { relative: INCALL_BACKGROUND_CID_R INCALL_BACKGROUND_CID_B; to: "background";} } - description { + description { state: "hide" 0.0; inherit: "default" 0.0; visible: 0; - } + } } - part { name: "bg_alpha"; - type: RECT; + part { name: "call_bg_img"; + type: SWALLOW; + mouse_events: 0; description { state: "default" 0.0; - color: COLOR_BG_ALPHA; + rel1 { relative: 0 0; to: "background";} + rel2 { relative: 1 1; to: "background";} } } @@ -59,7 +60,7 @@ group { } } - part { name: "swl_cid_dim"; // for held call dim + part { name: "swl_cid_dim"; type: RECT; scale: 1; description { @@ -82,91 +83,150 @@ group { rel2 { relative: 1.0 1.0; to: "swl_cid";} } } - - part { name: "txt_call_name"; // call name or number - type: TEXT; - effect: SHADOW; + + part { name: "swl_share_background"; + type: RECT; + description { + state: "default" 0.0; + visible: 0; + color: 50 42 37 255; + rel1 { relative: INCALL_BACKGROUND_SHARE_L INCALL_BACKGROUND_SHARE_T; to: "background";} + rel2 { relative: INCALL_BACKGROUND_SHARE_R INCALL_BACKGROUND_SHARE_B; to: "background";} + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + part { name: "caller_info"; + type: SWALLOW; scale: 1; description { state: "default" 0.0; - rel1 { relative: INCALL_NAME_L INCALL_NAME_T; } - rel2 { relative: INCALL_NAME_R INCALL_NAME_B; } - text { font, FONT_SLP_Roman; size, 76; align, 0.5 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; + visible: 1; + rel1 { relative: CALLER_INFO_L CALLER_INFO_T; to: "background";} + rel2 { relative: CALLER_INFO_R CALLER_INFO_B; to: "background";} + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; } } - part { name: "txt_contact_phone_type"; // contact phone type -> call number - type: TEXT; - effect: SHADOW; + part { name: "btn_hold_swap"; + type: SWALLOW; scale: 1; description { state: "default" 0.0; - rel1 { relative: INCALL_NUMBER_L INCALL_NUMBER_T; } - rel2 { relative: INCALL_NUMBER_R INCALL_NUMBER_B; } - text { font, FONT_SLP_Roman; size, 48; align, 0.5 0.5; } - color: 255 255 255 255; - color2: 0 0 0 255; + visible: 0; + fixed: 1 1; + rel1 { relative: INCALL_HOLD_L INCALL_HOLD_B; to: "background";} + rel2 { relative: INCALL_HOLD_R INCALL_HOLD_B; to: "background";} + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + rel1 { relative: INCALL_HOLD_L INCALL_HOLD_T; to: "background";} + rel2 { relative: INCALL_HOLD_R INCALL_HOLD_B; to: "background";} + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; } } - part { name: "txt_timer"; + part { name: "txt_hold_swap"; type: TEXT; effect: SHADOW; scale: 1; description { state: "default" 0.0; - rel1 { relative: INCALL_TIMER_L INCALL_TIMER_T; } - rel2 { relative: INCALL_TIMER_R INCALL_TIMER_B; } - text { font, FONT_SLP_Roman; size, 48; align, 1.0 0.5; } - color: 255 255 255 255; + visible: 0; + rel1 { relative: INCALL_HOLD_TXT_L INCALL_HOLD_TXT_B; to: "background";} + rel2 { relative: INCALL_HOLD_TXT_R INCALL_HOLD_TXT_B; to: "background";} + text { font, FONT_SLP_Roman; size, 26; align, 0.0 0.5; text_class, TEXT_CLASS_SLP_ROMAN; } + color: 204 204 204 255; color2: 0 0 0 255; } description { - state: "end" 0.0; + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + rel1 { relative: INCALL_HOLD_TXT_L INCALL_HOLD_TXT_T; to: "background";} + rel2 { relative: INCALL_HOLD_TXT_R INCALL_HOLD_TXT_B; to: "background";} + } + description { + state: "hide" 0.0; inherit: "default" 0.0; visible: 0; } } - part { name: "btn_bigend"; + part { name: "btn_bg"; type: SWALLOW; scale: 1; description { state: "default" 0.0; visible: 0; - fixed: 1 1; - rel1 { relative: SIX_BTN_BIG_END_L 1.0; to: "background";} - rel2 { relative: SIX_BTN_BIG_END_R 1.0; to: "background";} + rel1 { relative: SIX_BTN_LAYOUT_L SIX_BTN_LAYOUT_B; to: "background";} + rel2 { relative: SIX_BTN_LAYOUT_R SIX_BTN_LAYOUT_B; to: "background";} } description { state: "show" 0.0; inherit: "default" 0.0; visible: 1; - rel1 { relative: SIX_BTN_BIG_END_L SIX_BTN_BIG_END_T; to: "background";} - rel2 { relative: SIX_BTN_BIG_END_R SIX_BTN_BIG_END_B; to: "background";} + rel1 { relative: SIX_BTN_LAYOUT_L SIX_BTN_LAYOUT_T; to: "background";} + rel2 { relative: SIX_BTN_LAYOUT_R SIX_BTN_LAYOUT_B; to: "background";} } } - part { name: "btn_speaker"; + part { name: "btn_region"; type: SWALLOW; scale: 1; description { state: "default" 0.0; visible: 0; - fixed: 1 1; - rel1 { relative: SIX_BTN_1_L 1.0; to: "background";} - rel2 { relative: SIX_BTN_1_R 1.0; to: "background";} - } + rel1 { relative: 0 0; to: "btn_bg"; } + rel2 { relative: 1 1; to: "btn_bg"; } + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + part { name: "keypad_region"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + rel1 { relative: KEYPAD_AREA_L KEYPAD_AREA_T; to: "background";} + rel2 { relative: KEYPAD_AREA_R KEYPAD_AREA_B; to: "background";} + } description { state: "show" 0.0; inherit: "default" 0.0; visible: 1; - rel1 { relative: SIX_BTN_1_L SIX_BTN_2_T; to: "background";} - rel2 { relative: SIX_BTN_1_R SIX_BTN_2_B; to: "background";} + } + description { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; } } + }//parts programs { @@ -175,18 +235,21 @@ group { source: "ALLBTN"; action: STATE_SET "show" 0.0; transition: DECELERATE 0.5; //LINEAR 1.0; - target: "btn_bigend"; - target: "btn_speaker"; + target: "btn_hold_swap"; + target: "txt_hold_swap"; + target: "btn_bg"; + target: "btn_region"; } - program { name: "show_no_effect_allbtn"; signal: "SHOW_NO_EFFECT"; source: "ALLBTN"; action: STATE_SET "show" 0.0; - target: "btn_bigend"; - target: "btn_speaker"; - } - + target: "btn_hold_swap"; + target: "txt_hold_swap"; + target: "btn_bg"; + target: "btn_region"; + } + program { name: "hide_dim_cid"; signal: "HIDE_DIM"; source: "CID"; @@ -205,6 +268,19 @@ group { action: STATE_SET "hd" 0.0; target: "swl_cid_dim"; } + program { name: "show_share_bg"; + signal: "SHOW_SHARE_BG"; + source: "Share_BG"; + action: STATE_SET "show" 0.0; + target: "swl_share_background"; + } + program { name: "hide_share_bg"; + signal: "HIDE_SHARE_BG"; + source: "Share_BG"; + action: STATE_SET "default" 0.0; + target: "swl_share_background"; + } + program { name: "show_cid_bg"; signal: "SHOW_CID_BG"; source: "CID_BG"; @@ -217,5 +293,35 @@ group { action: STATE_SET "hide" 0.0; target: "swl_cid_background"; } + + program { name: "show_keypadbtn"; + signal: "SHOW"; + source: "KEYPAD_BTN"; + action: STATE_SET "show" 0.0; + target: "keypad_region"; + } + program { name: "hide_keypadbtn"; + signal: "HIDE"; + source: "KEYPAD_BTN"; + action: STATE_SET "hide" 0.0; + target: "keypad_region"; + } + + program { name: "show_after_keypad"; + signal: "SHOW"; + source: "CALL_AREA"; + action: STATE_SET "show" 0.0; + target: "caller_info"; + target: "btn_hold_swap"; + target: "txt_hold_swap"; + } + program { name: "hide_caller_info"; + signal: "HIDE"; + source: "CALL_AREA"; + action: STATE_SET "hide" 0.0; + target: "caller_info"; + target: "btn_hold_swap"; + target: "txt_hold_swap"; + } } -} \ No newline at end of file +} diff --git a/ui/call_edc/vcui-view-ug-effect.edc b/ui/call_edc/vcui-view-ug-effect.edc index 80320af..7e0c078 100755 --- a/ui/call_edc/vcui-view-ug-effect.edc +++ b/ui/call_edc/vcui-view-ug-effect.edc @@ -14,7 +14,6 @@ * limitations under the License. */ - group { name: "ug_effect"; parts { diff --git a/ui/call_edc/vcui-view-volume-popup.edc b/ui/call_edc/vcui-view-volume-popup.edc index 312fea9..cec46b7 100755 --- a/ui/call_edc/vcui-view-volume-popup.edc +++ b/ui/call_edc/vcui-view-volume-popup.edc @@ -14,7 +14,6 @@ * limitations under the License. */ - group { name: "volume"; parts { diff --git a/ui/call_edc/voice-call-ui.edc b/ui/call_edc/voice-call-ui.edc index bf8daa9..ae5abc0 100755 --- a/ui/call_edc/voice-call-ui.edc +++ b/ui/call_edc/voice-call-ui.edc @@ -14,36 +14,24 @@ * limitations under the License. */ +#include "../src/include/vcui-view-layout-hd.h" -//#include "../vcui-view-layout.h" -#include "../vcui-view-layout-hd.h" - -#define FONT_SLP_Bold "SLP:style=Bold" -#define FONT_SLP_Medium "SLP:style=Medium" -#define FONT_SLP_Roman "SLP:style=Roman" - -//#define IMG_SRC_DIR "./wvga" #define IMG_SRC_DIR "./hd" images { - /*image: IMG_SRC_DIR/"08_voicecall_multicall_icon01.png" COMP; - image: IMG_SRC_DIR/"08_voicecall_multicall_icon02.png" COMP;*/ - - image: IMG_SRC_DIR/"./keypad/vc_keypad_btn_normal.png" COMP; - image: IMG_SRC_DIR/"./keypad/vc_keypad_btn_press.png" COMP; - image: IMG_SRC_DIR/"./keypad/vc_keypad_btn_icon.png" COMP; - - image: IMG_SRC_DIR/"vc_lock_left_bg.png" COMP; - image: IMG_SRC_DIR/"vc_lock_right_bg.png" COMP; - image: IMG_SRC_DIR/"vc_lock_accept_icon.png" COMP; - image: IMG_SRC_DIR/"vc_lock_reject_icon.png" COMP; - image: IMG_SRC_DIR/"vc_lock_bottom_bg.png" COMP; - } + image: IMG_SRC_DIR/"vc_keypad_btn_normal.png" COMP; + image: IMG_SRC_DIR/"vc_keypad_btn_press.png" COMP; + image: IMG_SRC_DIR/"vc_keypad_btn_icon.png" COMP; + image: IMG_SRC_DIR/"vc_lock_reject_message_bg.png" COMP; + image: IMG_SRC_DIR/"vc_lock_reject_message_arrow_open.png" COMP; + image: IMG_SRC_DIR/"vc_lock_reject_message_arrow_close.png" COMP; + image: IMG_SRC_DIR/"vc_reject_msg_icon.png" COMP; +} collections { - #include "vcui-view-incoming.edc" + #include "vcui-view-button-layout.edc" #include "vcui-view-incoming-lock.edc" #include "vcui-view-dialing.edc" #include "vcui-view-keypad.edc" @@ -51,9 +39,13 @@ collections { #include "vcui-view-multi-call-conf.edc" #include "vcui-view-multi-call-split.edc" #include "vcui-view-multi-call-list.edc" + #include "vcui-view-reject.edc" #include "vcui-view-naviframe.edc" #include "vcui-view-ug-effect.edc" #include "vcui-view-end-single-call.edc" #include "vcui-view-end-conf-call.edc" - #include "vcui-view-volume-popup.edc" + #include "vcui-view-quick-pannel.edc" + #include "vcui-view-volume-popup.edc" + #include "vcui-view-caller-info.edc" + #include "vcui-view-landscape-quick-pannel.edc" } diff --git a/ui/images/hd/icon/vc_call_bg_img.png b/ui/images/hd/icon/vc_call_bg_img.png new file mode 100755 index 0000000..143174f Binary files /dev/null and b/ui/images/hd/icon/vc_call_bg_img.png differ diff --git a/ui/images/hd/icon/vc_call_not_saved_bg_img.png b/ui/images/hd/icon/vc_call_not_saved_bg_img.png new file mode 100755 index 0000000..2a227c3 Binary files /dev/null and b/ui/images/hd/icon/vc_call_not_saved_bg_img.png differ diff --git a/ui/images/hd/icon/vc_caller_ID_default.png b/ui/images/hd/icon/vc_caller_ID_default.png new file mode 100644 index 0000000..5eb4f90 Binary files /dev/null and b/ui/images/hd/icon/vc_caller_ID_default.png differ diff --git a/ui/images/hd/icon/vc_caller_ID_split.png b/ui/images/hd/icon/vc_caller_ID_split.png new file mode 100755 index 0000000..02f06a2 Binary files /dev/null and b/ui/images/hd/icon/vc_caller_ID_split.png differ diff --git a/ui/images/hd/icon/vc_caller_ID_split_group.png b/ui/images/hd/icon/vc_caller_ID_split_group.png new file mode 100755 index 0000000..942253e Binary files /dev/null and b/ui/images/hd/icon/vc_caller_ID_split_group.png differ diff --git a/ui/images/hd/icon/vc_caller_info_icon.png b/ui/images/hd/icon/vc_caller_info_icon.png new file mode 100755 index 0000000..2eb5522 Binary files /dev/null and b/ui/images/hd/icon/vc_caller_info_icon.png differ diff --git a/ui/images/hd/icon/vc_icon_conf_list_hold.png b/ui/images/hd/icon/vc_icon_conf_list_hold.png deleted file mode 100755 index 26cd3e7..0000000 Binary files a/ui/images/hd/icon/vc_icon_conf_list_hold.png and /dev/null differ diff --git a/ui/images/hd/icon/vc_icon_conf_list_unhold.png b/ui/images/hd/icon/vc_icon_conf_list_unhold.png deleted file mode 100755 index 330c3ed..0000000 Binary files a/ui/images/hd/icon/vc_icon_conf_list_unhold.png and /dev/null differ diff --git a/ui/themes/vc_reject_with_msg_control_top_bg.png b/ui/images/hd/icon/vc_icon_hold_call.png old mode 100755 new mode 100644 similarity index 91% rename from ui/themes/vc_reject_with_msg_control_top_bg.png rename to ui/images/hd/icon/vc_icon_hold_call.png index adb35a0..9bd2666 Binary files a/ui/themes/vc_reject_with_msg_control_top_bg.png and b/ui/images/hd/icon/vc_icon_hold_call.png differ diff --git a/ui/images/hd/icon/vc_icon_swap_call.png b/ui/images/hd/icon/vc_icon_swap_call.png new file mode 100644 index 0000000..12c0d8d Binary files /dev/null and b/ui/images/hd/icon/vc_icon_swap_call.png differ diff --git a/ui/images/hd/icon/vc_icon_unhold.png b/ui/images/hd/icon/vc_icon_unhold.png deleted file mode 100755 index 8d28fa4..0000000 Binary files a/ui/images/hd/icon/vc_icon_unhold.png and /dev/null differ diff --git a/ui/images/hd/icon/vc_icon_unhold_call.png b/ui/images/hd/icon/vc_icon_unhold_call.png new file mode 100644 index 0000000..ab4d9b0 Binary files /dev/null and b/ui/images/hd/icon/vc_icon_unhold_call.png differ diff --git a/ui/images/hd/icon/vc_icon_unhold_dim.png b/ui/images/hd/icon/vc_icon_unhold_dim.png deleted file mode 100755 index 5f0c986..0000000 Binary files a/ui/images/hd/icon/vc_icon_unhold_dim.png and /dev/null differ diff --git a/ui/images/hd/icon/vc_more_add_call.png b/ui/images/hd/icon/vc_more_add_call.png new file mode 100755 index 0000000..fe648e9 Binary files /dev/null and b/ui/images/hd/icon/vc_more_add_call.png differ diff --git a/ui/images/hd/icon/vc_more_contacts.png b/ui/images/hd/icon/vc_more_contacts.png new file mode 100755 index 0000000..50d17c1 Binary files /dev/null and b/ui/images/hd/icon/vc_more_contacts.png differ diff --git a/ui/images/hd/icon/vc_more_join.png b/ui/images/hd/icon/vc_more_join.png new file mode 100755 index 0000000..f0008d3 Binary files /dev/null and b/ui/images/hd/icon/vc_more_join.png differ diff --git a/ui/images/hd/icon/vc_more_manage_conf.png b/ui/images/hd/icon/vc_more_manage_conf.png new file mode 100755 index 0000000..5afa00e Binary files /dev/null and b/ui/images/hd/icon/vc_more_manage_conf.png differ diff --git a/ui/images/hd/icon/vc_mute_on_icon.png b/ui/images/hd/icon/vc_mute_on_icon.png new file mode 100755 index 0000000..6d6fc3b Binary files /dev/null and b/ui/images/hd/icon/vc_mute_on_icon.png differ diff --git a/ui/images/hd/icon/vc_normal_caller_ID_group.png b/ui/images/hd/icon/vc_normal_caller_ID_group.png index 24b3aab..33815a9 100755 Binary files a/ui/images/hd/icon/vc_normal_caller_ID_group.png and b/ui/images/hd/icon/vc_normal_caller_ID_group.png differ diff --git a/ui/images/hd/icon/vc_btn_more.png b/ui/images/hd/icon/vc_notify_missed_call.png old mode 100644 new mode 100755 similarity index 61% rename from ui/images/hd/icon/vc_btn_more.png rename to ui/images/hd/icon/vc_notify_missed_call.png index 7024668..909daca Binary files a/ui/images/hd/icon/vc_btn_more.png and b/ui/images/hd/icon/vc_notify_missed_call.png differ diff --git a/ui/images/hd/icon/vc_rcs_share_icon_dim.png b/ui/images/hd/icon/vc_notify_sub_missed_call.png old mode 100644 new mode 100755 similarity index 59% rename from ui/images/hd/icon/vc_rcs_share_icon_dim.png rename to ui/images/hd/icon/vc_notify_sub_missed_call.png index 9a6a326..bacd6af Binary files a/ui/images/hd/icon/vc_rcs_share_icon_dim.png and b/ui/images/hd/icon/vc_notify_sub_missed_call.png differ diff --git a/ui/images/hd/icon/vc_outgoingcall_No_caller_ID.png b/ui/images/hd/icon/vc_outgoingcall_No_caller_ID.png new file mode 100644 index 0000000..103ff57 Binary files /dev/null and b/ui/images/hd/icon/vc_outgoingcall_No_caller_ID.png differ diff --git a/ui/images/hd/icon/vc_qp_caller_ID.png b/ui/images/hd/icon/vc_qp_caller_ID.png old mode 100644 new mode 100755 index fa4f113..93c0f9b Binary files a/ui/images/hd/icon/vc_qp_caller_ID.png and b/ui/images/hd/icon/vc_qp_caller_ID.png differ diff --git a/ui/images/hd/icon/vc_qp_caller_ID_group.png b/ui/images/hd/icon/vc_qp_caller_ID_group.png old mode 100644 new mode 100755 index a651273..57f27ed Binary files a/ui/images/hd/icon/vc_qp_caller_ID_group.png and b/ui/images/hd/icon/vc_qp_caller_ID_group.png differ diff --git a/ui/images/hd/icon/vc_qp_mute_on.png b/ui/images/hd/icon/vc_qp_mute_on.png new file mode 100755 index 0000000..05622ff Binary files /dev/null and b/ui/images/hd/icon/vc_qp_mute_on.png differ diff --git a/ui/images/hd/icon/vc_rcs_share_icon.png b/ui/images/hd/icon/vc_rcs_share_icon.png deleted file mode 100644 index 756347c..0000000 Binary files a/ui/images/hd/icon/vc_rcs_share_icon.png and /dev/null differ diff --git a/ui/images/hd/icon/vc_record_icon.png b/ui/images/hd/icon/vc_record_icon.png deleted file mode 100644 index da6b8e8..0000000 Binary files a/ui/images/hd/icon/vc_record_icon.png and /dev/null differ diff --git a/ui/images/hd/icon/vc_record_icon_dim.png b/ui/images/hd/icon/vc_record_icon_dim.png deleted file mode 100644 index d2d9523..0000000 Binary files a/ui/images/hd/icon/vc_record_icon_dim.png and /dev/null differ diff --git a/ui/themes/vc_control_btn_new_prev.png b/ui/images/hd/icon/vc_reject_back_icon.png similarity index 100% rename from ui/themes/vc_control_btn_new_prev.png rename to ui/images/hd/icon/vc_reject_back_icon.png diff --git a/ui/themes/vc_reject_with_msg_control_top_arrow.png b/ui/images/hd/icon/vc_reject_create_icon.png old mode 100755 new mode 100644 similarity index 87% rename from ui/themes/vc_reject_with_msg_control_top_arrow.png rename to ui/images/hd/icon/vc_reject_create_icon.png index 5078031..aa8e122 Binary files a/ui/themes/vc_reject_with_msg_control_top_arrow.png and b/ui/images/hd/icon/vc_reject_create_icon.png differ diff --git a/ui/images/hd/keypad/vc_keypad_btn_icon-1.png b/ui/images/hd/keypad/vc_keypad_btn_icon-1.png deleted file mode 100644 index b2396b6..0000000 Binary files a/ui/images/hd/keypad/vc_keypad_btn_icon-1.png and /dev/null differ diff --git a/ui/images/hd/keypad/vc_keypad_btn_normal-1.png b/ui/images/hd/keypad/vc_keypad_btn_normal-1.png deleted file mode 100644 index f17991d..0000000 Binary files a/ui/images/hd/keypad/vc_keypad_btn_normal-1.png and /dev/null differ diff --git a/ui/images/hd/keypad/vc_keypad_btn_normal.png b/ui/images/hd/keypad/vc_keypad_btn_normal.png deleted file mode 100644 index 10e74b5..0000000 Binary files a/ui/images/hd/keypad/vc_keypad_btn_normal.png and /dev/null differ diff --git a/ui/images/hd/keypad/vc_keypad_btn_press-1.png b/ui/images/hd/keypad/vc_keypad_btn_press-1.png deleted file mode 100644 index 74ef761..0000000 Binary files a/ui/images/hd/keypad/vc_keypad_btn_press-1.png and /dev/null differ diff --git a/ui/images/hd/keypad/vc_keypad_btn_press.png b/ui/images/hd/keypad/vc_keypad_btn_press.png deleted file mode 100644 index f4e474c..0000000 Binary files a/ui/images/hd/keypad/vc_keypad_btn_press.png and /dev/null differ diff --git a/ui/images/hd/keypad/vc_keypad_btn_icon.png b/ui/images/hd/vc_keypad_btn_icon.png similarity index 100% rename from ui/images/hd/keypad/vc_keypad_btn_icon.png rename to ui/images/hd/vc_keypad_btn_icon.png diff --git a/ui/images/hd/vc_keypad_btn_normal.png b/ui/images/hd/vc_keypad_btn_normal.png new file mode 100644 index 0000000..cd53ca8 Binary files /dev/null and b/ui/images/hd/vc_keypad_btn_normal.png differ diff --git a/ui/images/hd/vc_keypad_btn_press.png b/ui/images/hd/vc_keypad_btn_press.png new file mode 100644 index 0000000..61f3eb3 Binary files /dev/null and b/ui/images/hd/vc_keypad_btn_press.png differ diff --git a/ui/images/hd/vc_lock_accept_icon.png b/ui/images/hd/vc_lock_accept_icon.png deleted file mode 100644 index a4367c6..0000000 Binary files a/ui/images/hd/vc_lock_accept_icon.png and /dev/null differ diff --git a/ui/images/hd/vc_lock_bottom_bg.png b/ui/images/hd/vc_lock_bottom_bg.png deleted file mode 100644 index ba8bc4c..0000000 Binary files a/ui/images/hd/vc_lock_bottom_bg.png and /dev/null differ diff --git a/ui/images/hd/vc_lock_left_bg.png b/ui/images/hd/vc_lock_left_bg.png deleted file mode 100644 index 539d1e1..0000000 Binary files a/ui/images/hd/vc_lock_left_bg.png and /dev/null differ diff --git a/ui/images/hd/vc_lock_reject_icon.png b/ui/images/hd/vc_lock_reject_icon.png deleted file mode 100644 index 526b99c..0000000 Binary files a/ui/images/hd/vc_lock_reject_icon.png and /dev/null differ diff --git a/ui/images/hd/vc_lock_reject_message_arrow_close.png b/ui/images/hd/vc_lock_reject_message_arrow_close.png new file mode 100644 index 0000000..420b608 Binary files /dev/null and b/ui/images/hd/vc_lock_reject_message_arrow_close.png differ diff --git a/ui/images/hd/icon/vc_icon_hold.png b/ui/images/hd/vc_lock_reject_message_arrow_open.png old mode 100755 new mode 100644 similarity index 91% rename from ui/images/hd/icon/vc_icon_hold.png rename to ui/images/hd/vc_lock_reject_message_arrow_open.png index ff00328..cc15502 Binary files a/ui/images/hd/icon/vc_icon_hold.png and b/ui/images/hd/vc_lock_reject_message_arrow_open.png differ diff --git a/ui/images/hd/vc_lock_reject_message_bg.png b/ui/images/hd/vc_lock_reject_message_bg.png new file mode 100644 index 0000000..4142cbc Binary files /dev/null and b/ui/images/hd/vc_lock_reject_message_bg.png differ diff --git a/ui/images/hd/vc_lock_right_bg.png b/ui/images/hd/vc_lock_right_bg.png deleted file mode 100644 index 6f2f35e..0000000 Binary files a/ui/images/hd/vc_lock_right_bg.png and /dev/null differ diff --git a/ui/images/wvga/icon/vc_record_icon.png b/ui/images/hd/vc_reject_msg_icon.png old mode 100644 new mode 100755 similarity index 80% rename from ui/images/wvga/icon/vc_record_icon.png rename to ui/images/hd/vc_reject_msg_icon.png index 470f482..24759b0 Binary files a/ui/images/wvga/icon/vc_record_icon.png and b/ui/images/hd/vc_reject_msg_icon.png differ diff --git a/ui/images/wvga/icon/vc_caller_info_icon.png b/ui/images/wvga/icon/vc_caller_info_icon.png new file mode 100755 index 0000000..2eb5522 Binary files /dev/null and b/ui/images/wvga/icon/vc_caller_info_icon.png differ diff --git a/ui/images/wvga/icon/vc_more_icon.png b/ui/images/wvga/icon/vc_more_icon.png new file mode 100755 index 0000000..ee08101 Binary files /dev/null and b/ui/images/wvga/icon/vc_more_icon.png differ diff --git a/ui/images/wvga/icon/vc_record_icon_dim.png b/ui/images/wvga/icon/vc_record_icon_dim.png deleted file mode 100644 index 032a6af..0000000 Binary files a/ui/images/wvga/icon/vc_record_icon_dim.png and /dev/null differ diff --git a/ui/images/wvga/icon/vc_record_stop_icon_crop.png b/ui/images/wvga/icon/vc_record_stop_icon_crop.png deleted file mode 100644 index 3048ae9..0000000 Binary files a/ui/images/wvga/icon/vc_record_stop_icon_crop.png and /dev/null differ diff --git a/ui/org.tizen.call.desktop.in b/ui/org.tizen.call.desktop.in deleted file mode 100755 index b2f7cf7..0000000 --- a/ui/org.tizen.call.desktop.in +++ /dev/null @@ -1,10 +0,0 @@ -Name=Call -Type=Application -Exec=${PREFIX}/bin/voice-call-ui -MimeType=tel.uri -nodisplay=True -Version=0.2.0 -X-Tizen-TaskManage=False -X-Tizen-Multiple=False -X-Tizen-Removable=False -X-Tizen-Svc=http://tizen.org/appsvc/operation/call|tel|NULL diff --git a/ui/org.tizen.call.png b/ui/org.tizen.call.png new file mode 100755 index 0000000..978e830 Binary files /dev/null and b/ui/org.tizen.call.png differ diff --git a/ui/org.tizen.call.xml b/ui/org.tizen.call.xml new file mode 100755 index 0000000..119933b --- /dev/null +++ b/ui/org.tizen.call.xml @@ -0,0 +1,15 @@ + + + + Sung Joon Won + Jungmin Kim + Voice call Application + + org.tizen.call.png + + + + + + + diff --git a/ui/po/de_DE.po b/ui/po/de_DE.po index 619d86e..966dfbe 100755 --- a/ui/po/de_DE.po +++ b/ui/po/de_DE.po @@ -1,3 +1,21 @@ +msgid "IDS_CALL_SK_ACCEPT" +msgstr "Annehmen" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Stumm" + +msgid "IDS_CALL_POP_CONNECTING" +msgstr "Verbindung wird hergestellt..." + +msgid "IDS_CALL_POP_REJECTED" +msgstr "Abgelehnt" + +msgid "IDS_CALL_POP_SAVED" +msgstr "Gespeichert" + +msgid "IDS_CALL_POP_SENDING" +msgstr "Sendevorgang läuft..." + msgid "IDS_CALL_HEADER_CREATE_REJECT_MESSAGE" msgstr "Ablehnungsnachricht erstellen" @@ -50,7 +68,7 @@ msgid "IDS_CALL_BUTTON_ACCEPT" msgstr "Annehmen" msgid "IDS_CALL_BUTTON_ADD_CALL" -msgstr "Anruf hin." +msgstr "Anruf hzfg." msgid "IDS_CALL_BUTTON_CONTACTS" msgstr "Kontakte" @@ -67,14 +85,11 @@ msgstr "Halten" msgid "IDS_CALL_BUTTON_JOIN" msgstr "Konferenz" -msgid "IDS_CALL_BUTTON_MUTE_ABB" -msgstr "Stumm" - msgid "IDS_CALL_BUTTON_REJECT" -msgstr "Abweisen" +msgstr "Ablehnen" msgid "IDS_CALL_BUTTON_SPEAKER" -msgstr "Lautsp." +msgstr "Lautspr." msgid "IDS_CALL_BUTTON_SPLIT" msgstr "Teilen" @@ -98,10 +113,10 @@ msgid "IDS_CALL_POP_AEESYS_SYSTEMFAILUREERROR" msgstr "Systemfehler" msgid "IDS_CALL_POP_ALL_INCOMING_CALLS_BARRED" -msgstr "Alle eingehenden Anrufe gesperrt" +msgstr "Alle eingehenden Anrufe blockiert" msgid "IDS_CALL_POP_ALL_OUTGOING_CALLS_BARRED" -msgstr "Alle ausgehenden Anrufe gesperrt" +msgstr "Alle ausgehenden Anrufe blockiert" msgid "IDS_CALL_POP_CALLFAILED" msgstr "Anruf fehlgeschlagen" @@ -197,7 +212,7 @@ msgid "IDS_CALL_POP_PHONE_NOT_INITIALISED" msgstr "Telefon nicht initialisiert" msgid "IDS_CALL_POP_PS_REJECTED" -msgstr "4422341526 abgelehnt" +msgstr "%s abgelehnt" msgid "IDS_CALL_POP_REDIALLING" msgstr "Wahlwiederholung..." @@ -206,7 +221,7 @@ msgid "IDS_CALL_POP_SERVICE_NOT_ALLOWED" msgstr "Dienst unzulässig" msgid "IDS_CALL_POP_SOS_CALL_ONLY_IN_NO_SIM_MODE" -msgstr "Nur SOS-Anruf. SIM-Karte einsetzen, um Netzdienste zu nutzen" +msgstr "Nur SOS-Anruf.\nSIM-Karte einsetzen, um Netzdienste zu nutzen" msgid "IDS_CALL_POP_SPLIT_FAILED" msgstr "Teilen fehlgeschlagen" @@ -301,23 +316,11 @@ msgstr "Nicht genügend Speicher. Löschen Sie einige Elemente" msgid "IDS_CALL_SK3_END_CALL" msgstr "Beenden" -msgid "IDS_MSGC_OPT_SOUND" -msgstr "Ton" - msgid "IDS_CALL_BODY_SERVICE_UNAVAILABLE" msgstr "Service nicht verfügbar" msgid "IDS_CALL_SK3_KEYPAD" -msgstr "Tasten-\nfeld" - -msgid "IDS_CALL_POP_CONNECTING" -msgstr "Verbindung wird hergestellt..." - -msgid "IDS_CALL_POP_REJECTED" -msgstr "Abgewiesen" - -msgid "IDS_CALL_POP_SENDING" -msgstr "Sendevorgang läuft..." +msgstr "Tastenfeld" msgid "IDS_CALL_BUTTON2_HIDE_KEYPAD" msgstr "Tastatur ausbl." @@ -328,6 +331,183 @@ msgstr "Rec" msgid "IDS_CALL_POP_UNKNOWNREJECTED" msgstr "Unbekannten Anruf abgewiesen" -msgid "IDS_CALL_POP_SAVED" -msgstr "Gespeichert" +msgid "IDS_CALL_OPT_SWITCH" +msgstr "Umschalten" + +msgid "IDS_CALL_HEADER_SELECT_NUMBER" +msgstr "Nummer auswählen" + +msgid "IDS_CALL_BODY_IN_PD_DAYS" +msgstr "in %d Tagen" + +msgid "IDS_CALL_BODY_TOMORROW" +msgstr "Morgen" + +msgid "IDS_CALL_POP_IN_A_WEEK" +msgstr "In einer Woche" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "%s halten" + +msgid "IDS_CALL_BODY_ENDING_CALL_WITH_PS" +msgstr "Anruf beenden mit %s" + +msgid "IDS_CALL_HEADER_ACCEPT_CALL_AFTER" +msgstr "Anruf annehmen nach" + +msgid "IDS_CALL_BODY_END_ALL_CALLS" +msgstr "Alle Anrufe beenden" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_OFF" +msgstr "Rauschverminderung aus" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_ON" +msgstr "Rauschverminderung ein" + +msgid "IDS_CST_OPT_BOOST_LOW_TONES_ABB" +msgstr "Tiefen-Verstärkung" + +msgid "IDS_CST_OPT_BOOST_HIGH_TONES_ABB" +msgstr "Höhen-Verstärkung" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_LEFT_EAR" +msgstr "Optimiert für linkes Ohr" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_RIGHT_EAR" +msgstr "Optimiert für rechtes Ohr" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "Einschalten der Rauschverminderung bei aktivierter Extralautstärke nicht möglich." + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_EARPHONE_CONNECTED" +msgstr "Einschalten der Rauschverminderung nicht möglich, wenn Kopfhörer angeschlossen sind." + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "Einschalten der Rauschverminderung nicht möglich, wenn ein Bluetooth-Headset verbunden ist." + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_DURING_WIDEBAND_CALLS" +msgstr "Einschalten der Rauschverminderung während Breitband-Anrufen nicht möglich." + +msgid "IDS_CALL_POP_TO_USE_THIS_FUNCTION_YOU_HAVE_TO_CHECK_OPTIMISE_EQ_FOR_ME_UNDER_CALL_SETTINGS" +msgstr "Um diese Funktion zu nutzen, müssen Sie die EQ-Optimierung unter “Anrufeinstellungen” aktivieren." + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_SPEAKER_IS_ON" +msgstr "Gesprächston-EQ kann nicht aktiviert werden wenn der Lautsprecher eingeschaltet ist." + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_EARPHONES_ARE_CONNECTED" +msgstr "Gesprächston-EQ kann nicht aktiviert werden wenn Kopfhörer angeschlossen sind." + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "Gesprächston-EQ kann nicht aktiviert werden wenn Bluetooth-Headset eingeschaltet ist." + +msgid "IDS_CALL_POP_UNABLE_TO_USE_EXTRA_VOLUME_RANGE_WHEN_EARPHONES_OR_BT_HEADSET_ARE_CONNECTED" +msgstr "Zusätzlicher Lautstärkebereich kann nicht verwendet werden, wenn Kopfhörer oder BT-Headset verwendet werden." + +msgid "IDS_CALL_POP_CALLING" +msgstr "Anrufen..." + +msgid "IDS_CALL_HEADER_MANAGE_CONFERENCE_CALL" +msgstr "Konferenzanruf verwalten" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "Gesprächston-EQ kann bei aktivierter Extralautstärke nicht aktiviert werden." + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_DURING_WIDEBAND_CALLS" +msgstr "Gesprächston-EQ kann während Breitband-Anrufen nicht aktiviert werden." + +msgid "IDS_CALL_BUTTON_SOUND_ABB" +msgstr "Ton" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_SPEAKER_IS_ON" +msgstr "Einschalten der Rauschverminderung nicht möglich, wenn Lautsprecher eingeschaltet ist." + +msgid "IDS_CALL_HEADER_REJECT_MESSAGES" +msgstr "Ablehnungsnachrichten" + +msgid "IDS_CALL_OPT_VOICE_CALL" +msgstr "Sprachanruf" + +msgid "IDS_CALL_OPT_VIDEO_CALL" +msgstr "Videoanruf" + +msgid "IDS_CALL_SK3_SHARE" +msgstr "Senden via" + +msgid "IDS_CALL_BUTTON_KEYPAD" +msgstr "Tastenfeld" + +msgid "IDS_CALL_BUTTON_END_CALL" +msgstr "Beenden" + +msgid "IDS_CALL_BUTTON_SPEAKER_ABB" +msgstr "Lautspr." + +msgid "IDS_CALL_BUTTON_AUDIO_SOURCE" +msgstr "Audioquelle" + +msgid "IDS_CALL_OPT_PHONE" +msgstr "Telefon" + +msgid "IDS_CALL_BUTTON_MUTE" +msgstr "Stumm" + +msgid "IDS_CALL_BUTTON_ADD_TO_CONTACTS" +msgstr "Zu Kontakten hzfg." + +msgid "IDS_CALL_SK3_VOICE_CALL" +msgstr "Anrufen" + +msgid "IDS_CALL_BUTTON_VIDEO_CALL" +msgstr "Videoanr." + +msgid "IDS_CALL_SK3_MESSAGE" +msgstr "Nachricht" + +msgid "IDS_CALL_SK3_ADD_TO_CONTACTS" +msgstr "Zu Kontakten hzfg." + +msgid "IDS_CALL_OPT_MESSAGE" +msgstr "Nachricht" + +msgid "IDS_CALL_SK_SWAP_ABB" +msgstr "Tausch." + +msgid "IDS_CALL_SK3_MORE" +msgstr "Optionen" + +msgid "IDS_CALL_OPT_SHARE_FILE_VIA_CHATON_ABB" +msgstr "Datei über ChatON freig." + +msgid "IDS_CALL_HEADER_SHARE_ABB" +msgstr "Senden via" + +msgid "IDS_CALL_BODY_PD_TIMES" +msgstr "%d Mal" + +msgid "IDS_QP_BODY_GROUP_CALL_HPD_ABB" +msgstr "Gruppenanruf (%d)" + +msgid "IDS_CALL_OPT1_SAVED_IMAGE" +msgstr "Gespeichertes Bild" + +msgid "IDS_CALL_OPT1_SAVED_VIDEO" +msgstr "Gespeichertes Video" + +msgid "IDS_CALL_OPT1_TAKE_A_PICTURE" +msgstr "Foto aufnehmen" + +msgid "IDS_CALL_BUTTON2_LIVE_VIDEO" +msgstr "Live-Video" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT" +msgstr "Kontakt anz." + +msgid "IDS_CALL_HEADER_MY_CALL_SOUND_ABB" +msgstr "My call sound" + +msgid "IDS_CALL_HEADER_PD_MISSED_CALLS" +msgstr "%d verpasste Anrufe" + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Anr. in Abwesenheit" diff --git a/ui/po/el_GR.po b/ui/po/el_GR.po index 4923d0b..9b8c08c 100755 --- a/ui/po/el_GR.po +++ b/ui/po/el_GR.po @@ -1,3 +1,21 @@ +msgid "IDS_CALL_SK_ACCEPT" +msgstr "Αποδ." + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Σίγαση" + +msgid "IDS_CALL_POP_CONNECTING" +msgstr "Σύνδεση..." + +msgid "IDS_CALL_POP_REJECTED" +msgstr "Απόρριψη" + +msgid "IDS_CALL_POP_SAVED" +msgstr "Αποθηκεύτηκε" + +msgid "IDS_CALL_POP_SENDING" +msgstr "Αποστολή..." + msgid "IDS_CALL_HEADER_CREATE_REJECT_MESSAGE" msgstr "Δημιουργία μηνύματος απόρριψης" @@ -67,9 +85,6 @@ msgstr "Αναμονή" msgid "IDS_CALL_BUTTON_JOIN" msgstr "Ένωση" -msgid "IDS_CALL_BUTTON_MUTE_ABB" -msgstr "Σίγαση" - msgid "IDS_CALL_BUTTON_REJECT" msgstr "Απόρριψη" @@ -206,7 +221,7 @@ msgid "IDS_CALL_POP_SERVICE_NOT_ALLOWED" msgstr "Δεν επιτρέπεται η υπηρεσία" msgid "IDS_CALL_POP_SOS_CALL_ONLY_IN_NO_SIM_MODE" -msgstr "Μόνο κλήση SOS. Τοποθετήστε την κάρτα SIM για πρόσβαση στις υπηρεσίες δικτύου" +msgstr "Μόνο κλήση SOS.\nΤοποθετήστε την κάρτα SIM για πρόσβαση στις υπηρεσίες δικτύου" msgid "IDS_CALL_POP_SPLIT_FAILED" msgstr "Αποτυχία διαχωρισμού" @@ -301,24 +316,12 @@ msgstr "Δεν υπάρχει αρκετή μνήμη. Διαγράψτε ορι msgid "IDS_CALL_SK3_END_CALL" msgstr "Τερμ.κλ." -msgid "IDS_MSGC_OPT_SOUND" -msgstr "Ήχος" - msgid "IDS_CALL_BODY_SERVICE_UNAVAILABLE" msgstr "Μη διαθέσιμη λειτουργία" msgid "IDS_CALL_SK3_KEYPAD" msgstr "Πληκτρολ." -msgid "IDS_CALL_POP_CONNECTING" -msgstr "Σύνδεση..." - -msgid "IDS_CALL_POP_REJECTED" -msgstr "Απόρριψη" - -msgid "IDS_CALL_POP_SENDING" -msgstr "Αποστολή..." - msgid "IDS_CALL_BUTTON2_HIDE_KEYPAD" msgstr "Απόκρ. πληκτρ." @@ -328,6 +331,183 @@ msgstr "Εγγρ." msgid "IDS_CALL_POP_UNKNOWNREJECTED" msgstr "Άγνωστη κλήση απορρίφθηκε" -msgid "IDS_CALL_POP_SAVED" -msgstr "Αποθηκεύτηκε" +msgid "IDS_CALL_OPT_SWITCH" +msgstr "Αλλαγή" + +msgid "IDS_CALL_HEADER_SELECT_NUMBER" +msgstr "Επιλογή αριθμού" + +msgid "IDS_CALL_BODY_IN_PD_DAYS" +msgstr "σε %d ημέρες" + +msgid "IDS_CALL_BODY_TOMORROW" +msgstr "Αύριο" + +msgid "IDS_CALL_POP_IN_A_WEEK" +msgstr "Σε 1 εβδομάδα" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Θέτοντας %s σε αναμονή" + +msgid "IDS_CALL_BODY_ENDING_CALL_WITH_PS" +msgstr "Τερματισμός κλήσης με %s" + +msgid "IDS_CALL_HEADER_ACCEPT_CALL_AFTER" +msgstr "Αποδοχή κλήσης μετά" + +msgid "IDS_CALL_BODY_END_ALL_CALLS" +msgstr "Τερματ. όλων κλήσεων" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_OFF" +msgstr "Απενεργοποίηση μείωσης θορύβου" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_ON" +msgstr "Η μείωση θορύβου ενεργοποιήθηκε" + +msgid "IDS_CST_OPT_BOOST_LOW_TONES_ABB" +msgstr "Ενίσχ.χαμηλών τόνων" + +msgid "IDS_CST_OPT_BOOST_HIGH_TONES_ABB" +msgstr "Ενίσχ. υψηλών τόνων" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_LEFT_EAR" +msgstr "Βελτ. για το αριστ. αυτί" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_RIGHT_EAR" +msgstr "Βελτιστ. για το δεξί αυτί" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "Δεν είναι δυνατή η ενεργοποίηση της μείωσης θορύβου όταν είναι ενεργοποιημένη η επιλογή της επιπλέον έντασης" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_EARPHONE_CONNECTED" +msgstr "Δεν είναι δυνατή η ενεργοποίηση της μείωσης θορύβου όταν είναι συνδεδεμένα τα ακουστικά" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "Δεν είναι δυνατή η ενεργοποίηση της μείωσης θορύβου όταν είναι ενεργά τα ακουστικά Bluetooth" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_DURING_WIDEBAND_CALLS" +msgstr "Δεν είναι δυνατή η ενεργοποίηση της μείωσης θορύβου κατά τις ευρυζωνικές κλήσεις" + +msgid "IDS_CALL_POP_TO_USE_THIS_FUNCTION_YOU_HAVE_TO_CHECK_OPTIMISE_EQ_FOR_ME_UNDER_CALL_SETTINGS" +msgstr "Για να χρησιμοποιήσετε αυτήν τη λειτουργία, θα πρέπει να επιλέξετε το στοιχείο “αυτόματη βελτιστοποίηση ισοσταθμιστή” από τις Ρυθμίσεις κλήσης" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_SPEAKER_IS_ON" +msgstr "Δεν είναι δυνατή η ενεργοποίηση του ισοσταθμιστή ήχου κατά την κλήση όταν το ηχείο είναι ενεργό" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_EARPHONES_ARE_CONNECTED" +msgstr "Δεν είναι δυνατή η ενεργοποίηση του ισοσταθμιστή ήχου κατά την κλήση όταν είναι συνδεδεμένα τα ακουστικά" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "Δεν είναι δυνατή η ενεργοποίηση του ισοσταθμιστή ήχου κατά την κλήση όταν είναι ενεργό το ακουστικό Bluetooth" + +msgid "IDS_CALL_POP_UNABLE_TO_USE_EXTRA_VOLUME_RANGE_WHEN_EARPHONES_OR_BT_HEADSET_ARE_CONNECTED" +msgstr "Δεν είναι δυνατή η χρήση του εύρους επιπλέον έντασης όταν είναι συνδεδεμένα ακουστικά ή ακουστικό BT" + +msgid "IDS_CALL_POP_CALLING" +msgstr "Κλήση..." + +msgid "IDS_CALL_HEADER_MANAGE_CONFERENCE_CALL" +msgstr "Διαχείριση τηλεφωνικής συνδιάσκεψης" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "Δεν είναι δυνατή η ενεργοποίηση του ισοσταθμιστή ήχου κατά την κλήση όταν έχει ενεργοποιηθεί η επιπλέον ένταση" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_DURING_WIDEBAND_CALLS" +msgstr "Δεν είναι δυνατή η ενεργοποίηση του ισοσταθμιστή ήχου κατά τις ευρυζωνικές κλήσεις" + +msgid "IDS_CALL_BUTTON_SOUND_ABB" +msgstr "Ήχος" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_SPEAKER_IS_ON" +msgstr "Δεν είναι δυνατή η ενεργοποίηση της μείωσης θορύβου όταν είναι ενεργοποιημένο το ηχείο" + +msgid "IDS_CALL_HEADER_REJECT_MESSAGES" +msgstr "Απόρριψη μηνυμάτων" + +msgid "IDS_CALL_OPT_VOICE_CALL" +msgstr "Φωνητική κλήση" + +msgid "IDS_CALL_OPT_VIDEO_CALL" +msgstr "Κλήση βίντεο" + +msgid "IDS_CALL_SK3_SHARE" +msgstr "Κοινόχρηστο" + +msgid "IDS_CALL_BUTTON_KEYPAD" +msgstr "Πληκτ/γιο" + +msgid "IDS_CALL_BUTTON_END_CALL" +msgstr "Τερμ.κλ." + +msgid "IDS_CALL_BUTTON_SPEAKER_ABB" +msgstr "Ηχείο" + +msgid "IDS_CALL_BUTTON_AUDIO_SOURCE" +msgstr "Πηγή ήχου" + +msgid "IDS_CALL_OPT_PHONE" +msgstr "Τηλέφωνο" + +msgid "IDS_CALL_BUTTON_MUTE" +msgstr "Σίγαση" + +msgid "IDS_CALL_BUTTON_ADD_TO_CONTACTS" +msgstr "Προσθ. στις Επαφ." + +msgid "IDS_CALL_SK3_VOICE_CALL" +msgstr "Φωνητική κλήση" + +msgid "IDS_CALL_BUTTON_VIDEO_CALL" +msgstr "Κλ.βίντεο" + +msgid "IDS_CALL_SK3_MESSAGE" +msgstr "Μήνυμα" + +msgid "IDS_CALL_SK3_ADD_TO_CONTACTS" +msgstr "Πρ. στις Επαφές" + +msgid "IDS_CALL_OPT_MESSAGE" +msgstr "Μήνυμα" + +msgid "IDS_CALL_SK_SWAP_ABB" +msgstr "Εναλλ." + +msgid "IDS_CALL_SK3_MORE" +msgstr "Περισσότ." + +msgid "IDS_CALL_OPT_SHARE_FILE_VIA_CHATON_ABB" +msgstr "Κοινή χρ.αρχ. μέσω ChatON" + +msgid "IDS_CALL_HEADER_SHARE_ABB" +msgstr "Κοινόχρηστο" + +msgid "IDS_CALL_BODY_PD_TIMES" +msgstr "%d φορές" + +msgid "IDS_QP_BODY_GROUP_CALL_HPD_ABB" +msgstr "Ομαδική κλήση (%d)" + +msgid "IDS_CALL_OPT1_SAVED_IMAGE" +msgstr "Αποθηκευμένη εικόνα" + +msgid "IDS_CALL_OPT1_SAVED_VIDEO" +msgstr "Αποθηκευμένο βίντεο" + +msgid "IDS_CALL_OPT1_TAKE_A_PICTURE" +msgstr "Λήψη εικόνας" + +msgid "IDS_CALL_BUTTON2_LIVE_VIDEO" +msgstr "Ζωντ. βίντεο" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT" +msgstr "Προβολή επαφής" + +msgid "IDS_CALL_HEADER_MY_CALL_SOUND_ABB" +msgstr "My call sound" + +msgid "IDS_CALL_HEADER_PD_MISSED_CALLS" +msgstr "%d αναπάντητες κλήσεις" + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Αναπάντητη κλήση" diff --git a/ui/po/en.po b/ui/po/en.po index c0c7a85..771ec70 100755 --- a/ui/po/en.po +++ b/ui/po/en.po @@ -1,3 +1,21 @@ +msgid "IDS_CALL_SK_ACCEPT" +msgstr "Accept" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Mute" + +msgid "IDS_CALL_POP_CONNECTING" +msgstr "Connecting..." + +msgid "IDS_CALL_POP_REJECTED" +msgstr "Rejected" + +msgid "IDS_CALL_POP_SAVED" +msgstr "Saved" + +msgid "IDS_CALL_POP_SENDING" +msgstr "Sending..." + msgid "IDS_CALL_HEADER_CREATE_REJECT_MESSAGE" msgstr "Create reject message" @@ -67,9 +85,6 @@ msgstr "Hold" msgid "IDS_CALL_BUTTON_JOIN" msgstr "Join" -msgid "IDS_CALL_BUTTON_MUTE_ABB" -msgstr "Mute" - msgid "IDS_CALL_BUTTON_REJECT" msgstr "Reject" @@ -206,7 +221,7 @@ msgid "IDS_CALL_POP_SERVICE_NOT_ALLOWED" msgstr "Service not allowed" msgid "IDS_CALL_POP_SOS_CALL_ONLY_IN_NO_SIM_MODE" -msgstr "SOS call only. Insert SIM card to access network services" +msgstr "SOS call only.\nInsert SIM card to access network services" msgid "IDS_CALL_POP_SPLIT_FAILED" msgstr "Split failed" @@ -301,24 +316,12 @@ msgstr "Not enough memory. Delete some items" msgid "IDS_CALL_SK3_END_CALL" msgstr "End call" -msgid "IDS_MSGC_OPT_SOUND" -msgstr "Sound" - msgid "IDS_CALL_BODY_SERVICE_UNAVAILABLE" msgstr "Service not available" msgid "IDS_CALL_SK3_KEYPAD" msgstr "Keypad" -msgid "IDS_CALL_POP_CONNECTING" -msgstr "Connecting..." - -msgid "IDS_CALL_POP_REJECTED" -msgstr "Rejected" - -msgid "IDS_CALL_POP_SENDING" -msgstr "Sending..." - msgid "IDS_CALL_BUTTON2_HIDE_KEYPAD" msgstr "Hide keypad" @@ -328,6 +331,183 @@ msgstr "REC" msgid "IDS_CALL_POP_UNKNOWNREJECTED" msgstr "Unknown call rejected" -msgid "IDS_CALL_POP_SAVED" -msgstr "Saved" +msgid "IDS_CALL_OPT_SWITCH" +msgstr "Switch" + +msgid "IDS_CALL_HEADER_SELECT_NUMBER" +msgstr "Select number" + +msgid "IDS_CALL_BODY_IN_PD_DAYS" +msgstr "in %d days" + +msgid "IDS_CALL_BODY_TOMORROW" +msgstr "Tomorrow" + +msgid "IDS_CALL_POP_IN_A_WEEK" +msgstr "In a week" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Putting %s on hold" + +msgid "IDS_CALL_BODY_ENDING_CALL_WITH_PS" +msgstr "Ending call with %s" + +msgid "IDS_CALL_HEADER_ACCEPT_CALL_AFTER" +msgstr "Accept call after" + +msgid "IDS_CALL_BODY_END_ALL_CALLS" +msgstr "End all calls" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_OFF" +msgstr "Noise reduction off" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_ON" +msgstr "Noise reduction on" + +msgid "IDS_CST_OPT_BOOST_LOW_TONES_ABB" +msgstr "Boost low tones" + +msgid "IDS_CST_OPT_BOOST_HIGH_TONES_ABB" +msgstr "Boost high tones" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_LEFT_EAR" +msgstr "Optimised for left ear" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_RIGHT_EAR" +msgstr "Optimised for right ear" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "Unable to turn on noise reduction while extra volume is enabled" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_EARPHONE_CONNECTED" +msgstr "Unable to turn on noise reduction when earphone connected" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "Unable to turn on noise reduction when Bluetooth headset is on" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_DURING_WIDEBAND_CALLS" +msgstr "Unable to turn on noise reduction during wideband calls" + +msgid "IDS_CALL_POP_TO_USE_THIS_FUNCTION_YOU_HAVE_TO_CHECK_OPTIMISE_EQ_FOR_ME_UNDER_CALL_SETTINGS" +msgstr "To use this function, you have to check optimise EQ for me under call settings" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_SPEAKER_IS_ON" +msgstr "Unable to enable in-call sound EQ when speaker is on" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_EARPHONES_ARE_CONNECTED" +msgstr "Unable to enable in-call sound EQ when earphones are connected" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "Unable to enable in-call sound EQ when Bluetooth headset is on" + +msgid "IDS_CALL_POP_UNABLE_TO_USE_EXTRA_VOLUME_RANGE_WHEN_EARPHONES_OR_BT_HEADSET_ARE_CONNECTED" +msgstr "Unable to use extra volume range when earphones or BT headset are connected" + +msgid "IDS_CALL_POP_CALLING" +msgstr "Calling..." + +msgid "IDS_CALL_HEADER_MANAGE_CONFERENCE_CALL" +msgstr "Manage conference call" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "Unable to enable in-call sound EQ while extra volume is enabled" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_DURING_WIDEBAND_CALLS" +msgstr "Unable to enable in-call sound EQ during wideband calls" + +msgid "IDS_CALL_BUTTON_SOUND_ABB" +msgstr "Sound" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_SPEAKER_IS_ON" +msgstr "Unable to turn on noise reduction when speaker is on" + +msgid "IDS_CALL_HEADER_REJECT_MESSAGES" +msgstr "Reject messages" + +msgid "IDS_CALL_OPT_VOICE_CALL" +msgstr "Voice call" + +msgid "IDS_CALL_OPT_VIDEO_CALL" +msgstr "Video call" + +msgid "IDS_CALL_SK3_SHARE" +msgstr "Share" + +msgid "IDS_CALL_BUTTON_KEYPAD" +msgstr "Keypad" + +msgid "IDS_CALL_BUTTON_END_CALL" +msgstr "End call" + +msgid "IDS_CALL_BUTTON_SPEAKER_ABB" +msgstr "Speaker" + +msgid "IDS_CALL_BUTTON_AUDIO_SOURCE" +msgstr "Audio source" + +msgid "IDS_CALL_OPT_PHONE" +msgstr "Phone" + +msgid "IDS_CALL_BUTTON_MUTE" +msgstr "Mute" + +msgid "IDS_CALL_BUTTON_ADD_TO_CONTACTS" +msgstr "Add to Contacts" + +msgid "IDS_CALL_SK3_VOICE_CALL" +msgstr "Voice call" + +msgid "IDS_CALL_BUTTON_VIDEO_CALL" +msgstr "Video call" + +msgid "IDS_CALL_SK3_MESSAGE" +msgstr "Message" + +msgid "IDS_CALL_SK3_ADD_TO_CONTACTS" +msgstr "Add to Contacts" + +msgid "IDS_CALL_OPT_MESSAGE" +msgstr "Message" + +msgid "IDS_CALL_SK_SWAP_ABB" +msgstr "Swap" + +msgid "IDS_CALL_SK3_MORE" +msgstr "More" + +msgid "IDS_CALL_OPT_SHARE_FILE_VIA_CHATON_ABB" +msgstr "Share file via ChatON" + +msgid "IDS_CALL_HEADER_SHARE_ABB" +msgstr "Share" + +msgid "IDS_CALL_BODY_PD_TIMES" +msgstr "%d times" + +msgid "IDS_QP_BODY_GROUP_CALL_HPD_ABB" +msgstr "Group call (%d)" + +msgid "IDS_CALL_OPT1_SAVED_IMAGE" +msgstr "Saved image" + +msgid "IDS_CALL_OPT1_SAVED_VIDEO" +msgstr "Saved video" + +msgid "IDS_CALL_OPT1_TAKE_A_PICTURE" +msgstr "Take a picture" + +msgid "IDS_CALL_BUTTON2_LIVE_VIDEO" +msgstr "Live video" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT" +msgstr "View contact" + +msgid "IDS_CALL_HEADER_MY_CALL_SOUND_ABB" +msgstr "My call sound" + +msgid "IDS_CALL_HEADER_PD_MISSED_CALLS" +msgstr "%d missed calls" + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Missed call" diff --git a/ui/po/es_ES.po b/ui/po/es_ES.po index 15ca367..fa4ae2a 100755 --- a/ui/po/es_ES.po +++ b/ui/po/es_ES.po @@ -1,3 +1,21 @@ +msgid "IDS_CALL_SK_ACCEPT" +msgstr "Aceptar" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Silencio" + +msgid "IDS_CALL_POP_CONNECTING" +msgstr "Conectando..." + +msgid "IDS_CALL_POP_REJECTED" +msgstr "Rechazado" + +msgid "IDS_CALL_POP_SAVED" +msgstr "Guardado" + +msgid "IDS_CALL_POP_SENDING" +msgstr "Enviando..." + msgid "IDS_CALL_HEADER_CREATE_REJECT_MESSAGE" msgstr "Crear mensaje para rechazar" @@ -59,7 +77,7 @@ msgid "IDS_CALL_BUTTON_END_M_CALL_BUTTON" msgstr "Finalizar" msgid "IDS_CALL_BUTTON_HEADSET" -msgstr "Auricul" +msgstr "Bluetooth" msgid "IDS_CALL_BUTTON_HOLD" msgstr "Retener" @@ -67,9 +85,6 @@ msgstr "Retener" msgid "IDS_CALL_BUTTON_JOIN" msgstr "Enlazar" -msgid "IDS_CALL_BUTTON_MUTE_ABB" -msgstr "Silencio" - msgid "IDS_CALL_BUTTON_REJECT" msgstr "Rechazar" @@ -206,7 +221,7 @@ msgid "IDS_CALL_POP_SERVICE_NOT_ALLOWED" msgstr "Servicio no permitido" msgid "IDS_CALL_POP_SOS_CALL_ONLY_IN_NO_SIM_MODE" -msgstr "Sólo llamadas de emergencia. Inserte tarjeta SIM para acceder a los servicios de red" +msgstr "Sólo llamadas de emergencia.\nInserte tarjeta SIM para acceder a los servicios de red" msgid "IDS_CALL_POP_SPLIT_FAILED" msgstr "Error al dividir" @@ -263,7 +278,7 @@ msgid "IDS_CALL_POP_WRONG_GROUP" msgstr "Grupo erróneo" msgid "IDS_CST_BODY_REJECT_CALL_WITH_MESSAGE" -msgstr "Rechazar llamada con mensaje" +msgstr "Definir mens. de rechazo" msgid "IDS_CALL_POP_END_ACTIVE_CALL" msgstr "Finalizar llamada activa" @@ -301,24 +316,12 @@ msgstr "No hay memoria suficiente. Elimine algunos elementos" msgid "IDS_CALL_SK3_END_CALL" msgstr "Fin llam" -msgid "IDS_MSGC_OPT_SOUND" -msgstr "Sonido" - msgid "IDS_CALL_BODY_SERVICE_UNAVAILABLE" msgstr "Servicio no disponible" msgid "IDS_CALL_SK3_KEYPAD" msgstr "Teclado" -msgid "IDS_CALL_POP_CONNECTING" -msgstr "Conectando..." - -msgid "IDS_CALL_POP_REJECTED" -msgstr "Rechazado" - -msgid "IDS_CALL_POP_SENDING" -msgstr "Enviando..." - msgid "IDS_CALL_BUTTON2_HIDE_KEYPAD" msgstr "Ocultar teclado" @@ -328,6 +331,183 @@ msgstr "REC" msgid "IDS_CALL_POP_UNKNOWNREJECTED" msgstr "Llamada desconocida rechazada" -msgid "IDS_CALL_POP_SAVED" -msgstr "Guardado" +msgid "IDS_CALL_OPT_SWITCH" +msgstr "Cambiar" + +msgid "IDS_CALL_HEADER_SELECT_NUMBER" +msgstr "Seleccionar número" + +msgid "IDS_CALL_BODY_IN_PD_DAYS" +msgstr "en %d días" + +msgid "IDS_CALL_BODY_TOMORROW" +msgstr "Mañana" + +msgid "IDS_CALL_POP_IN_A_WEEK" +msgstr "Dentro de 1 semana" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Poniendo %s en espera" + +msgid "IDS_CALL_BODY_ENDING_CALL_WITH_PS" +msgstr "Finalizar la llamada con %s" + +msgid "IDS_CALL_HEADER_ACCEPT_CALL_AFTER" +msgstr "Aceptar la llamada después de" + +msgid "IDS_CALL_BODY_END_ALL_CALLS" +msgstr "Fin todas llamadas" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_OFF" +msgstr "Reducción de ruido desactivada" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_ON" +msgstr "Reducción de ruido activada" + +msgid "IDS_CST_OPT_BOOST_LOW_TONES_ABB" +msgstr "Potenc tonos bajos" + +msgid "IDS_CST_OPT_BOOST_HIGH_TONES_ABB" +msgstr "Potenc tonos altos" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_LEFT_EAR" +msgstr "Optim para oído izquierdo" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_RIGHT_EAR" +msgstr "Optim para oído derecho" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "No se puede activar la reducción de sonido mientras el volumen extra está habilitado" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_EARPHONE_CONNECTED" +msgstr "No se puede activar la reducción de sonido cuando el auricular está conectado" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "No se puede activar la reducción de sonido cuando los auriculares Bluetooth están activados" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_DURING_WIDEBAND_CALLS" +msgstr "No se puede activar la reducción de sonido durante llamadas de banda ancha" + +msgid "IDS_CALL_POP_TO_USE_THIS_FUNCTION_YOU_HAVE_TO_CHECK_OPTIMISE_EQ_FOR_ME_UNDER_CALL_SETTINGS" +msgstr "Para utilizar esta función, debe marcar optimizar EQ para mí en Ajustes de llamada" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_SPEAKER_IS_ON" +msgstr "No se puede activar EQ de sonido de llamadas cuando el altavoz está encendido" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_EARPHONES_ARE_CONNECTED" +msgstr "No se puede activar EQ de sonido de llamadas cuando los auriculares están conectados" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "No se puede activar EQ de sonido de llamadas cuando los auriculares Bluetooth están activados" + +msgid "IDS_CALL_POP_UNABLE_TO_USE_EXTRA_VOLUME_RANGE_WHEN_EARPHONES_OR_BT_HEADSET_ARE_CONNECTED" +msgstr "No se puede utilizar el intervalo de volumen extra cuando hay auriculares o un auricular BT conectados" + +msgid "IDS_CALL_POP_CALLING" +msgstr "Llamando..." + +msgid "IDS_CALL_HEADER_MANAGE_CONFERENCE_CALL" +msgstr "Administrar multiconferencia" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "No se puede activar EQ de sonido de llamadas mientras el volumen extra está habilitado" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_DURING_WIDEBAND_CALLS" +msgstr "No se puede habilitar EQ de sonido de llamadas durante llamadas de banda ancha" + +msgid "IDS_CALL_BUTTON_SOUND_ABB" +msgstr "Sonido" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_SPEAKER_IS_ON" +msgstr "No se puede activar la reducción de sonido cuando el altavoz está encendido" + +msgid "IDS_CALL_HEADER_REJECT_MESSAGES" +msgstr "Rechazar mensajes" + +msgid "IDS_CALL_OPT_VOICE_CALL" +msgstr "Llamada de voz" + +msgid "IDS_CALL_OPT_VIDEO_CALL" +msgstr "Videollamada" + +msgid "IDS_CALL_SK3_SHARE" +msgstr "Compartir" + +msgid "IDS_CALL_BUTTON_KEYPAD" +msgstr "Teclado" + +msgid "IDS_CALL_BUTTON_END_CALL" +msgstr "Finalizar" + +msgid "IDS_CALL_BUTTON_SPEAKER_ABB" +msgstr "Altavoz" + +msgid "IDS_CALL_BUTTON_AUDIO_SOURCE" +msgstr "Origen audio" + +msgid "IDS_CALL_OPT_PHONE" +msgstr "Teléfono" + +msgid "IDS_CALL_BUTTON_MUTE" +msgstr "Silencio" + +msgid "IDS_CALL_BUTTON_ADD_TO_CONTACTS" +msgstr "Añadir a Contactos" + +msgid "IDS_CALL_SK3_VOICE_CALL" +msgstr "Llamar" + +msgid "IDS_CALL_BUTTON_VIDEO_CALL" +msgstr "Videoll." + +msgid "IDS_CALL_SK3_MESSAGE" +msgstr "Mensaje" + +msgid "IDS_CALL_SK3_ADD_TO_CONTACTS" +msgstr "Añad a Contacto" + +msgid "IDS_CALL_OPT_MESSAGE" +msgstr "Mensajes" + +msgid "IDS_CALL_SK_SWAP_ABB" +msgstr "Cambiar" + +msgid "IDS_CALL_SK3_MORE" +msgstr "Más" + +msgid "IDS_CALL_OPT_SHARE_FILE_VIA_CHATON_ABB" +msgstr "Compart archivo por ChatON" + +msgid "IDS_CALL_HEADER_SHARE_ABB" +msgstr "Compartir" + +msgid "IDS_CALL_BODY_PD_TIMES" +msgstr "%d veces" + +msgid "IDS_QP_BODY_GROUP_CALL_HPD_ABB" +msgstr "Llamada a grupo (%d)" + +msgid "IDS_CALL_OPT1_SAVED_IMAGE" +msgstr "Imagen guardada" + +msgid "IDS_CALL_OPT1_SAVED_VIDEO" +msgstr "Vídeo guardado" + +msgid "IDS_CALL_OPT1_TAKE_A_PICTURE" +msgstr "Hacer una fotografía" + +msgid "IDS_CALL_BUTTON2_LIVE_VIDEO" +msgstr "Vídeo direct" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT" +msgstr "Ver contacto" + +msgid "IDS_CALL_HEADER_MY_CALL_SOUND_ABB" +msgstr "My call sound" + +msgid "IDS_CALL_HEADER_PD_MISSED_CALLS" +msgstr "%d llamadas perdidas" + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Llamada perdida" diff --git a/ui/po/fr_FR.po b/ui/po/fr_FR.po index 0316cf0..8617d24 100755 --- a/ui/po/fr_FR.po +++ b/ui/po/fr_FR.po @@ -1,3 +1,21 @@ +msgid "IDS_CALL_SK_ACCEPT" +msgstr "Accepter" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Muet" + +msgid "IDS_CALL_POP_CONNECTING" +msgstr "Connexion..." + +msgid "IDS_CALL_POP_REJECTED" +msgstr "Rejeté" + +msgid "IDS_CALL_POP_SAVED" +msgstr "Enregistré" + +msgid "IDS_CALL_POP_SENDING" +msgstr "Envoi..." + msgid "IDS_CALL_HEADER_CREATE_REJECT_MESSAGE" msgstr "Créer un message de rejet" @@ -17,7 +35,7 @@ msgid "IDS_CALL_BODY_CALLENDED" msgstr "Fin d'appel" msgid "IDS_CALL_BODY_CALL_REJECTED" -msgstr "Appel refusé" +msgstr "Appel rejeté" msgid "IDS_CALL_BODY_DISCONNECTED" msgstr "Déconnecté" @@ -67,9 +85,6 @@ msgstr "Attente" msgid "IDS_CALL_BUTTON_JOIN" msgstr "Rejoindre" -msgid "IDS_CALL_BUTTON_MUTE_ABB" -msgstr "Muet" - msgid "IDS_CALL_BUTTON_REJECT" msgstr "Refuser" @@ -113,7 +128,7 @@ msgid "IDS_CALL_POP_CALLNOTCALLOWED" msgstr "Appel non autorisé" msgid "IDS_CALL_POP_CALL_BARRED" -msgstr "Appel interdit" +msgstr "Appel restreint" msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_ALWAYS" msgstr "Renvoi d'appel activé : Toujours" @@ -197,7 +212,7 @@ msgid "IDS_CALL_POP_PHONE_NOT_INITIALISED" msgstr "Téléphone non initialisé" msgid "IDS_CALL_POP_PS_REJECTED" -msgstr "4422341526 refusé" +msgstr "%s rejeté" msgid "IDS_CALL_POP_REDIALLING" msgstr "Rappel..." @@ -206,7 +221,7 @@ msgid "IDS_CALL_POP_SERVICE_NOT_ALLOWED" msgstr "Service non autorisé" msgid "IDS_CALL_POP_SOS_CALL_ONLY_IN_NO_SIM_MODE" -msgstr "Appel d'urgence uniquement. Insérez la carte SIM pour accéder aux services réseau" +msgstr "Appel d'urgence uniquement.\nInsérez la carte SIM pour accéder aux services réseau" msgid "IDS_CALL_POP_SPLIT_FAILED" msgstr "Échec appel isolé" @@ -230,7 +245,7 @@ msgid "IDS_CALL_POP_SWITCHED_TO_PHONE" msgstr "Basculer sur le téléphone" msgid "IDS_CALL_POP_TRANSFER_FAILED" -msgstr "Erreur de transfert" +msgstr "Echec du transfert" msgid "IDS_CALL_POP_TRANSFER_NOT_SUPPORTED" msgstr "Transfert non supporté" @@ -266,7 +281,7 @@ msgid "IDS_CST_BODY_REJECT_CALL_WITH_MESSAGE" msgstr "Rejeter l'appel avec message" msgid "IDS_CALL_POP_END_ACTIVE_CALL" -msgstr "Terminer l'appel en cours" +msgstr "Fin de l'appel en cours" msgid "IDS_CALL_OPT_HOLDCALL" msgstr "Mettre l'appel en attente" @@ -301,24 +316,12 @@ msgstr "Mémoire insuffisante. Supprimez certains éléments" msgid "IDS_CALL_SK3_END_CALL" msgstr "Fin" -msgid "IDS_MSGC_OPT_SOUND" -msgstr "Son" - msgid "IDS_CALL_BODY_SERVICE_UNAVAILABLE" msgstr "Service non disponible" msgid "IDS_CALL_SK3_KEYPAD" msgstr "Clavier" -msgid "IDS_CALL_POP_CONNECTING" -msgstr "Connexion ..." - -msgid "IDS_CALL_POP_REJECTED" -msgstr "Rejeté" - -msgid "IDS_CALL_POP_SENDING" -msgstr "Envoi ..." - msgid "IDS_CALL_BUTTON2_HIDE_KEYPAD" msgstr "Masquer clavier" @@ -326,8 +329,185 @@ msgid "IDS_CALL_SK_REC_ABB" msgstr "ENREG" msgid "IDS_CALL_POP_UNKNOWNREJECTED" -msgstr "Appelant inconnu\nrefusé" +msgstr "Appelant inconnu rejeté" -msgid "IDS_CALL_POP_SAVED" -msgstr "Enregistré" +msgid "IDS_CALL_OPT_SWITCH" +msgstr "Changement appli." + +msgid "IDS_CALL_HEADER_SELECT_NUMBER" +msgstr "Sélectionner numéro" + +msgid "IDS_CALL_BODY_IN_PD_DAYS" +msgstr "dans %d jours" + +msgid "IDS_CALL_BODY_TOMORROW" +msgstr "Demain" + +msgid "IDS_CALL_POP_IN_A_WEEK" +msgstr "Dans une semaine" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Mettre %s en attente" + +msgid "IDS_CALL_BODY_ENDING_CALL_WITH_PS" +msgstr "Mettre fin à l'appel avec %s" + +msgid "IDS_CALL_HEADER_ACCEPT_CALL_AFTER" +msgstr "Accepter l'appel après" + +msgid "IDS_CALL_BODY_END_ALL_CALLS" +msgstr "Terminer tous les appels" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_OFF" +msgstr "Désactiver réduction du bruit" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_ON" +msgstr "Activer réduction du bruit" + +msgid "IDS_CST_OPT_BOOST_LOW_TONES_ABB" +msgstr "Augmenter tons bas" + +msgid "IDS_CST_OPT_BOOST_HIGH_TONES_ABB" +msgstr "Augm. tons élevés" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_LEFT_EAR" +msgstr "Optimisé pr oreille gche" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_RIGHT_EAR" +msgstr "Optimisé pr oreille dte" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "Impossible d'activer la réduction du bruit lorsque la fonction de volume supplémentaire est activée" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_EARPHONE_CONNECTED" +msgstr "Impossible d'activer la réduction du bruit si l'écouteur est branché" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "Impossible d'activer la réduction du bruit lorsque le casque Bluetooth est activé" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_DURING_WIDEBAND_CALLS" +msgstr "Impossible d'activer la réduction du bruit pendant des appels large bande" + +msgid "IDS_CALL_POP_TO_USE_THIS_FUNCTION_YOU_HAVE_TO_CHECK_OPTIMISE_EQ_FOR_ME_UNDER_CALL_SETTINGS" +msgstr "Pour utiliser cette fonction, vous devez cocher Optimiser l'égaliseur pour moi dans les paramètres d'appel" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_SPEAKER_IS_ON" +msgstr "Impossible d'activer l'égaliseur de son des appels en cours lorsque le haut-parleur est activé" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_EARPHONES_ARE_CONNECTED" +msgstr "Impossible d'activer l'égaliseur de son des appels en cours lorsque les écouteurs sont connectés" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "Impossible d'activer l'égaliseur de son des appels en cours lorsque le casque Bluetooth est activé" + +msgid "IDS_CALL_POP_UNABLE_TO_USE_EXTRA_VOLUME_RANGE_WHEN_EARPHONES_OR_BT_HEADSET_ARE_CONNECTED" +msgstr "Impossible d'utiliser la fonction de volume supplémentaire lorsque des écouteurs ou le casque BT sont connectés" + +msgid "IDS_CALL_POP_CALLING" +msgstr "Appel..." + +msgid "IDS_CALL_HEADER_MANAGE_CONFERENCE_CALL" +msgstr "Gérer la conférence" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "Impossible d'activer l'égaliseur de son des appels en cours lorsque la fonction de volume supplémentaire est activée" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_DURING_WIDEBAND_CALLS" +msgstr "Impossible d'activer l'égaliseur de son pendant les appels large bande" + +msgid "IDS_CALL_BUTTON_SOUND_ABB" +msgstr "Son" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_SPEAKER_IS_ON" +msgstr "Impossible d'activer la réduction du bruit si le haut-parleur est activé" + +msgid "IDS_CALL_HEADER_REJECT_MESSAGES" +msgstr "Messages de rejet" + +msgid "IDS_CALL_OPT_VOICE_CALL" +msgstr "Appel vocal" + +msgid "IDS_CALL_OPT_VIDEO_CALL" +msgstr "Appel visio" + +msgid "IDS_CALL_SK3_SHARE" +msgstr "Partager" + +msgid "IDS_CALL_BUTTON_KEYPAD" +msgstr "Clavier" + +msgid "IDS_CALL_BUTTON_END_CALL" +msgstr "Fin" + +msgid "IDS_CALL_BUTTON_SPEAKER_ABB" +msgstr "HP" + +msgid "IDS_CALL_BUTTON_AUDIO_SOURCE" +msgstr "Source audio" + +msgid "IDS_CALL_OPT_PHONE" +msgstr "Téléphone" + +msgid "IDS_CALL_BUTTON_MUTE" +msgstr "Muet" + +msgid "IDS_CALL_BUTTON_ADD_TO_CONTACTS" +msgstr "Ajouter" + +msgid "IDS_CALL_SK3_VOICE_CALL" +msgstr "Appel vocal" + +msgid "IDS_CALL_BUTTON_VIDEO_CALL" +msgstr "Visio" + +msgid "IDS_CALL_SK3_MESSAGE" +msgstr "Message" + +msgid "IDS_CALL_SK3_ADD_TO_CONTACTS" +msgstr "Aj. aux contacts" + +msgid "IDS_CALL_OPT_MESSAGE" +msgstr "Message" + +msgid "IDS_CALL_SK_SWAP_ABB" +msgstr "Perm." + +msgid "IDS_CALL_SK3_MORE" +msgstr "Plus" + +msgid "IDS_CALL_OPT_SHARE_FILE_VIA_CHATON_ABB" +msgstr "Partager fich. via ChatON" + +msgid "IDS_CALL_HEADER_SHARE_ABB" +msgstr "Partager" + +msgid "IDS_CALL_BODY_PD_TIMES" +msgstr "%d fois" + +msgid "IDS_QP_BODY_GROUP_CALL_HPD_ABB" +msgstr "Appel de groupe (%d)" + +msgid "IDS_CALL_OPT1_SAVED_IMAGE" +msgstr "Image enregistrée" + +msgid "IDS_CALL_OPT1_SAVED_VIDEO" +msgstr "Vidéo enregistrée" + +msgid "IDS_CALL_OPT1_TAKE_A_PICTURE" +msgstr "Prendre une photo" + +msgid "IDS_CALL_BUTTON2_LIVE_VIDEO" +msgstr "Vidéo direct" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT" +msgstr "Aff. contact" + +msgid "IDS_CALL_HEADER_MY_CALL_SOUND_ABB" +msgstr "My call sound" + +msgid "IDS_CALL_HEADER_PD_MISSED_CALLS" +msgstr "%d appels manqués" + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Appel manqué" diff --git a/ui/po/it_IT.po b/ui/po/it_IT.po index cdc7cfc..673df0b 100755 --- a/ui/po/it_IT.po +++ b/ui/po/it_IT.po @@ -1,3 +1,21 @@ +msgid "IDS_CALL_SK_ACCEPT" +msgstr "Accetta" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Muto" + +msgid "IDS_CALL_POP_CONNECTING" +msgstr "Connessione..." + +msgid "IDS_CALL_POP_REJECTED" +msgstr "Rifiutata" + +msgid "IDS_CALL_POP_SAVED" +msgstr "Salvato" + +msgid "IDS_CALL_POP_SENDING" +msgstr "Invio..." + msgid "IDS_CALL_HEADER_CREATE_REJECT_MESSAGE" msgstr "Crea messaggio di rifiuto" @@ -67,9 +85,6 @@ msgstr "In attesa" msgid "IDS_CALL_BUTTON_JOIN" msgstr "In conf." -msgid "IDS_CALL_BUTTON_MUTE_ABB" -msgstr "Muto" - msgid "IDS_CALL_BUTTON_REJECT" msgstr "Rifiuta" @@ -98,10 +113,10 @@ msgid "IDS_CALL_POP_AEESYS_SYSTEMFAILUREERROR" msgstr "Errore di sistema" msgid "IDS_CALL_POP_ALL_INCOMING_CALLS_BARRED" -msgstr "Blocco di tutte le chiamate entranti" +msgstr "Tutte le chiamate in arrivo bloccate" msgid "IDS_CALL_POP_ALL_OUTGOING_CALLS_BARRED" -msgstr "Blocco di tutte le chiamate uscenti" +msgstr "Tutte le chiamate in uscita bloccate" msgid "IDS_CALL_POP_CALLFAILED" msgstr "Chiamata non riuscita" @@ -191,13 +206,13 @@ msgid "IDS_CALL_POP_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME_BARRED" msgstr "Chiamate internazionali in uscita bloccate tranne verso proprio paese" msgid "IDS_CALL_POP_OUTGOING_INTER_CALLS_BARRED" -msgstr "Uscenti internazionali bloccate" +msgstr "Chiamate internazionali in uscita bloccate" msgid "IDS_CALL_POP_PHONE_NOT_INITIALISED" msgstr "Telefono non inizializzato" msgid "IDS_CALL_POP_PS_REJECTED" -msgstr "4422341526 rifiutato" +msgstr "%s rifiutato" msgid "IDS_CALL_POP_REDIALLING" msgstr "Ricomposizione..." @@ -206,7 +221,7 @@ msgid "IDS_CALL_POP_SERVICE_NOT_ALLOWED" msgstr "Servizio non consentito" msgid "IDS_CALL_POP_SOS_CALL_ONLY_IN_NO_SIM_MODE" -msgstr "Solo chiamate di emergenza. Inserire scheda SIM per accedere ai servizi di rete" +msgstr "Solo chiamate di emergenza.\nInserire scheda SIM per accedere ai servizi di rete" msgid "IDS_CALL_POP_SPLIT_FAILED" msgstr "Divisione non eseguita" @@ -224,7 +239,7 @@ msgid "IDS_CALL_POP_SWAP_NOT_SUPPORTED" msgstr "Scambio non supportato" msgid "IDS_CALL_POP_SWITCHED_TO_BT_HEADSET" -msgstr "Commutato su auricolare BT" +msgstr "Commutato su auricolare Bluetooth" msgid "IDS_CALL_POP_SWITCHED_TO_PHONE" msgstr "Telefono attivato" @@ -301,24 +316,12 @@ msgstr "Memoria insufficiente. Eliminare alcuni elementi" msgid "IDS_CALL_SK3_END_CALL" msgstr "Termina" -msgid "IDS_MSGC_OPT_SOUND" -msgstr "Suono" - msgid "IDS_CALL_BODY_SERVICE_UNAVAILABLE" msgstr "Servizio non disponibile" msgid "IDS_CALL_SK3_KEYPAD" msgstr "Tastiera" -msgid "IDS_CALL_POP_CONNECTING" -msgstr "Connessione..." - -msgid "IDS_CALL_POP_REJECTED" -msgstr "Rifiutata" - -msgid "IDS_CALL_POP_SENDING" -msgstr "Invio..." - msgid "IDS_CALL_BUTTON2_HIDE_KEYPAD" msgstr "Nasc. tastiera" @@ -328,6 +331,183 @@ msgstr "Reg" msgid "IDS_CALL_POP_UNKNOWNREJECTED" msgstr "Chiamata sconosciuta rifiutata" -msgid "IDS_CALL_POP_SAVED" -msgstr "Salvato" +msgid "IDS_CALL_OPT_SWITCH" +msgstr "Passa a" + +msgid "IDS_CALL_HEADER_SELECT_NUMBER" +msgstr "Seleziona numero" + +msgid "IDS_CALL_BODY_IN_PD_DAYS" +msgstr "tra %d giorni" + +msgid "IDS_CALL_BODY_TOMORROW" +msgstr "Domani" + +msgid "IDS_CALL_POP_IN_A_WEEK" +msgstr "Tra 1 settimana" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Metti %s in attesa" + +msgid "IDS_CALL_BODY_ENDING_CALL_WITH_PS" +msgstr "Fine chiamata con %s" + +msgid "IDS_CALL_HEADER_ACCEPT_CALL_AFTER" +msgstr "Accetta chiamata dopo" + +msgid "IDS_CALL_BODY_END_ALL_CALLS" +msgstr "Termina tutte le chiamate" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_OFF" +msgstr "Disattiva riduzione disturbi" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_ON" +msgstr "Attiva riduzione disturbi" + +msgid "IDS_CST_OPT_BOOST_LOW_TONES_ABB" +msgstr "Incrementa bassi" + +msgid "IDS_CST_OPT_BOOST_HIGH_TONES_ABB" +msgstr "Incrementa alti" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_LEFT_EAR" +msgstr "Ottimiz. per orecchio sx" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_RIGHT_EAR" +msgstr "Ottimiz. per orecchio dx" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "Impossibile attivare la riduzione rumore con volume aggiuntivo attivato" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_EARPHONE_CONNECTED" +msgstr "Impossibile attivare la riduzione fruscio se è connesso l'auricolare" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "Impossibile attivare la riduzione fruscio se è attivo l'auricolare Bluetooth" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_DURING_WIDEBAND_CALLS" +msgstr "Impossibile attivare la riduzione fruscio durante le chiamate a banda larga" + +msgid "IDS_CALL_POP_TO_USE_THIS_FUNCTION_YOU_HAVE_TO_CHECK_OPTIMISE_EQ_FOR_ME_UNDER_CALL_SETTINGS" +msgstr "Per utilizzare questa funzione, è necessario verificare l'equalizzazione personale ottimale nelle impostazioni di chiamata" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_SPEAKER_IS_ON" +msgstr "Impossibile attivare equalizzatore audio in chiamata se l'altoparlante è attivo" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_EARPHONES_ARE_CONNECTED" +msgstr "Impossibile attivare equalizzatore audio in chiamata se gli auricolari sono connessi" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "Impossibile attivare equalizzatore audio in chiamata se l'auricolare Bluetooth è attivo" + +msgid "IDS_CALL_POP_UNABLE_TO_USE_EXTRA_VOLUME_RANGE_WHEN_EARPHONES_OR_BT_HEADSET_ARE_CONNECTED" +msgstr "Impossibile utilizzare l'intervallo di volume aggiuntivo se gli auricolari o l'auricolare Bluetooth sono connessi" + +msgid "IDS_CALL_POP_CALLING" +msgstr "Chiamata..." + +msgid "IDS_CALL_HEADER_MANAGE_CONFERENCE_CALL" +msgstr "Gestisci conferenza" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "Impossibile attivare equalizzatore audio in chiamata con volume aggiuntivo attivato" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_DURING_WIDEBAND_CALLS" +msgstr "Impossibile attivare equalizzatore audio in chiamata durante le chiamate a banda larga" + +msgid "IDS_CALL_BUTTON_SOUND_ABB" +msgstr "Suono" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_SPEAKER_IS_ON" +msgstr "Impossibile attivare la riduzione fruscio se è attivo l'altoparlante" + +msgid "IDS_CALL_HEADER_REJECT_MESSAGES" +msgstr "Rifiuta messaggi" + +msgid "IDS_CALL_OPT_VOICE_CALL" +msgstr "Chiamata vocale" + +msgid "IDS_CALL_OPT_VIDEO_CALL" +msgstr "Videochiamata" + +msgid "IDS_CALL_SK3_SHARE" +msgstr "Condividi" + +msgid "IDS_CALL_BUTTON_KEYPAD" +msgstr "Tastiera" + +msgid "IDS_CALL_BUTTON_END_CALL" +msgstr "Termina" + +msgid "IDS_CALL_BUTTON_SPEAKER_ABB" +msgstr "Vivavoce" + +msgid "IDS_CALL_BUTTON_AUDIO_SOURCE" +msgstr "Fonte audio" + +msgid "IDS_CALL_OPT_PHONE" +msgstr "Telefono" + +msgid "IDS_CALL_BUTTON_MUTE" +msgstr "Muto" + +msgid "IDS_CALL_BUTTON_ADD_TO_CONTACTS" +msgstr "Aggiungi a Rubrica" + +msgid "IDS_CALL_SK3_VOICE_CALL" +msgstr "Chiama" + +msgid "IDS_CALL_BUTTON_VIDEO_CALL" +msgstr "Videoch." + +msgid "IDS_CALL_SK3_MESSAGE" +msgstr "Messaggio" + +msgid "IDS_CALL_SK3_ADD_TO_CONTACTS" +msgstr "Agg. a Rubrica" + +msgid "IDS_CALL_OPT_MESSAGE" +msgstr "Messaggio" + +msgid "IDS_CALL_SK_SWAP_ABB" +msgstr "Scambia" + +msgid "IDS_CALL_SK3_MORE" +msgstr "Altro" + +msgid "IDS_CALL_OPT_SHARE_FILE_VIA_CHATON_ABB" +msgstr "Condividi file con ChatON" + +msgid "IDS_CALL_HEADER_SHARE_ABB" +msgstr "Condividi" + +msgid "IDS_CALL_BODY_PD_TIMES" +msgstr "%d volte" + +msgid "IDS_QP_BODY_GROUP_CALL_HPD_ABB" +msgstr "Chiamata gruppo (%d)" + +msgid "IDS_CALL_OPT1_SAVED_IMAGE" +msgstr "Immagine salvata" + +msgid "IDS_CALL_OPT1_SAVED_VIDEO" +msgstr "Video salvati" + +msgid "IDS_CALL_OPT1_TAKE_A_PICTURE" +msgstr "Scatta una foto" + +msgid "IDS_CALL_BUTTON2_LIVE_VIDEO" +msgstr "Video live" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT" +msgstr "Vedi contatto" + +msgid "IDS_CALL_HEADER_MY_CALL_SOUND_ABB" +msgstr "My call sound" + +msgid "IDS_CALL_HEADER_PD_MISSED_CALLS" +msgstr "%d chiamate senza risposta" + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Chiamata persa" diff --git a/ui/po/ja_JP.po b/ui/po/ja_JP.po index 7b5ce4c..65b7c1a 100755 --- a/ui/po/ja_JP.po +++ b/ui/po/ja_JP.po @@ -1,14 +1,32 @@ +msgid "IDS_CALL_SK_ACCEPT" +msgstr "同意" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "消音" + +msgid "IDS_CALL_POP_CONNECTING" +msgstr "接続中..." + +msgid "IDS_CALL_POP_REJECTED" +msgstr "拒否されました。" + +msgid "IDS_CALL_POP_SAVED" +msgstr "保存​しま​した。" + +msgid "IDS_CALL_POP_SENDING" +msgstr "送信中..." + msgid "IDS_CALL_HEADER_CREATE_REJECT_MESSAGE" -msgstr "拒否​メッセージ​の​作成" +msgstr "着信​拒否​メッセージ​を​作成" msgid "IDS_CALL_POP_REJECT_MESSAGE_LIST_IS_EMPTY" -msgstr "拒否​メッセージ​リスト​は​空​です" +msgstr "着信​拒否​メッセージ​リスト​が​ありません。" msgid "IDS_VCALL_BUTTON_REJECT_WITH_MESSAGE" -msgstr "拒否してSMS送信" +msgstr "拒否してメッセージ送信" msgid "IDS_CALL_BODY_CALL" -msgstr "通話設定" +msgstr "通話" msgid "IDS_CALL_BODY_CALLED_PARTY_UNAVAILABLE" msgstr "発信​相手​は​電話​に​出られ​ません" @@ -23,7 +41,7 @@ msgid "IDS_CALL_BODY_DISCONNECTED" msgstr "切断しました。" msgid "IDS_CALL_BODY_INVALID_NUMBER" -msgstr "番号​が​無効​です" +msgstr "番号​が​無効​です。" msgid "IDS_CALL_BODY_IN_CALL" msgstr "通話中" @@ -38,7 +56,7 @@ msgid "IDS_CALL_BODY_NUMBER_CHANGED" msgstr "番号​が​変更​されました" msgid "IDS_CALL_BODY_NUMBER_DOES_NOT_EXIST" -msgstr "番号​が​存在​しません" +msgstr "番号​が​存在​しません。" msgid "IDS_CALL_BODY_ON_HOLD_ABB" msgstr "保留中" @@ -67,9 +85,6 @@ msgstr "保留" msgid "IDS_CALL_BUTTON_JOIN" msgstr "参加" -msgid "IDS_CALL_BUTTON_MUTE_ABB" -msgstr "ミュート" - msgid "IDS_CALL_BUTTON_REJECT" msgstr "拒否" @@ -92,10 +107,10 @@ msgid "IDS_CALL_OPT_HOLD_CURRENT_CALL_N_ANSWER" msgstr "現在の通話を保留にして応答" msgid "IDS_CALL_OPT_PRIVATE" -msgstr "個人携帯" +msgstr "非公開" msgid "IDS_CALL_POP_AEESYS_SYSTEMFAILUREERROR" -msgstr "システム​エラー" +msgstr "システムエラー" msgid "IDS_CALL_POP_ALL_INCOMING_CALLS_BARRED" msgstr "全ての​着信​が​規制​されて​います" @@ -113,7 +128,7 @@ msgid "IDS_CALL_POP_CALLNOTCALLOWED" msgstr "通話​は​許可されて​いません" msgid "IDS_CALL_POP_CALL_BARRED" -msgstr "通話​は​規制​されて​います" +msgstr "通話は制限されています。" msgid "IDS_CALL_POP_CALL_DIVERTING_ACTIVE_C_ALWAYS" msgstr "通話​を​転送する:常時" @@ -131,7 +146,7 @@ msgid "IDS_CALL_POP_CALL_IS_DIVERTED" msgstr "通話転送されました" msgid "IDS_CALL_POP_CAUSE_WRONG_NUMBER" -msgstr "番号​が​正しく​ありません" +msgstr "番号​が​正しく​ありません。" msgid "IDS_CALL_POP_CHANGEOFFLINEMODETOCALL" msgstr "オフライン​から​他の​ネットワーク​サービス​の​接続先​に​変更" @@ -143,7 +158,7 @@ msgid "IDS_CALL_POP_DTMFSENDING_FAIL" msgstr "送信​に​失敗​しました。​リトライ" msgid "IDS_CALL_POP_EMERGENCY_CALL" -msgstr "緊急通話" +msgstr "緊急通報" msgid "IDS_CALL_POP_FDNCALLONLY" msgstr "FDN電話​限定​です" @@ -176,13 +191,13 @@ msgid "IDS_CALL_POP_NETWORKBUSY" msgstr "ネットワーク​混雑中" msgid "IDS_CALL_POP_NETWORK_UNAVAILABLE" -msgstr "ネットワーク​を​利用​できません" +msgstr "ネットワーク​を​利用​できません。" msgid "IDS_CALL_POP_NOCREDITLEFT" msgstr "料金​上限​設定​を​超えて​います" msgid "IDS_CALL_POP_NOSERVICE" -msgstr "サービスが利用できません。" +msgstr "サービス​が​利用​でき​ません。" msgid "IDS_CALL_POP_OPERATION_REFUSED" msgstr "操作​は​拒否​されました" @@ -206,7 +221,7 @@ msgid "IDS_CALL_POP_SERVICE_NOT_ALLOWED" msgstr "サービス​は​許可されて​いません" msgid "IDS_CALL_POP_SOS_CALL_ONLY_IN_NO_SIM_MODE" -msgstr "SOS​通話​のみ。​ SIM​​カード​を​挿入して、​ネットワーク​サービス​に​アクセス​します" +msgstr "SOS​通話​のみ。​\nSIM​​カード​を​挿入して、​ネットワーク​サービス​に​アクセス​します" msgid "IDS_CALL_POP_SPLIT_FAILED" msgstr "分割​に​失敗​しました" @@ -230,7 +245,7 @@ msgid "IDS_CALL_POP_SWITCHED_TO_PHONE" msgstr "本体​に​切り​替え​ます" msgid "IDS_CALL_POP_TRANSFER_FAILED" -msgstr "転送​に​失敗​しました" +msgstr "転送​に​失敗​しました。" msgid "IDS_CALL_POP_TRANSFER_NOT_SUPPORTED" msgstr "転送​に​対応​して​いません" @@ -263,7 +278,7 @@ msgid "IDS_CALL_POP_WRONG_GROUP" msgstr "グループ​が​間違って​います" msgid "IDS_CST_BODY_REJECT_CALL_WITH_MESSAGE" -msgstr "着信拒否時にSMS送信" +msgstr "着信拒否時にメッセージ送信" msgid "IDS_CALL_POP_END_ACTIVE_CALL" msgstr "現在の​通話​を​終了" @@ -290,35 +305,23 @@ msgid "IDS_CALL_BUTTON_RECEIVER" msgstr "受話​器" msgid "IDS_CALL_BODY_FAILED_TO_REGISTER_ACCOUNT" -msgstr "アカウント​の​登録​に​失敗​しました" +msgstr "アカウント​の​登録​に​失敗​しました。" msgid "IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB" msgstr "現在の​通話​を​保留" msgid "IDS_CALL_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" -msgstr "メモリーが​不足​しています。​いくつかのアイテム​を​削除​してください" +msgstr "メモリが不足しています。不要なアイテムを削除してください。" msgid "IDS_CALL_SK3_END_CALL" msgstr "通話​を​終了​" -msgid "IDS_MSGC_OPT_SOUND" -msgstr "サウンド" - msgid "IDS_CALL_BODY_SERVICE_UNAVAILABLE" msgstr "サービス​を​利用​できません" msgid "IDS_CALL_SK3_KEYPAD" msgstr "キーパッド" -msgid "IDS_CALL_POP_CONNECTING" -msgstr "接続中..." - -msgid "IDS_CALL_POP_REJECTED" -msgstr "拒否されました。" - -msgid "IDS_CALL_POP_SENDING" -msgstr "送信中..." - msgid "IDS_CALL_BUTTON2_HIDE_KEYPAD" msgstr "キーパッド​を​非表示" @@ -328,6 +331,183 @@ msgstr "録音" msgid "IDS_CALL_POP_UNKNOWNREJECTED" msgstr "非通知​通話​を​拒否​しました" -msgid "IDS_CALL_POP_SAVED" -msgstr "保存しました。" +msgid "IDS_CALL_OPT_SWITCH" +msgstr "切替" + +msgid "IDS_CALL_HEADER_SELECT_NUMBER" +msgstr "番号​を​選択" + +msgid "IDS_CALL_BODY_IN_PD_DAYS" +msgstr "%d日で" + +msgid "IDS_CALL_BODY_TOMORROW" +msgstr "明日" + +msgid "IDS_CALL_POP_IN_A_WEEK" +msgstr "一週間​以内" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "%sを保留にします。" + +msgid "IDS_CALL_BODY_ENDING_CALL_WITH_PS" +msgstr "%sとの通話を終了します。" + +msgid "IDS_CALL_HEADER_ACCEPT_CALL_AFTER" +msgstr "通話状態の選択" + +msgid "IDS_CALL_BODY_END_ALL_CALLS" +msgstr "全ての​相手​と​終話" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_OFF" +msgstr "ノイズキャンセラOFF" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_ON" +msgstr "ノイズキャンセラON" + +msgid "IDS_CST_OPT_BOOST_LOW_TONES_ABB" +msgstr "低音強調" + +msgid "IDS_CST_OPT_BOOST_HIGH_TONES_ABB" +msgstr "高音強調" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_LEFT_EAR" +msgstr "左耳に最適化" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_RIGHT_EAR" +msgstr "右耳に最適化" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "最大音量制限が有効のときは、ノイズキャンセラをONにできません。" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_EARPHONE_CONNECTED" +msgstr "イヤホン​が​接続​されて​いる​とき​は、​ノイズ​キャンセラ​を​ON​に​できません。" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "Bluetooth​ヘッドセット​が​ON​の​とき​は、​ノイズ​キャンセラ​を​ON​に​できません。" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_DURING_WIDEBAND_CALLS" +msgstr "広帯域​で​通話中​は、​ノイズ​リダクション​を​ON​に​できません" + +msgid "IDS_CALL_POP_TO_USE_THIS_FUNCTION_YOU_HAVE_TO_CHECK_OPTIMISE_EQ_FOR_ME_UNDER_CALL_SETTINGS" +msgstr "この機能を使うには、通話設定の最適EQを確認する必要があります。" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_SPEAKER_IS_ON" +msgstr "スピーカーがONのときは、通話音EQを有効にできません。" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_EARPHONES_ARE_CONNECTED" +msgstr "イヤホンが接続されているときは、通話音EQを有効にできません。" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "BluetoothヘッドセットがONのときは、通話音EQを有効にできません。" + +msgid "IDS_CALL_POP_UNABLE_TO_USE_EXTRA_VOLUME_RANGE_WHEN_EARPHONES_OR_BT_HEADSET_ARE_CONNECTED" +msgstr "イヤホンまたはBTヘッドセットを接続しているときは、最大音量域を使用できません。" + +msgid "IDS_CALL_POP_CALLING" +msgstr "呼び出し中..." + +msgid "IDS_CALL_HEADER_MANAGE_CONFERENCE_CALL" +msgstr "グループ通話を​管理" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "最大音量制限が​​設定されている​​場合、​​通話音EQを​​有効に​​できません。" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_DURING_WIDEBAND_CALLS" +msgstr "広帯域で通話中は、通話音EQを有効にできません。" + +msgid "IDS_CALL_BUTTON_SOUND_ABB" +msgstr "サウンド" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_SPEAKER_IS_ON" +msgstr "スピーカーがONのときは、ノイズキャンセラをONにできません。" + +msgid "IDS_CALL_HEADER_REJECT_MESSAGES" +msgstr "着信拒否メッセージ" + +msgid "IDS_CALL_OPT_VOICE_CALL" +msgstr "音声通話" + +msgid "IDS_CALL_OPT_VIDEO_CALL" +msgstr "テレビ電話" + +msgid "IDS_CALL_SK3_SHARE" +msgstr "共有" + +msgid "IDS_CALL_BUTTON_KEYPAD" +msgstr "キーパッド" + +msgid "IDS_CALL_BUTTON_END_CALL" +msgstr "通話​を​終了" + +msgid "IDS_CALL_BUTTON_SPEAKER_ABB" +msgstr "スピーカー" + +msgid "IDS_CALL_BUTTON_AUDIO_SOURCE" +msgstr "オーディオ​ソース" + +msgid "IDS_CALL_OPT_PHONE" +msgstr "本体" + +msgid "IDS_CALL_BUTTON_MUTE" +msgstr "消音" + +msgid "IDS_CALL_BUTTON_ADD_TO_CONTACTS" +msgstr "連絡先に追加" + +msgid "IDS_CALL_SK3_VOICE_CALL" +msgstr "発信" + +msgid "IDS_CALL_BUTTON_VIDEO_CALL" +msgstr "テレビ電話" + +msgid "IDS_CALL_SK3_MESSAGE" +msgstr "メッセージ" + +msgid "IDS_CALL_SK3_ADD_TO_CONTACTS" +msgstr "新規電話帳​作成" + +msgid "IDS_CALL_OPT_MESSAGE" +msgstr "メッセージ" + +msgid "IDS_CALL_SK_SWAP_ABB" +msgstr "通話相手を切替" + +msgid "IDS_CALL_SK3_MORE" +msgstr "その他" + +msgid "IDS_CALL_OPT_SHARE_FILE_VIA_CHATON_ABB" +msgstr "ChatONでファイルを共有" + +msgid "IDS_CALL_HEADER_SHARE_ABB" +msgstr "共有" + +msgid "IDS_CALL_BODY_PD_TIMES" +msgstr "%d回" + +msgid "IDS_QP_BODY_GROUP_CALL_HPD_ABB" +msgstr "グループ​通話​(%d)" + +msgid "IDS_CALL_OPT1_SAVED_IMAGE" +msgstr "保存​画像" + +msgid "IDS_CALL_OPT1_SAVED_VIDEO" +msgstr "保存​動画" + +msgid "IDS_CALL_OPT1_TAKE_A_PICTURE" +msgstr "写真​を​撮影" + +msgid "IDS_CALL_BUTTON2_LIVE_VIDEO" +msgstr "ライブ​動画" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT" +msgstr "連絡先を表示" + +msgid "IDS_CALL_HEADER_MY_CALL_SOUND_ABB" +msgstr "My call sound" + +msgid "IDS_CALL_HEADER_PD_MISSED_CALLS" +msgstr "%d​​件の不在着信" + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "不在着信" diff --git a/ui/po/ko_KR.po b/ui/po/ko_KR.po index 1ec8536..d1225fc 100755 --- a/ui/po/ko_KR.po +++ b/ui/po/ko_KR.po @@ -1,3 +1,21 @@ +msgid "IDS_CALL_SK_ACCEPT" +msgstr "통화" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "송화음 차단" + +msgid "IDS_CALL_POP_CONNECTING" +msgstr "연결 중..." + +msgid "IDS_CALL_POP_REJECTED" +msgstr "수신 거부하였습니다" + +msgid "IDS_CALL_POP_SAVED" +msgstr "저장되었습니다" + +msgid "IDS_CALL_POP_SENDING" +msgstr "전송 중..." + msgid "IDS_CALL_HEADER_CREATE_REJECT_MESSAGE" msgstr "수신 거부 메시지 작성" @@ -44,7 +62,7 @@ msgid "IDS_CALL_BODY_ON_HOLD_ABB" msgstr "보류됨" msgid "IDS_CALL_BODY_PEOPLE" -msgstr "인원" +msgstr "사람" msgid "IDS_CALL_BUTTON_ACCEPT" msgstr "통화" @@ -65,16 +83,13 @@ msgid "IDS_CALL_BUTTON_HOLD" msgstr "일시중단" msgid "IDS_CALL_BUTTON_JOIN" -msgstr "연결" - -msgid "IDS_CALL_BUTTON_MUTE_ABB" -msgstr "음소거" +msgstr "가입하기" msgid "IDS_CALL_BUTTON_REJECT" msgstr "거절" msgid "IDS_CALL_BUTTON_SPEAKER" -msgstr "스피커" +msgstr "한뼘통화" msgid "IDS_CALL_BUTTON_SPLIT" msgstr "통화 분리" @@ -301,24 +316,12 @@ msgstr "저장 공간이 없습니다. 필요 없는 파일을 삭제하세요" msgid "IDS_CALL_SK3_END_CALL" msgstr "통화 종료" -msgid "IDS_MSGC_OPT_SOUND" -msgstr "소리" - msgid "IDS_CALL_BODY_SERVICE_UNAVAILABLE" msgstr "서비스를 사용할 수 없습니다" msgid "IDS_CALL_SK3_KEYPAD" msgstr "키패드" -msgid "IDS_CALL_POP_CONNECTING" -msgstr "연결 중..." - -msgid "IDS_CALL_POP_REJECTED" -msgstr "수신 거부하였습니다" - -msgid "IDS_CALL_POP_SENDING" -msgstr "전송 중..." - msgid "IDS_CALL_BUTTON2_HIDE_KEYPAD" msgstr "키패드 숨기기" @@ -328,6 +331,183 @@ msgstr "녹음" msgid "IDS_CALL_POP_UNKNOWNREJECTED" msgstr "발신자 번호가 없는 전화를 거부하였습니다" -msgid "IDS_CALL_POP_SAVED" -msgstr "저장되었습니다" +msgid "IDS_CALL_OPT_SWITCH" +msgstr "전환" + +msgid "IDS_CALL_HEADER_SELECT_NUMBER" +msgstr "번호를 선택하세요" + +msgid "IDS_CALL_BODY_IN_PD_DAYS" +msgstr "%d일 안에" + +msgid "IDS_CALL_BODY_TOMORROW" +msgstr "내일" + +msgid "IDS_CALL_POP_IN_A_WEEK" +msgstr "1주 후" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "일시중단 %s" + +msgid "IDS_CALL_BODY_ENDING_CALL_WITH_PS" +msgstr "종료 %s" + +msgid "IDS_CALL_HEADER_ACCEPT_CALL_AFTER" +msgstr "대기 통화 설정" + +msgid "IDS_CALL_BODY_END_ALL_CALLS" +msgstr "모든 통화 종료" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_OFF" +msgstr "소음제거 해제" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_ON" +msgstr "소음제거 실행" + +msgid "IDS_CST_OPT_BOOST_LOW_TONES_ABB" +msgstr "낮은 음 강조" + +msgid "IDS_CST_OPT_BOOST_HIGH_TONES_ABB" +msgstr "높은 음 강조" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_LEFT_EAR" +msgstr "왼쪽 귀를 위해 최적화" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_RIGHT_EAR" +msgstr "오른쪽 귀를 위해 최적화" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "추가 음량을 이용 중일 때는 소음 제거를 실행할 수 없습니다" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_EARPHONE_CONNECTED" +msgstr "이어폰이 연결되어 있을 때는 소음 제거를 실행할 수 없습니다" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "블루투스 헤드셋을 사용할 때는 소음 제거를 실행할 수 없습니다" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_DURING_WIDEBAND_CALLS" +msgstr "광대역 통화를 이용 중일 때는 소음 제거를 실행할 수 없습니다" + +msgid "IDS_CALL_POP_TO_USE_THIS_FUNCTION_YOU_HAVE_TO_CHECK_OPTIMISE_EQ_FOR_ME_UNDER_CALL_SETTINGS" +msgstr "이 기능을 사용하려면 [통화] 설정에서 통화 음질 최적화를 확인해야 합니다" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_SPEAKER_IS_ON" +msgstr "스피커가 켜져 있으면 통화 음질 설정을 실행할 수 없습니다" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_EARPHONES_ARE_CONNECTED" +msgstr "이어폰이 연결되어 있으면 통화 음질 설정을 실행할 수 없습니다" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "블루투스 헤드셋이 켜져 있으면 통화 음질 설정을 실행할 수 없습니다" + +msgid "IDS_CALL_POP_UNABLE_TO_USE_EXTRA_VOLUME_RANGE_WHEN_EARPHONES_OR_BT_HEADSET_ARE_CONNECTED" +msgstr "이어폰 또는 블루투스 헤드셋에 연결되어 있을 때에는 추가 음량을 사용할 수 없습니다" + +msgid "IDS_CALL_POP_CALLING" +msgstr "전화를 거는 중..." + +msgid "IDS_CALL_HEADER_MANAGE_CONFERENCE_CALL" +msgstr "회의통화 관리" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "추가 음량을 이용 중일 때는 통화 음질 설정을 실행할 수 없습니다" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_DURING_WIDEBAND_CALLS" +msgstr "광대역 통화 중에는 통화 음질 설정을 실행할 수 없습니다" + +msgid "IDS_CALL_BUTTON_SOUND_ABB" +msgstr "소리" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_SPEAKER_IS_ON" +msgstr "스피커를 사용할 때는 소음 제거를 실행할 수 없습니다" + +msgid "IDS_CALL_HEADER_REJECT_MESSAGES" +msgstr "거절 메시지" + +msgid "IDS_CALL_OPT_VOICE_CALL" +msgstr "음성통화" + +msgid "IDS_CALL_OPT_VIDEO_CALL" +msgstr "영상통화" + +msgid "IDS_CALL_SK3_SHARE" +msgstr "공유" + +msgid "IDS_CALL_BUTTON_KEYPAD" +msgstr "키패드" + +msgid "IDS_CALL_BUTTON_END_CALL" +msgstr "통화 종료" + +msgid "IDS_CALL_BUTTON_SPEAKER_ABB" +msgstr "한뼘통화" + +msgid "IDS_CALL_BUTTON_AUDIO_SOURCE" +msgstr "음성 소스" + +msgid "IDS_CALL_OPT_PHONE" +msgstr "휴대폰" + +msgid "IDS_CALL_BUTTON_MUTE" +msgstr "송화음 차단" + +msgid "IDS_CALL_BUTTON_ADD_TO_CONTACTS" +msgstr "연락처에 추가" + +msgid "IDS_CALL_SK3_VOICE_CALL" +msgstr "음성통화" + +msgid "IDS_CALL_BUTTON_VIDEO_CALL" +msgstr "영상통화" + +msgid "IDS_CALL_SK3_MESSAGE" +msgstr "메시지" + +msgid "IDS_CALL_SK3_ADD_TO_CONTACTS" +msgstr "연락처에 추가" + +msgid "IDS_CALL_OPT_MESSAGE" +msgstr "메시지" + +msgid "IDS_CALL_SK_SWAP_ABB" +msgstr "전환" + +msgid "IDS_CALL_SK3_MORE" +msgstr "더보기" + +msgid "IDS_CALL_OPT_SHARE_FILE_VIA_CHATON_ABB" +msgstr "ChatON으로 파일 공유" + +msgid "IDS_CALL_HEADER_SHARE_ABB" +msgstr "공유" + +msgid "IDS_CALL_BODY_PD_TIMES" +msgstr "%d회" + +msgid "IDS_QP_BODY_GROUP_CALL_HPD_ABB" +msgstr "그룹 통화(%d)" + +msgid "IDS_CALL_OPT1_SAVED_IMAGE" +msgstr "저장된 이미지" + +msgid "IDS_CALL_OPT1_SAVED_VIDEO" +msgstr "저장된 영상" + +msgid "IDS_CALL_OPT1_TAKE_A_PICTURE" +msgstr "사진 촬영" + +msgid "IDS_CALL_BUTTON2_LIVE_VIDEO" +msgstr "라이브 영상" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT" +msgstr "연락처 보기" + +msgid "IDS_CALL_HEADER_MY_CALL_SOUND_ABB" +msgstr "My call sound" + +msgid "IDS_CALL_HEADER_PD_MISSED_CALLS" +msgstr "부재중 전화 %d통" + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "부재중 전화" diff --git a/ui/po/nl_NL.po b/ui/po/nl_NL.po index db8d6b0..467a877 100755 --- a/ui/po/nl_NL.po +++ b/ui/po/nl_NL.po @@ -1,3 +1,21 @@ +msgid "IDS_CALL_SK_ACCEPT" +msgstr "OK" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Stil" + +msgid "IDS_CALL_POP_CONNECTING" +msgstr "Verbinden..." + +msgid "IDS_CALL_POP_REJECTED" +msgstr "Geweigerd" + +msgid "IDS_CALL_POP_SAVED" +msgstr "Opgeslagen" + +msgid "IDS_CALL_POP_SENDING" +msgstr "Verzenden..." + msgid "IDS_CALL_HEADER_CREATE_REJECT_MESSAGE" msgstr "Weigeringsbericht maken" @@ -50,7 +68,7 @@ msgid "IDS_CALL_BUTTON_ACCEPT" msgstr "Opnemen" msgid "IDS_CALL_BUTTON_ADD_CALL" -msgstr "Nwe oproep" +msgstr "Nieuwe opr." msgid "IDS_CALL_BUTTON_CONTACTS" msgstr "Contacten" @@ -67,9 +85,6 @@ msgstr "In wacht" msgid "IDS_CALL_BUTTON_JOIN" msgstr "Deeln." -msgid "IDS_CALL_BUTTON_MUTE_ABB" -msgstr "Dempen" - msgid "IDS_CALL_BUTTON_REJECT" msgstr "Weigeren" @@ -134,7 +149,7 @@ msgid "IDS_CALL_POP_CAUSE_WRONG_NUMBER" msgstr "Nummer onjuist" msgid "IDS_CALL_POP_CHANGEOFFLINEMODETOCALL" -msgstr "Voor netwerkdiensten vliegtuigprofiel in ander profiel wijzigen" +msgstr "Voor netwerkdiensten offlineprofiel in ander profiel wijzigen" msgid "IDS_CALL_POP_DIALLING" msgstr "Kiezen..." @@ -197,7 +212,7 @@ msgid "IDS_CALL_POP_PHONE_NOT_INITIALISED" msgstr "Telefoon niet geïnitialiseerd" msgid "IDS_CALL_POP_PS_REJECTED" -msgstr "4422341526 geweigerd" +msgstr "%s geweigerd" msgid "IDS_CALL_POP_REDIALLING" msgstr "Opnieuw kiezen..." @@ -206,7 +221,7 @@ msgid "IDS_CALL_POP_SERVICE_NOT_ALLOWED" msgstr "Dienst niet toegestaan" msgid "IDS_CALL_POP_SOS_CALL_ONLY_IN_NO_SIM_MODE" -msgstr "Alleen noodoproepen mogelijk. Voor netwerkdiensten SIM-kaart plaatsen" +msgstr "Alleen noodoproepen mogelijk.\nVoor netwerkdiensten SIM-kaart plaatsen" msgid "IDS_CALL_POP_SPLIT_FAILED" msgstr "Uit multiparty halen mislukt" @@ -260,7 +275,7 @@ msgid "IDS_CALL_POP_WAITING_ACTIVE" msgstr "Wisselgesprek" msgid "IDS_CALL_POP_WRONG_GROUP" -msgstr "Groep onjuist" +msgstr "Onjuiste groep" msgid "IDS_CST_BODY_REJECT_CALL_WITH_MESSAGE" msgstr "Oproep met bericht weigeren" @@ -301,23 +316,11 @@ msgstr "Onvoldoende geheugen. Wis een aantal items" msgid "IDS_CALL_SK3_END_CALL" msgstr "Einde" -msgid "IDS_MSGC_OPT_SOUND" -msgstr "Geluid" - msgid "IDS_CALL_BODY_SERVICE_UNAVAILABLE" msgstr "Service niet beschikbaar" msgid "IDS_CALL_SK3_KEYPAD" -msgstr "Toetsen-\nbord" - -msgid "IDS_CALL_POP_CONNECTING" -msgstr "Verbinden..." - -msgid "IDS_CALL_POP_REJECTED" -msgstr "Geweigerd" - -msgid "IDS_CALL_POP_SENDING" -msgstr "Verzenden..." +msgstr "Toetsenbord" msgid "IDS_CALL_BUTTON2_HIDE_KEYPAD" msgstr "Verberg toetsen" @@ -328,6 +331,183 @@ msgstr "Opn." msgid "IDS_CALL_POP_UNKNOWNREJECTED" msgstr "Onbekende oproep geweigerd" -msgid "IDS_CALL_POP_SAVED" -msgstr "Opgeslagen" +msgid "IDS_CALL_OPT_SWITCH" +msgstr "Wisselen" + +msgid "IDS_CALL_HEADER_SELECT_NUMBER" +msgstr "Selecteer nummer" + +msgid "IDS_CALL_BODY_IN_PD_DAYS" +msgstr "over %d dagen" + +msgid "IDS_CALL_BODY_TOMORROW" +msgstr "Morgen" + +msgid "IDS_CALL_POP_IN_A_WEEK" +msgstr "Over een week" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "%s in de wacht zetten" + +msgid "IDS_CALL_BODY_ENDING_CALL_WITH_PS" +msgstr "Oproep beëindigen met %s" + +msgid "IDS_CALL_HEADER_ACCEPT_CALL_AFTER" +msgstr "Oproep accepteren na" + +msgid "IDS_CALL_BODY_END_ALL_CALLS" +msgstr "Alle gespr. beëindigen" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_OFF" +msgstr "Ruisonderdrukking uit" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_ON" +msgstr "Ruisonderdrukking aan" + +msgid "IDS_CST_OPT_BOOST_LOW_TONES_ABB" +msgstr "Lage tonen boost" + +msgid "IDS_CST_OPT_BOOST_HIGH_TONES_ABB" +msgstr "Hoge tonen boost" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_LEFT_EAR" +msgstr "Optimaal voor linkeroor" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_RIGHT_EAR" +msgstr "Optimaal voor rechteroor" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "Kan ruisreductie niet activeren terwijl extra volume is ingeschakeld" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_EARPHONE_CONNECTED" +msgstr "Kan ruisreductie niet activeren wanneer oortelefoon is aangesloten" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "Kan ruisreductie niet activeren wanneer Bluetooth-headset is ingeschakeld" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_DURING_WIDEBAND_CALLS" +msgstr "Kan ruisreductie niet inschakelen tijdens breedbandoproepen" + +msgid "IDS_CALL_POP_TO_USE_THIS_FUNCTION_YOU_HAVE_TO_CHECK_OPTIMISE_EQ_FOR_ME_UNDER_CALL_SETTINGS" +msgstr "Als u deze functie wilt gebruiken, moet u EQ voor mij optimaliseren inschakelen onder Oproepinstellingen" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_SPEAKER_IS_ON" +msgstr "Kan EQ toon tijdens gesprek niet activeren wanneer luidspreker is ingeschakeld" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_EARPHONES_ARE_CONNECTED" +msgstr "Kan EQ toon tijdens gesprek niet activeren wanneer headset is aangesloten" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "Kan EQ toon tijdens gesprek niet activeren wanneer Bluetooth-headset is ingeschakeld" + +msgid "IDS_CALL_POP_UNABLE_TO_USE_EXTRA_VOLUME_RANGE_WHEN_EARPHONES_OR_BT_HEADSET_ARE_CONNECTED" +msgstr "Kan extra volumebereik niet gebruiken wanneer BT-headset of oortjes zijn aangesloten" + +msgid "IDS_CALL_POP_CALLING" +msgstr "Bellen..." + +msgid "IDS_CALL_HEADER_MANAGE_CONFERENCE_CALL" +msgstr "Vergaderoproep beheren" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "Kan EQ toon tijdens gesprek niet activeren wanneer extra volume is ingeschakeld" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_DURING_WIDEBAND_CALLS" +msgstr "Kan EQ toon tijdens gesprek niet activeren tijdens breedbandoproepen" + +msgid "IDS_CALL_BUTTON_SOUND_ABB" +msgstr "Geluid" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_SPEAKER_IS_ON" +msgstr "Kan ruisreductie niet activeren wanneer luidspreker is ingeschakeld" + +msgid "IDS_CALL_HEADER_REJECT_MESSAGES" +msgstr "Weigerberichten" + +msgid "IDS_CALL_OPT_VOICE_CALL" +msgstr "Spraakoproep" + +msgid "IDS_CALL_OPT_VIDEO_CALL" +msgstr "Video-oproep" + +msgid "IDS_CALL_SK3_SHARE" +msgstr "Delen" + +msgid "IDS_CALL_BUTTON_KEYPAD" +msgstr "Toetsenbord" + +msgid "IDS_CALL_BUTTON_END_CALL" +msgstr "Einde opr." + +msgid "IDS_CALL_BUTTON_SPEAKER_ABB" +msgstr "Speaker" + +msgid "IDS_CALL_BUTTON_AUDIO_SOURCE" +msgstr "Audiobron" + +msgid "IDS_CALL_OPT_PHONE" +msgstr "Telefoon" + +msgid "IDS_CALL_BUTTON_MUTE" +msgstr "Stil" + +msgid "IDS_CALL_BUTTON_ADD_TO_CONTACTS" +msgstr "Toevoegen aan contacten" + +msgid "IDS_CALL_SK3_VOICE_CALL" +msgstr "Spraakopr." + +msgid "IDS_CALL_BUTTON_VIDEO_CALL" +msgstr "Video" + +msgid "IDS_CALL_SK3_MESSAGE" +msgstr "Bericht" + +msgid "IDS_CALL_SK3_ADD_TO_CONTACTS" +msgstr "Toev. aan cont." + +msgid "IDS_CALL_OPT_MESSAGE" +msgstr "Bericht" + +msgid "IDS_CALL_SK_SWAP_ABB" +msgstr "Wissel" + +msgid "IDS_CALL_SK3_MORE" +msgstr "Meer" + +msgid "IDS_CALL_OPT_SHARE_FILE_VIA_CHATON_ABB" +msgstr "Bestand delen via ChatON" + +msgid "IDS_CALL_HEADER_SHARE_ABB" +msgstr "Delen" + +msgid "IDS_CALL_BODY_PD_TIMES" +msgstr "%d keer" + +msgid "IDS_QP_BODY_GROUP_CALL_HPD_ABB" +msgstr "Groepsoproep (%d)" + +msgid "IDS_CALL_OPT1_SAVED_IMAGE" +msgstr "Opgesl. afbeelding" + +msgid "IDS_CALL_OPT1_SAVED_VIDEO" +msgstr "Opgeslagen video" + +msgid "IDS_CALL_OPT1_TAKE_A_PICTURE" +msgstr "Foto nemen" + +msgid "IDS_CALL_BUTTON2_LIVE_VIDEO" +msgstr "Live video" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT" +msgstr "Contact tonen" + +msgid "IDS_CALL_HEADER_MY_CALL_SOUND_ABB" +msgstr "My call sound" + +msgid "IDS_CALL_HEADER_PD_MISSED_CALLS" +msgstr "%d gemiste opr." + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Gemiste oproep" diff --git a/ui/po/pt_PT.po b/ui/po/pt_PT.po index 7d23966..ff93542 100755 --- a/ui/po/pt_PT.po +++ b/ui/po/pt_PT.po @@ -1,3 +1,21 @@ +msgid "IDS_CALL_SK_ACCEPT" +msgstr "Aceitar" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Silenciar" + +msgid "IDS_CALL_POP_CONNECTING" +msgstr "A ligar..." + +msgid "IDS_CALL_POP_REJECTED" +msgstr "Rejeitado" + +msgid "IDS_CALL_POP_SAVED" +msgstr "Guardado" + +msgid "IDS_CALL_POP_SENDING" +msgstr "A enviar..." + msgid "IDS_CALL_HEADER_CREATE_REJECT_MESSAGE" msgstr "Criar mensagem de rejeição" @@ -50,7 +68,7 @@ msgid "IDS_CALL_BUTTON_ACCEPT" msgstr "Aceitar" msgid "IDS_CALL_BUTTON_ADD_CALL" -msgstr "Ad. cham." +msgstr "Adicionar" msgid "IDS_CALL_BUTTON_CONTACTS" msgstr "Contactos" @@ -59,7 +77,7 @@ msgid "IDS_CALL_BUTTON_END_M_CALL_BUTTON" msgstr "Terminar" msgid "IDS_CALL_BUTTON_HEADSET" -msgstr "Auric." +msgstr "Auricular" msgid "IDS_CALL_BUTTON_HOLD" msgstr "Reter" @@ -67,14 +85,11 @@ msgstr "Reter" msgid "IDS_CALL_BUTTON_JOIN" msgstr "Aderir" -msgid "IDS_CALL_BUTTON_MUTE_ABB" -msgstr "Desl. mic." - msgid "IDS_CALL_BUTTON_REJECT" msgstr "Rejeitar" msgid "IDS_CALL_BUTTON_SPEAKER" -msgstr "Altifal." +msgstr "Altifalante" msgid "IDS_CALL_BUTTON_SPLIT" msgstr "Dividir" @@ -206,7 +221,7 @@ msgid "IDS_CALL_POP_SERVICE_NOT_ALLOWED" msgstr "Serviço não permitido" msgid "IDS_CALL_POP_SOS_CALL_ONLY_IN_NO_SIM_MODE" -msgstr "Apenas chamada SOS. Insira o cartão SIM para aceder aos serviços de rede" +msgstr "Apenas chamada SOS.\nInsira o cartão SIM para aceder aos serviços de rede" msgid "IDS_CALL_POP_SPLIT_FAILED" msgstr "Falha ao dividir" @@ -301,24 +316,12 @@ msgstr "Memória insuficiente. Apague alguns itens" msgid "IDS_CALL_SK3_END_CALL" msgstr "Ter. ch." -msgid "IDS_MSGC_OPT_SOUND" -msgstr "Som" - msgid "IDS_CALL_BODY_SERVICE_UNAVAILABLE" msgstr "Serviço não disponível" msgid "IDS_CALL_SK3_KEYPAD" msgstr "Teclado" -msgid "IDS_CALL_POP_CONNECTING" -msgstr "A ligar..." - -msgid "IDS_CALL_POP_REJECTED" -msgstr "Rejeitado" - -msgid "IDS_CALL_POP_SENDING" -msgstr "A enviar..." - msgid "IDS_CALL_BUTTON2_HIDE_KEYPAD" msgstr "Ocultar teclado" @@ -328,6 +331,183 @@ msgstr "GRAV." msgid "IDS_CALL_POP_UNKNOWNREJECTED" msgstr "Chamada anónima rejeitada" -msgid "IDS_CALL_POP_SAVED" -msgstr "Guardado" +msgid "IDS_CALL_OPT_SWITCH" +msgstr "Trocar" + +msgid "IDS_CALL_HEADER_SELECT_NUMBER" +msgstr "Seleccionar número" + +msgid "IDS_CALL_BODY_IN_PD_DAYS" +msgstr "dentro de %d dias" + +msgid "IDS_CALL_BODY_TOMORROW" +msgstr "Amanhã" + +msgid "IDS_CALL_POP_IN_A_WEEK" +msgstr "Dentro de uma semana" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Colocar %s em espera" + +msgid "IDS_CALL_BODY_ENDING_CALL_WITH_PS" +msgstr "Terminar chamada com %s" + +msgid "IDS_CALL_HEADER_ACCEPT_CALL_AFTER" +msgstr "Aceitar chamada depois de" + +msgid "IDS_CALL_BODY_END_ALL_CALLS" +msgstr "Terminar todas chamadas" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_OFF" +msgstr "Desligar redução de ruído" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_ON" +msgstr "Ligar redução de ruído" + +msgid "IDS_CST_OPT_BOOST_LOW_TONES_ABB" +msgstr "Ampl. tons graves" + +msgid "IDS_CST_OPT_BOOST_HIGH_TONES_ABB" +msgstr "Ampl. tons agudos" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_LEFT_EAR" +msgstr "Optimizada p/ ouvido esq." + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_RIGHT_EAR" +msgstr "Optimizada p/ ouvido dir." + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "Impossível ligar a redução de ruído quando o volume extra está activado" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_EARPHONE_CONNECTED" +msgstr "Impossível ligar a redução de ruído quando o auricular está ligado" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "Impossível ligar a redução de ruído quando o auricular Bluetooth está ligado" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_DURING_WIDEBAND_CALLS" +msgstr "Impossível ligar a redução de ruído durante as chamadas de banda larga" + +msgid "IDS_CALL_POP_TO_USE_THIS_FUNCTION_YOU_HAVE_TO_CHECK_OPTIMISE_EQ_FOR_ME_UNDER_CALL_SETTINGS" +msgstr "Para utilizar esta função, tem de marcar Optimizar EQ para mim nas definições de Chamada" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_SPEAKER_IS_ON" +msgstr "Impossível activar o EQ do som de chamada recebida quando o altifalante está ligado" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_EARPHONES_ARE_CONNECTED" +msgstr "Impossível activar o EQ do som de chamada recebida quando os auscultadores estão ligados" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "Impossível activar o EQ do som de chamada recebida quando o auricular Bluetooth está ligado" + +msgid "IDS_CALL_POP_UNABLE_TO_USE_EXTRA_VOLUME_RANGE_WHEN_EARPHONES_OR_BT_HEADSET_ARE_CONNECTED" +msgstr "Impossível utilizar o intervalo de volume extra quando estão ligados auscultadores ou auriculares BT" + +msgid "IDS_CALL_POP_CALLING" +msgstr "A chamar..." + +msgid "IDS_CALL_HEADER_MANAGE_CONFERENCE_CALL" +msgstr "Gerir chamada de conferência" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "Impossível activar o EQ do som de chamada recebida quando o volume extra está activado" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_DURING_WIDEBAND_CALLS" +msgstr "Impossível activar o EQ do som de chamada recebida durante chamadas de banda larga" + +msgid "IDS_CALL_BUTTON_SOUND_ABB" +msgstr "Som" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_SPEAKER_IS_ON" +msgstr "Impossível ligar a redução de ruído quando o altifalante está ligado" + +msgid "IDS_CALL_HEADER_REJECT_MESSAGES" +msgstr "Mensagens de rejeição" + +msgid "IDS_CALL_OPT_VOICE_CALL" +msgstr "Chamada de voz" + +msgid "IDS_CALL_OPT_VIDEO_CALL" +msgstr "Vídeochamada" + +msgid "IDS_CALL_SK3_SHARE" +msgstr "Partilhar" + +msgid "IDS_CALL_BUTTON_KEYPAD" +msgstr "Teclado" + +msgid "IDS_CALL_BUTTON_END_CALL" +msgstr "Terminar" + +msgid "IDS_CALL_BUTTON_SPEAKER_ABB" +msgstr "Altifal." + +msgid "IDS_CALL_BUTTON_AUDIO_SOURCE" +msgstr "Fonte áudio" + +msgid "IDS_CALL_OPT_PHONE" +msgstr "Telefone" + +msgid "IDS_CALL_BUTTON_MUTE" +msgstr "Silenciar" + +msgid "IDS_CALL_BUTTON_ADD_TO_CONTACTS" +msgstr "Adic. a Contactos" + +msgid "IDS_CALL_SK3_VOICE_CALL" +msgstr "Chamada de voz" + +msgid "IDS_CALL_BUTTON_VIDEO_CALL" +msgstr "Ch. víd." + +msgid "IDS_CALL_SK3_MESSAGE" +msgstr "Mensagem" + +msgid "IDS_CALL_SK3_ADD_TO_CONTACTS" +msgstr "Adic. a Contact." + +msgid "IDS_CALL_OPT_MESSAGE" +msgstr "Mensagem" + +msgid "IDS_CALL_SK_SWAP_ABB" +msgstr "Alter." + +msgid "IDS_CALL_SK3_MORE" +msgstr "Mais" + +msgid "IDS_CALL_OPT_SHARE_FILE_VIA_CHATON_ABB" +msgstr "Partilhar fich. via ChatON" + +msgid "IDS_CALL_HEADER_SHARE_ABB" +msgstr "Partilhar" + +msgid "IDS_CALL_BODY_PD_TIMES" +msgstr "%d vezes" + +msgid "IDS_QP_BODY_GROUP_CALL_HPD_ABB" +msgstr "Chamada grupo (%d)" + +msgid "IDS_CALL_OPT1_SAVED_IMAGE" +msgstr "Imagem guardada" + +msgid "IDS_CALL_OPT1_SAVED_VIDEO" +msgstr "Vídeo guardado" + +msgid "IDS_CALL_OPT1_TAKE_A_PICTURE" +msgstr "Tirar uma fotografia" + +msgid "IDS_CALL_BUTTON2_LIVE_VIDEO" +msgstr "Vídeo direc." + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT" +msgstr "Ver contacto" + +msgid "IDS_CALL_HEADER_MY_CALL_SOUND_ABB" +msgstr "My call sound" + +msgid "IDS_CALL_HEADER_PD_MISSED_CALLS" +msgstr "%d chamadas perdidas" + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Chamada não atendida" diff --git a/ui/po/ru_RU.po b/ui/po/ru_RU.po index 728cde0..0760c07 100755 --- a/ui/po/ru_RU.po +++ b/ui/po/ru_RU.po @@ -1,3 +1,21 @@ +msgid "IDS_CALL_SK_ACCEPT" +msgstr "Принять" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Звук" + +msgid "IDS_CALL_POP_CONNECTING" +msgstr "Подключение..." + +msgid "IDS_CALL_POP_REJECTED" +msgstr "Отклонено" + +msgid "IDS_CALL_POP_SAVED" +msgstr "Соxранено" + +msgid "IDS_CALL_POP_SENDING" +msgstr "Отправка..." + msgid "IDS_CALL_HEADER_CREATE_REJECT_MESSAGE" msgstr "Создать сообщение для отклонения вызова" @@ -67,9 +85,6 @@ msgstr "Удержать" msgid "IDS_CALL_BUTTON_JOIN" msgstr "Конф." -msgid "IDS_CALL_BUTTON_MUTE_ABB" -msgstr "Звук" - msgid "IDS_CALL_BUTTON_REJECT" msgstr "Отказ" @@ -101,7 +116,7 @@ msgid "IDS_CALL_POP_ALL_INCOMING_CALLS_BARRED" msgstr "Все входящие вызовы запрещены" msgid "IDS_CALL_POP_ALL_OUTGOING_CALLS_BARRED" -msgstr "Все исходящие вызовы\nзапрещены" +msgstr "Все исходящие вызовы запрещены" msgid "IDS_CALL_POP_CALLFAILED" msgstr "Сбой вызова" @@ -191,22 +206,22 @@ msgid "IDS_CALL_POP_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME_BARRED" msgstr "Запрет исходящих международных вызовов, кроме домашних" msgid "IDS_CALL_POP_OUTGOING_INTER_CALLS_BARRED" -msgstr "Исходящие международные\nвызовы запрещены" +msgstr "Исходящие международные вызовы запрещены" msgid "IDS_CALL_POP_PHONE_NOT_INITIALISED" msgstr "Телефон не инициализирован" msgid "IDS_CALL_POP_PS_REJECTED" -msgstr "4422341526 отклонен" +msgstr "%s отклонен" msgid "IDS_CALL_POP_REDIALLING" msgstr "Повторный набор..." msgid "IDS_CALL_POP_SERVICE_NOT_ALLOWED" -msgstr "Сервис запрещен" +msgstr "Услуга запрещена" msgid "IDS_CALL_POP_SOS_CALL_ONLY_IN_NO_SIM_MODE" -msgstr "Только экстренный вызов. Для доступа к услугам сети вставьте SIM-карту" +msgstr "Только экстренный вызов.\nДля доступа к услугам сети вставьте SIM-карту" msgid "IDS_CALL_POP_SPLIT_FAILED" msgstr "Сбой разделения" @@ -230,7 +245,7 @@ msgid "IDS_CALL_POP_SWITCHED_TO_PHONE" msgstr "Переключено на телефон" msgid "IDS_CALL_POP_TRANSFER_FAILED" -msgstr "Сбой перевода" +msgstr "Сбой передачи" msgid "IDS_CALL_POP_TRANSFER_NOT_SUPPORTED" msgstr "Перевод не поддерживается" @@ -263,7 +278,7 @@ msgid "IDS_CALL_POP_WRONG_GROUP" msgstr "Неверная грyппа" msgid "IDS_CST_BODY_REJECT_CALL_WITH_MESSAGE" -msgstr "Отклонить и сообщение" +msgstr "Отклонить вызов с сообщением" msgid "IDS_CALL_POP_END_ACTIVE_CALL" msgstr "Завершить активный вызов" @@ -301,24 +316,12 @@ msgstr "Недостаточно памяти. Удалите некоторые msgid "IDS_CALL_SK3_END_CALL" msgstr "Заверш." -msgid "IDS_MSGC_OPT_SOUND" -msgstr "Звук" - msgid "IDS_CALL_BODY_SERVICE_UNAVAILABLE" msgstr "Услуга недоступна" msgid "IDS_CALL_SK3_KEYPAD" msgstr "Клавиатура" -msgid "IDS_CALL_POP_CONNECTING" -msgstr "Подключение..." - -msgid "IDS_CALL_POP_REJECTED" -msgstr "Отклонено" - -msgid "IDS_CALL_POP_SENDING" -msgstr "Отправка..." - msgid "IDS_CALL_BUTTON2_HIDE_KEYPAD" msgstr "Скрыть клавиатуру" @@ -328,6 +331,183 @@ msgstr "Зап." msgid "IDS_CALL_POP_UNKNOWNREJECTED" msgstr "Неизвестный вызов отклонен" -msgid "IDS_CALL_POP_SAVED" -msgstr "Соxранено" +msgid "IDS_CALL_OPT_SWITCH" +msgstr "Переключение" + +msgid "IDS_CALL_HEADER_SELECT_NUMBER" +msgstr "Выбор номера" + +msgid "IDS_CALL_BODY_IN_PD_DAYS" +msgstr "через %d дн." + +msgid "IDS_CALL_BODY_TOMORROW" +msgstr "Завтра" + +msgid "IDS_CALL_POP_IN_A_WEEK" +msgstr "Через неделю" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "Помещение вызова %s на удержание" + +msgid "IDS_CALL_BODY_ENDING_CALL_WITH_PS" +msgstr "Завершение разговора с %s" + +msgid "IDS_CALL_HEADER_ACCEPT_CALL_AFTER" +msgstr "Принять вызов через" + +msgid "IDS_CALL_BODY_END_ALL_CALLS" +msgstr "Завершить все вызовы" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_OFF" +msgstr "Выключить шумоподавление" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_ON" +msgstr "Включить шумоподавление" + +msgid "IDS_CST_OPT_BOOST_LOW_TONES_ABB" +msgstr "Усил. низкие тоны" + +msgid "IDS_CST_OPT_BOOST_HIGH_TONES_ABB" +msgstr "Усил. высокие тоны" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_LEFT_EAR" +msgstr "Оптим. для лев. наушника" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_RIGHT_EAR" +msgstr "Оптим. для прав. наушника" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "Невозможно включить шумоподавление, если включена дополнительная громкость" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_EARPHONE_CONNECTED" +msgstr "Невозможно включить шумоподавление, если подключены наушники" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "Невозможно включить шумоподавление, если включена гарнитура Bluetooth" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_DURING_WIDEBAND_CALLS" +msgstr "Невозможно включить шумоподавление, если используется WCDMA" + +msgid "IDS_CALL_POP_TO_USE_THIS_FUNCTION_YOU_HAVE_TO_CHECK_OPTIMISE_EQ_FOR_ME_UNDER_CALL_SETTINGS" +msgstr "Чтобы воспользоваться этой функцией, необходимо поставить флажок рядом с пунктом \"Оптимизировать пользовательский эквалайзер\" в настройках вызова" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_SPEAKER_IS_ON" +msgstr "Включить эквалайзер звука во время вызова при работающем динамике нельзя" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_EARPHONES_ARE_CONNECTED" +msgstr "Включить эквалайзер звука во время вызова при подключенных наушниках нельзя" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "Включить эквалайзер звука во время вызова при подключенной Bluetooth-гарнитуре нельзя" + +msgid "IDS_CALL_POP_UNABLE_TO_USE_EXTRA_VOLUME_RANGE_WHEN_EARPHONES_OR_BT_HEADSET_ARE_CONNECTED" +msgstr "Невозможно использовать дополнительный диапазон громкости, если подключены наушники или гарнитура Bluetooth" + +msgid "IDS_CALL_POP_CALLING" +msgstr "Вызов..." + +msgid "IDS_CALL_HEADER_MANAGE_CONFERENCE_CALL" +msgstr "Управление конференцией" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "Включить эквалайзер звука во время вызова при использовании дополнительной громкости нельзя" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_DURING_WIDEBAND_CALLS" +msgstr "Невозможно включить эквалайзер звука во время вызова, если используется WCDMA" + +msgid "IDS_CALL_BUTTON_SOUND_ABB" +msgstr "Звук" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_SPEAKER_IS_ON" +msgstr "Невозможно включить шумоподавление, если включен динамик" + +msgid "IDS_CALL_HEADER_REJECT_MESSAGES" +msgstr "Сообщения для отклонения" + +msgid "IDS_CALL_OPT_VOICE_CALL" +msgstr "Голосовой вызов" + +msgid "IDS_CALL_OPT_VIDEO_CALL" +msgstr "Видеовызов" + +msgid "IDS_CALL_SK3_SHARE" +msgstr "Отправить" + +msgid "IDS_CALL_BUTTON_KEYPAD" +msgstr "Клавиатура" + +msgid "IDS_CALL_BUTTON_END_CALL" +msgstr "Завершить" + +msgid "IDS_CALL_BUTTON_SPEAKER_ABB" +msgstr "Динамик" + +msgid "IDS_CALL_BUTTON_AUDIO_SOURCE" +msgstr "Источн. звука" + +msgid "IDS_CALL_OPT_PHONE" +msgstr "Телефон" + +msgid "IDS_CALL_BUTTON_MUTE" +msgstr "Выкл. микр." + +msgid "IDS_CALL_BUTTON_ADD_TO_CONTACTS" +msgstr "Добав. в конт." + +msgid "IDS_CALL_SK3_VOICE_CALL" +msgstr "Голосовой вызов" + +msgid "IDS_CALL_BUTTON_VIDEO_CALL" +msgstr "Видеовыз." + +msgid "IDS_CALL_SK3_MESSAGE" +msgstr "Сообщение" + +msgid "IDS_CALL_SK3_ADD_TO_CONTACTS" +msgstr "Доб. в контакты" + +msgid "IDS_CALL_OPT_MESSAGE" +msgstr "Сообщение" + +msgid "IDS_CALL_SK_SWAP_ABB" +msgstr "Перекл." + +msgid "IDS_CALL_SK3_MORE" +msgstr "Опции" + +msgid "IDS_CALL_OPT_SHARE_FILE_VIA_CHATON_ABB" +msgstr "Отправить через ChatON" + +msgid "IDS_CALL_HEADER_SHARE_ABB" +msgstr "Доступ" + +msgid "IDS_CALL_BODY_PD_TIMES" +msgstr "%d раз." + +msgid "IDS_QP_BODY_GROUP_CALL_HPD_ABB" +msgstr "Групповой вызов (%d)" + +msgid "IDS_CALL_OPT1_SAVED_IMAGE" +msgstr "Сохраненное фото" + +msgid "IDS_CALL_OPT1_SAVED_VIDEO" +msgstr "Сохраненное видео" + +msgid "IDS_CALL_OPT1_TAKE_A_PICTURE" +msgstr "Сделать снимок" + +msgid "IDS_CALL_BUTTON2_LIVE_VIDEO" +msgstr "Трансляция" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT" +msgstr "Просм. контакт" + +msgid "IDS_CALL_HEADER_MY_CALL_SOUND_ABB" +msgstr "My call sound" + +msgid "IDS_CALL_HEADER_PD_MISSED_CALLS" +msgstr "Пропущено вызовов: %d" + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Пропущенный вызов" diff --git a/ui/po/tr_TR.po b/ui/po/tr_TR.po index b6264cb..255dbca 100755 --- a/ui/po/tr_TR.po +++ b/ui/po/tr_TR.po @@ -1,3 +1,21 @@ +msgid "IDS_CALL_SK_ACCEPT" +msgstr "Kabul et" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "Sessiz" + +msgid "IDS_CALL_POP_CONNECTING" +msgstr "Bağlanılıyor..." + +msgid "IDS_CALL_POP_REJECTED" +msgstr "Reddedildi" + +msgid "IDS_CALL_POP_SAVED" +msgstr "Kaydedildi" + +msgid "IDS_CALL_POP_SENDING" +msgstr "Gönderiliyor..." + msgid "IDS_CALL_HEADER_CREATE_REJECT_MESSAGE" msgstr "Reddetme mesajı oluştur" @@ -67,9 +85,6 @@ msgstr "Beklet" msgid "IDS_CALL_BUTTON_JOIN" msgstr "Katıl" -msgid "IDS_CALL_BUTTON_MUTE_ABB" -msgstr "Sessiz" - msgid "IDS_CALL_BUTTON_REJECT" msgstr "Reddet" @@ -155,7 +170,7 @@ msgid "IDS_CALL_POP_HOLD_FAILED" msgstr "Tutma başarısız" msgid "IDS_CALL_POP_HOLD_NOT_SUPPORTED" -msgstr "Tutma desteklenmiyor" +msgstr "Arama bekletme desteklenmiyor" msgid "IDS_CALL_POP_INCOMING_CALLS_BARRED_WHEN_ROAMING" msgstr "Geçiş yaparken gelen arama engelleme" @@ -206,7 +221,7 @@ msgid "IDS_CALL_POP_SERVICE_NOT_ALLOWED" msgstr "Servise izin yok" msgid "IDS_CALL_POP_SOS_CALL_ONLY_IN_NO_SIM_MODE" -msgstr "Yalnızca acil aramalar. Şebeke servislerine erişmek için SIM kartını takın" +msgstr "Yalnızca acil aramalar.\nŞebeke servislerine erişmek için SIM kartını takın" msgid "IDS_CALL_POP_SPLIT_FAILED" msgstr "Ayırma başarısız" @@ -301,24 +316,12 @@ msgstr "Yeterli hafıza yok. Bazı öğeleri silin." msgid "IDS_CALL_SK3_END_CALL" msgstr "Bitir" -msgid "IDS_MSGC_OPT_SOUND" -msgstr "Ses" - msgid "IDS_CALL_BODY_SERVICE_UNAVAILABLE" msgstr "Servis Kullanılamıyor" msgid "IDS_CALL_SK3_KEYPAD" msgstr "Tuşlar" -msgid "IDS_CALL_POP_CONNECTING" -msgstr "Bağlanılıyor..." - -msgid "IDS_CALL_POP_REJECTED" -msgstr "Reddedildi" - -msgid "IDS_CALL_POP_SENDING" -msgstr "Gönderiliyor..." - msgid "IDS_CALL_BUTTON2_HIDE_KEYPAD" msgstr "Tuş takmını gzle" @@ -328,6 +331,183 @@ msgstr "Kayıt" msgid "IDS_CALL_POP_UNKNOWNREJECTED" msgstr "Bilinmeyen arama reddedildi" -msgid "IDS_CALL_POP_SAVED" -msgstr "Kaydedildi" +msgid "IDS_CALL_OPT_SWITCH" +msgstr "Kısayollar" + +msgid "IDS_CALL_HEADER_SELECT_NUMBER" +msgstr "Numara seçin" + +msgid "IDS_CALL_BODY_IN_PD_DAYS" +msgstr "%d gün içinde" + +msgid "IDS_CALL_BODY_TOMORROW" +msgstr "Yarın" + +msgid "IDS_CALL_POP_IN_A_WEEK" +msgstr "Bir hafta içerisinde" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "%s bekletiliyor" + +msgid "IDS_CALL_BODY_ENDING_CALL_WITH_PS" +msgstr "%s araması bitiriliyor" + +msgid "IDS_CALL_HEADER_ACCEPT_CALL_AFTER" +msgstr "Aramayı sonra kabul et" + +msgid "IDS_CALL_BODY_END_ALL_CALLS" +msgstr "Tüm çağrıları sonlandır" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_OFF" +msgstr "Parazit azaltma kapalı" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_ON" +msgstr "Parazit azaltma açık" + +msgid "IDS_CST_OPT_BOOST_LOW_TONES_ABB" +msgstr "Düşük tonları güçlendirin" + +msgid "IDS_CST_OPT_BOOST_HIGH_TONES_ABB" +msgstr "Yüksek tonları güçlendirin" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_LEFT_EAR" +msgstr "Sol kulak için optimum" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_RIGHT_EAR" +msgstr "Sağ kulak için optimun" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "Ekstra ses etkinken parazit azaltma açılamıyor" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_EARPHONE_CONNECTED" +msgstr "Kulaklık takılıyken parazit azaltma açılamıyor" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "Bluetooth kulaklık açıkken parazit azaltma açılamıyor" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_DURING_WIDEBAND_CALLS" +msgstr "Geniş bant araması sırasında parazit azaltma açılamıyor" + +msgid "IDS_CALL_POP_TO_USE_THIS_FUNCTION_YOU_HAVE_TO_CHECK_OPTIMISE_EQ_FOR_ME_UNDER_CALL_SETTINGS" +msgstr "Bu işlevi kullanmak için, Arama ayarları altında benim için EQ'yu optimize et seçeneğini işaretlemeniz gerekir" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_SPEAKER_IS_ON" +msgstr "Hoparlör açıkken Gelen arama sesi EQ etkinleştirilemiyor" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_EARPHONES_ARE_CONNECTED" +msgstr "Kulaklıklar takılıyken Gelen arama sesi EQ etkinleştirilemiyor" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "Bluetooth kulaklık açıkken Gelen arama sesi EQ etkinleştirilemiyor" + +msgid "IDS_CALL_POP_UNABLE_TO_USE_EXTRA_VOLUME_RANGE_WHEN_EARPHONES_OR_BT_HEADSET_ARE_CONNECTED" +msgstr "Kulaklıklar veya BT kulaklık takılı olduğunda ekstra ses düzeyi aralığı kullanılamıyor" + +msgid "IDS_CALL_POP_CALLING" +msgstr "Arıyor..." + +msgid "IDS_CALL_HEADER_MANAGE_CONFERENCE_CALL" +msgstr "Konferans görüşmesini yönet" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "Ekstra ses etkinken gelen arama sesi EQ etkinleştirilemiyor" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_DURING_WIDEBAND_CALLS" +msgstr "Geniş bant aramaları sırasında gelen arama sesi EQ etkinleştirilemiyor" + +msgid "IDS_CALL_BUTTON_SOUND_ABB" +msgstr "Ses" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_SPEAKER_IS_ON" +msgstr "Hoparlör açıkken parazit azaltma açılamıyor" + +msgid "IDS_CALL_HEADER_REJECT_MESSAGES" +msgstr "Mesajları reddet" + +msgid "IDS_CALL_OPT_VOICE_CALL" +msgstr "Sesli arama" + +msgid "IDS_CALL_OPT_VIDEO_CALL" +msgstr "Video arama" + +msgid "IDS_CALL_SK3_SHARE" +msgstr "Paylaşıma aç" + +msgid "IDS_CALL_BUTTON_KEYPAD" +msgstr "Tuşlar" + +msgid "IDS_CALL_BUTTON_END_CALL" +msgstr "Kapat" + +msgid "IDS_CALL_BUTTON_SPEAKER_ABB" +msgstr "Hoparlör" + +msgid "IDS_CALL_BUTTON_AUDIO_SOURCE" +msgstr "Ses kaynağı" + +msgid "IDS_CALL_OPT_PHONE" +msgstr "Telefon" + +msgid "IDS_CALL_BUTTON_MUTE" +msgstr "Sessiz" + +msgid "IDS_CALL_BUTTON_ADD_TO_CONTACTS" +msgstr "Kişilere Ekle" + +msgid "IDS_CALL_SK3_VOICE_CALL" +msgstr "Sesli arama" + +msgid "IDS_CALL_BUTTON_VIDEO_CALL" +msgstr "Video arm" + +msgid "IDS_CALL_SK3_MESSAGE" +msgstr "Mesaj" + +msgid "IDS_CALL_SK3_ADD_TO_CONTACTS" +msgstr "Kişilere Ekle" + +msgid "IDS_CALL_OPT_MESSAGE" +msgstr "Mesaj" + +msgid "IDS_CALL_SK_SWAP_ABB" +msgstr "Dğştr" + +msgid "IDS_CALL_SK3_MORE" +msgstr "Diğer" + +msgid "IDS_CALL_OPT_SHARE_FILE_VIA_CHATON_ABB" +msgstr "ChatON ile dosya paylaş" + +msgid "IDS_CALL_HEADER_SHARE_ABB" +msgstr "Paylaşıma aç" + +msgid "IDS_CALL_BODY_PD_TIMES" +msgstr "%d kere" + +msgid "IDS_QP_BODY_GROUP_CALL_HPD_ABB" +msgstr "Grup arama (%d)" + +msgid "IDS_CALL_OPT1_SAVED_IMAGE" +msgstr "Kaydedilmiş resim" + +msgid "IDS_CALL_OPT1_SAVED_VIDEO" +msgstr "Kaydedilmiş video" + +msgid "IDS_CALL_OPT1_TAKE_A_PICTURE" +msgstr "Resim çekin" + +msgid "IDS_CALL_BUTTON2_LIVE_VIDEO" +msgstr "Canlı video" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT" +msgstr "Kişiyi göster" + +msgid "IDS_CALL_HEADER_MY_CALL_SOUND_ABB" +msgstr "My call sound" + +msgid "IDS_CALL_HEADER_PD_MISSED_CALLS" +msgstr "%d Cevapsız arama" + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "Cevapsız arama" diff --git a/ui/po/zh_CN.po b/ui/po/zh_CN.po index 7f216ad..4455484 100755 --- a/ui/po/zh_CN.po +++ b/ui/po/zh_CN.po @@ -1,3 +1,21 @@ +msgid "IDS_CALL_SK_ACCEPT" +msgstr "接受" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "静音" + +msgid "IDS_CALL_POP_CONNECTING" +msgstr "连接中..." + +msgid "IDS_CALL_POP_REJECTED" +msgstr "被拒绝" + +msgid "IDS_CALL_POP_SAVED" +msgstr "已保存" + +msgid "IDS_CALL_POP_SENDING" +msgstr "发送中…" + msgid "IDS_CALL_HEADER_CREATE_REJECT_MESSAGE" msgstr "新建拒绝信息" @@ -5,7 +23,7 @@ msgid "IDS_CALL_POP_REJECT_MESSAGE_LIST_IS_EMPTY" msgstr "拒绝信息列表空" msgid "IDS_VCALL_BUTTON_REJECT_WITH_MESSAGE" -msgstr "带信息拒绝" +msgstr "拒绝并发送短信" msgid "IDS_CALL_BODY_CALL" msgstr "通话" @@ -67,9 +85,6 @@ msgstr "保持" msgid "IDS_CALL_BUTTON_JOIN" msgstr "加入" -msgid "IDS_CALL_BUTTON_MUTE_ABB" -msgstr "静音" - msgid "IDS_CALL_BUTTON_REJECT" msgstr "拒绝" @@ -92,7 +107,7 @@ msgid "IDS_CALL_OPT_HOLD_CURRENT_CALL_N_ANSWER" msgstr "保持当前电话并应答" msgid "IDS_CALL_OPT_PRIVATE" -msgstr "个人通话" +msgstr "私人" msgid "IDS_CALL_POP_AEESYS_SYSTEMFAILUREERROR" msgstr "系统出错" @@ -301,24 +316,12 @@ msgstr "存储空间不足。请删除部分项目" msgid "IDS_CALL_SK3_END_CALL" msgstr "结束通话" -msgid "IDS_MSGC_OPT_SOUND" -msgstr "声音" - msgid "IDS_CALL_BODY_SERVICE_UNAVAILABLE" msgstr "服务无法正常提供" msgid "IDS_CALL_SK3_KEYPAD" msgstr "键盘" -msgid "IDS_CALL_POP_CONNECTING" -msgstr "连接中..." - -msgid "IDS_CALL_POP_REJECTED" -msgstr "被拒绝" - -msgid "IDS_CALL_POP_SENDING" -msgstr "发送中…" - msgid "IDS_CALL_BUTTON2_HIDE_KEYPAD" msgstr "隐藏键盘" @@ -328,6 +331,183 @@ msgstr "录音" msgid "IDS_CALL_POP_UNKNOWNREJECTED" msgstr "已拒绝未知来电" -msgid "IDS_CALL_POP_SAVED" -msgstr "已存储" +msgid "IDS_CALL_OPT_SWITCH" +msgstr "切换" + +msgid "IDS_CALL_HEADER_SELECT_NUMBER" +msgstr "选择号码" + +msgid "IDS_CALL_BODY_IN_PD_DAYS" +msgstr "%d 天内" + +msgid "IDS_CALL_BODY_TOMORROW" +msgstr "明天" + +msgid "IDS_CALL_POP_IN_A_WEEK" +msgstr "在一周里" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "保持%s" + +msgid "IDS_CALL_BODY_ENDING_CALL_WITH_PS" +msgstr "结束%s" + +msgid "IDS_CALL_HEADER_ACCEPT_CALL_AFTER" +msgstr "接听来电" + +msgid "IDS_CALL_BODY_END_ALL_CALLS" +msgstr "结束所有呼叫" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_OFF" +msgstr "噪声降低关" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_ON" +msgstr "噪声降低开" + +msgid "IDS_CST_OPT_BOOST_LOW_TONES_ABB" +msgstr "加强低音" + +msgid "IDS_CST_OPT_BOOST_HIGH_TONES_ABB" +msgstr "加强高音" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_LEFT_EAR" +msgstr "已针对左耳优化" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_RIGHT_EAR" +msgstr "已针对右耳优化" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "无法在启用超大音量时开启减噪" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_EARPHONE_CONNECTED" +msgstr "当连接耳机时,无法打开噪音降低" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "当蓝牙耳机启动时,无法打开噪音降低" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_DURING_WIDEBAND_CALLS" +msgstr "宽带通话期间无法打开噪音降低" + +msgid "IDS_CALL_POP_TO_USE_THIS_FUNCTION_YOU_HAVE_TO_CHECK_OPTIMISE_EQ_FOR_ME_UNDER_CALL_SETTINGS" +msgstr "若要使用该功能,您必须在呼叫设置下勾选“优化我的 EQ”" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_SPEAKER_IS_ON" +msgstr "当扬声器开启时无法启用来电声音 EQ" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_EARPHONES_ARE_CONNECTED" +msgstr "当耳机连接时无法启用来电声音 EQ" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "当蓝牙耳机开启时无法启用来电声音 EQ" + +msgid "IDS_CALL_POP_UNABLE_TO_USE_EXTRA_VOLUME_RANGE_WHEN_EARPHONES_OR_BT_HEADSET_ARE_CONNECTED" +msgstr "当耳机或蓝牙耳机连接时无法使用超大音量范围" + +msgid "IDS_CALL_POP_CALLING" +msgstr "正在呼叫..." + +msgid "IDS_CALL_HEADER_MANAGE_CONFERENCE_CALL" +msgstr "管理电话会议" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "当超大音量启用时无法启用来电声音 EQ" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_DURING_WIDEBAND_CALLS" +msgstr "无法在宽带通话期间启用通话中声音效果" + +msgid "IDS_CALL_BUTTON_SOUND_ABB" +msgstr "声音" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_SPEAKER_IS_ON" +msgstr "当扬声器启动时,无法打开噪音降低" + +msgid "IDS_CALL_HEADER_REJECT_MESSAGES" +msgstr "拒绝信息" + +msgid "IDS_CALL_OPT_VOICE_CALL" +msgstr "语音通话" + +msgid "IDS_CALL_OPT_VIDEO_CALL" +msgstr "视频通话" + +msgid "IDS_CALL_SK3_SHARE" +msgstr "共享" + +msgid "IDS_CALL_BUTTON_KEYPAD" +msgstr "键盘" + +msgid "IDS_CALL_BUTTON_END_CALL" +msgstr "结束通话" + +msgid "IDS_CALL_BUTTON_SPEAKER_ABB" +msgstr "扬声器" + +msgid "IDS_CALL_BUTTON_AUDIO_SOURCE" +msgstr "音源" + +msgid "IDS_CALL_OPT_PHONE" +msgstr "手机" + +msgid "IDS_CALL_BUTTON_MUTE" +msgstr "静音" + +msgid "IDS_CALL_BUTTON_ADD_TO_CONTACTS" +msgstr "添加到联系人" + +msgid "IDS_CALL_SK3_VOICE_CALL" +msgstr "语音通话" + +msgid "IDS_CALL_BUTTON_VIDEO_CALL" +msgstr "视频通话" + +msgid "IDS_CALL_SK3_MESSAGE" +msgstr "信息" + +msgid "IDS_CALL_SK3_ADD_TO_CONTACTS" +msgstr "添加到联系人" + +msgid "IDS_CALL_OPT_MESSAGE" +msgstr "信息" + +msgid "IDS_CALL_SK_SWAP_ABB" +msgstr "切换" + +msgid "IDS_CALL_SK3_MORE" +msgstr "更多" + +msgid "IDS_CALL_OPT_SHARE_FILE_VIA_CHATON_ABB" +msgstr "通过 ChatON 共享文件" + +msgid "IDS_CALL_HEADER_SHARE_ABB" +msgstr "共享" + +msgid "IDS_CALL_BODY_PD_TIMES" +msgstr "%d 次" + +msgid "IDS_QP_BODY_GROUP_CALL_HPD_ABB" +msgstr "群组通话 (%d)" + +msgid "IDS_CALL_OPT1_SAVED_IMAGE" +msgstr "已保存图片" + +msgid "IDS_CALL_OPT1_SAVED_VIDEO" +msgstr "已保存视频" + +msgid "IDS_CALL_OPT1_TAKE_A_PICTURE" +msgstr "拍照" + +msgid "IDS_CALL_BUTTON2_LIVE_VIDEO" +msgstr "实时视频" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT" +msgstr "查看联系人" + +msgid "IDS_CALL_HEADER_MY_CALL_SOUND_ABB" +msgstr "My call sound" + +msgid "IDS_CALL_HEADER_PD_MISSED_CALLS" +msgstr "%d 个未接来电" + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "未接来电" diff --git a/ui/po/zh_HK.po b/ui/po/zh_HK.po index 04228e0..714d086 100755 --- a/ui/po/zh_HK.po +++ b/ui/po/zh_HK.po @@ -1,3 +1,21 @@ +msgid "IDS_CALL_SK_ACCEPT" +msgstr "接受" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "靜音" + +msgid "IDS_CALL_POP_CONNECTING" +msgstr "連接中..." + +msgid "IDS_CALL_POP_REJECTED" +msgstr "已拒絕" + +msgid "IDS_CALL_POP_SAVED" +msgstr "已儲存" + +msgid "IDS_CALL_POP_SENDING" +msgstr "正在發送..." + msgid "IDS_CALL_HEADER_CREATE_REJECT_MESSAGE" msgstr "建立拒絕訊息" @@ -20,7 +38,7 @@ msgid "IDS_CALL_BODY_CALL_REJECTED" msgstr "通話已拒絕" msgid "IDS_CALL_BODY_DISCONNECTED" -msgstr "已中斷" +msgstr "已中斷連接" msgid "IDS_CALL_BODY_INVALID_NUMBER" msgstr "號碼無效" @@ -67,9 +85,6 @@ msgstr "保留" msgid "IDS_CALL_BUTTON_JOIN" msgstr "加入" -msgid "IDS_CALL_BUTTON_MUTE_ABB" -msgstr "靜音" - msgid "IDS_CALL_BUTTON_REJECT" msgstr "拒絕" @@ -83,7 +98,7 @@ msgid "IDS_CALL_BUTTON_UNHOLD" msgstr "不保留" msgid "IDS_CALL_OPT_CONFERENCE_CALL" -msgstr "會議通話" +msgstr "電話會議" msgid "IDS_CALL_OPT_END_CURRENT_CALL_N_ANSWER" msgstr "結束目前通話並接聽" @@ -206,7 +221,7 @@ msgid "IDS_CALL_POP_SERVICE_NOT_ALLOWED" msgstr "服務不允許" msgid "IDS_CALL_POP_SOS_CALL_ONLY_IN_NO_SIM_MODE" -msgstr "只限 SOS 通話。 請插入 SIM 卡以存取網絡服務" +msgstr "只限 SOS 通話。\n請插入 SIM 卡以存取網絡服務" msgid "IDS_CALL_POP_SPLIT_FAILED" msgstr "分割失敗" @@ -301,24 +316,12 @@ msgstr "記憶體不足。請刪除一些項目" msgid "IDS_CALL_SK3_END_CALL" msgstr "結束通話" -msgid "IDS_MSGC_OPT_SOUND" -msgstr "聲音" - msgid "IDS_CALL_BODY_SERVICE_UNAVAILABLE" msgstr "無可用服務" msgid "IDS_CALL_SK3_KEYPAD" msgstr "鍵盤" -msgid "IDS_CALL_POP_CONNECTING" -msgstr "連接中..." - -msgid "IDS_CALL_POP_REJECTED" -msgstr "已拒絕" - -msgid "IDS_CALL_POP_SENDING" -msgstr "正在發送..." - msgid "IDS_CALL_BUTTON2_HIDE_KEYPAD" msgstr "隱藏鍵盤" @@ -328,6 +331,183 @@ msgstr "錄音" msgid "IDS_CALL_POP_UNKNOWNREJECTED" msgstr "已拒絕不明來電" -msgid "IDS_CALL_POP_SAVED" -msgstr "已儲存" +msgid "IDS_CALL_OPT_SWITCH" +msgstr "切換" + +msgid "IDS_CALL_HEADER_SELECT_NUMBER" +msgstr "選擇號碼" + +msgid "IDS_CALL_BODY_IN_PD_DAYS" +msgstr "在 %d 天後" + +msgid "IDS_CALL_BODY_TOMORROW" +msgstr "明天" + +msgid "IDS_CALL_POP_IN_A_WEEK" +msgstr "一週內" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "保留與 %s 的通話" + +msgid "IDS_CALL_BODY_ENDING_CALL_WITH_PS" +msgstr "結束與 %s 的通話" + +msgid "IDS_CALL_HEADER_ACCEPT_CALL_AFTER" +msgstr "稍後接聽來電" + +msgid "IDS_CALL_BODY_END_ALL_CALLS" +msgstr "結束全部通話" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_OFF" +msgstr "減少噪音關" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_ON" +msgstr "減少噪音開" + +msgid "IDS_CST_OPT_BOOST_LOW_TONES_ABB" +msgstr "加強低音" + +msgid "IDS_CST_OPT_BOOST_HIGH_TONES_ABB" +msgstr "加強高音" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_LEFT_EAR" +msgstr "已針對左耳優化" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_RIGHT_EAR" +msgstr "已針對右耳優化" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "啟用最大音量時無法開啟減少噪音" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_EARPHONE_CONNECTED" +msgstr "耳機連接時無法開啟減少噪音" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "藍牙耳機啟用時無法開啟減少噪音" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_DURING_WIDEBAND_CALLS" +msgstr "寬頻通話期間無法開啟減少噪音" + +msgid "IDS_CALL_POP_TO_USE_THIS_FUNCTION_YOU_HAVE_TO_CHECK_OPTIMISE_EQ_FOR_ME_UNDER_CALL_SETTINGS" +msgstr "欲使用此功能,必須檢查通話設定下的優化我的均衡器" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_SPEAKER_IS_ON" +msgstr "當揚聲器開啟時無法啟用來電音效均衡器" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_EARPHONES_ARE_CONNECTED" +msgstr "當耳機連接時無法啟用來電音效均衡器" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "當藍牙耳機開啟時無法啟用來電音效均衡器" + +msgid "IDS_CALL_POP_UNABLE_TO_USE_EXTRA_VOLUME_RANGE_WHEN_EARPHONES_OR_BT_HEADSET_ARE_CONNECTED" +msgstr "當耳機或藍牙耳機已連接時無法使用增強音量" + +msgid "IDS_CALL_POP_CALLING" +msgstr "正在通話..." + +msgid "IDS_CALL_HEADER_MANAGE_CONFERENCE_CALL" +msgstr "管理電話會議" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "額外音量啟用時無法啟用來電音效均衡器" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_DURING_WIDEBAND_CALLS" +msgstr "無法在寬頻通話期間啟用來電音效均衡器" + +msgid "IDS_CALL_BUTTON_SOUND_ABB" +msgstr "聲音" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_SPEAKER_IS_ON" +msgstr "揚聲器啟用時無法開啟減少噪音" + +msgid "IDS_CALL_HEADER_REJECT_MESSAGES" +msgstr "拒絕訊息" + +msgid "IDS_CALL_OPT_VOICE_CALL" +msgstr "語音通話" + +msgid "IDS_CALL_OPT_VIDEO_CALL" +msgstr "視像通話" + +msgid "IDS_CALL_SK3_SHARE" +msgstr "分享" + +msgid "IDS_CALL_BUTTON_KEYPAD" +msgstr "鍵盤" + +msgid "IDS_CALL_BUTTON_END_CALL" +msgstr "結束通話" + +msgid "IDS_CALL_BUTTON_SPEAKER_ABB" +msgstr "揚聲器" + +msgid "IDS_CALL_BUTTON_AUDIO_SOURCE" +msgstr "音源" + +msgid "IDS_CALL_OPT_PHONE" +msgstr "電話" + +msgid "IDS_CALL_BUTTON_MUTE" +msgstr "靜音" + +msgid "IDS_CALL_BUTTON_ADD_TO_CONTACTS" +msgstr "加到聯絡人" + +msgid "IDS_CALL_SK3_VOICE_CALL" +msgstr "語音通話" + +msgid "IDS_CALL_BUTTON_VIDEO_CALL" +msgstr "視像通話" + +msgid "IDS_CALL_SK3_MESSAGE" +msgstr "訊息" + +msgid "IDS_CALL_SK3_ADD_TO_CONTACTS" +msgstr "加入到聯絡人" + +msgid "IDS_CALL_OPT_MESSAGE" +msgstr "訊息" + +msgid "IDS_CALL_SK_SWAP_ABB" +msgstr "切換" + +msgid "IDS_CALL_SK3_MORE" +msgstr "更多" + +msgid "IDS_CALL_OPT_SHARE_FILE_VIA_CHATON_ABB" +msgstr "透過 ChatON 分享檔案" + +msgid "IDS_CALL_HEADER_SHARE_ABB" +msgstr "共享" + +msgid "IDS_CALL_BODY_PD_TIMES" +msgstr "%d 次" + +msgid "IDS_QP_BODY_GROUP_CALL_HPD_ABB" +msgstr "群組通話(%d)" + +msgid "IDS_CALL_OPT1_SAVED_IMAGE" +msgstr "儲存的圖像" + +msgid "IDS_CALL_OPT1_SAVED_VIDEO" +msgstr "儲存的視像" + +msgid "IDS_CALL_OPT1_TAKE_A_PICTURE" +msgstr "拍照" + +msgid "IDS_CALL_BUTTON2_LIVE_VIDEO" +msgstr "即時視像" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT" +msgstr "檢視聯絡人" + +msgid "IDS_CALL_HEADER_MY_CALL_SOUND_ABB" +msgstr "My call sound" + +msgid "IDS_CALL_HEADER_PD_MISSED_CALLS" +msgstr "%d 個未接電話" + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "未接電話" diff --git a/ui/po/zh_TW.po b/ui/po/zh_TW.po index 3483c0b..ab66960 100755 --- a/ui/po/zh_TW.po +++ b/ui/po/zh_TW.po @@ -1,3 +1,21 @@ +msgid "IDS_CALL_SK_ACCEPT" +msgstr "接受" + +msgid "IDS_CALL_BUTTON_MUTE_ABB" +msgstr "靜音" + +msgid "IDS_CALL_POP_CONNECTING" +msgstr "連線中..." + +msgid "IDS_CALL_POP_REJECTED" +msgstr "已拒絕" + +msgid "IDS_CALL_POP_SAVED" +msgstr "已儲存" + +msgid "IDS_CALL_POP_SENDING" +msgstr "正在傳送..." + msgid "IDS_CALL_HEADER_CREATE_REJECT_MESSAGE" msgstr "建立拒絕訊息" @@ -17,7 +35,7 @@ msgid "IDS_CALL_BODY_CALLENDED" msgstr "通話已結束" msgid "IDS_CALL_BODY_CALL_REJECTED" -msgstr "通話遭拒" +msgstr "已拒接來電" msgid "IDS_CALL_BODY_DISCONNECTED" msgstr "已中斷連線" @@ -50,7 +68,7 @@ msgid "IDS_CALL_BUTTON_ACCEPT" msgstr "接受" msgid "IDS_CALL_BUTTON_ADD_CALL" -msgstr "增加電話" +msgstr "新增通話" msgid "IDS_CALL_BUTTON_CONTACTS" msgstr "聯絡人" @@ -67,20 +85,17 @@ msgstr "保留" msgid "IDS_CALL_BUTTON_JOIN" msgstr "加入" -msgid "IDS_CALL_BUTTON_MUTE_ABB" -msgstr "靜音" - msgid "IDS_CALL_BUTTON_REJECT" msgstr "拒絕" msgid "IDS_CALL_BUTTON_SPEAKER" -msgstr "揚聲器" +msgstr "喇叭" msgid "IDS_CALL_BUTTON_SPLIT" msgstr "分割" msgid "IDS_CALL_BUTTON_UNHOLD" -msgstr "不保留" +msgstr "取消保留" msgid "IDS_CALL_OPT_CONFERENCE_CALL" msgstr "電話會議" @@ -140,7 +155,7 @@ msgid "IDS_CALL_POP_DIALLING" msgstr "正在撥號..." msgid "IDS_CALL_POP_DTMFSENDING_FAIL" -msgstr "傳送失敗。請重試" +msgstr "傳送失敗。再試一次" msgid "IDS_CALL_POP_EMERGENCY_CALL" msgstr "緊急電話" @@ -173,7 +188,7 @@ msgid "IDS_CALL_POP_JOIN_NOT_SUPPORTED" msgstr "不支援加入" msgid "IDS_CALL_POP_NETWORKBUSY" -msgstr "網路忙碌" +msgstr "網路繁忙" msgid "IDS_CALL_POP_NETWORK_UNAVAILABLE" msgstr "無可用網路" @@ -206,7 +221,7 @@ msgid "IDS_CALL_POP_SERVICE_NOT_ALLOWED" msgstr "不允許的服務" msgid "IDS_CALL_POP_SOS_CALL_ONLY_IN_NO_SIM_MODE" -msgstr "僅限 SOS 通話。 請插入 SIM 卡以存取網路服務" +msgstr "僅限 SOS 通話。\n請插入 SIM 卡以存取網路服務" msgid "IDS_CALL_POP_SPLIT_FAILED" msgstr "分割失敗" @@ -218,13 +233,13 @@ msgid "IDS_CALL_POP_SWAPPED" msgstr "已交換" msgid "IDS_CALL_POP_SWAP_FAILED" -msgstr "交換失敗" +msgstr "切換失敗" msgid "IDS_CALL_POP_SWAP_NOT_SUPPORTED" -msgstr "不支援交換" +msgstr "不支援切換" msgid "IDS_CALL_POP_SWITCHED_TO_BT_HEADSET" -msgstr "下載項目中斷。再試一次?" +msgstr "已切換至藍芽耳機" msgid "IDS_CALL_POP_SWITCHED_TO_PHONE" msgstr "已切換到手機" @@ -278,10 +293,10 @@ msgid "IDS_CALL_OPT_END_ALL_CALLS" msgstr "結束所有通話" msgid "IDS_CALL_BODY_END_ACTIVE_CALLS_HPD" -msgstr "結束當前通話(%d)" +msgstr "結束當前通話 (%d)" msgid "IDS_CALL_BODY_END_HELD_CALLS_HPD" -msgstr "結束保留的通話(%d)" +msgstr "結束保留的通話 (%d)" msgid "IDS_CALL_BUTTON_HEADPHONES" msgstr "耳機" @@ -301,24 +316,12 @@ msgstr "記憶體不足。請刪除部分項目" msgid "IDS_CALL_SK3_END_CALL" msgstr "結束通話" -msgid "IDS_MSGC_OPT_SOUND" -msgstr "聲音" - msgid "IDS_CALL_BODY_SERVICE_UNAVAILABLE" msgstr "無法使用服務" msgid "IDS_CALL_SK3_KEYPAD" msgstr "鍵盤" -msgid "IDS_CALL_POP_CONNECTING" -msgstr "連線中..." - -msgid "IDS_CALL_POP_REJECTED" -msgstr "已拒絕" - -msgid "IDS_CALL_POP_SENDING" -msgstr "正在傳送..." - msgid "IDS_CALL_BUTTON2_HIDE_KEYPAD" msgstr "隱藏鍵盤" @@ -328,6 +331,183 @@ msgstr "錄影" msgid "IDS_CALL_POP_UNKNOWNREJECTED" msgstr "已拒接不明來電" -msgid "IDS_CALL_POP_SAVED" -msgstr "已儲存" +msgid "IDS_CALL_OPT_SWITCH" +msgstr "開關" + +msgid "IDS_CALL_HEADER_SELECT_NUMBER" +msgstr "選擇號碼" + +msgid "IDS_CALL_BODY_IN_PD_DAYS" +msgstr "在 %d 天後" + +msgid "IDS_CALL_BODY_TOMORROW" +msgstr "明天" + +msgid "IDS_CALL_POP_IN_A_WEEK" +msgstr "一週內" + +msgid "IDS_CALL_BODY_PUTTING_PS_ON_HOLD" +msgstr "保留與 %s 的通話" + +msgid "IDS_CALL_BODY_ENDING_CALL_WITH_PS" +msgstr "結束與 %s 的通話" + +msgid "IDS_CALL_HEADER_ACCEPT_CALL_AFTER" +msgstr "稍後應答來電" + +msgid "IDS_CALL_BODY_END_ALL_CALLS" +msgstr "結束所有通話" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_OFF" +msgstr "關閉減少雜訊" + +msgid "IDS_CALL_OPT_NOISE_REDUCTION_ON" +msgstr "開啟減少雜訊" + +msgid "IDS_CST_OPT_BOOST_LOW_TONES_ABB" +msgstr "加強低音" + +msgid "IDS_CST_OPT_BOOST_HIGH_TONES_ABB" +msgstr "加強高音" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_LEFT_EAR" +msgstr "最佳化左耳使用" + +msgid "IDS_CST_MBODY_OPTIMISED_FOR_RIGHT_EAR" +msgstr "最佳化右耳使用" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "啟用最大音量時無法開啟減少雜訊" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_EARPHONE_CONNECTED" +msgstr "耳機連接時無法開啟減少雜訊功能" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "藍牙耳機啟用時無法開啟降噪功能" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_DURING_WIDEBAND_CALLS" +msgstr "寬頻通話期間無法開啟減少雜訊功能" + +msgid "IDS_CALL_POP_TO_USE_THIS_FUNCTION_YOU_HAVE_TO_CHECK_OPTIMISE_EQ_FOR_ME_UNDER_CALL_SETTINGS" +msgstr "欲使用此功能,必須檢查通話設定下的最佳化個人等化器" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_SPEAKER_IS_ON" +msgstr "揚聲器開啟時無法啟用來電音效等化器" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_EARPHONES_ARE_CONNECTED" +msgstr "耳機連接時無法啟用來電音效等化器" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHEN_BLUETOOTH_HEADSET_IS_ON" +msgstr "藍牙耳機開啟時無法啟用來電音效等化器" + +msgid "IDS_CALL_POP_UNABLE_TO_USE_EXTRA_VOLUME_RANGE_WHEN_EARPHONES_OR_BT_HEADSET_ARE_CONNECTED" +msgstr "連接耳機或藍牙耳機時無法使用增強音量" + +msgid "IDS_CALL_POP_CALLING" +msgstr "正在通話..." + +msgid "IDS_CALL_HEADER_MANAGE_CONFERENCE_CALL" +msgstr "管理電話會議" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_WHILE_EXTRA_VOLUME_IS_ENABLED" +msgstr "增強音量開啟時無法啟用來電音效等化器" + +msgid "IDS_CALL_POP_UNABLE_TO_ENABLE_IN_CALL_SOUND_EQ_DURING_WIDEBAND_CALLS" +msgstr "寬頻通話期間無法啟用來電音效等化器" + +msgid "IDS_CALL_BUTTON_SOUND_ABB" +msgstr "音效" + +msgid "IDS_CALL_POP_UNABLE_TO_TURN_ON_NOISE_REDUCTION_WHEN_SPEAKER_IS_ON" +msgstr "喇叭啟用時無法開啟減少雜訊功能" + +msgid "IDS_CALL_HEADER_REJECT_MESSAGES" +msgstr "拒接訊息" + +msgid "IDS_CALL_OPT_VOICE_CALL" +msgstr "語音通話" + +msgid "IDS_CALL_OPT_VIDEO_CALL" +msgstr "視訊通話" + +msgid "IDS_CALL_SK3_SHARE" +msgstr "分享" + +msgid "IDS_CALL_BUTTON_KEYPAD" +msgstr "鍵盤" + +msgid "IDS_CALL_BUTTON_END_CALL" +msgstr "結束通話" + +msgid "IDS_CALL_BUTTON_SPEAKER_ABB" +msgstr "喇叭" + +msgid "IDS_CALL_BUTTON_AUDIO_SOURCE" +msgstr "音源" + +msgid "IDS_CALL_OPT_PHONE" +msgstr "電話" + +msgid "IDS_CALL_BUTTON_MUTE" +msgstr "靜音" + +msgid "IDS_CALL_BUTTON_ADD_TO_CONTACTS" +msgstr "新增至聯絡人" + +msgid "IDS_CALL_SK3_VOICE_CALL" +msgstr "語音通話" + +msgid "IDS_CALL_BUTTON_VIDEO_CALL" +msgstr "視訊通話" + +msgid "IDS_CALL_SK3_MESSAGE" +msgstr "訊息" + +msgid "IDS_CALL_SK3_ADD_TO_CONTACTS" +msgstr "新增至聯絡人" + +msgid "IDS_CALL_OPT_MESSAGE" +msgstr "訊息" + +msgid "IDS_CALL_SK_SWAP_ABB" +msgstr "切換" + +msgid "IDS_CALL_SK3_MORE" +msgstr "更多" + +msgid "IDS_CALL_OPT_SHARE_FILE_VIA_CHATON_ABB" +msgstr "透過 ChatON 分享檔案" + +msgid "IDS_CALL_HEADER_SHARE_ABB" +msgstr "分享" + +msgid "IDS_CALL_BODY_PD_TIMES" +msgstr "%d 次" + +msgid "IDS_QP_BODY_GROUP_CALL_HPD_ABB" +msgstr "群組通話(%d)" + +msgid "IDS_CALL_OPT1_SAVED_IMAGE" +msgstr "儲存的圖像" + +msgid "IDS_CALL_OPT1_SAVED_VIDEO" +msgstr "儲存的視訊" + +msgid "IDS_CALL_OPT1_TAKE_A_PICTURE" +msgstr "拍照" + +msgid "IDS_CALL_BUTTON2_LIVE_VIDEO" +msgstr "即時視訊" + +msgid "IDS_CALL_BUTTON_VIEW_CONTACT" +msgstr "檢視聯絡人" + +msgid "IDS_CALL_HEADER_MY_CALL_SOUND_ABB" +msgstr "My call sound" + +msgid "IDS_CALL_HEADER_PD_MISSED_CALLS" +msgstr "%d 通未接電話" + +msgid "IDS_CALL_POP_CALLMISSED" +msgstr "未接電話" diff --git a/ui/vcui-app-data.h b/ui/src/include/vcui-app-data.h similarity index 68% rename from ui/vcui-app-data.h rename to ui/src/include/vcui-app-data.h index 8ff4314..4db0d50 100755 --- a/ui/vcui-app-data.h +++ b/ui/src/include/vcui-app-data.h @@ -18,6 +18,22 @@ #ifndef _VCUI_APP_DATA_H_ #define _VCUI_APP_DATA_H_ +#include +#include "voice-call-engine.h" +#include "vcui-doc-launch.h" + +#define TIME_END_START 1 +#define TIME_END_NO 0 +#define TIME_END_MAX_SHOW 8 + +#define MY_HANDLE 252 +#define ALL_HANDLE 253 +#define NO_HANDLE 254 +#define NO_STATUS 254 + +#define WIN_HIDE 0 +#define WIN_SHOW 1 + typedef enum { CALL_LOCK = 1, CALL_UNLOCK @@ -33,31 +49,33 @@ typedef enum { CALL_UNHOLD } vcui_app_call_status_t; -#define TIME_END_START 1 -#define TIME_END_NO 0 -#define TIME_END_MAX_SHOW 8 - -#define MY_HANDLE 252 -#define ALL_HANDLE 253 -#define NO_HANDLE 254 -#define NO_STATUS 254 - -#define WIN_HIDE 0 -#define WIN_SHOW 1 - typedef enum { VIEW_DIALLING_VIEW = 0, - VIEW_INCOMING_VIEW, VIEW_INCOMING_LOCK_VIEW, VIEW_INCALL_ONECALL_VIEW, VIEW_INCALL_MULTICALL_SPLIT_VIEW, VIEW_INCALL_MULTICALL_CONF_VIEW, VIEW_INCALL_MULTICALL_LIST_VIEW, - VIEW_INCALL_KEYPAD_VIEW, VIEW_ENDCALL_VIEW, - VIEW_MAX + VIEW_QUICKPANEL_VIEW, + VIEW_MAX } vcui_app_call_view_id_t; +typedef enum _vcui_snd_path_type_t { + VCUI_SND_PATH_NONE, + VCUI_SND_PATH_HEADSET, + VCUI_SND_PATH_RECEIVER_EARJACK, + VCUI_SND_PATH_SPEAKER, + VCUI_SND_PATH_MAX, +} vcui_snd_path_type_t; + +typedef enum _vcui_vol_type_t { + VCUI_VOL_RING, + VCUI_VOL_VOICE, + VCUI_VOL_HEADSET, + VCUI_VOL_MAX +} vcui_vol_type_t; + typedef struct _appdata { Evas *evas; Evas_Object *win_main; @@ -83,8 +101,8 @@ typedef struct _appdata { int headset_status; int speaker_status; int mute_status; + int wbamr_status; - int brecord_voice; int show_flag; int ball_view_hide; @@ -92,7 +110,6 @@ typedef struct _appdata { struct _view_data *view_st[VIEW_MAX]; vcui_app_call_view_id_t view_top; vcui_app_call_view_id_t view_before_top; - vcui_app_call_view_id_t view_before_reject_view; Ecore_Timer *popup_delay; @@ -112,6 +129,11 @@ typedef struct _appdata { /* for one-call view */ int beffect_needed; + /* for keypad and UG*/ + int beffect_show; + int badd_call_clicked; + int bcontact_clicked; + /* Volume Control */ int bmute_ringtone; int vol_key_status; @@ -137,17 +159,24 @@ typedef struct _appdata { Evas_Object *vol_bt_popup_eo; Ecore_Timer *vol_bt_popup_del_timer; - struct ui_gadget *contact_ug; + ui_gadget_h contact_ug; Evas_Object *ly; struct vcui_ugs_array ugs_array_data; int call_end_type; + Evas_Object *win_quickpanel; + Evas_Object *quickpanel_layout; + char *quickpanel_text; + Ecore_Event_Handler *downkey_handler; Ecore_Event_Handler *upkey_handler; Ecore_Event_Handler *mouse_evnt_handler; + Ecore_Event_Handler *focus_in; + Ecore_Event_Handler *focus_out; + int rotate_angle; Ecore_Timer *ticker_tm; } vcui_app_call_data_t; @@ -165,4 +194,35 @@ typedef struct _view_data { void *priv; } voice_call_view_data_t; +typedef struct _vcui_call_mo_data_t { + char call_number[VC_PHONE_NUMBER_LENGTH_MAX]; + int ct_index; +} vcui_call_mo_data_t; + +typedef struct _vcui_call_mt_data_t { + int call_handle; + int call_type; + int cli_presentation_indicator; + char call_num[VC_PHONE_NUMBER_LENGTH_MAX]; + int calling_name_mode; + char calling_name[VC_PHONE_NAME_LENGTH_MAX]; + char redirected_number[VC_PHONE_NUMBER_LENGTH_MAX]; + char redirected_sub_address[VC_PHONE_SUBADDRESS_LENGTH_MAX]; + int cli_cause; + int bfwded; + int active_line; +} vcui_call_mt_data_t; + +typedef struct _vcui_call_ecc_data_t { + char call_number[VC_PHONE_NUMBER_LENGTH_MAX]; +} vcui_call_ecc_data_t; + +typedef struct _vcui_call_sat_data_t { + int command_id; /** - + #include #include @@ -51,21 +51,18 @@ #include #include "appcore-efl.h" +#include "vcui-app-data.h" #include "vcui-doc-launch.h" #include "voice-call-engine-msg.h" -#include "vcui-app-data.h" #include "vcui-document.h" #include "vcui-view-choice.h" -#include "vcui-engine-interface.h" #include "vcui-view-common.h" #include "vcui-view-elements.h" #include "vcui-view-popup.h" #include -#include "ui-gadget.h" /*for UG_INIT_EFL() & ug usage*/ - #include "libintl.h" #define DIALER_PKG "org.tizen.phone" @@ -107,51 +104,100 @@ #define GRP_MULTICALL_SPLIT2 "multicall-split2" #define GRP_MULTICALL_CONF "multicall-conf" #define GRP_MULTICALL "multicall-list" +#define GRP_REJECT_MSG "reject_with_msg" #define GRP_UG_EFFECT "ug_effect" #define GRP_END_SINGLECALL "end-singlecall" #define GRP_END_CONFCALL "end-confcall" - +#define GRP_QUICKPANEL "quickpanel" +#define GRP_QUICKPANEL_LSCAPE "quickpanel-lscape" +#define GRP_SEPARATOR_LAYOUT "separator-layout" +#define GRP_SEPARATOR_LAYOUT_3BUTTON "separator-layout-3button" +#define GRP_BUTTON_LAYOUT "button-layout" +#define GRP_CALLER_INFO "caller-info" +#define GRP_KEYPAD_SEP_LAYOUT "keypad-separator" +#define GRP_ALERTS_LAYOUT "sns-alerts-layout" + #define GRP_LOCK_ACCEPT "lock_accept" #define GRP_LOCK_REJECT "lock_reject" +#define GRP_LOCK_REJECT_WITH_MSG "lock_reject_with_msg" -#define QP_NOIMG_ICON IMGDIR"/vc_qp_caller_ID.png" -#define QP_CONF_ICON IMGDIR"/vc_qp_caller_ID_group.png" +#define QP_NOIMG_ICON IMGDIR"/vc_qp_caller_ID.png" +#define QP_CONF_ICON IMGDIR"/vc_qp_caller_ID_group.png" +#define QP_CALL_ICON ICONDIR"/org.tizen.call.png" #define NOIMG_ICON IMGDIR"/vc_normal_caller_ID.png" #define CONF_ICON IMGDIR"/vc_normal_caller_ID_group.png" #define PRIVATE_ICON IMGDIR"/vc_conference_private.png" -#define HOLD_ICON IMGDIR"/vc_icon_hold.png" -#define UNHOLD_ICON IMGDIR"/vc_icon_unhold.png" +#define CALLER_ID_DEFAULT IMGDIR"/vc_caller_ID_default.png" + #define KEYPAD_ICON IMGDIR"/vc_keypad_icon.png" #define CONTACT_ICON IMGDIR"/vc_contact_icon.png" #define ADDCALL_ICON IMGDIR"/vc_add_icon.png" #define JOIN_ICON IMGDIR"/vc_join_icon.png" +#define END_CALL_ICON IMGDIR"/vc_end_call_icon.png" #define SPEAKER_ICON IMGDIR"/vc_speaker_icon.png" #define MUTE_ICON IMGDIR"/vc_mute_icon.png" -#define PLAY_ICON IMGDIR"/vc_icon_play.png" -#define PAUSE_ICON IMGDIR"/vc_icon_pause.png" -#define MORE_ICON IMGDIR"/vc_btn_more.png" #define CONF_CALL_END_ICON IMGDIR"/vc_icon_conf_call_end.png" #define CALLING_NAME_BG_IMAGE IMGDIR"/vc_calling_name_BG_image.png" +#define BDAY_ICON IMGDIR"/vc_birthday_icon.png" +#define MO_NOCALLER_ID_ICON IMGDIR"/vc_outgoingcall_No_caller_ID.png" +#define CALLER_INFO_ICON IMGDIR"/vc_caller_info_icon.png" +#define NOIMG_SPLIT_ICON IMGDIR"/vc_caller_ID_split.png" +#define CONF_SPLIT_ICON IMGDIR"/vc_caller_ID_split_group.png" + +#define SPEAKER_PRESS_ICON IMGDIR"/vc_speaker_on_icon.png" +#define MUTE_PRESS_ICON IMGDIR"/vc_mute_on_icon.png" -#define HOLD_DISABLED_ICON IMGDIR"/vc_icon_hold_dim.png" -#define UNHOLD_DISABLED_ICON IMGDIR"/vc_icon_unhold_dim.png" #define KEYPAD_DISABLED_ICON IMGDIR"/vc_keypad_icon_dim.png" #define CONTACT_DISABLED_ICON IMGDIR"/vc_contact_icon_dim.png" #define ADDCALL_DISABLED_ICON IMGDIR"/vc_add_icon_dim.png" #define JOIN_DISABLED_ICON IMGDIR"/vc_join_icon_dim.png" +#define END_CALL_DISABLED_ICON IMGDIR"/vc_end_call_icon_dim.png" #define SPEAKER_DISABLED_ICON IMGDIR"/vc_speaker_icon_dim.png" #define MUTE_DISABLED_ICON IMGDIR"/vc_mute_icon_dim.png" -#define CONF_LIST_HOLD_ICON IMGDIR"/vc_icon_conf_list_hold.png" -#define CONF_LIST_UNHOLD_ICON IMGDIR"/vc_icon_conf_list_unhold.png" +#define SHARE_DISABLED_ICON IMGDIR"/vc_rcs_share_icon_dim.png" + +#define HOLD_ICON IMGDIR"/vc_icon_hold_call.png" +#define UNHOLD_ICON IMGDIR"/vc_icon_unhold_call.png" +#define SWAP_ICON IMGDIR"/vc_icon_swap_call.png" #define VOLUME_ICON IMGDIR"/vc_volume_icon.png" #define VOLUME_MUTE_ICON IMGDIR"/vc_volume_mute_icon.png" -#define NVAI_CONTROL_OTHER_ICON IMGDIR"/vc_reject_with_msg_header_icon_others.png" +#define VOICE_CALL_ICON IMGDIR"/vc_voice_call_icon.png" +#define VIDEO_CALL_ICON IMGDIR"/vc_video_call_icon.png" +#define MESSAGE_ICON IMGDIR"/vc_msg_icon.png" + +#define REJ_MSG_BACK_ICON IMGDIR"/vc_reject_back_icon.png" +#define REJ_MSG_CREATE_ICON IMGDIR"/vc_reject_create_icon.png" + +#define CALL_BG_IMG IMGDIR"/vc_call_bg_img.png" +#define CALL_NOT_SAVED_BG_IMG IMGDIR"/vc_call_not_saved_bg_img.png" + +#define MORE_MANAGE_CONF_ICON IMGDIR"/vc_more_manage_conf.png" +#define MORE_ADD_CALL_ICON IMGDIR"/vc_more_add_call.png" +#define MORE_JOIN_ICON IMGDIR"/vc_more_join.png" +#define MORE_CONTACTS_ICON IMGDIR"/vc_more_contacts.png" + +#define QP_MUTE_ICON IMGDIR"/vc_qp_mute_on.png" + +#define NOTIFY_MISSED_CALL_ICON IMGDIR"/vc_notify_missed_call.png" +#define NOTIFY_SUB_MISSED_CALL_ICON IMGDIR"/vc_notify_sub_missed_call.png" #define MINI_CONTROLLER_WIDTH (480) #define MINI_CONTROLLER_HEIGHT (42) +#define MAIN_WIN_HD_W 720 +#define MAIN_WIN_HD_H 1280 +#define MAIN_WIN_WVGA_W 480 +#define MAIN_WIN_WVGA_H 800 + +#define QUICKPANEL_WIDTH (720) +#define LSCAPE_QUICKPANEL_WIDTH (1280) +#define QUICKPANEL_HEIGHT (170) + +#define MORE_MENU_CTXPOPUP_X 660 +#define MORE_MENU_CTXPOPUP_Y 175 + #define DEF_BUF_LEN (128) #define DEF_BUF_LEN_LONG (256) @@ -197,7 +243,7 @@ #ifdef CALL_DEBUG_ON_DLOG #define CALL_UI_DEBUG(frmt, args...) do { LOG(LOG_DEBUG, TAG_CALL, "[vcui] [%s:%d] "frmt"\n", __func__, __LINE__, ##args); } while (0) -#define CALL_UI_KPI(frmt, args...) do { LOG(LOG_DEBUG, TAG_CALL_LAUNCH, "[VC_KPI] [%s:%d] "frmt"\n", __func__, __LINE__, ##args); } while (0) +#define CALL_UI_KPI(frmt, args...) do { LOG(LOG_DEBUG, TAG_CALL_LAUNCH, "[VC_KPI] [%s:%d] "frmt"\n", __func__, __LINE__, ##args); } while (0) #else #define CALL_UI_DEBUG(args...) #endif @@ -282,7 +328,6 @@ typedef enum { CALL_END_TYPE_CONF_CALL, } voice_call_end_type_t; -/************************************************************************************/ void _create_main_ui_set_flag(); void _create_main_ui_real(); void _vcui_show_main_ui_set_flag(); @@ -315,4 +360,4 @@ char *_vcui_get_endcause_string(int end_cause, char *data); Evas_Object *_vcui_load_edj(Evas_Object *parent, const char *file, const char *group); -#endif /* __VCUI_MAIN_H_ */ +#endif /* _VCUI_APPLICATION_H_ */ diff --git a/ui/vcui-doc-launch.h b/ui/src/include/vcui-doc-launch.h similarity index 84% rename from ui/vcui-doc-launch.h rename to ui/src/include/vcui-doc-launch.h index 5ccaa70..97dc13e 100755 --- a/ui/vcui-doc-launch.h +++ b/ui/src/include/vcui-doc-launch.h @@ -15,19 +15,18 @@ */ -#include "ui-gadget.h" - -#ifndef _VCUI_DOC_LAUNCH_ -#define _VCUI_DOC_LAUNCH_ +#ifndef _VCUI_DOC_LAUNCH_H_ +#define _VCUI_DOC_LAUNCH_H_ #define PKGNAME_CONTACT_UG "contacts-list-efl" -#define PKGNAME_DIALER_UG "phoneui-efl" +#define PKGNAME_DIALER_UG "phone-tabui-efl" typedef enum { VCUI_UG_TYPE_NOE = 0, VCUI_UG_TYPE_CONTACT_LIST, VCUI_UG_TYPE_ADD_CALL, VCUI_UG_TYPE_ADD_TO_CONTACTS, + VCUI_UG_TYPE_VIEW_CONTACT, VCUI_UG_TYPE_MAX } vcui_ug_type; @@ -51,6 +50,7 @@ struct vcui_ug_priv_data { void _vcui_doc_launch_contact_list_ug(void *parent_ui_gadget, void *navi, void *parent, void (*on_start_callback) (void *), void (*on_destroy_callback) (void *), void *callback_param, void *ugs_array_data); void _vcui_doc_launch_phoneui_ug(void *parent_ui_gadget, void *navi, void *parent, void (*on_start_callback) (void *), void (*on_destroy_callback) (void *), void *callback_param, void *ugs_array_data); void _vcui_doc_launch_add_to_contacts_ug(void *parent_ui_gadget, void *navi, void *parent, void (*on_start_callback) (void *), void (*on_destroy_callback) (void *), void *callback_param, void *ugs_array_data, void *data); +void _vcui_doc_launch_view_contact_ug(void *parent_ui_gadget, void *navi, void *parent, void (*on_start_callback) (void *), void (*on_destroy_callback) (void *), void *callback_param, void *ugs_array_data, void *data); void _vcui_doc_launch_msg_composer(void *data, char *number); void _vcui_doc_launch_destroy_ug_all(void *ugs_array_data); diff --git a/ui/src/include/vcui-document.h b/ui/src/include/vcui-document.h new file mode 100755 index 0000000..a45da8d --- /dev/null +++ b/ui/src/include/vcui-document.h @@ -0,0 +1,474 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#ifndef _VCUI_DOCUMENT_H_ +#define _VCUI_DOCUMENT_H_ + +typedef struct _call_data_t call_data_t; + +/** + * This function initializes the data structure pointers maintained in the document file + * + * @return nothing + * @param[in] nothing +*/ +void _vcui_doc_data_init(); + +/** + * This function allocates memory for the call data structure - call_data_t + * + * @return pointer to the memory allocated for call-data structure, or NULL if memory allocation fails + * @param[in] nothing +*/ +call_data_t *_vcui_doc_allocate_call_data_memory(void); + +/** + * This function retrieves the value of the call handle + * + * @return value of the call handle + * @param[in] pcall_data pointer to the call-data structure +*/ +int _vcui_doc_get_call_handle(call_data_t *pcall_data); + +/** + * This function assigns the value of call handle for a given pointer of the call-data structure + * + * @return nothing + * @param[in] pcall_data pointer to the call-data structure + * @param[in] call_handle new value of the call handle +*/ +void _vcui_doc_set_call_handle(call_data_t *pcall_data, int call_handle); + +/** + * This function retrieves the value of the call number + * + * @return pointer to the call number string + * @param[in] pcall_data pointer to the call-data structure +*/ +char *_vcui_doc_get_call_number(call_data_t *pcall_data); + +/** + * This function assigns the value of call number for a given pointer of the call-data structure + * + * @return nothing + * @param[in] pcall_data pointer to the call-data structure + * @param[in] pnumber pointer to the call number string +*/ +void _vcui_doc_set_call_number(call_data_t *pcall_data, char *pnumber); + +/** + * This function retrieves the value of the call name (available from contact DB) + * + * @return pointer to the call name string + * @param[in] pcall_data pointer to the call-data structure +*/ +char *_vcui_doc_get_call_display_name(call_data_t *pcall_data); + +/** + * This function assigns the value of contact name for a given pointer of the call-data structure + * + * @return nothing + * @param[in] pcall_data pointer to the call-data structure + * @param[in] pname pointer to the call number string +*/ +void _vcui_doc_set_call_display_name(call_data_t *pcall_data, char *pname); + +/** + * This function retrieves the caller-ID file path (caller-ID for split screen) + * + * @return pointer to the caller-ID file path string + * @param[in] pcall_data pointer to the call-data structure +*/ +char *_vcui_doc_get_caller_id_file_path(call_data_t *pcall_data); + +/** + * This function assigns the value of caller-ID file-path for a given pointer of the call-data structure + * + * @return nothing + * @param[in] pcall_data pointer to the call-data structure + * @param[in] pfile_path pointer to the caller-ID file-path string +*/ +void _vcui_doc_set_caller_id_file_path(call_data_t *pcall_data, char *pfile_path); + +/** + * This function retrieves the caller-ID full file path (caller-ID for full screen) + * + * @return pointer to the caller-ID full file path string + * @param[in] pcall_data pointer to the call-data structure +*/ +char *_vcui_doc_get_caller_id_full_file_path(call_data_t *pcall_data); + +/** + * This function assigns the value of caller-ID full file-path for a given pointer of the call-data structure + * + * @return nothing + * @param[in] pcall_data pointer to the call-data structure + * @param[in] pfull_file_path pointer to the caller-ID full file-path string +*/ +void _vcui_doc_set_caller_id_full_file_path(call_data_t *pcall_data, char *pfull_file_path); + +/** + * This function retrieves the value of the call start time + * + * @return value of the call start time + * @param[in] pcall_data pointer to the call-data structure +*/ +int _vcui_doc_get_call_start_time(call_data_t *pcall_data); + +/** + * This function assigns the value of call start time for a given pointer of the call-data structure + * + * @return nothing + * @param[in] pcall_data pointer to the call-data structure +*/ +void _vcui_doc_set_call_start_time(call_data_t *pcall_data); + +/** + * This function retrieves the value of the contact index + * + * @return value of the contact index + * @param[in] pcall_data pointer to the call-data structure +*/ +int _vcui_doc_get_contact_index(call_data_t *pcall_data); + +/** + * This function assigns the value of contact index for a given pointer of the call-data structure + * + * @return nothing + * @param[in] pcall_data pointer to the call-data structure + * @param[in] contact_index value of the contact index +*/ +void _vcui_doc_set_contact_index(call_data_t *pcall_data, int contact_index); + +/** + * This function retrieves the value of the contact phone type + * + * @return value of the contact phone type + * @param[in] pcall_data pointer to the call-data structure +*/ +int _vcui_doc_get_contact_phone_type(call_data_t *pcall_data); + +/** + * This function assigns the value of contact phone type for a given pointer of the call-data structure + * + * @return nothing + * @param[in] pcall_data pointer to the call-data structure + * @param[in] phone_type value of the contact phone type +*/ +void _vcui_doc_set_contact_phone_type(call_data_t *pcall_data, int phone_type); + +/** + * This function retrieves the value of the remaining days for the contact birthday + * + * @return value of the contact remaining days in birthday + * @param[in] pcall_data pointer to the call-data structure +*/ +int _vcui_doc_get_birthday_remaining_days(call_data_t *pcall_data); + +/** + * This function assigns the value of birthday remaining days for a given pointer of the call-data structure + * + * @return nothing + * @param[in] pcall_data pointer to the call-data structure + * @param[in] bday_rem_days value of the birthday remaining days +*/ +void _vcui_doc_set_birthday_remaining_days(call_data_t *pcall_data, int bday_rem_days); + +/** + * This function retrieves the value of the auto reject status + * + * @return value of the auto reject status + * @param[in] pcall_data pointer to the call-data structure +*/ +int _vcui_doc_get_auto_reject_status(call_data_t *pcall_data); + +/** + * This function assigns the value of auto reject status for a given pointer of the call-data structure + * + * @return nothing + * @param[in] pcall_data pointer to the call-data structure + * @param[in] bauto_rejected value of the auto reject status +*/ +void _vcui_doc_set_auto_reject_status(call_data_t *pcall_data, gboolean bauto_rejected); + +/** + * This function retrieves if a call is MO or MT type + * + * @return value of the call type - MO or MT + * @param[in] pcall_data pointer to the call-data structure +*/ +int _vcui_doc_get_call_type(call_data_t *pcall_data); + +/** + * This function assigns the value of call type for a given pointer of the call-data structure + * + * @return nothing + * @param[in] pcall_data pointer to the call-data structure + * @param[in] call_type type of call, MO or MT +*/ +void _vcui_doc_set_call_type(call_data_t *pcall_data, int call_type); + +/** + * This function retrieves the call status of a particular call data structure (HOLD/UNHOLD) + * + * @return value of the call status, HOLD/UNHOLD + * @param[in] pcall_data pointer to the call-data structure +*/ +int _vcui_doc_get_call_status(call_data_t *pcall_data); + +/** + * This function assigns the value of call status for a given pointer of the call-data structure + * + * @return nothing + * @param[in] pcall_data pointer to the call-data structure + * @param[in] call_status status of call, active/held +*/ +void _vcui_doc_set_call_status(call_data_t *pcall_data, int call_status); + +/** + * This function retrieves the pointer to the most recent MO(outgoing) call data + * + * @return pointer to the call data structure + * @param[in] nothing +*/ +call_data_t *_vcui_doc_get_recent_mo_call_data(); + +/** + * This function assigns the pointer of the most recent MO(outgoing) call data + * to the pointer stored in the vcui-document file (recent_mo) + * + * @return nothing + * @param[in] in pointer to the call-data structure to be copied/assigned +*/ +void _vcui_doc_set_recent_mo_call_data(call_data_t *in); + +/** + * This function retrieves the pointer to the most recent MT(incoming) call data + * + * @return pointer to the call data structure + * @param[in] nothing +*/ +call_data_t *_vcui_doc_get_recent_mt_call_data(); + +/** + * This function assigns the pointer of the most recent MT(incoming) call data + * to the pointer stored in the vcui-document file (recent_mt) + * + * @return nothing + * @param[in] in pointer to the call-data structure to be copied/assigned +*/ +void _vcui_doc_set_recent_mt_call_data(call_data_t *in); + +/** + * This function retrieves the pointer to the most recent call data, either MT(incoming)/MO(outgoing) + * + * @return pointer to the call data structure + * @param[in] nothing +*/ +call_data_t *_vcui_doc_get_recent_call_data(); + +/** + * This function assigns the pointer of the most recent MT(incoming)/MO(outgoing) call data + * to the pointer stored in the vcui-document file (recent_call) + * + * @return nothing + * @param[in] in pointer to the call-data structure to be copied/assigned +*/ +void _vcui_doc_set_all_recent(call_data_t *in); + +/** + * This function adds the call data structure to the list of call data maintained in the + * vcui-document file (caller_list link list) + * + * @return nothing + * @param[in] in pointer to the call-data structure to be added +*/ +void _vcui_doc_add_call_data(call_data_t *in); + +/** + * This function updates the call data structure contained in the list of call data maintained in the + * vcui-document file (caller_list link list) with the new call-data structure + * + * @return nothing + * @param[in] in pointer to the call-data structure to be updated +*/ +void _vcui_doc_update_call_data(call_data_t *in); + +/** + * This function checks if the call data pointer data is valid and present in the 'caller_list' list + * + * @return TRUE if the call-data is present and FALSE if there is no such call-data in the list + * @param[in] in pointer to the call-data structure +*/ +Eina_Bool _vcui_doc_is_valid_call_data(call_data_t *in); + +/** + * This function removes the call data structure from the list of call data maintained in the + * vcui-document file (caller_list link list) and frees the call data structure + * + * @return nothing + * @param[in] in pointer to the call-data structure to be added +*/ +void _vcui_doc_remove_call_data(call_data_t *in); + +/** + * This function removes the call data structure from the list of call data maintained in the + * vcui-document file (caller_list link list) + * + * @return a pointer to the call data structure which is passed + * @param[in] in pointer to the call-data structure to be added +*/ +call_data_t *_vcui_doc_remove_call_data_from_list(call_data_t *in); + +/** + * This function removes all the call data from list and frees the memory + * + * @return nothing + * @param[in] void +*/ +void _vcui_doc_remove_all_call_data(); + +/** + * This function retrieves the earliest call data based on the call status + * + * @return pointer to the call data structure + * @param[in] call_status value of the call status (hold/unhold) +*/ +call_data_t *_vcui_doc_get_call_data_by_call_status(int call_status); + +/** + * This function retrieves the most recent MO call data + * + * @return pointer to the call data structure + * @param[in] nothing +*/ +call_data_t *_vcui_doc_get_call_data_mo_type(); + +/** + * This function retrieves the first call data in the list + * + * @return pointer to the call data structure + * @param[in] nothing +*/ +call_data_t *_vcui_doc_get_first_call_data_from_list(); + +/** + * This function retrieves the first call data in the list which is of UNHOLD status + * + * @return pointer to the call data structure + * @param[in] nothing +*/ +call_data_t *_vcui_doc_get_first_call_data_by_unhold_status(); + +/** + * This function retrieves the call data based on the given call handle + * + * @return pointer to the call data structure + * @param[in] handle value of the call handle +*/ +call_data_t *_vcui_doc_get_call_data_by_handle(int handle); + +/** + * This function retrieves the count of call data which are in HOLD status + * + * @return count of held call data + * @param[in] nothing +*/ +int _vcui_doc_get_hold_call_data_count(); + +/** + * This function retrieves the count of call data which are in UNHOLD status + * + * @return count of active call data + * @param[in] nothing +*/ +int _vcui_doc_get_unhold_call_data_count(); + +/** + * This function retrieves the count of call data which are in NO status (neither hold/unhold) + * + * @return count of 'no status' call data + * @param[in] nothing +*/ +int _vcui_doc_get_no_status_call_data_count(); + +/** + * This function retrieves the count of all call data in the list + * + * @return count of all call data + * @param[in] nothing +*/ +int _vcui_doc_get_all_call_data_count(); + +/** + * This function retrieves the call status of a group (greater than 1 member group) + * + * @return value of the call status (HOLD/UNHOLD) + * @param[in] nothing +*/ +int _vcui_doc_get_group_call_status(); + +/** + * This function retrieves the pointer to the list containing the call data with HOLD status + * + * @return pointer to the HOLD call data list + * @param[in] nothing +*/ +Eina_List *_vcui_doc_get_caller_list_with_hold_status(); + +/** + * This function retrieves the pointer to the list containing the call data with UNHOLD status + * + * @return pointer to the UNHOLD call data list + * @param[in] nothing +*/ +Eina_List *_vcui_doc_get_caller_list_with_unhold_status(); + +/** + * This function prints all the call data structure members + * + * @return nothing + * @param[in] msg_pos type of message +*/ +void _vcui_doc_print_all_call_data(char *msg_pos); + +/** + * This function assigns UNHOLD call status to all the call data in the list + * + * @return nothing + * @param[in] nothing +*/ +void _vcui_doc_set_all_call_data_to_unhold_status(); + +/** + * This function assigns HOLD call status to all the call data in the list + * + * @return nothing + * @param[in] nothing +*/ +void _vcui_doc_set_all_call_data_to_hold_status(); + +/** + * This function swaps the HOLD and UNHOLD calls in the call list + * + * @return nothing + * @param[in] nothing +*/ +void _vcui_doc_swap_all_call_data_status(); + +#endif + diff --git a/ui/vcui-view-callend.h b/ui/src/include/vcui-view-callend.h similarity index 60% rename from ui/vcui-view-callend.h rename to ui/src/include/vcui-view-callend.h index df0dceb..a533129 100755 --- a/ui/vcui-view-callend.h +++ b/ui/src/include/vcui-view-callend.h @@ -15,11 +15,15 @@ */ -typedef struct { - Evas_Object *contents; - Evas_Object *ic; /* small size call image */ - Evas_Object *record_btn; - vcui_app_call_status_t call_status; -} endcall_view_priv_t; +#ifndef _VCUI_VIEW_CALLEND_H_ +#define _VCUI_VIEW_CALLEND_H_ + voice_call_view_data_t *_vcui_view_callend_new(vcui_app_call_data_t *ad); +int _vc_ui_view_callend_check_valid_eo(voice_call_view_data_t *vd); +Evas_Object *_vc_ui_view_callend_get_layout(voice_call_view_data_t *vd); +Evas_Object *_vc_ui_view_callend_get_button_layout(voice_call_view_data_t *vd); +void _vc_ui_view_callend_set_call_timer(voice_call_view_data_t *vd, char *pcall_dur); +Evas_Object *_vc_ui_view_callend_get_caller_info(voice_call_view_data_t *vd); + +#endif diff --git a/ui/vcui-view-choice.h b/ui/src/include/vcui-view-choice.h similarity index 93% rename from ui/vcui-view-choice.h rename to ui/src/include/vcui-view-choice.h index f50d019..ed6ac86 100755 --- a/ui/vcui-view-choice.h +++ b/ui/src/include/vcui-view-choice.h @@ -23,5 +23,6 @@ void _vcui_view_auto_change(); void _vcui_view_update(); void _vcui_view_all_hide(); void _vcui_view_destroy(vcui_app_call_view_id_t view_id); - +void _vcui_view_quickpanel_change(); + #endif /*_VCUI_VIEW_CHOICE_H_*/ diff --git a/ui/vcui-view-common.h b/ui/src/include/vcui-view-common.h similarity index 91% rename from ui/vcui-view-common.h rename to ui/src/include/vcui-view-common.h index e3f10cf..39f8831 100755 --- a/ui/vcui-view-common.h +++ b/ui/src/include/vcui-view-common.h @@ -15,8 +15,8 @@ */ -#ifndef _VOICE_CALL_UI_INCALL_ -#define _VOICE_CALL_UI_INCALL_ +#ifndef _VCUI_VIEW_COMMON_H_ +#define _VCUI_VIEW_COMMON_H_ #include @@ -66,4 +66,7 @@ void _vcui_view_common_timer_redial_reset(); int _vcui_view_common_call_terminate_or_view_change(void); +void _vcui_view_common_show_noid_image(Evas_Object *layout); +void _vcui_view_common_update_mute_btn(void); + #endif diff --git a/ui/vcui-view-dialing.h b/ui/src/include/vcui-view-dialing.h similarity index 60% rename from ui/vcui-view-dialing.h rename to ui/src/include/vcui-view-dialing.h index f90d6b1..9084a5b 100755 --- a/ui/vcui-view-dialing.h +++ b/ui/src/include/vcui-view-dialing.h @@ -15,21 +15,16 @@ */ -#ifndef _VCUI_VIEW_DIALING_ -#define _VCUI_VIEW_DIALING_ +#ifndef _VCUI_VIEW_DIALING_H_ +#define _VCUI_VIEW_DIALING_H_ -typedef struct { - Evas_Object *contents; - Evas_Object *ic; - call_data_t *now_data; -} vcui_view_dialing_priv_t; - - -voice_call_view_data_t * _vcui_view_dialing_new(vcui_app_call_data_t * ad); +voice_call_view_data_t *_vcui_view_dialing_new(vcui_app_call_data_t *ad); void _vcui_view_dialing_draw_txt_ended(voice_call_view_data_t *vd, int end_type); -void _vcui_view_dialing_draw_txt_connecting(voice_call_view_data_t *vd); -void _vcui_view_dialing_draw_txt_dialing(voice_call_view_data_t *vd); +int _vc_ui_view_dialing_check_valid_eo(voice_call_view_data_t *vd); +Evas_Object *_vc_ui_view_dialing_get_layout(voice_call_view_data_t *vd); +Evas_Object *_vc_ui_view_dialing_get_button_layout(voice_call_view_data_t *vd); +Evas_Object *_vc_ui_view_dialing_get_caller_info(voice_call_view_data_t *vd); #endif diff --git a/ui/vcui-view-elements.h b/ui/src/include/vcui-view-elements.h similarity index 55% rename from ui/vcui-view-elements.h rename to ui/src/include/vcui-view-elements.h index 466edf7..1e1961e 100755 --- a/ui/vcui-view-elements.h +++ b/ui/src/include/vcui-view-elements.h @@ -15,12 +15,19 @@ */ -#ifndef _VOICE_CALL_UI_CALLBACK_ -#define _VOICE_CALL_UI_CALLBACK_ +#ifndef _VCUI_VIEW_ELEMENTS_H_ +#define _VCUI_VIEW_ELEMENTS_H_ + void _vcui_swap_btn_cb(void *data, Evas_Object * obj, void *event_info); void _vcui_conf_img_cb(void *data, Evas_Object * obj, void *event_info); + +#ifdef _VC_CONTACT_OPT_ +Evas_Object *_vcui_create_contact_button(void *data); +Evas_Object *_vcui_create_contact_button_disabled(void *data); +#endif /*_VC_CONTACT_OPT_*/ + Evas_Object *_vcui_create_top_left_button(void *data); Evas_Object *_vcui_create_top_left_button_disabled(void *data); Evas_Object *_vcui_create_top_middle_button(void *data); @@ -33,24 +40,36 @@ Evas_Object *_vcui_create_bottom_middle_button(void *data); Evas_Object *_vcui_create_bottom_middle_button_disabled(void *data); Evas_Object *_vcui_create_bottom_right_button(void *data); Evas_Object *_vcui_create_bottom_right_button_disabled(void *data); + Evas_Object *_vcui_create_button_bigend(void *data); Evas_Object *_vcui_create_button_bigend_disabled(void *data); Evas_Object *_vcui_create_conf_list_button_hold(void *data); -Evas_Object *_vcui_create_button_accept(void *data); -Evas_Object *_vcui_create_button_reject(void *data); -Evas_Object *_vcui_create_button_second_incoming_reject(void *data, char *text, char *part_name); -Evas_Object *_vcui_create_button_second_incoming_hold_and_accept(void *data, char *text); -Evas_Object *_vcui_create_button_second_incoming_end_and_accept(void *data, char *text); -Evas_Object *_vcui_create_button_second_incoming_end_active_and_accept(void *data, char *text); -Evas_Object *_vcui_create_button_second_incoming_end_hold_and_accept(void *data, char *text); -Evas_Object *_vcui_create_button_second_incoming_end_all_and_accept(void *data, char *text); - Evas_Object *_vcui_show_wallpaper_image(Evas_Object *contents); void _vcui_delete_contact_image(Evas_Object *contents); Evas_Object *_vcui_show_contact_image(Evas_Object *contents, Evas_Object *win_main, char *path); Evas_Object *_vcui_show_default_image(Evas_Object *contents, Evas_Object *win_main, char *path); -void _vcui_set_full_image(Evas_Object *contents, Evas_Object *win_main, char *img_path); -Evas_Object *_vcui_show_calling_name_bg(Evas_Object *contents); -#endif /* _VOICE_CALL_UI_CALLBACK_ */ +Evas_Object *_vcui_show_calling_name_bg(Evas_Object *contents); + +Evas_Object *_vcui_create_videocall_button(void *data, char *number); +Evas_Object *_vcui_create_voicecall_button(void *data, char *number); +Evas_Object *_vcui_create_message_button(void *data, char *number); +Evas_Object *_vcui_create_add_to_contacts_button(void *data, char *number); +Evas_Object *_vcui_create_view_contact_button(void *data, int ct_id); + +Evas_Object *_vcui_create_quickpanel_mute_button(void *data); +Evas_Object *_vcui_create_quickpanel_unhold_button(void *data); +Evas_Object *_vcui_create_quickpanel_end_button(void *data); + +Evas_Object *_vcui_create_hold_swap_button(void *data); +void _vcui_show_caller_info_name(void *data, const char *name, Eina_Bool bhold); +void _vcui_show_caller_info_number(void *data, const char *number, Eina_Bool bhold); +Evas_Object *_vcui_show_caller_info_icon(void *data, Eina_Bool bhold); +Evas_Object *_vcui_show_caller_info_status(void *data, const char *status, Eina_Bool bhold); +Evas_Object *_vcui_show_contact_image_split(Evas_Object *contents, const char *path, const char *full_path, Eina_Bool bhold); +Evas_Object *_vcui_show_call_bg_img(Evas_Object *contents); +Evas_Object *_vcui_show_call_not_saved_bg_img(Evas_Object *contents); +void _vcui_elements_check_keypad_n_hide(void *data); + +#endif /* _VCUI_VIEW_ELEMENTS_H_ */ diff --git a/ui/vcui-view-incoming-lock.h b/ui/src/include/vcui-view-incoming-lock.h similarity index 64% rename from ui/vcui-view-incoming-lock.h rename to ui/src/include/vcui-view-incoming-lock.h index 57df16f..0ad1b09 100755 --- a/ui/vcui-view-incoming-lock.h +++ b/ui/src/include/vcui-view-incoming-lock.h @@ -15,25 +15,13 @@ */ -#ifndef _VOICE_CALL_UI_INCOMING_LOCK_VIEW_ -#define _VOICE_CALL_UI_INCOMING_LOCK_VIEW_ +#ifndef _VCUI_VIEW_INCOMING_LOCK_H_ +#define _VCUI_VIEW_INCOMING_LOCK_H_ -typedef struct { - Evas_Object *contents; - Evas_Object *ic; - - Evas_Object *lock_accept; - int accept_start_x; - int accept_cur_x; - - Evas_Object *lock_reject; - int reject_start_x; - int reject_cur_x; - - call_data_t *now_data; - -} incoming_lock_view_priv_t; voice_call_view_data_t *_vcui_view_incoming_lock_new(vcui_app_call_data_t *ad); +int _vc_ui_view_incoming_lock_check_valid_eo(voice_call_view_data_t *vd); +Evas_Object *_vc_ui_view_incoming_lock_get_caller_info(voice_call_view_data_t *vd); +Evas_Object *_vc_ui_view_incoming_lock_get_layout(voice_call_view_data_t *vd); #endif diff --git a/ui/vcui-view-keypad.h b/ui/src/include/vcui-view-keypad.h similarity index 56% rename from ui/vcui-view-keypad.h rename to ui/src/include/vcui-view-keypad.h index 7cc4f03..d0540d3 100755 --- a/ui/vcui-view-keypad.h +++ b/ui/src/include/vcui-view-keypad.h @@ -15,32 +15,28 @@ */ -#ifndef _VCUI_VIEW_KEYPAD_ -#define _VCUI_VIEW_KEYPAD_ +#ifndef _VCUI_VIEW_KEYPAD_H_ +#define _VCUI_VIEW_KEYPAD_H_ #ifndef STRLEN -#define STRLEN(str) (((str) == NULL) ? 0: strlen(str)) +#define STRLEN(str) (((str) == NULL) ? 0 : strlen(str)) #endif -#define CURSOR_BEGIN -1 -#define CURSOR_END -2 +#define CURSOR_BEGIN -1 +#define CURSOR_END -2 -#define MAX_DIAL_NUMBER_FONT_SIZE 70 -#define KEYPAD_STR_DEFINE_OPEN_SIZE 73 +#define MAX_DIAL_NUMBER_FONT_SIZE 70 +#define KEYPAD_STR_DEFINE_OPEN_SIZE 73 #define KEYPAD_STR_DEFINE_CLOSE_SIZE 43 -#define KEYPAD_ENTRY_DISP_DATA_SIZE 1024 +#define KEYPAD_ENTRY_DISP_DATA_SIZE 1024 #define KEYPAD_ENTRY_SET_DATA_SIZE (KEYPAD_STR_DEFINE_OPEN_SIZE + KEYPAD_STR_DEFINE_CLOSE_SIZE + KEYPAD_ENTRY_DISP_DATA_SIZE) -typedef struct { - Evas_Object *contents; - Evas_Object *ic; - call_data_t *now_data; - Evas_Object *entry; - int data_len; - char entry_disp_data[KEYPAD_ENTRY_DISP_DATA_SIZE+1]; -} vcui_view_keypad_priv_t; +void _vcui_keypad_create_layout(void *data, Evas_Object *parent_ly); +Eina_Bool _vcui_keypad_get_show_status(void); +void _vcui_keypad_set_show_status(Eina_Bool bkeypad_status); +void _vcui_keypad_show_hide_effect(void *data, Evas_Object *parent_ly); +void _vcui_keypad_delete_layout(Evas_Object *parent_ly); +void _vcui_keypad_show_layout(void *data); #endif - -voice_call_view_data_t *_vcui_view_keypad_new(vcui_app_call_data_t *ad); diff --git a/ui/src/include/vcui-view-layout-hd.h b/ui/src/include/vcui-view-layout-hd.h new file mode 100755 index 0000000..34fac15 --- /dev/null +++ b/ui/src/include/vcui-view-layout-hd.h @@ -0,0 +1,1958 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#ifndef _VCUI_VIEW_LAYOUT_HD_H_ +#define _VCUI_VIEW_LAYOUT_HD_H_ + +#define COLOR_DEFAULT 0 0 0 255 +#define COLOR_BG_ALPHA 0 0 0 0 +#define COLOR_BG_FOR_HELD_CALL_DIM 0 0 0 150 + +#define FONT_SLP_Bold "SLP:style=Bold" +#define FONT_SLP_Medium "SLP:style=Medium" +#define FONT_SLP_Roman "SLP:style=Roman" +#define FONT_SLP_Light "SLP:style=Light" +#define FONT_SLP_Regular "SLP:style=Regular" + +#define TEXT_CLASS_SLP_BOLD "slp_bold" +#define TEXT_CLASS_SLP_MEDIUM "slp_medium" +#define TEXT_CLASS_SLP_ROMAN "slp_roman" +#define TEXT_CLASS_SLP_LIGHT "slp_light" +#define TEXT_CLASS_SLP_REGULAR "slp_regular" + +/*#define BTN_EDGE_W 9*/ + +/* + * NBEAT-HD GUI Widget Dimensions + * In Portrait mode + */ +#define MAIN_SCREEN_W 720 +#define MAIN_SCREEN_H 1280 + +#define INDICATOR_HEIGHT 50 +#define NAVIFRAME_TITLE_HEIGHT 100 + +#define MAIN_NAVIFRAME_W MAIN_SCREEN_W +#define MAIN_NAVIFRAME_H (MAIN_SCREEN_H-INDICATOR_HEIGHT-NAVIFRAME_TITLE_HEIGHT) +#define NAVIFRAME_T_PAD 50 + +#define QP_WIN_W MAIN_SCREEN_W +#define QP_WIN_H 170 + +#define CALLER_INFO_L_PAD 0 +#define CALLER_INFO_WIDTH MAIN_SCREEN_W +#define CALLER_INFO_T_PAD 50 +#define CALLER_INFO_HEIGHT 162 + +#define CALLER_INFO_MAIN_WIDTH 680 +#define CALLER_INFO_MAIN_GAP 16 + +#define CALLER_INFO_TOP_PAD_HEIGHT 10 + +#define CALLER_INFO_NAME_L_PAD 24 +#define CALLER_INFO_NAME_WIDTH 595 +#define CALLER_INFO_NAME_T_PAD 24 +#define CALLER_INFO_NAME_HEIGHT 69 + +#define CALLER_INFO_VERT_SEP_L_PAD 600 +#define CALLER_INFO_VERT_SEP_WIDTH 2 +#define CALLER_INFO_VERT_SEP_T_PAD 24 +#define CALLER_INFO_VERT_SEP_HEIGHT 70 + +#define CALLER_INFO_ICON_L_PAD 626 +#define CALLER_INFO_ICON_WIDTH 70 +#define CALLER_INFO_ICON_T_PAD CALLER_INFO_NAME_T_PAD +#define CALLER_INFO_ICON_HEIGHT 70 + +#define CALLER_INFO_NUMBER_L_PAD CALLER_INFO_NAME_L_PAD +#define CALLER_INFO_NUMBER_WIDTH (CALLER_INFO_MAIN_WIDTH-CALLER_INFO_MAIN_GAP-250) +#define CALLER_INFO_NUMBER_T_PAD (CALLER_INFO_NAME_T_PAD+CALLER_INFO_NAME_HEIGHT+CALLER_INFO_MAIN_GAP) +#define CALLER_INFO_NUMBER_HEIGHT 28 + +#define CALLER_INFO_TIME_L_PAD (CALLER_INFO_NAME_L_PAD+CALLER_INFO_NUMBER_WIDTH+CALLER_INFO_MAIN_GAP) +#define CALLER_INFO_TIME_WIDTH 250 +#define CALLER_INFO_TIME_T_PAD CALLER_INFO_NUMBER_T_PAD +#define CALLER_INFO_TIME_HEIGHT CALLER_INFO_NUMBER_HEIGHT + +#define DIALING_STATUS_L_PAD 0 +#define DIALING_STATUS_WIDTH MAIN_SCREEN_W +#define DIALING_STATUS_T_PAD 868 +#define DIALING_STATUS_HEIGHT 52 + +#define CALL_NAME_L_PAD 20 +#define CALL_NAME_WIDTH 680 +#define CALL_NAME_T_PAD 83 +#define CALL_NAME_HEIGHT 80 + +#define CALL_NUMBER_T_GAP 6 + +#define CALL_NUMBER_L_PAD CALL_NAME_L_PAD +#define CALL_NUMBER_WIDTH CALL_NAME_WIDTH +#define CALL_NUMBER_T_PAD (CALL_NAME_T_PAD+CALL_NAME_HEIGHT+CALL_NUMBER_T_GAP) +#define CALL_NUMBER_HEIGHT 52 + +#define CALLER_ID_L_PAD 208 +#define CALLER_ID_WIDTH 304 +#define CALLER_ID_T_PAD 268 +#define CALLER_ID_HEIGHT 304 + +#define ENDCALL_CALLER_ID_L_PAD 150 +#define ENDCALL_CALLER_ID_WIDTH 420 +#define ENDCALL_CALLER_ID_T_PAD 292 +#define ENDCALL_CALLER_ID_HEIGHT 420 + +#define ENDCALL_BTN_BG_L_PAD 0 +#define ENDCALL_BTN_BG_WIDTH 720 +#define ENDCALL_BTN_BG_T_PAD 1058 +#define ENDCALL_BTN_BG_HEIGHT 222 + +#define NOIMAGE_L_PAD 0 +#define NOIMAGE_WIDTH 720 +#define NOIMAGE_T_PAD 212 +#define NOIMAGE_HEIGHT 500 + +#define BACKGROUND_CID_L_PAD 0 +#define BACKGROUND_CID_WIDTH MAIN_SCREEN_W +#define BACKGROUND_CID_T_PAD 0 +#define BACKGROUND_CID_HEIGHT MAIN_SCREEN_H + +#define MT_CALLING_NAME_BG_WIDTH MAIN_SCREEN_W +#define MT_CALLING_NAME_BG_HEIGHT 590 + +#define MTLOCK_ACCEPT_OUTER_CIRCLE_BG_L_PAD (-152) +#define MTLOCK_ACCEPT_OUTER_CIRCLE_BG_WIDTH 526 +#define MTLOCK_ACCEPT_OUTER_CIRCLE_BG_T_PAD 775 +#define MTLOCK_ACCEPT_OUTER_CIRCLE_BG_HEIGHT 526 + +#define MTLOCK_ACCEPT_INNER_CIRCLE_BG_L_PAD 14 +#define MTLOCK_ACCEPT_INNER_CIRCLE_BG_WIDTH 194 +#define MTLOCK_ACCEPT_INNER_CIRCLE_BG_T_PAD 941 +#define MTLOCK_ACCEPT_INNER_CIRCLE_BG_HEIGHT 194 + +#define MTLOCK_ACCEPT_ICON_L_PAD 60 +#define MTLOCK_ACCEPT_ICON_WIDTH 102 +#define MTLOCK_ACCEPT_ICON_T_PAD 987 +#define MTLOCK_ACCEPT_ICON_HEIGHT 102 + +#define MTLOCK_ACCEPT_ARROW1_L_PAD 228 +#define MTLOCK_ACCEPT_ARROW1_WIDTH 20 +#define MTLOCK_ACCEPT_ARROW1_T_PAD 1022 +#define MTLOCK_ACCEPT_ARROW1_HEIGHT 32 + +#define MTLOCK_ACCEPT_ARROW2_L_PAD 276 +#define MTLOCK_ACCEPT_ARROW2_WIDTH MTLOCK_ACCEPT_ARROW1_WIDTH +#define MTLOCK_ACCEPT_ARROW2_T_PAD MTLOCK_ACCEPT_ARROW1_T_PAD +#define MTLOCK_ACCEPT_ARROW2_HEIGHT MTLOCK_ACCEPT_ARROW1_HEIGHT + +#define MTLOCK_ACCEPT_ARROW3_L_PAD 324 +#define MTLOCK_ACCEPT_ARROW3_WIDTH MTLOCK_ACCEPT_ARROW1_WIDTH +#define MTLOCK_ACCEPT_ARROW3_T_PAD MTLOCK_ACCEPT_ARROW1_T_PAD +#define MTLOCK_ACCEPT_ARROW3_HEIGHT MTLOCK_ACCEPT_ARROW1_HEIGHT + +#define MTLOCK_REJECT_OUTER_CIRCLE_BG_L_PAD 346 +#define MTLOCK_REJECT_OUTER_CIRCLE_BG_WIDTH MTLOCK_ACCEPT_OUTER_CIRCLE_BG_WIDTH +#define MTLOCK_REJECT_OUTER_CIRCLE_BG_T_PAD MTLOCK_ACCEPT_OUTER_CIRCLE_BG_T_PAD +#define MTLOCK_REJECT_OUTER_CIRCLE_BG_HEIGHT MTLOCK_ACCEPT_OUTER_CIRCLE_BG_HEIGHT + +#define MTLOCK_REJECT_INNER_CIRCLE_BG_L_PAD 512 +#define MTLOCK_REJECT_INNER_CIRCLE_BG_WIDTH MTLOCK_ACCEPT_INNER_CIRCLE_BG_WIDTH +#define MTLOCK_REJECT_INNER_CIRCLE_BG_T_PAD MTLOCK_ACCEPT_INNER_CIRCLE_BG_T_PAD +#define MTLOCK_REJECT_INNER_CIRCLE_BG_HEIGHT MTLOCK_ACCEPT_INNER_CIRCLE_BG_HEIGHT + +#define MTLOCK_REJECT_ICON_R_PAD 60 +#define MTLOCK_REJECT_ICON_WIDTH MTLOCK_ACCEPT_ICON_WIDTH +#define MTLOCK_REJECT_ICON_L_PAD (MAIN_SCREEN_W-MTLOCK_REJECT_ICON_R_PAD-MTLOCK_REJECT_ICON_WIDTH) +#define MTLOCK_REJECT_ICON_T_PAD MTLOCK_ACCEPT_ICON_T_PAD +#define MTLOCK_REJECT_ICON_HEIGHT MTLOCK_ACCEPT_ICON_HEIGHT + +#define MTLOCK_REJECT_ARROW1_L_PAD 376 +#define MTLOCK_REJECT_ARROW1_WIDTH 20 +#define MTLOCK_REJECT_ARROW1_T_PAD MTLOCK_ACCEPT_ARROW1_T_PAD +#define MTLOCK_REJECT_ARROW1_HEIGHT MTLOCK_ACCEPT_ARROW1_HEIGHT + +#define MTLOCK_REJECT_ARROW2_L_PAD 424 +#define MTLOCK_REJECT_ARROW2_WIDTH MTLOCK_REJECT_ARROW1_WIDTH +#define MTLOCK_REJECT_ARROW2_T_PAD MTLOCK_REJECT_ARROW1_T_PAD +#define MTLOCK_REJECT_ARROW2_HEIGHT MTLOCK_REJECT_ARROW1_HEIGHT + +#define MTLOCK_REJECT_ARROW3_L_PAD 472 +#define MTLOCK_REJECT_ARROW3_WIDTH MTLOCK_REJECT_ARROW1_WIDTH +#define MTLOCK_REJECT_ARROW3_T_PAD MTLOCK_REJECT_ARROW1_T_PAD +#define MTLOCK_REJECT_ARROW3_HEIGHT MTLOCK_REJECT_ARROW1_HEIGHT + +#define MTLOCK_REJECT_MSG_BG_L_PAD 0 +#define MTLOCK_REJECT_MSG_BG_WIDTH MAIN_SCREEN_W +#define MTLOCK_REJECT_MSG_BG_HEIGHT 92 +#define MTLOCK_REJECT_MSG_BG_T_PAD (MAIN_SCREEN_H-MTLOCK_REJECT_MSG_BG_HEIGHT) + +#define MTLOCK_REJECT_MSG_ARW_L_PAD 351 +#define MTLOCK_REJECT_MSG_ARW_WIDTH 18 +#define MTLOCK_REJECT_MSG_ARW_T_PAD (MTLOCK_REJECT_MSG_BG_T_PAD+12) +#define MTLOCK_REJECT_MSG_ARW_HEIGHT 12 + +#define MTLOCK_REJECT_MSG_TEXT_L_PAD 0 +#define MTLOCK_REJECT_MSG_TEXT_WIDTH MAIN_SCREEN_W +#define MTLOCK_REJECT_MSG_TEXT_T_PAD (MTLOCK_REJECT_MSG_BG_T_PAD+24) +#define MTLOCK_REJECT_MSG_TEXT_HEIGHT 68 + +#define MTLOCK_REJECT_MSG_ICON_WIDTH 50 +#define MTLOCK_REJECT_MSG_ICON_HEIGHT 50 + +#define MTLOCK_REJECT_MSG_PAD 20 + +#define MTLOCK_REJECT_MSG_LIST_L_PAD 0 +#define MTLOCK_REJECT_MSG_LIST_WIDTH MAIN_SCREEN_W +#define MTLOCK_REJECT_MSG_LIST_T_PAD MAIN_SCREEN_H +#define MTLOCK_REJECT_MSG_ONE_LINE_LIST_HEIGHT 118 +#define MTLOCK_REJECT_MSG_TWO_LINE_LIST_HEIGHT 230 +#define MTLOCK_REJECT_MSG_THREE_LINE_LIST_HEIGHT 342 +#define MTLOCK_REJECT_MSG_FOUR_LINE_LIST_HEIGHT 454 +#define MTLOCK_REJECT_MSG_FIVE_LINE_LIST_HEIGHT 566 +#define MTLOCK_REJECT_MSG_SIX_LINE_LIST_HEIGHT 678 + +#define MTLOCK_REJECT_MSG_TOOLBAR_HEIGHT 114 + +#define SNS_ALERTS_LAYOUT_L_PAD 0 +#define SNS_ALERTS_LAYOUT_WIDTH MAIN_SCREEN_W +#define SNS_ALERTS_LAYOUT_T_PAD 586 +#define SNS_ALERTS_LAYOUT_SHIFT_T_PAD 696 +#define SNS_ALERTS_LAYOUT_HEIGHT 170 + +#define SNS_ALERTS_LAYOUT_SHIFT_EXPANDED_T_PAD 494 +#define SNS_ALERTS_LAYOUT_EXPANDED_T_PAD 362 +#define SNS_ALERTS_LAYOUT_EXPANDED_HEIGHT 380 + +#define BIRTHDAY_ICON_L_PAD 20 +#define BIRTHDAY_ICON_WIDTH 55 +#define BIRTHDAY_ICON_T_PAD 0 //584 +#define BIRTHDAY_ICON_HEIGHT 55 + +/*#define BIRTHDAY_ICON_SHIFT_L_PAD 20 +#define BIRTHDAY_ICON_SHIFT_WIDTH 55 +#define BIRTHDAY_ICON_SHIFT_T_PAD 716 +#define BIRTHDAY_ICON_SHIFT_HEIGHT 55*/ + +#define BIRTHDAY_TEXT_L_PAD (BIRTHDAY_ICON_L_PAD+BIRTHDAY_ICON_WIDTH+16) +#define BIRTHDAY_TEXT_WIDTH 609 +#define BIRTHDAY_TEXT_T_PAD (BIRTHDAY_ICON_T_PAD+20) +#define BIRTHDAY_TEXT_HEIGHT 42 + +/*#define BIRTHDAY_TEXT_SHIFT_L_PAD (BIRTHDAY_ICON_SHIFT_L_PAD+BIRTHDAY_ICON_SHIFT_WIDTH+16) +#define BIRTHDAY_TEXT_SHIFT_WIDTH 609 +#define BIRTHDAY_TEXT_SHIFT_T_PAD (BIRTHDAY_ICON_SHIFT_T_PAD+20) +#define BIRTHDAY_TEXT_SHIFT_HEIGHT 42*/ + +#define SNS_STATUS_ICON_L_PAD 20 +#define SNS_STATUS_ICON_WIDTH 55 +#define SNS_STATUS_ICON_T_PAD (BIRTHDAY_ICON_T_PAD+BIRTHDAY_ICON_HEIGHT+22) +#define SNS_STATUS_ICON_HEIGHT 55 + +#define SNS_STATUS_TEXT_L_PAD BIRTHDAY_TEXT_L_PAD +#define SNS_STATUS_TEXT_WIDTH BIRTHDAY_TEXT_WIDTH +#define SNS_STATUS_TEXT_T_PAD (BIRTHDAY_TEXT_T_PAD+BIRTHDAY_TEXT_HEIGHT+24) +#define SNS_STATUS_TEXT_HEIGHT (42*2) + +#define SNS_STATUS_ARROW_WIDTH 52 +#define SNS_STATUS_ARROW_L_PAD (MAIN_SCREEN_W-20-SNS_STATUS_ARROW_WIDTH) +#define SNS_STATUS_ARROW_T_PAD (BIRTHDAY_TEXT_T_PAD+BIRTHDAY_TEXT_HEIGHT+38) +#define SNS_STATUS_ARROW_HEIGHT 52 + +#define SNS_STATUS_EXPANDED_TEXT_WIDTH (BIRTHDAY_TEXT_WIDTH-SNS_STATUS_ARROW_WIDTH-16) +#define SNS_STATUS_EXPANDED_TEXT_HEIGHT (42*7) + +#define ACCEPT_BTN_L_PAD 40 +#define ACCEPT_BTN_WIDTH 300 +#define ACCEPT_BTN_T_PAD 992 +#define ACCEPT_BTN_HEIGHT 112 + +#define REJECT_BTN_L_GAP 40 + +#define REJECT_BTN_L_PAD (ACCEPT_BTN_L_PAD+ACCEPT_BTN_WIDTH+REJECT_BTN_L_GAP) +#define REJECT_BTN_WIDTH ACCEPT_BTN_WIDTH +#define REJECT_BTN_T_PAD ACCEPT_BTN_T_PAD +#define REJECT_BTN_HEIGHT ACCEPT_BTN_HEIGHT + +#define REJECT_W_MSG_BTN_T_GAP 40 + +#define REJECT_W_MSG_BTN_L_PAD ACCEPT_BTN_L_PAD +#define REJECT_W_MSG_BTN_WIDTH 640 +#define REJECT_W_MSG_BTN_T_PAD (ACCEPT_BTN_T_PAD+ACCEPT_BTN_HEIGHT+REJECT_W_MSG_BTN_T_GAP) +#define REJECT_W_MSG_BTN_HEIGHT 90 + +#define INCALL_EXTRA_VOL_BTN_L_PAD 636 +#define INCALL_EXTRA_VOL_BTN_WIDTH 64 +#define INCALL_EXTRA_VOL_BTN_T_PAD 236 +#define INCALL_EXTRA_VOL_BTN_HEIGHT 64 + +#define INCALL_HOLD_BTN_L_PAD 475 +#define INCALL_HOLD_BTN_WIDTH 78 +#define INCALL_HOLD_BTN_T_PAD 852 +#define INCALL_HOLD_BTN_HEIGHT 78 + +#define INCALL_HOLD_TXT_L_PAD 573 +#define INCALL_HOLD_TXT_WIDTH 147 +#define INCALL_HOLD_TXT_T_PAD 852 +#define INCALL_HOLD_TXT_HEIGHT 78 + +#define INCALL_TIMER_L_PAD 40 +#define INCALL_TIMER_WIDTH 640 +#define INCALL_TIMER_T_PAD 687 +#define INCALL_TIMER_HEIGHT 52 + +#define INCALL_NOISE_ICN_L_PAD 18 +#define INCALL_NOISE_ICN_WIDTH 58 +#define INCALL_NOISE_ICN_T_PAD 852 +#define INCALL_NOISE_ICN_HEIGHT 58 + +#define INCALL_SOUND_EQ_ICN_L_PAD 72 +#define INCALL_SOUND_EQ_ICN_WIDTH 58 +#define INCALL_SOUND_EQ_ICN_T_PAD INCALL_NOISE_ICN_T_PAD +#define INCALL_SOUND_EQ_ICN_HEIGHT 58 + +#define INCALL_SHARE_BG_T_PAD 584 +#define INCALL_SHARE_BG_HEIGHT 654 + +#define KEYPAD_ENTRY_TXT_L_PAD 40 +#define KEYPAD_ENTRY_TXT_WIDTH 640 +#define KEYPAD_ENTRY_TXT_T_PAD 0 +#define KEYPAD_ENTRY_TXT_HEIGHT 100 + +#define KEYPAD_AREA_L_PAD 0 +#define KEYPAD_AREA_WIDTH MAIN_SCREEN_W +#define KEYPAD_AREA_T_PAD 252 +#define KEYPAD_AREA_HEIGHT 662 + +#define KEYPAD_BTNS_BG_L_PAD 40 +#define KEYPAD_BTNS_BG_WIDTH 640 +#define KEYPAD_BTNS_BG_T_PAD 112 +#define KEYPAD_BTNS_BG_HEIGHT 550 + +#define KEYPAD_EACH_BTN_WIDTH 212 +#define KEYPAD_EACH_BTN_HEIGHT 134 + +#define KEYPAD_COL1_BTN_L_PAD 40 +#define KEYPAD_COL2_BTN_L_PAD 254 +#define KEYPAD_COL3_BTN_L_PAD 468 + +#define KEYPAD_BTN_TXT_REGION_HEIGHT 112 + +#define KEYPAD_ROW1_BTN_T_PAD 116 /*w.r.t button region layout*/ +#define KEYPAD_ROW2_BTN_T_PAD 252 +#define KEYPAD_ROW3_BTN_T_PAD 388 +#define KEYPAD_ROW4_BTN_T_PAD 524 + +#define KP_LVERT_SEP1_L_PAD 212 +#define KP_RVERT_SEP1_L_PAD 426 +#define KP_ROW1_VERT_SEP_T_PAD 17 +#define KP_ROW2_VERT_SEP_T_PAD 153 +#define KP_ROW3_VERT_SEP_T_PAD 289 +#define KP_ROW4_VERT_SEP_T_PAD 425 + +#define KP_HORIZ_SEP_L_PAD 14 +#define KP_ROW1_HORIZ_SEP_T_PAD 138 +#define KP_ROW2_HORIZ_SEP_T_PAD 274 +#define KP_ROW3_HORIZ_SEP_T_PAD 410 + +#define KEYPAD_VERT_SEP_WIDTH 1 +#define KEYPAD_VERT_SEP_HEIGHT 108 +#define KEYPAD_HORIZ_SEP_WIDTH 612 +#define KEYPAD_HORIZ_SEP_HEIGHT 1 + +#define RIGHT_ICON_L_PAD 18 +#define RIGHT_ICON_WIDTH 94 +#define RIGHT_ICON_HEIGHT 36 + +#define LEFT_TXT_L_PAD 24 +#define LEFT_TXT_WIDTH 64 +#define RIGHT_TXT_TYPE1_L_PAD 18 +#define RIGHT_TXT_TYPE2_L_PAD 18 + +#define SPLIT_CID1_L_PAD 0 +#define SPLIT_CID1_WIDTH CALLER_INFO_WIDTH +#define SPLIT_CID1_T_PAD INDICATOR_HEIGHT +#define SPLIT_CID1_HEIGHT 445 + +#define SPLIT_PAUSE_L_PAD (SPLIT_CID1_L_PAD+8) +#define SPLIT_PAUSE_WIDTH 62 +#define SPLIT_PAUSE_HEIGHT 62 +#define SPLIT_PAUSE_T_PAD (SPLIT_CID1_T_PAD+SPLIT_CID1_HEIGHT-8-SPLIT_PAUSE_HEIGHT) + +#define CALLER_INFO_HOLD_T_PAD (CALLER_INFO_T_PAD+SPLIT_CID1_HEIGHT) + +#define SPLIT_CID2_L_PAD 0 +#define SPLIT_CID2_WIDTH CALLER_INFO_WIDTH +#define SPLIT_CID2_T_PAD CALLER_INFO_HOLD_T_PAD +#define SPLIT_CID2_HEIGHT 445 + +#define SPLIT_PLAY_L_PAD (SPLIT_CID2_L_PAD+12) +#define SPLIT_PLAY_WIDTH 40 +#define SPLIT_PLAY_HEIGHT 40 +#define SPLIT_PLAY_T_PAD (SPLIT_CID2_T_PAD+SPLIT_CID2_HEIGHT-8-SPLIT_PLAY_HEIGHT) + +#define SPLIT_NAME1_L_PAD 38 +#define SPLIT_NAME1_WIDTH 364 +#define SPLIT_NAME1_T_PAD 145 +#define SPLIT_NAME1_HEIGHT 58 + +#define SPLIT_NAME2_L_PAD (SPLIT_NAME1_L_PAD+SPLIT_NAME1_WIDTH+22) +#define SPLIT_NAME2_WIDTH 258 +#define SPLIT_NAME2_T_PAD 217 +#define SPLIT_NAME2_HEIGHT 40 + +#define SPLIT_EXTRA_VOL_T_PAD 650 + +#define SPLIT_TIMER_TXT_T_PAD 549 +#define SPLIT_TIMER_TXT_HEIGHT 46 + +#define SPLIT_MORE_BTN_WIDTH 40 +#define SPLIT_MORE_BTN_L_PAD (SPLIT_CID2_L_PAD+SPLIT_CID2_WIDTH-SPLIT_MORE_BTN_WIDTH) +#define SPLIT_ONHOLD_TXT_W_ICON_WIDTH (SPLIT_CID2_WIDTH-SPLIT_MORE_BTN_WIDTH) +#define SPLIT_ONHOLD_TXT_T_PAD 492 +#define SPLIT_ONHOLD_TXT_HEIGHT 40 + +#define SPLIT_SWAP_CID1_L_PAD 70 +#define SPLIT_SWAP_CID1_WIDTH 208 + +#define SPLIT_SWAP_PLAY_L_PAD (SPLIT_SWAP_CID1_L_PAD+12) +#define SPLIT_SWAP_PLAY_WIDTH 40 + +#define SPLIT_SWAP_CID2_L_PAD 336 +#define SPLIT_SWAP_CID2_WIDTH 304 + +#define SPLIT_SWAP_PAUSE_L_PAD (SPLIT_SWAP_CID2_L_PAD+8) +#define SPLIT_SWAP_PAUSE_WIDTH 62 + +#define SPLIT_SWAP_NAME1_L_PAD 38 +#define SPLIT_SWAP_NAME1_WIDTH 258 + +#define SPLIT_SWAP_NAME2_L_PAD (SPLIT_SWAP_NAME1_L_PAD+SPLIT_SWAP_NAME1_WIDTH+22) +#define SPLIT_SWAP_NAME2_WIDTH 364 + +#define SPLIT_SWAP_MORE_BTN_WIDTH 60 +#define SPLIT_SWAP_MORE_BTN_L_PAD (SPLIT_SWAP_CID2_L_PAD+SPLIT_SWAP_CID2_WIDTH-SPLIT_SWAP_MORE_BTN_WIDTH) +#define SPLIT_SWAP_MORE_BTN_T_PAD (SPLIT_TIMER_TXT_T_PAD-7) +#define SPLIT_SWAP_MORE_BTN_HEIGHT 60 +#define SPLIT_TIMER_TXT_W_ICON_WIDTH (SPLIT_SWAP_CID2_WIDTH-SPLIT_SWAP_MORE_BTN_WIDTH) + +#define MULTI_LIST_HEIGHT 1008 + +#define CONF_LIST_T_PAD 0 +#define CONF_LIST_HEIGHT 565 + +#define CONF_HOLD_WIDTH 82 +#define CONF_HOLD_L_PAD (MAIN_SCREEN_W-40-CONF_HOLD_WIDTH) +#define CONF_HOLD_T_PAD 674 +#define CONF_HOLD_HEIGHT 78 + +#define CONF_TIMER_T_PAD 674 +#define CONF_TIMER_HEIGHT 78 + +#define CONF_CALL_BIG_END_L_PAD 16 +#define CONF_CALL_BIG_END_T_PAD 870 +#define CONF_CALL_BIG_END_WIDTH 688 + +#define REJ_MSG_NEW_BTN_L_PAD 40 +#define REJ_MSG_NEW_BTN_WIDTH 640 +#define REJ_MSG_NEW_BTN_T_PAD 120 +#define REJ_MSG_NEW_BTN_HEIGHT 128 + +#define REJ_MSG_LIST_T_PAD 32 +#define REJ_MSG_LIST_HEIGHT 1096 + +#define SIX_BTN_LAYOUT_L_PAD 0 +#define SIX_BTN_LAYOUT_WIDTH 720 +#define SIX_BTN_LAYOUT_T_PAD 940 +#define SIX_BTN_LAYOUT_HEIGHT 340 + +#define THREE_BTN_LAYOUT_WIDTH MAIN_SCREEN_W +#define THREE_BTN_LAYOUT_HEIGHT 222 + +#define BTN_LAYOUT_SINGLE_BTN_WIDTH 216 +#define BTN_LAYOUT_SINGLE_BTN_HEIGHT 168 +#define BTN_LAYOUT_BTN_GAP 2 + +#define BTN_LAYOUT_LEFT_BTN_L_PAD 34 +#define BTN_LAYOUT_MIDDLE_BTN_L_PAD (BTN_LAYOUT_LEFT_BTN_L_PAD+BTN_LAYOUT_SINGLE_BTN_WIDTH+BTN_LAYOUT_BTN_GAP) +#define BTN_LAYOUT_RIGHT_BTN_L_PAD (BTN_LAYOUT_MIDDLE_BTN_L_PAD+BTN_LAYOUT_SINGLE_BTN_WIDTH+BTN_LAYOUT_BTN_GAP) + +#define BTN_LAYOUT_TOP_BTN_T_PAD 0 +#define BTN_LAYOUT_BOTTOM_BTN_T_PAD (BTN_LAYOUT_TOP_BTN_T_PAD+BTN_LAYOUT_SINGLE_BTN_HEIGHT+BTN_LAYOUT_BTN_GAP) + +#define LEFT_VERT_SEP_L_PAD 250 +#define RIGHT_VERT_SEP_L_PAD 468 +#define TOP_VERT_SEP_T_PAD 22 +#define BOTTOM_VERT_SEP_T_PAD 192 +#define HORIZ_SEP_L_PAD 34 +#define TOP_HORIZ_SEP_T_PAD 168 +#define BOTTOM_HORIZ_SEP_T_PAD 338 +#define SEPARTOR_WIDTH 1 +#define VERT_SEP_HEIGHT 124 +#define HORIZ_SEP_WIDTH 652 + +#define ENDCALL_LEFT_VERT_SEP_L_PAD 250 +#define ENDCALL_SEPARTOR_WIDTH 1 +#define ENDCALL_VERT_SEP_T_PAD 49 +#define ENDCALL_VERT_SEP_HEIGHT 124 +#define ENDCALL_RIGHT_VERT_SEP_L_PAD 468 + +#define CALL_BIG_END_L_PAD 40 +#define CALL_BIG_END_WIDTH 640 +#define CALL_BIG_END_T_PAD 1140 +#define CALL_BIG_END_HEIGHT 112 + +#define INCMG_CALL_BTN1_T_PAD 700 +#define INCMG_CALL_BTN_HEIGHT CALL_BIG_END_HEIGHT +#define INCMG_CALL_BTN2_T_PAD 838 +#define INCMG_CALL_BTN3_T_PAD 976 + +#define ENDCALL_VOICE_BTN_L_PAD 34 +#define ENDCALL_VOICE_BTN_WIDTH 216 +#define ENDCALL_VOICE_BTN_T_PAD 1058 +#define ENDCALL_VOICE_BTN_HEIGHT 222 +#define ENDCALL_VIDEO_BTN_L_PAD (ENDCALL_VOICE_BTN_L_PAD+ENDCALL_VOICE_BTN_WIDTH+2) +#define ENDCALL_MSG_BTN_L_PAD (ENDCALL_VIDEO_BTN_L_PAD+ENDCALL_VOICE_BTN_WIDTH+2) + +#define ENDCALL_CONTACT_BTN_L_PAD 40 +#define ENDCALL_CONTACT_BTN_WIDTH 640 +#define ENDCALL_CONTACT_BTN_T_PAD 896 +#define ENDCALL_CONTACT_BTN_HEIGHT 92 + +#define QP_CID_L_PAD 16 +#define QP_CID_WIDTH 105 +#define QP_CID_T_PAD 33 +#define QP_CID_HEIGHT 105 + +#define QP_MUTE_BTN_L_PAD 172 +#define QP_MUTE_BTN_WIDTH 256 +#define QP_MUTE_BTN_T_PAD 78 +#define QP_MUTE_BTN_HEIGHT 74 + +#define QP_END_BTN_L_PAD 448 +#define QP_END_BTN_WIDTH QP_MUTE_BTN_WIDTH +#define QP_END_BTN_T_PAD QP_MUTE_BTN_T_PAD +#define QP_END_BTN_HEIGHT QP_MUTE_BTN_HEIGHT + +#define QP_NAME_L_PAD QP_MUTE_BTN_L_PAD +#define QP_NAME_WIDTH 532 +#define QP_NAME_T_PAD 22 +#define QP_NAME_HEIGHT 36 + +#define QP_STR_MIN_WIDTH 50 +/* + * End of NBEAT-HD GUI Widget Dimensions + */ + + +/* + * Relative positions + * In Portrait mode + */ +/* Relative X & Y positions of widgets w.r.t. Full Screen */ +#define REL_W(x) ((x)/MAIN_SCREEN_W) +#define REL_H(y) ((y)/MAIN_SCREEN_H) + +/* Relative X & Y positions of widgets w.r.t. Navi-frame layout */ +/*#define WL_NB_H 94*/ +#define REL_NAVIFRAME_W(x) ((x)/MAIN_NAVIFRAME_W) +#define REL_NAVIFRAME_H(y) ((y)/MAIN_NAVIFRAME_H) + +/* Relative X & Y positions of widgets w.r.t. ACC/REJ ICON layout */ +#define REL_LOCK_W(x) ((x)/483) +#define REL_LOCK_H(y) ((y)/198) +/* Relative X & Y positions of widgets w.r.t. REJ-W-MSG ICON layout */ +#define REL_LOCK_MSG_W(x) ((x)/348) +#define REL_LOCK_MSG_H(y) ((y)/200) + +/* Relative X & Y positions of widgets w.r.t. Keypad layout */ +#define REL_KEYPAD_W(x) ((x)/KEYPAD_AREA_WIDTH) +#define REL_KEYPAD_H(y) ((y)/KEYPAD_AREA_HEIGHT) + +/* Relative X & Y positions of widgets w.r.t. Keypad Buttons layout */ +#define REL_KEYPAD_BTNS_W(x) ((x)/KEYPAD_BTNS_BG_WIDTH) +#define REL_KEYPAD_BTNS_H(y) ((y)/KEYPAD_BTNS_BG_HEIGHT) + +/* Relative X & Y positions of widgets w.r.t. Quick-panel layout */ +#define REL_QP_W(x) ((x)/QP_WIN_W) +#define REL_QP_H(y) ((y)/QP_WIN_H) + +/* Relative X & Y positions of buttons w.r.t. Six-Button layout */ +#define REL_BTN_LY_W(x) ((x)/SIX_BTN_LAYOUT_WIDTH) +#define REL_BTN_LY_H(y) ((y)/SIX_BTN_LAYOUT_HEIGHT) + +/* Relative X & Y positions of buttons w.r.t. Three-Button layout of ENDCALL*/ +#define REL_THREE_BTN_LY_W(x) ((x)/THREE_BTN_LAYOUT_WIDTH) +#define REL_THREE_BTN_LY_H(y) ((y)/THREE_BTN_LAYOUT_HEIGHT) + +/* Relative X position of elements w.r.t. Keypad-Button layout */ +#define REL_KEYPAD_BTN_W(x) ((x)/KEYPAD_EACH_BTN_WIDTH) + +/*Relative Y postions of elements w.r.t. Caller info layout*/ +#define REL_CALLER_INFO_H(y) ((y)/CALLER_INFO_HEIGHT) + +/*Relative Y postions of elements w.r.t. Multi list layout*/ +#define REL_MULTI_LIST_H(y) ((y)/MULTI_LIST_HEIGHT) + +/*Relative X and Y positions of elements w.r.t. SNS-Alerts layout*/ +#define REL_ALERTS_LY_W(x) ((x)/SNS_ALERTS_LAYOUT_WIDTH) +#define REL_ALERTS_LY_H(y) ((y)/SNS_ALERTS_LAYOUT_HEIGHT) +#define REL_ALERTS_EXP_LY_H(y) ((y)/SNS_ALERTS_LAYOUT_EXPANDED_HEIGHT) +/* + * End of Relative positions + */ + + +/* + * MO/Dialing view & MT/Incoming view + * In Portrait mode + */ + +#define DIALLING_CID_L REL_W(CALLER_ID_L_PAD) +#define DIALLING_CID_R REL_W(CALLER_ID_L_PAD+CALLER_ID_WIDTH) +#define DIALLING_CID_T REL_H(CALLER_ID_T_PAD) +#define DIALLING_CID_B REL_H(CALLER_ID_T_PAD+CALLER_ID_HEIGHT) + +#define DIALLING_CID_NOIMAGE_L REL_W(NOIMAGE_L_PAD) +#define DIALLING_CID_NOIMAGE_R REL_W(NOIMAGE_L_PAD+NOIMAGE_WIDTH) +#define DIALLING_CID_NOIMAGE_T REL_H(NOIMAGE_T_PAD) +#define DIALLING_CID_NOIMAGE_B REL_H(NOIMAGE_T_PAD+NOIMAGE_HEIGHT) + +#define DIALLING_BACKGROUND_CID_L REL_W(BACKGROUND_CID_L_PAD) +#define DIALLING_BACKGROUND_CID_R REL_W(BACKGROUND_CID_L_PAD+BACKGROUND_CID_WIDTH) +#define DIALLING_BACKGROUND_CID_T REL_H(BACKGROUND_CID_T_PAD) +#define DIALLING_BACKGROUND_CID_B REL_H(BACKGROUND_CID_T_PAD+BACKGROUND_CID_HEIGHT) + +#define MT_CALLING_BG_L REL_W(0) +#define MT_CALLING_BG_R REL_W(0+MT_CALLING_NAME_BG_WIDTH) +#define MT_CALLING_BG_T REL_H(0) +#define MT_CALLING_BG_B REL_H(0+MT_CALLING_NAME_BG_HEIGHT) + +/* accept - MT view */ +#define DIALLING_MT_BTN1_L REL_W(ACCEPT_BTN_L_PAD) +#define DIALLING_MT_BTN1_R REL_W(ACCEPT_BTN_L_PAD+ACCEPT_BTN_WIDTH) +#define DIALLING_MT_BTN1_T REL_H(ACCEPT_BTN_T_PAD) +#define DIALLING_MT_BTN1_B REL_H(ACCEPT_BTN_T_PAD+ACCEPT_BTN_HEIGHT) + +/* reject - MT view */ +#define DIALLING_MT_BTN2_L REL_W(REJECT_BTN_L_PAD) +#define DIALLING_MT_BTN2_R REL_W(REJECT_BTN_L_PAD+REJECT_BTN_WIDTH) +#define DIALLING_MT_BTN2_T REL_H(REJECT_BTN_T_PAD) +#define DIALLING_MT_BTN2_B REL_H(REJECT_BTN_T_PAD+REJECT_BTN_HEIGHT) + +/* reject with msg - MT view */ +#define DIALLING_MT_BTN3_L REL_W(REJECT_W_MSG_BTN_L_PAD) +#define DIALLING_MT_BTN3_R REL_W(REJECT_W_MSG_BTN_L_PAD+REJECT_W_MSG_BTN_WIDTH) +#define DIALLING_MT_BTN3_T REL_H(REJECT_W_MSG_BTN_T_PAD) +#define DIALLING_MT_BTN3_B REL_H(REJECT_W_MSG_BTN_T_PAD+REJECT_W_MSG_BTN_HEIGHT) + +#define DIALLING_MT_SNS_ALERTS_LAYOUT_L REL_W(SNS_ALERTS_LAYOUT_L_PAD) +#define DIALLING_MT_SNS_ALERTS_LAYOUT_R REL_W(SNS_ALERTS_LAYOUT_L_PAD+SNS_ALERTS_LAYOUT_WIDTH) +#define DIALLING_MT_SNS_ALERTS_LAYOUT_T REL_H(SNS_ALERTS_LAYOUT_T_PAD) +#define DIALLING_MT_SNS_ALERTS_LAYOUT_B REL_H(SNS_ALERTS_LAYOUT_T_PAD+SNS_ALERTS_LAYOUT_HEIGHT) + +#define DIALLING_MT_SNS_ALERTS_LAYOUT_EXPANDED_T REL_H(SNS_ALERTS_LAYOUT_EXPANDED_T_PAD) +#define DIALLING_MT_SNS_ALERTS_LAYOUT_EXPANDED_B REL_H(SNS_ALERTS_LAYOUT_EXPANDED_T_PAD+SNS_ALERTS_LAYOUT_EXPANDED_HEIGHT) + +#define DIALLING_MT_SNS_ALERTS_LAYOUT_SHIFT_T REL_H(SNS_ALERTS_LAYOUT_SHIFT_T_PAD) +#define DIALLING_MT_SNS_ALERTS_LAYOUT_SHIFT_B REL_H(SNS_ALERTS_LAYOUT_SHIFT_T_PAD+SNS_ALERTS_LAYOUT_HEIGHT) + +#define DIALLING_MT_SNS_ALERTS_LAYOUT_SHIFT_EXPANDED_T REL_H(SNS_ALERTS_LAYOUT_SHIFT_EXPANDED_T_PAD) +#define DIALLING_MT_SNS_ALERTS_LAYOUT_SHIFT_EXPANDED_B REL_H(SNS_ALERTS_LAYOUT_SHIFT_EXPANDED_T_PAD+SNS_ALERTS_LAYOUT_EXPANDED_HEIGHT) +/* +#define DIALLING_MT_BDAY_ICON_L REL_W(BIRTHDAY_ICON_L_PAD) +#define DIALLING_MT_BDAY_ICON_R REL_W(BIRTHDAY_ICON_L_PAD+BIRTHDAY_ICON_WIDTH) +#define DIALLING_MT_BDAY_ICON_T REL_H(BIRTHDAY_ICON_T_PAD) +#define DIALLING_MT_BDAY_ICON_B REL_H(BIRTHDAY_ICON_T_PAD+BIRTHDAY_ICON_HEIGHT) + +#define DIALLING_MT_BDAY_ICON_SHIFT_L REL_W(BIRTHDAY_ICON_SHIFT_L_PAD) +#define DIALLING_MT_BDAY_ICON_SHIFT_R REL_W(BIRTHDAY_ICON_SHIFT_L_PAD+BIRTHDAY_ICON_SHIFT_WIDTH) +#define DIALLING_MT_BDAY_ICON_SHIFT_T REL_H(BIRTHDAY_ICON_SHIFT_T_PAD) +#define DIALLING_MT_BDAY_ICON_SHIFT_B REL_H(BIRTHDAY_ICON_SHIFT_T_PAD+BIRTHDAY_ICON_SHIFT_HEIGHT) + +#define DIALLING_MT_BDAY_TEXT_L REL_W(BIRTHDAY_TEXT_L_PAD) +#define DIALLING_MT_BDAY_TEXT_R REL_W(BIRTHDAY_TEXT_L_PAD+BIRTHDAY_TEXT_WIDTH) +#define DIALLING_MT_BDAY_TEXT_T REL_H(BIRTHDAY_TEXT_T_PAD) +#define DIALLING_MT_BDAY_TEXT_B REL_H(BIRTHDAY_TEXT_T_PAD+BIRTHDAY_TEXT_HEIGHT) + +#define DIALLING_MT_BDAY_TEXT_SHIFT_L REL_W(BIRTHDAY_TEXT_SHIFT_L_PAD) +#define DIALLING_MT_BDAY_TEXT_SHIFT_R REL_W(BIRTHDAY_TEXT_SHIFT_L_PAD+BIRTHDAY_TEXT_SHIFT_WIDTH) +#define DIALLING_MT_BDAY_TEXT_SHIFT_T REL_H(BIRTHDAY_TEXT_SHIFT_T_PAD) +#define DIALLING_MT_BDAY_TEXT_SHIFT_B REL_H(BIRTHDAY_TEXT_SHIFT_T_PAD+BIRTHDAY_TEXT_SHIFT_HEIGHT) +*/ +/* + * End of MO/Dialing view & MT/Incoming view + */ + +/* + * Endcall view + * In Portrait mode + */ +#define ENDCALL_DIALLING_CID_L REL_W(ENDCALL_CALLER_ID_L_PAD) +#define ENDCALL_DIALLING_CID_R REL_W(ENDCALL_CALLER_ID_L_PAD+ENDCALL_CALLER_ID_WIDTH) +#define ENDCALL_DIALLING_CID_T REL_H(ENDCALL_CALLER_ID_T_PAD) +#define ENDCALL_DIALLING_CID_B REL_H(ENDCALL_CALLER_ID_T_PAD+ENDCALL_CALLER_ID_HEIGHT) + +#define ENDCALL_DIALLING_BTN_BG_L REL_W(ENDCALL_BTN_BG_L_PAD) +#define ENDCALL_DIALLING_BTN_BG_R REL_W(ENDCALL_BTN_BG_L_PAD+ENDCALL_BTN_BG_WIDTH) +#define ENDCALL_DIALLING_BTN_BG_T REL_H(ENDCALL_BTN_BG_T_PAD) +#define ENDCALL_DIALLING_BTN_BG_B REL_H(ENDCALL_BTN_BG_T_PAD+ENDCALL_BTN_BG_HEIGHT) + +/* + * End of Endcall view + */ + +/* + * MT LOCK View - check + * In Portrait mode + */ +#define INCOMING_LOCK_ACCEPT_BG_L REL_W(-273) +#define INCOMING_LOCK_ACCEPT_BG_R REL_W(210) +#define INCOMING_LOCK_ACCEPT_BG_T REL_H(945) +#define INCOMING_LOCK_ACCEPT_BG_B REL_H(1144) + +#define INCOMING_LOCK_ACCEPT_ICON_L REL_LOCK_W(303) +#define INCOMING_LOCK_ACCEPT_ICON_R REL_LOCK_W(408) +#define INCOMING_LOCK_ACCEPT_ICON_T REL_LOCK_H(37) +#define INCOMING_LOCK_ACCEPT_ICON_B REL_LOCK_H(149) + +#define INCOMING_LOCK_ACCEPT_TEXT_L REL_LOCK_W(45) +#define INCOMING_LOCK_ACCEPT_TEXT_R REL_LOCK_W(273) +#define INCOMING_LOCK_ACCEPT_TEXT_T INCOMING_LOCK_ACCEPT_ICON_T +#define INCOMING_LOCK_ACCEPT_TEXT_B INCOMING_LOCK_ACCEPT_ICON_B + +#define INCOMING_LOCK_REJECT_BG_L REL_W(510) +#define INCOMING_LOCK_REJECT_BG_R REL_W(993) +#define INCOMING_LOCK_REJECT_BG_T INCOMING_LOCK_ACCEPT_BG_T +#define INCOMING_LOCK_REJECT_BG_B INCOMING_LOCK_ACCEPT_BG_B + +#define INCOMING_LOCK_REJECT_ICON_L REL_LOCK_W(75) +#define INCOMING_LOCK_REJECT_ICON_R REL_LOCK_W(180) +#define INCOMING_LOCK_REJECT_ICON_T INCOMING_LOCK_ACCEPT_ICON_T +#define INCOMING_LOCK_REJECT_ICON_B INCOMING_LOCK_ACCEPT_ICON_B + +#define INCOMING_LOCK_REJECT_TEXT_L REL_LOCK_W(195) +#define INCOMING_LOCK_REJECT_TEXT_R REL_LOCK_W(423) +#define INCOMING_LOCK_REJECT_TEXT_T INCOMING_LOCK_REJECT_ICON_T +#define INCOMING_LOCK_REJECT_TEXT_B INCOMING_LOCK_REJECT_ICON_B + +#define INCOMING_LOCK_REJECT_WITH_MSG_BG_L REL_W(186) +#define INCOMING_LOCK_REJECT_WITH_MSG_BG_R REL_W(534) +#define INCOMING_LOCK_REJECT_WITH_MSG_BG_T REL_H(1208) +#define INCOMING_LOCK_REJECT_WITH_MSG_BG_B REL_H(1408) + +#define INCOMING_LOCK_REJECT_WITH_MSG_TEXT_L REL_LOCK_MSG_W(0) +#define INCOMING_LOCK_REJECT_WITH_MSG_TEXT_R REL_LOCK_MSG_W(348) +#define INCOMING_LOCK_REJECT_WITH_MSG_TEXT_T REL_LOCK_MSG_H(0) +#define INCOMING_LOCK_REJECT_WITH_MSG_TEXT_B REL_LOCK_MSG_H(72) + +#define MTLOCK_ACCEPT_INNER_CIRCLE_L REL_W(MTLOCK_ACCEPT_INNER_CIRCLE_BG_L_PAD) +#define MTLOCK_ACCEPT_INNER_CIRCLE_R REL_W(MTLOCK_ACCEPT_INNER_CIRCLE_BG_L_PAD+MTLOCK_ACCEPT_INNER_CIRCLE_BG_WIDTH) +#define MTLOCK_ACCEPT_INNER_CIRCLE_T REL_H(MTLOCK_ACCEPT_INNER_CIRCLE_BG_T_PAD) +#define MTLOCK_ACCEPT_INNER_CIRCLE_B REL_H(MTLOCK_ACCEPT_INNER_CIRCLE_BG_T_PAD+MTLOCK_ACCEPT_INNER_CIRCLE_BG_HEIGHT) + +#define MTLOCK_ACCEPT_ICON_L REL_W(MTLOCK_ACCEPT_ICON_L_PAD) +#define MTLOCK_ACCEPT_ICON_R REL_W(MTLOCK_ACCEPT_ICON_L_PAD+MTLOCK_ACCEPT_ICON_WIDTH) +#define MTLOCK_ACCEPT_ICON_T REL_H(MTLOCK_ACCEPT_ICON_T_PAD) +#define MTLOCK_ACCEPT_ICON_B REL_H(MTLOCK_ACCEPT_ICON_T_PAD+MTLOCK_ACCEPT_ICON_HEIGHT) + +#define MTLOCK_ACCEPT_OUTER_CIRCLE_L REL_W(MTLOCK_ACCEPT_OUTER_CIRCLE_BG_L_PAD) +#define MTLOCK_ACCEPT_OUTER_CIRCLE_R REL_W(MTLOCK_ACCEPT_OUTER_CIRCLE_BG_L_PAD+MTLOCK_ACCEPT_OUTER_CIRCLE_BG_WIDTH) +#define MTLOCK_ACCEPT_OUTER_CIRCLE_T REL_H(MTLOCK_ACCEPT_OUTER_CIRCLE_BG_T_PAD) +#define MTLOCK_ACCEPT_OUTER_CIRCLE_B REL_H(MTLOCK_ACCEPT_OUTER_CIRCLE_BG_T_PAD+MTLOCK_ACCEPT_OUTER_CIRCLE_BG_HEIGHT) + +#define MTLOCK_ACCEPT_ARROW1_L REL_W(MTLOCK_ACCEPT_ARROW1_L_PAD) +#define MTLOCK_ACCEPT_ARROW1_R REL_W(MTLOCK_ACCEPT_ARROW1_L_PAD+MTLOCK_ACCEPT_ARROW1_WIDTH) +#define MTLOCK_ACCEPT_ARROW1_T REL_H(MTLOCK_ACCEPT_ARROW1_T_PAD) +#define MTLOCK_ACCEPT_ARROW1_B REL_H(MTLOCK_ACCEPT_ARROW1_T_PAD+MTLOCK_ACCEPT_ARROW1_HEIGHT) + +#define MTLOCK_ACCEPT_ARROW2_L REL_W(MTLOCK_ACCEPT_ARROW2_L_PAD) +#define MTLOCK_ACCEPT_ARROW2_R REL_W(MTLOCK_ACCEPT_ARROW2_L_PAD+MTLOCK_ACCEPT_ARROW2_WIDTH) +#define MTLOCK_ACCEPT_ARROW2_T REL_H(MTLOCK_ACCEPT_ARROW2_T_PAD) +#define MTLOCK_ACCEPT_ARROW2_B REL_H(MTLOCK_ACCEPT_ARROW2_T_PAD+MTLOCK_ACCEPT_ARROW2_HEIGHT) + +#define MTLOCK_ACCEPT_ARROW3_L REL_W(MTLOCK_ACCEPT_ARROW3_L_PAD) +#define MTLOCK_ACCEPT_ARROW3_R REL_W(MTLOCK_ACCEPT_ARROW3_L_PAD+MTLOCK_ACCEPT_ARROW3_WIDTH) +#define MTLOCK_ACCEPT_ARROW3_T REL_H(MTLOCK_ACCEPT_ARROW3_T_PAD) +#define MTLOCK_ACCEPT_ARROW3_B REL_H(MTLOCK_ACCEPT_ARROW3_T_PAD+MTLOCK_ACCEPT_ARROW3_HEIGHT) + +#define MTLOCK_REJECT_INNER_CIRCLE_L REL_W(MTLOCK_REJECT_INNER_CIRCLE_BG_L_PAD) +#define MTLOCK_REJECT_INNER_CIRCLE_R REL_W(MTLOCK_REJECT_INNER_CIRCLE_BG_L_PAD+MTLOCK_REJECT_INNER_CIRCLE_BG_WIDTH) +#define MTLOCK_REJECT_INNER_CIRCLE_T REL_H(MTLOCK_REJECT_INNER_CIRCLE_BG_T_PAD) +#define MTLOCK_REJECT_INNER_CIRCLE_B REL_H(MTLOCK_REJECT_INNER_CIRCLE_BG_T_PAD+MTLOCK_REJECT_INNER_CIRCLE_BG_HEIGHT) + +#define MTLOCK_REJECT_ICON_L REL_W(MTLOCK_REJECT_ICON_L_PAD) +#define MTLOCK_REJECT_ICON_R REL_W(MTLOCK_REJECT_ICON_L_PAD+MTLOCK_REJECT_ICON_WIDTH) +#define MTLOCK_REJECT_ICON_T REL_H(MTLOCK_REJECT_ICON_T_PAD) +#define MTLOCK_REJECT_ICON_B REL_H(MTLOCK_REJECT_ICON_T_PAD+MTLOCK_REJECT_ICON_HEIGHT) + +#define MTLOCK_REJECT_OUTER_CIRCLE_L REL_W(MTLOCK_REJECT_OUTER_CIRCLE_BG_L_PAD) +#define MTLOCK_REJECT_OUTER_CIRCLE_R REL_W(MTLOCK_REJECT_OUTER_CIRCLE_BG_L_PAD+MTLOCK_REJECT_OUTER_CIRCLE_BG_WIDTH) +#define MTLOCK_REJECT_OUTER_CIRCLE_T REL_H(MTLOCK_REJECT_OUTER_CIRCLE_BG_T_PAD) +#define MTLOCK_REJECT_OUTER_CIRCLE_B REL_H(MTLOCK_REJECT_OUTER_CIRCLE_BG_T_PAD+MTLOCK_REJECT_OUTER_CIRCLE_BG_HEIGHT) + +#define MTLOCK_REJECT_ARROW1_L REL_W(MTLOCK_REJECT_ARROW1_L_PAD) +#define MTLOCK_REJECT_ARROW1_R REL_W(MTLOCK_REJECT_ARROW1_L_PAD+MTLOCK_REJECT_ARROW1_WIDTH) +#define MTLOCK_REJECT_ARROW1_T REL_H(MTLOCK_REJECT_ARROW1_T_PAD) +#define MTLOCK_REJECT_ARROW1_B REL_H(MTLOCK_REJECT_ARROW1_T_PAD+MTLOCK_REJECT_ARROW1_HEIGHT) + +#define MTLOCK_REJECT_ARROW2_L REL_W(MTLOCK_REJECT_ARROW2_L_PAD) +#define MTLOCK_REJECT_ARROW2_R REL_W(MTLOCK_REJECT_ARROW2_L_PAD+MTLOCK_REJECT_ARROW2_WIDTH) +#define MTLOCK_REJECT_ARROW2_T REL_H(MTLOCK_REJECT_ARROW2_T_PAD) +#define MTLOCK_REJECT_ARROW2_B REL_H(MTLOCK_REJECT_ARROW2_T_PAD+MTLOCK_REJECT_ARROW2_HEIGHT) + +#define MTLOCK_REJECT_ARROW3_L REL_W(MTLOCK_REJECT_ARROW3_L_PAD) +#define MTLOCK_REJECT_ARROW3_R REL_W(MTLOCK_REJECT_ARROW3_L_PAD+MTLOCK_REJECT_ARROW3_WIDTH) +#define MTLOCK_REJECT_ARROW3_T REL_H(MTLOCK_REJECT_ARROW3_T_PAD) +#define MTLOCK_REJECT_ARROW3_B REL_H(MTLOCK_REJECT_ARROW3_T_PAD+MTLOCK_REJECT_ARROW3_HEIGHT) + +#define MTLOCK_REJECT_MSG_BG_L REL_W(MTLOCK_REJECT_MSG_BG_L_PAD) +#define MTLOCK_REJECT_MSG_BG_R REL_W(MTLOCK_REJECT_MSG_BG_L_PAD+MTLOCK_REJECT_MSG_BG_WIDTH) +#define MTLOCK_REJECT_MSG_BG_T REL_H(MTLOCK_REJECT_MSG_BG_T_PAD) +#define MTLOCK_REJECT_MSG_BG_B REL_H(MTLOCK_REJECT_MSG_BG_T_PAD+MTLOCK_REJECT_MSG_BG_HEIGHT) + +#define MTLOCK_REJECT_MSG_ARW_L REL_W(MTLOCK_REJECT_MSG_ARW_L_PAD) +#define MTLOCK_REJECT_MSG_ARW_R REL_W(MTLOCK_REJECT_MSG_ARW_L_PAD+MTLOCK_REJECT_MSG_ARW_WIDTH) +#define MTLOCK_REJECT_MSG_ARW_T REL_H(MTLOCK_REJECT_MSG_ARW_T_PAD) +#define MTLOCK_REJECT_MSG_ARW_B REL_H(MTLOCK_REJECT_MSG_ARW_T_PAD+MTLOCK_REJECT_MSG_ARW_HEIGHT) + +#define MTLOCK_REJECT_MSG_TEXT_L REL_W(MTLOCK_REJECT_MSG_TEXT_L_PAD) +#define MTLOCK_REJECT_MSG_TEXT_R REL_W(MTLOCK_REJECT_MSG_TEXT_L_PAD+MTLOCK_REJECT_MSG_TEXT_WIDTH) +#define MTLOCK_REJECT_MSG_TEXT_T REL_H(MTLOCK_REJECT_MSG_TEXT_T_PAD) +#define MTLOCK_REJECT_MSG_TEXT_B REL_H(MTLOCK_REJECT_MSG_TEXT_T_PAD+MTLOCK_REJECT_MSG_TEXT_HEIGHT) + +#define MTLOCK_REJECT_MSG_LIST_L REL_W(MTLOCK_REJECT_MSG_LIST_L_PAD) +#define MTLOCK_REJECT_MSG_LIST_R REL_W(MTLOCK_REJECT_MSG_LIST_L_PAD+MTLOCK_REJECT_MSG_LIST_WIDTH) +#define MTLOCK_REJECT_MSG_LIST_T REL_H(MTLOCK_REJECT_MSG_LIST_T_PAD) +#define MTLOCK_REJECT_MSG_ONE_LINE_LIST_B REL_H(MTLOCK_REJECT_MSG_LIST_T_PAD+MTLOCK_REJECT_MSG_ONE_LINE_LIST_HEIGHT) +#define MTLOCK_REJECT_MSG_TWO_LINE_LIST_B REL_H(MTLOCK_REJECT_MSG_LIST_T_PAD+MTLOCK_REJECT_MSG_TWO_LINE_LIST_HEIGHT) +#define MTLOCK_REJECT_MSG_THREE_LINE_LIST_B REL_H(MTLOCK_REJECT_MSG_LIST_T_PAD+MTLOCK_REJECT_MSG_THREE_LINE_LIST_HEIGHT) +#define MTLOCK_REJECT_MSG_FOUR_LINE_LIST_B REL_H(MTLOCK_REJECT_MSG_LIST_T_PAD+MTLOCK_REJECT_MSG_FOUR_LINE_LIST_HEIGHT) +#define MTLOCK_REJECT_MSG_FIVE_LINE_LIST_B REL_H(MTLOCK_REJECT_MSG_LIST_T_PAD+MTLOCK_REJECT_MSG_FIVE_LINE_LIST_HEIGHT) +#define MTLOCK_REJECT_MSG_SIX_LINE_LIST_B REL_H(MTLOCK_REJECT_MSG_LIST_T_PAD+MTLOCK_REJECT_MSG_SIX_LINE_LIST_HEIGHT) +/* + * End of MT LOCK View + */ + + +/* + * KEYPAD View + * In Portrait mode + */ +#define KEYPAD_AREA_L REL_W(KEYPAD_AREA_L_PAD) +#define KEYPAD_AREA_R REL_W(KEYPAD_AREA_WIDTH) +#define KEYPAD_AREA_T REL_H(KEYPAD_AREA_T_PAD) +#define KEYPAD_AREA_B REL_H(KEYPAD_AREA_T_PAD+KEYPAD_AREA_HEIGHT) + +#define KEYPAD_ENTRY_TEXT_L REL_KEYPAD_W(KEYPAD_ENTRY_TXT_L_PAD) +#define KEYPAD_ENTRY_TEXT_R REL_KEYPAD_W(KEYPAD_ENTRY_TXT_L_PAD+KEYPAD_ENTRY_TXT_WIDTH) +#define KEYPAD_ENTRY_TEXT_T REL_KEYPAD_H(KEYPAD_ENTRY_TXT_T_PAD) +#define KEYPAD_ENTRY_TEXT_B REL_KEYPAD_H(KEYPAD_ENTRY_TXT_T_PAD+KEYPAD_ENTRY_TXT_HEIGHT) + +#define KEYPAD_BTNS_BG_L REL_KEYPAD_W(KEYPAD_BTNS_BG_L_PAD) +#define KEYPAD_BTNS_BG_R REL_KEYPAD_W(KEYPAD_BTNS_BG_L_PAD+KEYPAD_BTNS_BG_WIDTH) +#define KEYPAD_BTNS_BG_T REL_KEYPAD_H(KEYPAD_BTNS_BG_T_PAD) +#define KEYPAD_BTNS_BG_B REL_KEYPAD_H(KEYPAD_BTNS_BG_T_PAD+KEYPAD_BTNS_BG_HEIGHT) + +#define KEYPAD_BTN_LEFT_TXT_L REL_KEYPAD_BTN_W(LEFT_TXT_L_PAD) +#define KEYPAD_BTN_LEFT_TXT_R REL_KEYPAD_BTN_W(LEFT_TXT_L_PAD+LEFT_TXT_WIDTH) +#define KEYPAD_BTN_RIGHT_TXT_TYPE1_L REL_KEYPAD_BTN_W(LEFT_TXT_L_PAD+LEFT_TXT_WIDTH+RIGHT_TXT_TYPE1_L_PAD) +#define KEYPAD_BTN_RIGHT_TXT_TYPE2_L REL_KEYPAD_BTN_W(LEFT_TXT_L_PAD+LEFT_TXT_WIDTH+RIGHT_TXT_TYPE2_L_PAD) +#define KEYPAD_BTN_RIGHT_ICON_L REL_KEYPAD_BTN_W(LEFT_TXT_L_PAD+LEFT_TXT_WIDTH+RIGHT_ICON_L_PAD) +#define KEYPAD_BTN_RIGHT_ICON_R REL_KEYPAD_BTN_W(LEFT_TXT_L_PAD+LEFT_TXT_WIDTH+RIGHT_ICON_L_PAD+RIGHT_ICON_WIDTH) + +#define KEYPAD_ROW1_LVERT_SEP1_L REL_KEYPAD_BTNS_W(KP_LVERT_SEP1_L_PAD) +#define KEYPAD_ROW1_LVERT_SEP1_R REL_KEYPAD_BTNS_W(KP_LVERT_SEP1_L_PAD+KEYPAD_VERT_SEP_WIDTH) +#define KEYPAD_ROW1_LVERT_SEP1_T REL_KEYPAD_BTNS_H(KP_ROW1_VERT_SEP_T_PAD) +#define KEYPAD_ROW1_LVERT_SEP1_B REL_KEYPAD_BTNS_H(KP_ROW1_VERT_SEP_T_PAD+KEYPAD_VERT_SEP_HEIGHT) + +#define KEYPAD_ROW1_LVERT_SEP2_L KEYPAD_ROW1_LVERT_SEP1_R +#define KEYPAD_ROW1_LVERT_SEP2_R REL_KEYPAD_BTNS_W(KP_LVERT_SEP1_L_PAD+2*KEYPAD_VERT_SEP_WIDTH) +#define KEYPAD_ROW1_LVERT_SEP2_T KEYPAD_ROW1_LVERT_SEP1_T +#define KEYPAD_ROW1_LVERT_SEP2_B KEYPAD_ROW1_LVERT_SEP1_B + +#define KEYPAD_ROW1_RVERT_SEP1_L REL_KEYPAD_BTNS_W(KP_RVERT_SEP1_L_PAD) +#define KEYPAD_ROW1_RVERT_SEP1_R REL_KEYPAD_BTNS_W(KP_RVERT_SEP1_L_PAD+KEYPAD_VERT_SEP_WIDTH) +#define KEYPAD_ROW1_RVERT_SEP1_T KEYPAD_ROW1_LVERT_SEP1_T +#define KEYPAD_ROW1_RVERT_SEP1_B KEYPAD_ROW1_LVERT_SEP1_B + +#define KEYPAD_ROW1_RVERT_SEP2_L KEYPAD_ROW1_RVERT_SEP1_R +#define KEYPAD_ROW1_RVERT_SEP2_R REL_KEYPAD_BTNS_W(KP_RVERT_SEP1_L_PAD+2*KEYPAD_VERT_SEP_WIDTH) +#define KEYPAD_ROW1_RVERT_SEP2_T KEYPAD_ROW1_LVERT_SEP1_T +#define KEYPAD_ROW1_RVERT_SEP2_B KEYPAD_ROW1_LVERT_SEP1_B + +#define KEYPAD_ROW2_LVERT_SEP1_L REL_KEYPAD_BTNS_W(KP_LVERT_SEP1_L_PAD) +#define KEYPAD_ROW2_LVERT_SEP1_R REL_KEYPAD_BTNS_W(KP_LVERT_SEP1_L_PAD+KEYPAD_VERT_SEP_WIDTH) +#define KEYPAD_ROW2_LVERT_SEP1_T REL_KEYPAD_BTNS_H(KP_ROW2_VERT_SEP_T_PAD) +#define KEYPAD_ROW2_LVERT_SEP1_B REL_KEYPAD_BTNS_H(KP_ROW2_VERT_SEP_T_PAD+KEYPAD_VERT_SEP_HEIGHT) + +#define KEYPAD_ROW2_LVERT_SEP2_L KEYPAD_ROW2_LVERT_SEP1_R +#define KEYPAD_ROW2_LVERT_SEP2_R REL_KEYPAD_BTNS_W(KP_LVERT_SEP1_L_PAD+2*KEYPAD_VERT_SEP_WIDTH) +#define KEYPAD_ROW2_LVERT_SEP2_T KEYPAD_ROW2_LVERT_SEP1_T +#define KEYPAD_ROW2_LVERT_SEP2_B KEYPAD_ROW2_LVERT_SEP1_B + +#define KEYPAD_ROW2_RVERT_SEP1_L REL_KEYPAD_BTNS_W(KP_RVERT_SEP1_L_PAD) +#define KEYPAD_ROW2_RVERT_SEP1_R REL_KEYPAD_BTNS_W(KP_RVERT_SEP1_L_PAD+KEYPAD_VERT_SEP_WIDTH) +#define KEYPAD_ROW2_RVERT_SEP1_T KEYPAD_ROW2_LVERT_SEP1_T +#define KEYPAD_ROW2_RVERT_SEP1_B KEYPAD_ROW2_LVERT_SEP1_B + +#define KEYPAD_ROW2_RVERT_SEP2_L KEYPAD_ROW2_RVERT_SEP1_R +#define KEYPAD_ROW2_RVERT_SEP2_R REL_KEYPAD_BTNS_W(KP_RVERT_SEP1_L_PAD+2*KEYPAD_VERT_SEP_WIDTH) +#define KEYPAD_ROW2_RVERT_SEP2_T KEYPAD_ROW2_LVERT_SEP1_T +#define KEYPAD_ROW2_RVERT_SEP2_B KEYPAD_ROW2_LVERT_SEP1_B + +#define KEYPAD_ROW3_LVERT_SEP1_L REL_KEYPAD_BTNS_W(KP_LVERT_SEP1_L_PAD) +#define KEYPAD_ROW3_LVERT_SEP1_R REL_KEYPAD_BTNS_W(KP_LVERT_SEP1_L_PAD+KEYPAD_VERT_SEP_WIDTH) +#define KEYPAD_ROW3_LVERT_SEP1_T REL_KEYPAD_BTNS_H(KP_ROW3_VERT_SEP_T_PAD) +#define KEYPAD_ROW3_LVERT_SEP1_B REL_KEYPAD_BTNS_H(KP_ROW3_VERT_SEP_T_PAD+KEYPAD_VERT_SEP_HEIGHT) + +#define KEYPAD_ROW3_LVERT_SEP2_L KEYPAD_ROW3_LVERT_SEP1_R +#define KEYPAD_ROW3_LVERT_SEP2_R REL_KEYPAD_BTNS_W(KP_LVERT_SEP1_L_PAD+2*KEYPAD_VERT_SEP_WIDTH) +#define KEYPAD_ROW3_LVERT_SEP2_T KEYPAD_ROW3_LVERT_SEP1_T +#define KEYPAD_ROW3_LVERT_SEP2_B KEYPAD_ROW3_LVERT_SEP1_B + +#define KEYPAD_ROW3_RVERT_SEP1_L REL_KEYPAD_BTNS_W(KP_RVERT_SEP1_L_PAD) +#define KEYPAD_ROW3_RVERT_SEP1_R REL_KEYPAD_BTNS_W(KP_RVERT_SEP1_L_PAD+KEYPAD_VERT_SEP_WIDTH) +#define KEYPAD_ROW3_RVERT_SEP1_T KEYPAD_ROW3_LVERT_SEP1_T +#define KEYPAD_ROW3_RVERT_SEP1_B KEYPAD_ROW3_LVERT_SEP1_B + +#define KEYPAD_ROW3_RVERT_SEP2_L KEYPAD_ROW3_RVERT_SEP1_R +#define KEYPAD_ROW3_RVERT_SEP2_R REL_KEYPAD_BTNS_W(KP_RVERT_SEP1_L_PAD+2*KEYPAD_VERT_SEP_WIDTH) +#define KEYPAD_ROW3_RVERT_SEP2_T KEYPAD_ROW3_LVERT_SEP1_T +#define KEYPAD_ROW3_RVERT_SEP2_B KEYPAD_ROW3_LVERT_SEP1_B + +#define KEYPAD_ROW4_LVERT_SEP1_L REL_KEYPAD_BTNS_W(KP_LVERT_SEP1_L_PAD) +#define KEYPAD_ROW4_LVERT_SEP1_R REL_KEYPAD_BTNS_W(KP_LVERT_SEP1_L_PAD+KEYPAD_VERT_SEP_WIDTH) +#define KEYPAD_ROW4_LVERT_SEP1_T REL_KEYPAD_BTNS_H(KP_ROW4_VERT_SEP_T_PAD) +#define KEYPAD_ROW4_LVERT_SEP1_B REL_KEYPAD_BTNS_H(KP_ROW4_VERT_SEP_T_PAD+KEYPAD_VERT_SEP_HEIGHT) + +#define KEYPAD_ROW4_LVERT_SEP2_L KEYPAD_ROW4_LVERT_SEP1_R +#define KEYPAD_ROW4_LVERT_SEP2_R REL_KEYPAD_BTNS_W(KP_LVERT_SEP1_L_PAD+2*KEYPAD_VERT_SEP_WIDTH) +#define KEYPAD_ROW4_LVERT_SEP2_T KEYPAD_ROW4_LVERT_SEP1_T +#define KEYPAD_ROW4_LVERT_SEP2_B KEYPAD_ROW4_LVERT_SEP1_B + +#define KEYPAD_ROW4_RVERT_SEP1_L REL_KEYPAD_BTNS_W(KP_RVERT_SEP1_L_PAD) +#define KEYPAD_ROW4_RVERT_SEP1_R REL_KEYPAD_BTNS_W(KP_RVERT_SEP1_L_PAD+KEYPAD_VERT_SEP_WIDTH) +#define KEYPAD_ROW4_RVERT_SEP1_T KEYPAD_ROW4_LVERT_SEP1_T +#define KEYPAD_ROW4_RVERT_SEP1_B KEYPAD_ROW4_LVERT_SEP1_B + +#define KEYPAD_ROW4_RVERT_SEP2_L KEYPAD_ROW4_RVERT_SEP1_R +#define KEYPAD_ROW4_RVERT_SEP2_R REL_KEYPAD_BTNS_W(KP_RVERT_SEP1_L_PAD+2*KEYPAD_VERT_SEP_WIDTH) +#define KEYPAD_ROW4_RVERT_SEP2_T KEYPAD_ROW4_LVERT_SEP1_T +#define KEYPAD_ROW4_RVERT_SEP2_B KEYPAD_ROW4_LVERT_SEP1_B + +#define KEYPAD_ROW1_HORIZ_SEP1_L REL_KEYPAD_BTNS_W(KP_HORIZ_SEP_L_PAD) +#define KEYPAD_ROW1_HORIZ_SEP1_R REL_KEYPAD_BTNS_W(KP_HORIZ_SEP_L_PAD+KEYPAD_HORIZ_SEP_WIDTH) +#define KEYPAD_ROW1_HORIZ_SEP1_T REL_KEYPAD_BTNS_H(KP_ROW1_HORIZ_SEP_T_PAD) +#define KEYPAD_ROW1_HORIZ_SEP1_B REL_KEYPAD_BTNS_H(KP_ROW1_HORIZ_SEP_T_PAD+KEYPAD_HORIZ_SEP_HEIGHT) + +#define KEYPAD_ROW1_HORIZ_SEP2_L KEYPAD_ROW1_HORIZ_SEP1_L +#define KEYPAD_ROW1_HORIZ_SEP2_R KEYPAD_ROW1_HORIZ_SEP1_R +#define KEYPAD_ROW1_HORIZ_SEP2_T KEYPAD_ROW1_HORIZ_SEP1_B +#define KEYPAD_ROW1_HORIZ_SEP2_B REL_KEYPAD_BTNS_H(KP_ROW1_HORIZ_SEP_T_PAD+2*KEYPAD_HORIZ_SEP_HEIGHT) + +#define KEYPAD_ROW2_HORIZ_SEP1_L KEYPAD_ROW1_HORIZ_SEP1_L +#define KEYPAD_ROW2_HORIZ_SEP1_R KEYPAD_ROW1_HORIZ_SEP1_R +#define KEYPAD_ROW2_HORIZ_SEP1_T REL_KEYPAD_BTNS_H(KP_ROW2_HORIZ_SEP_T_PAD) +#define KEYPAD_ROW2_HORIZ_SEP1_B REL_KEYPAD_BTNS_H(KP_ROW2_HORIZ_SEP_T_PAD+KEYPAD_HORIZ_SEP_HEIGHT) + +#define KEYPAD_ROW2_HORIZ_SEP2_L KEYPAD_ROW1_HORIZ_SEP1_L +#define KEYPAD_ROW2_HORIZ_SEP2_R KEYPAD_ROW1_HORIZ_SEP1_R +#define KEYPAD_ROW2_HORIZ_SEP2_T KEYPAD_ROW2_HORIZ_SEP1_B +#define KEYPAD_ROW2_HORIZ_SEP2_B REL_KEYPAD_BTNS_H(KP_ROW2_HORIZ_SEP_T_PAD+2*KEYPAD_HORIZ_SEP_HEIGHT) + +#define KEYPAD_ROW3_HORIZ_SEP1_L KEYPAD_ROW1_HORIZ_SEP1_L +#define KEYPAD_ROW3_HORIZ_SEP1_R KEYPAD_ROW1_HORIZ_SEP1_R +#define KEYPAD_ROW3_HORIZ_SEP1_T REL_KEYPAD_BTNS_H(KP_ROW3_HORIZ_SEP_T_PAD) +#define KEYPAD_ROW3_HORIZ_SEP1_B REL_KEYPAD_BTNS_H(KP_ROW3_HORIZ_SEP_T_PAD+KEYPAD_HORIZ_SEP_HEIGHT) + +#define KEYPAD_ROW3_HORIZ_SEP2_L KEYPAD_ROW1_HORIZ_SEP1_L +#define KEYPAD_ROW3_HORIZ_SEP2_R KEYPAD_ROW1_HORIZ_SEP1_R +#define KEYPAD_ROW3_HORIZ_SEP2_T KEYPAD_ROW3_HORIZ_SEP1_B +#define KEYPAD_ROW3_HORIZ_SEP2_B REL_KEYPAD_BTNS_H(KP_ROW3_HORIZ_SEP_T_PAD+2*KEYPAD_HORIZ_SEP_HEIGHT) +/* + * End of KEYPAD View + */ + + +/* + * INCALL View + * In Portrait mode + */ +#define INCALL_CID_L DIALLING_CID_L +#define INCALL_CID_R DIALLING_CID_R +#define INCALL_CID_T DIALLING_CID_T +#define INCALL_CID_B DIALLING_CID_B + +/* +#define INCALL_CID_DIM_T DIALLING_CID_T +#define INCALL_CID_DIM_B DIALLING_CID_B +#define INCALL_CID_DIM_L REL_W(145) +#define INCALL_CID_DIM_R REL_W(334) +*/ + +#define INCALL_BACKGROUND_CID_L DIALLING_BACKGROUND_CID_L +#define INCALL_BACKGROUND_CID_R DIALLING_BACKGROUND_CID_R +#define INCALL_BACKGROUND_CID_T DIALLING_BACKGROUND_CID_T +#define INCALL_BACKGROUND_CID_B DIALLING_BACKGROUND_CID_B + +#define INCALL_EXTRA_VOL_ICON_L REL_W(INCALL_EXTRA_VOL_BTN_L_PAD) +#define INCALL_EXTRA_VOL_ICON_R REL_W(INCALL_EXTRA_VOL_BTN_L_PAD+INCALL_EXTRA_VOL_BTN_WIDTH) +#define INCALL_EXTRA_VOL_ICON_T REL_H(INCALL_EXTRA_VOL_BTN_T_PAD) +#define INCALL_EXTRA_VOL_ICON_B REL_H(INCALL_EXTRA_VOL_BTN_T_PAD+INCALL_EXTRA_VOL_BTN_HEIGHT) + +#define INCALL_HOLD_L REL_W(INCALL_HOLD_BTN_L_PAD) +#define INCALL_HOLD_R REL_W(INCALL_HOLD_BTN_L_PAD+INCALL_HOLD_BTN_WIDTH) +#define INCALL_HOLD_T REL_H(INCALL_HOLD_BTN_T_PAD) +#define INCALL_HOLD_B REL_H(INCALL_HOLD_BTN_T_PAD+INCALL_HOLD_BTN_HEIGHT) + +#define INCALL_HOLD_TXT_L REL_W(INCALL_HOLD_TXT_L_PAD) +#define INCALL_HOLD_TXT_R REL_W(INCALL_HOLD_TXT_L_PAD+INCALL_HOLD_TXT_WIDTH) +#define INCALL_HOLD_TXT_T REL_H(INCALL_HOLD_TXT_T_PAD) +#define INCALL_HOLD_TXT_B REL_H(INCALL_HOLD_TXT_T_PAD+INCALL_HOLD_TXT_HEIGHT) + +#define INCALL_NOISE_ICON_L REL_W(INCALL_NOISE_ICN_L_PAD) +#define INCALL_NOISE_ICON_R REL_W(INCALL_NOISE_ICN_L_PAD+INCALL_NOISE_ICN_WIDTH) +#define INCALL_NOISE_ICON_T REL_H(INCALL_NOISE_ICN_T_PAD) +#define INCALL_NOISE_ICON_B REL_H(INCALL_NOISE_ICN_T_PAD+INCALL_NOISE_ICN_HEIGHT) + +#define INCALL_SOUND_EQ_ICON_L REL_W(INCALL_SOUND_EQ_ICN_L_PAD) +#define INCALL_SOUND_EQ_ICON_R REL_W(INCALL_SOUND_EQ_ICN_L_PAD+INCALL_SOUND_EQ_ICN_WIDTH) +#define INCALL_SOUND_EQ_ICON_T REL_H(INCALL_SOUND_EQ_ICN_T_PAD) +#define INCALL_SOUND_EQ_ICON_B REL_H(INCALL_SOUND_EQ_ICN_T_PAD+INCALL_SOUND_EQ_ICN_HEIGHT) + +/* +#define INCALL_RECORDER_T REL_H(389) +#define INCALL_RECORDER_B REL_H(443) +#define INCALL_RECORDER_L REL_W(381) +#define INCALL_RECORDER_R REL_W(454) + +#define INCALL_RECORDING_T REL_H(359) +#define INCALL_RECORDING_B REL_H(383) +#define INCALL_RECORDING_L REL_W(381) +#define INCALL_RECORDING_R REL_W(454) +*/ + +#define INCALL_BACKGROUND_SHARE_L REL_W(0) +#define INCALL_BACKGROUND_SHARE_R REL_W(MAIN_SCREEN_W) +#define INCALL_BACKGROUND_SHARE_T REL_H(INCALL_SHARE_BG_T_PAD) +#define INCALL_BACKGROUND_SHARE_B REL_H(INCALL_SHARE_BG_T_PAD+INCALL_SHARE_BG_HEIGHT) +/* + * End of INCALL View + */ + + +/* + * MULTI-CALL SPLIT View + * In Portrait mode + */ +/* L[ACT] + R[HLD] */ +#define MULTICALL_SPLIT_BACKGROUND_CID_L INCALL_BACKGROUND_CID_L +#define MULTICALL_SPLIT_BACKGROUND_CID_R INCALL_BACKGROUND_CID_R +#define MULTICALL_SPLIT_BACKGROUND_CID_T INCALL_BACKGROUND_CID_T +#define MULTICALL_SPLIT_BACKGROUND_CID_B INCALL_BACKGROUND_CID_B + +#define MULTICALL_SPLIT_CID_1_L REL_W(SPLIT_CID1_L_PAD) +#define MULTICALL_SPLIT_CID_1_R REL_W(SPLIT_CID1_L_PAD+SPLIT_CID1_WIDTH) +#define MULTICALL_SPLIT_CID_1_T REL_H(SPLIT_CID1_T_PAD) +#define MULTICALL_SPLIT_CID_1_B REL_H(SPLIT_CID1_T_PAD+SPLIT_CID1_HEIGHT) + +#define MULTICALL_SPLIT_CID_2_L REL_W(SPLIT_CID2_L_PAD) +#define MULTICALL_SPLIT_CID_2_R REL_W(SPLIT_CID2_L_PAD+SPLIT_CID2_WIDTH) +#define MULTICALL_SPLIT_CID_2_T REL_H(SPLIT_CID2_T_PAD) +#define MULTICALL_SPLIT_CID_2_B REL_H(SPLIT_CID2_T_PAD+SPLIT_CID2_HEIGHT) + +#define MULTICALL_SPLIT_ON_HOLD_TXT_L MULTICALL_SPLIT_CID_2_L +#define MULTICALL_SPLIT_ON_HOLD_TXT_R MULTICALL_SPLIT_CID_2_R +#define MULTICALL_SPLIT_ON_HOLD_TXT_T REL_H(SPLIT_ONHOLD_TXT_T_PAD) +#define MULTICALL_SPLIT_ON_HOLD_TXT_B REL_H(SPLIT_ONHOLD_TXT_T_PAD+SPLIT_ONHOLD_TXT_HEIGHT) + +#define MULTICALL_SPLIT_ON_HOLD_TXT_WITH_ICON_L MULTICALL_SPLIT_CID_2_L +#define MULTICALL_SPLIT_ON_HOLD_TXT_WITH_ICON_R REL_W(SPLIT_CID2_L_PAD+SPLIT_CID2_WIDTH-SPLIT_MORE_BTN_WIDTH) +#define MULTICALL_SPLIT_ON_HOLD_TXT_WITH_ICON_T MULTICALL_SPLIT_ON_HOLD_TXT_T +#define MULTICALL_SPLIT_ON_HOLD_TXT_WITH_ICON_B MULTICALL_SPLIT_ON_HOLD_TXT_B + +/* + * End of MULTI-CALL SPLIT View + */ + +/* + * MULTI-CALL LIST View + * In Portrait mode + */ +#define MULTICALL_LIST_L REL_W(0) +#define MULTICALL_LIST_R REL_W(MAIN_SCREEN_W) +#define MULTICALL_LIST_T REL_MULTI_LIST_H(CONF_LIST_T_PAD) +#define MULTICALL_LIST_B REL_MULTI_LIST_H(CONF_LIST_T_PAD+CONF_LIST_HEIGHT) + +#define MULTICALL_LIST_HOLD_L REL_W(CONF_HOLD_L_PAD) +#define MULTICALL_LIST_HOLD_R REL_W(CONF_HOLD_L_PAD+CONF_HOLD_WIDTH) +#define MULTICALL_LIST_HOLD_T REL_MULTI_LIST_H(CONF_HOLD_T_PAD) +#define MULTICALL_LIST_HOLD_B REL_MULTI_LIST_H(CONF_HOLD_T_PAD+CONF_HOLD_HEIGHT) + +#define MULTICALL_LIST_TIMER_L REL_W(0) +#define MULTICALL_LIST_TIMER_R REL_W(MAIN_SCREEN_W) +#define MULTICALL_LIST_TIMER_T REL_MULTI_LIST_H(CONF_TIMER_T_PAD) +#define MULTICALL_LIST_TIMER_B REL_MULTI_LIST_H(CONF_TIMER_T_PAD+CONF_TIMER_HEIGHT) + +#define MULTICALL_LIST_BIG_END_L REL_W(CONF_CALL_BIG_END_L_PAD) +#define MULTICALL_LIST_BIG_END_R REL_W(CONF_CALL_BIG_END_L_PAD+CONF_CALL_BIG_END_WIDTH) +#define MULTICALL_LIST_BIG_END_T REL_MULTI_LIST_H(CONF_CALL_BIG_END_T_PAD) +#define MULTICALL_LIST_BIG_END_B REL_MULTI_LIST_H(CONF_CALL_BIG_END_T_PAD+CALL_BIG_END_HEIGHT) +/* + * End of MULTI-CALL LIST View + */ + + +/* + * Reject with MSG View + * In Portrait mode + */ +#define REJECT_W_MSG_CREATE_NEW_L REL_W(REJ_MSG_NEW_BTN_L_PAD) +#define REJECT_W_MSG_CREATE_NEW_R REL_W(REJ_MSG_NEW_BTN_L_PAD+REJ_MSG_NEW_BTN_WIDTH) +#define REJECT_W_MSG_CREATE_NEW_T REL_H(REJ_MSG_NEW_BTN_T_PAD) +#define REJECT_W_MSG_CREATE_NEW_B REL_H(REJ_MSG_NEW_BTN_T_PAD+REJ_MSG_NEW_BTN_HEIGHT) +/* +#define REJECT_W_MSG_LIST_T REL_H(135) +#define REJECT_W_MSG_LIST_B REL_H(MAIN_SCREEN_H) +#define REJECT_W_MSG_LIST_L REL_W(0) +#define REJECT_W_MSG_LIST_R REL_W(MAIN_SCREEN_W) +*/ +#define REJECT_W_MSG_LIST_L REL_NAVIFRAME_W(0) +#define REJECT_W_MSG_LIST_R REL_NAVIFRAME_W(MAIN_SCREEN_W) +#define REJECT_W_MSG_LIST_T REL_NAVIFRAME_H(REJ_MSG_LIST_T_PAD) +#define REJECT_W_MSG_LIST_B REL_NAVIFRAME_H(REJ_MSG_LIST_T_PAD+REJ_MSG_LIST_HEIGHT) +/* + * End of Reject with MSG View + */ + + +/* + * SIX BUTTON Layout + * In Portrait mode + */ + +#define TOP_LEFT_BUTTON_L REL_BTN_LY_W(BTN_LAYOUT_LEFT_BTN_L_PAD) +#define TOP_LEFT_BUTTON_R REL_BTN_LY_W(BTN_LAYOUT_LEFT_BTN_L_PAD+BTN_LAYOUT_SINGLE_BTN_WIDTH) +#define TOP_LEFT_BUTTON_T REL_BTN_LY_H(BTN_LAYOUT_TOP_BTN_T_PAD) +#define TOP_LEFT_BUTTON_B REL_BTN_LY_H(BTN_LAYOUT_TOP_BTN_T_PAD+BTN_LAYOUT_SINGLE_BTN_HEIGHT) + +#define TOP_MIDDLE_BUTTON_L REL_BTN_LY_W(BTN_LAYOUT_MIDDLE_BTN_L_PAD) +#define TOP_MIDDLE_BUTTON_R REL_BTN_LY_W(BTN_LAYOUT_MIDDLE_BTN_L_PAD+BTN_LAYOUT_SINGLE_BTN_WIDTH) +#define TOP_MIDDLE_BUTTON_T TOP_LEFT_BUTTON_T +#define TOP_MIDDLE_BUTTON_B TOP_LEFT_BUTTON_B + +#define TOP_RIGHT_BUTTON_L REL_BTN_LY_W(BTN_LAYOUT_RIGHT_BTN_L_PAD) +#define TOP_RIGHT_BUTTON_R REL_BTN_LY_W(BTN_LAYOUT_RIGHT_BTN_L_PAD+BTN_LAYOUT_SINGLE_BTN_WIDTH) +#define TOP_RIGHT_BUTTON_T TOP_LEFT_BUTTON_T +#define TOP_RIGHT_BUTTON_B TOP_LEFT_BUTTON_B + +#define BOTTOM_LEFT_BUTTON_L TOP_LEFT_BUTTON_L +#define BOTTOM_LEFT_BUTTON_R TOP_LEFT_BUTTON_R +#define BOTTOM_LEFT_BUTTON_T REL_BTN_LY_H(BTN_LAYOUT_BOTTOM_BTN_T_PAD) +#define BOTTOM_LEFT_BUTTON_B REL_BTN_LY_H(BTN_LAYOUT_BOTTOM_BTN_T_PAD+BTN_LAYOUT_SINGLE_BTN_HEIGHT) + +#define BOTTOM_MIDDLE_BUTTON_L TOP_MIDDLE_BUTTON_L +#define BOTTOM_MIDDLE_BUTTON_R TOP_MIDDLE_BUTTON_R +#define BOTTOM_MIDDLE_BUTTON_T BOTTOM_LEFT_BUTTON_T +#define BOTTOM_MIDDLE_BUTTON_B BOTTOM_LEFT_BUTTON_B + +#define BOTTOM_RIGHT_BUTTON_L TOP_RIGHT_BUTTON_L +#define BOTTOM_RIGHT_BUTTON_R TOP_RIGHT_BUTTON_R +#define BOTTOM_RIGHT_BUTTON_T BOTTOM_LEFT_BUTTON_T +#define BOTTOM_RIGHT_BUTTON_B BOTTOM_LEFT_BUTTON_B + +#define TOPLINE_LEFT_VERT_SEP_1_L REL_BTN_LY_W(LEFT_VERT_SEP_L_PAD) +#define TOPLINE_LEFT_VERT_SEP_1_R REL_BTN_LY_W(LEFT_VERT_SEP_L_PAD+SEPARTOR_WIDTH) +#define TOPLINE_LEFT_VERT_SEP_1_T REL_BTN_LY_H(TOP_VERT_SEP_T_PAD) +#define TOPLINE_LEFT_VERT_SEP_1_B REL_BTN_LY_H(TOP_VERT_SEP_T_PAD+VERT_SEP_HEIGHT) + +#define TOPLINE_LEFT_VERT_SEP_2_L TOPLINE_LEFT_VERT_SEP_1_R +#define TOPLINE_LEFT_VERT_SEP_2_R REL_BTN_LY_W(LEFT_VERT_SEP_L_PAD+2*SEPARTOR_WIDTH) +#define TOPLINE_LEFT_VERT_SEP_2_T TOPLINE_LEFT_VERT_SEP_1_T +#define TOPLINE_LEFT_VERT_SEP_2_B TOPLINE_LEFT_VERT_SEP_1_B + +#define TOPLINE_RIGHT_VERT_SEP_1_L REL_BTN_LY_W(RIGHT_VERT_SEP_L_PAD) +#define TOPLINE_RIGHT_VERT_SEP_1_R REL_BTN_LY_W(RIGHT_VERT_SEP_L_PAD+SEPARTOR_WIDTH) +#define TOPLINE_RIGHT_VERT_SEP_1_T TOPLINE_LEFT_VERT_SEP_1_T +#define TOPLINE_RIGHT_VERT_SEP_1_B TOPLINE_LEFT_VERT_SEP_1_B + +#define TOPLINE_RIGHT_VERT_SEP_2_L TOPLINE_RIGHT_VERT_SEP_1_R +#define TOPLINE_RIGHT_VERT_SEP_2_R REL_BTN_LY_W(RIGHT_VERT_SEP_L_PAD+2*SEPARTOR_WIDTH) +#define TOPLINE_RIGHT_VERT_SEP_2_T TOPLINE_RIGHT_VERT_SEP_1_T +#define TOPLINE_RIGHT_VERT_SEP_2_B TOPLINE_RIGHT_VERT_SEP_1_B + +#define BOTLINE_LEFT_VERT_SEP_1_L TOPLINE_LEFT_VERT_SEP_1_L +#define BOTLINE_LEFT_VERT_SEP_1_R TOPLINE_LEFT_VERT_SEP_1_R +#define BOTLINE_LEFT_VERT_SEP_1_T REL_BTN_LY_H(BOTTOM_VERT_SEP_T_PAD) +#define BOTLINE_LEFT_VERT_SEP_1_B REL_BTN_LY_H(BOTTOM_VERT_SEP_T_PAD+VERT_SEP_HEIGHT) + +#define BOTLINE_LEFT_VERT_SEP_2_L TOPLINE_LEFT_VERT_SEP_2_L +#define BOTLINE_LEFT_VERT_SEP_2_R TOPLINE_LEFT_VERT_SEP_2_R +#define BOTLINE_LEFT_VERT_SEP_2_T BOTLINE_LEFT_VERT_SEP_1_T +#define BOTLINE_LEFT_VERT_SEP_2_B BOTLINE_LEFT_VERT_SEP_1_B + +#define BOTLINE_RIGHT_VERT_SEP_1_L TOPLINE_RIGHT_VERT_SEP_1_L +#define BOTLINE_RIGHT_VERT_SEP_1_R TOPLINE_RIGHT_VERT_SEP_1_R +#define BOTLINE_RIGHT_VERT_SEP_1_T BOTLINE_LEFT_VERT_SEP_1_T +#define BOTLINE_RIGHT_VERT_SEP_1_B BOTLINE_LEFT_VERT_SEP_1_B + +#define BOTLINE_RIGHT_VERT_SEP_2_L BOTLINE_RIGHT_VERT_SEP_1_R +#define BOTLINE_RIGHT_VERT_SEP_2_R TOPLINE_RIGHT_VERT_SEP_2_R +#define BOTLINE_RIGHT_VERT_SEP_2_T BOTLINE_LEFT_VERT_SEP_1_T +#define BOTLINE_RIGHT_VERT_SEP_2_B BOTLINE_LEFT_VERT_SEP_1_T + +#define TOPLINE_HORIZ_SEP_1_L REL_BTN_LY_W(HORIZ_SEP_L_PAD) +#define TOPLINE_HORIZ_SEP_1_R REL_BTN_LY_W(HORIZ_SEP_L_PAD+HORIZ_SEP_WIDTH) +#define TOPLINE_HORIZ_SEP_1_T REL_BTN_LY_H(TOP_HORIZ_SEP_T_PAD) +#define TOPLINE_HORIZ_SEP_1_B REL_BTN_LY_H(TOP_HORIZ_SEP_T_PAD+SEPARTOR_WIDTH) + +#define TOPLINE_HORIZ_SEP_2_L TOPLINE_HORIZ_SEP_1_L +#define TOPLINE_HORIZ_SEP_2_R TOPLINE_HORIZ_SEP_1_R +#define TOPLINE_HORIZ_SEP_2_T TOPLINE_HORIZ_SEP_1_B +#define TOPLINE_HORIZ_SEP_2_B REL_BTN_LY_H(TOP_HORIZ_SEP_T_PAD+2*SEPARTOR_WIDTH) + +#define BOTLINE_HORIZ_SEP_1_L TOPLINE_HORIZ_SEP_1_L +#define BOTLINE_HORIZ_SEP_1_R TOPLINE_HORIZ_SEP_1_R +#define BOTLINE_HORIZ_SEP_1_T REL_BTN_LY_H(BOTTOM_HORIZ_SEP_T_PAD) +#define BOTLINE_HORIZ_SEP_1_B REL_BTN_LY_H(BOTTOM_HORIZ_SEP_T_PAD+SEPARTOR_WIDTH) + +#define BOTLINE_HORIZ_SEP_2_L TOPLINE_HORIZ_SEP_1_L +#define BOTLINE_HORIZ_SEP_2_R TOPLINE_HORIZ_SEP_1_R +#define BOTLINE_HORIZ_SEP_2_T BOTLINE_HORIZ_SEP_1_B +#define BOTLINE_HORIZ_SEP_2_B REL_BTN_LY_H(BOTTOM_HORIZ_SEP_T_PAD+2*SEPARTOR_WIDTH) +/* + * End of SIX Button Layout + */ + +/* + * THREE BUTTON Layout for ENDCALL + * In Portrait mode + */ +#define ENDCALL_LEFT_VERT_SEP_1_L REL_THREE_BTN_LY_W(ENDCALL_LEFT_VERT_SEP_L_PAD) +#define ENDCALL_LEFT_VERT_SEP_1_R REL_THREE_BTN_LY_W(ENDCALL_LEFT_VERT_SEP_L_PAD+ENDCALL_SEPARTOR_WIDTH) +#define ENDCALL_LEFT_VERT_SEP_1_T REL_THREE_BTN_LY_H(ENDCALL_VERT_SEP_T_PAD) +#define ENDCALL_LEFT_VERT_SEP_1_B REL_THREE_BTN_LY_H(ENDCALL_VERT_SEP_T_PAD+ENDCALL_VERT_SEP_HEIGHT) + +#define ENDCALL_LEFT_VERT_SEP_2_L ENDCALL_LEFT_VERT_SEP_1_R +#define ENDCALL_LEFT_VERT_SEP_2_R REL_THREE_BTN_LY_W(ENDCALL_LEFT_VERT_SEP_L_PAD+2*ENDCALL_SEPARTOR_WIDTH) +#define ENDCALL_LEFT_VERT_SEP_2_T ENDCALL_LEFT_VERT_SEP_1_T +#define ENDCALL_LEFT_VERT_SEP_2_B ENDCALL_LEFT_VERT_SEP_1_B + +#define ENDCALL_RIGHT_VERT_SEP_1_L REL_THREE_BTN_LY_W(ENDCALL_RIGHT_VERT_SEP_L_PAD) +#define ENDCALL_RIGHT_VERT_SEP_1_R REL_THREE_BTN_LY_W(ENDCALL_RIGHT_VERT_SEP_L_PAD+ENDCALL_SEPARTOR_WIDTH) +#define ENDCALL_RIGHT_VERT_SEP_1_T ENDCALL_LEFT_VERT_SEP_1_T +#define ENDCALL_RIGHT_VERT_SEP_1_B ENDCALL_LEFT_VERT_SEP_1_B + +#define ENDCALL_RIGHT_VERT_SEP_2_L ENDCALL_RIGHT_VERT_SEP_1_R +#define ENDCALL_RIGHT_VERT_SEP_2_R REL_THREE_BTN_LY_W(ENDCALL_RIGHT_VERT_SEP_L_PAD+2*ENDCALL_SEPARTOR_WIDTH) +#define ENDCALL_RIGHT_VERT_SEP_2_T ENDCALL_LEFT_VERT_SEP_1_T +#define ENDCALL_RIGHT_VERT_SEP_2_B ENDCALL_LEFT_VERT_SEP_1_B +/* + * End of THREE Button Layout + */ + +/* + * General Button Layout + */ +#define SIX_BTN_LAYOUT_L REL_W(SIX_BTN_LAYOUT_L_PAD) +#define SIX_BTN_LAYOUT_R REL_W(SIX_BTN_LAYOUT_L_PAD+SIX_BTN_LAYOUT_WIDTH) +#define SIX_BTN_LAYOUT_T REL_H(SIX_BTN_LAYOUT_T_PAD) +#define SIX_BTN_LAYOUT_B REL_H(SIX_BTN_LAYOUT_T_PAD+SIX_BTN_LAYOUT_HEIGHT) + +#define SIX_BTN_BIG_END_L REL_W(CALL_BIG_END_L_PAD) +#define SIX_BTN_BIG_END_R REL_W(CALL_BIG_END_L_PAD+CALL_BIG_END_WIDTH) +#define SIX_BTN_BIG_END_T REL_H(CALL_BIG_END_T_PAD) +#define SIX_BTN_BIG_END_B REL_H(CALL_BIG_END_T_PAD+CALL_BIG_END_HEIGHT) + +#define SIX_BTN_INCOMING_1_L SIX_BTN_BIG_END_L +#define SIX_BTN_INCOMING_1_R SIX_BTN_BIG_END_R +#define SIX_BTN_INCOMING_1_T REL_H(INCMG_CALL_BTN1_T_PAD) +#define SIX_BTN_INCOMING_1_B REL_H(INCMG_CALL_BTN1_T_PAD+INCMG_CALL_BTN_HEIGHT) + +#define SIX_BTN_INCOMING_2_L SIX_BTN_BIG_END_L +#define SIX_BTN_INCOMING_2_R SIX_BTN_BIG_END_R +#define SIX_BTN_INCOMING_2_T REL_H(INCMG_CALL_BTN2_T_PAD) +#define SIX_BTN_INCOMING_2_B REL_H(INCMG_CALL_BTN2_T_PAD+INCMG_CALL_BTN_HEIGHT) + +#define SIX_BTN_INCOMING_3_L SIX_BTN_BIG_END_L +#define SIX_BTN_INCOMING_3_R SIX_BTN_BIG_END_R +#define SIX_BTN_INCOMING_3_T REL_H(INCMG_CALL_BTN3_T_PAD) +#define SIX_BTN_INCOMING_3_B REL_H(INCMG_CALL_BTN3_T_PAD+INCMG_CALL_BTN_HEIGHT) +/* + * End of SIX Button Layout + */ + + +/* + * Navigation bar layout + */ +#define CALL_NAVIGATION_BAR_T REL_H(NAVIFRAME_T_PAD) +#define CALL_NAVIGATION_BAR_B REL_H(MAIN_SCREEN_H) +#define CALL_NAVIGATION_BAR_L REL_W(0) +#define CALL_NAVIGATION_BAR_R REL_W(MAIN_SCREEN_W) +/* + * End of Navigation bar layout + */ + + +/* + * END CALL View + * In Portrait mode + */ +#define ENDSINGLECALL_BACKGROUND_CID_L DIALLING_BACKGROUND_CID_L +#define ENDSINGLECALL_BACKGROUND_CID_R DIALLING_BACKGROUND_CID_R +#define ENDSINGLECALL_BACKGROUND_CID_T DIALLING_BACKGROUND_CID_T +#define ENDSINGLECALL_BACKGROUND_CID_B DIALLING_BACKGROUND_CID_B + +#define ENDSINGLECALL_CID_L ENDCALL_DIALLING_CID_L +#define ENDSINGLECALL_CID_R ENDCALL_DIALLING_CID_R +#define ENDSINGLECALL_CID_T ENDCALL_DIALLING_CID_T +#define ENDSINGLECALL_CID_B ENDCALL_DIALLING_CID_B + +#define ENDSINGLECALL_BTN_BG_L ENDCALL_DIALLING_BTN_BG_L +#define ENDSINGLECALL_BTN_BG_R ENDCALL_DIALLING_BTN_BG_R +#define ENDSINGLECALL_BTN_BG_T ENDCALL_DIALLING_BTN_BG_T +#define ENDSINGLECALL_BTN_BG_B ENDCALL_DIALLING_BTN_BG_B + +#define ENDSINGLECALL_VOICE_BTN_L REL_W(ENDCALL_VOICE_BTN_L_PAD) +#define ENDSINGLECALL_VOICE_BTN_R REL_W(ENDCALL_VOICE_BTN_L_PAD+ENDCALL_VOICE_BTN_WIDTH) +#define ENDSINGLECALL_VOICE_BTN_T REL_H(ENDCALL_VOICE_BTN_T_PAD) +#define ENDSINGLECALL_VOICE_BTN_B REL_H(ENDCALL_VOICE_BTN_T_PAD+ENDCALL_VOICE_BTN_HEIGHT) + +#define ENDSINGLECALL_VIDEO_BTN_L REL_W(ENDCALL_VIDEO_BTN_L_PAD) +#define ENDSINGLECALL_VIDEO_BTN_R REL_W(ENDCALL_VIDEO_BTN_L_PAD+ENDCALL_VOICE_BTN_WIDTH) +#define ENDSINGLECALL_VIDEO_BTN_T ENDSINGLECALL_VOICE_BTN_T +#define ENDSINGLECALL_VIDEO_BTN_B ENDSINGLECALL_VOICE_BTN_B + +#define ENDSINGLECALL_MSG_BTN_L REL_W(ENDCALL_MSG_BTN_L_PAD) +#define ENDSINGLECALL_MSG_BTN_R REL_W(ENDCALL_MSG_BTN_L_PAD+ENDCALL_VOICE_BTN_WIDTH) +#define ENDSINGLECALL_MSG_BTN_T ENDSINGLECALL_VOICE_BTN_T +#define ENDSINGLECALL_MSG_BTN_B ENDSINGLECALL_VOICE_BTN_B + +#define ENDSINGLECALL_CONTACT_BTN_L REL_W(ENDCALL_CONTACT_BTN_L_PAD) +#define ENDSINGLECALL_CONTACT_BTN_R REL_W(ENDCALL_CONTACT_BTN_L_PAD+ENDCALL_CONTACT_BTN_WIDTH) +#define ENDSINGLECALL_CONTACT_BTN_T REL_H(ENDCALL_CONTACT_BTN_T_PAD) +#define ENDSINGLECALL_CONTACT_BTN_B REL_H(ENDCALL_CONTACT_BTN_T_PAD+ENDCALL_CONTACT_BTN_HEIGHT) +/* + * End of END CALL View + */ + + +/* + * QUICK-PANEL layout + * In Portrait mode + */ +#define CALL_QUICKPANEL_CID_L REL_QP_W(QP_CID_L_PAD) +#define CALL_QUICKPANEL_CID_R REL_QP_W(QP_CID_L_PAD+QP_CID_WIDTH) +#define CALL_QUICKPANEL_CID_T REL_QP_H(QP_CID_T_PAD) +#define CALL_QUICKPANEL_CID_B REL_QP_H(QP_CID_T_PAD+QP_CID_HEIGHT) + +#define CALL_QUICKPANEL_BTN_MUTE_L REL_QP_W(QP_MUTE_BTN_L_PAD) +#define CALL_QUICKPANEL_BTN_MUTE_R REL_QP_W(QP_MUTE_BTN_L_PAD+QP_END_BTN_WIDTH) +#define CALL_QUICKPANEL_BTN_MUTE_T REL_QP_H(QP_MUTE_BTN_T_PAD) +#define CALL_QUICKPANEL_BTN_MUTE_B REL_QP_H(QP_MUTE_BTN_T_PAD+QP_END_BTN_HEIGHT) + +#define CALL_QUICKPANEL_BTN_END_L REL_QP_W(QP_END_BTN_L_PAD) +#define CALL_QUICKPANEL_BTN_END_R REL_QP_W(QP_END_BTN_L_PAD+QP_END_BTN_WIDTH) +#define CALL_QUICKPANEL_BTN_END_T REL_QP_H(QP_END_BTN_T_PAD) +#define CALL_QUICKPANEL_BTN_END_B REL_QP_H(QP_END_BTN_T_PAD+QP_END_BTN_HEIGHT) + +#define CALL_QUICKPANEL_NAME_L REL_QP_W(QP_NAME_L_PAD) +#define CALL_QUICKPANEL_NAME_R REL_QP_W(QP_NAME_L_PAD+QP_NAME_WIDTH) +#define CALL_QUICKPANEL_NAME_T REL_QP_H(QP_NAME_T_PAD) +#define CALL_QUICKPANEL_NAME_B REL_QP_H(QP_NAME_T_PAD+QP_NAME_HEIGHT) +/* + * End of QUICK-PANEL layout + */ + + +/* + * NBEAT-HD GUI Widget Dimensions + * In Landscape mode + */ +#define MAIN_SCREEN_LSCAPE_W 1280 +#define MAIN_SCREEN_LSCAPE_H 720 + +#define LSCAPE_TITLE_T_PAD 50 +#define LSCAPE_TITLE_HEIGHT 100 + +#define LSCAPE_BODY_BG_T_PAD (LSCAPE_TITLE_T_PAD+LSCAPE_TITLE_HEIGHT) + +#define LSCAPE_SCROLLER_WIDTH (266*5+30*2) /*CID(266) Gap(30)*/ +#define LSCAPE_SCROLLER_HEIGHT 388 + +/*CID Data*/ +#define LSCAPE_CID_WIDTH 266 +#define LSCAPE_CID_HEIGHT 348 + +#define FIRST_CID_OUTER_BG_POS1_L_PAD 30 +#define FIRST_CID_OUTER_BG_POS2_L_PAD 108 +#define FIRST_CID_OUTER_BG_POS3_L_PAD 241 +#define FIRST_CID_OUTER_BG_POS4_L_PAD 374 +#define CID_OUTER_BG_WIDTH LSCAPE_CID_WIDTH +#define CID_OUTER_BG_T_PAD 30 +#define CID_OUTER_BG_HEIGHT LSCAPE_CID_HEIGHT + +#define CID_INNER_BG_L_PAD 20 +#define CID_INNER_BG_WIDTH 226 +#define CID_INNER_BG_T_PAD 0 +#define CID_INNER_BG_HEIGHT (CID_OUTER_BG_HEIGHT-20) + +#define CID_END_L_PAD (CID_OUTER_BG_WIDTH-60) +#define CID_END_WIDTH 60 +#define CID_END_T_PAD (-20) +#define CID_END_HEIGHT 60 + +#define CID_NAME_T_PAD 18 +#define CID_NAME_HEIGHT 40 + +#define CID_IMG_L_PAD 42 +#define CID_IMG_WIDTH 182 +#define CID_IMG_T_PAD 66 +#define CID_IMG_HEIGHT 182 + +#define CID_SPLIT_L_PAD 32 +#define CID_SPLIT_WIDTH 202 +#define CID_SPLIT_T_PAD 256 +#define CID_SPLIT_HEIGHT 60 + +#define LSCAPE_HOLD_L_PAD 24 +#define LSCAPE_HOLD_WIDTH 60 +#define LSCAPE_HOLD_T_PAD (LSCAPE_TITLE_T_PAD+LSCAPE_TITLE_HEIGHT+LSCAPE_SCROLLER_HEIGHT) +#define LSCAPE_HOLD_HEIGHT 60 + +#define LSCAPE_TIMER_WIDTH 1232 + +#define LSCAPE_BIG_END_T_PAD (LSCAPE_HOLD_T_PAD+LSCAPE_HOLD_HEIGHT+26) +#define LSCAPE_BIG_END_HEIGHT 80 + +#define LSCAPE_SPLIT_CID1_L_PAD 307 +#define LSCAPE_SPLIT_CID1_WIDTH 304 +#define LSCAPE_SPLIT_CID1_T_PAD 182 +#define LSCAPE_SPLIT_CID1_HEIGHT 304 + +#define LSCAPE_SPLIT_PAUSE_L_PAD (LSCAPE_SPLIT_CID1_L_PAD+8) +#define LSCAPE_SPLIT_PAUSE_WIDTH 62 +#define LSCAPE_SPLIT_PAUSE_HEIGHT 62 +#define LSCAPE_SPLIT_PAUSE_T_PAD (LSCAPE_SPLIT_CID1_T_PAD+LSCAPE_SPLIT_CID1_HEIGHT-8-LSCAPE_SPLIT_PAUSE_HEIGHT) + +#define LSCAPE_SPLIT_CID2_L_PAD (LSCAPE_SPLIT_CID1_L_PAD+LSCAPE_SPLIT_CID1_WIDTH+142) +#define LSCAPE_SPLIT_CID2_WIDTH 208 +#define LSCAPE_SPLIT_CID2_T_PAD 230 +#define LSCAPE_SPLIT_CID2_HEIGHT 208 + +#define LSCAPE_SPLIT_PLAY_L_PAD (LSCAPE_SPLIT_CID2_L_PAD+12) +#define LSCAPE_SPLIT_PLAY_WIDTH 40 +#define LSCAPE_SPLIT_PLAY_HEIGHT 40 +#define LSCAPE_SPLIT_PLAY_T_PAD (LSCAPE_SPLIT_CID2_T_PAD+LSCAPE_SPLIT_CID2_HEIGHT-12-LSCAPE_SPLIT_PLAY_HEIGHT) + +#define LSCAPE_SPLIT_NAME1_L_PAD (LSCAPE_SPLIT_CID1_L_PAD-37) +#define LSCAPE_SPLIT_NAME1_WIDTH 390 +#define LSCAPE_SPLIT_NAME1_T_PAD 108 +#define LSCAPE_SPLIT_NAME1_HEIGHT 58 + +#define LSCAPE_SPLIT_NAME2_L_PAD (LSCAPE_SPLIT_CID2_L_PAD-21) +#define LSCAPE_SPLIT_NAME2_WIDTH 250 +#define LSCAPE_SPLIT_NAME2_T_PAD 180 +#define LSCAPE_SPLIT_NAME2_HEIGHT 40 + +#define LSCAPE_SPLIT_TIMER_T_PAD 512 +#define LSCAPE_SPLIT_TIMER_HEIGHT 46 + +#define LSCAPE_SPLIT_MORE_BTN_WIDTH 40 +#define LSCAPE_SPLIT_MORE_BTN_L_PAD (LSCAPE_SPLIT_CID2_L_PAD+LSCAPE_SPLIT_CID2_WIDTH-LSCAPE_SPLIT_MORE_BTN_WIDTH) +#define LSCAPE_SPLIT_ONHOLD_TXT_W_ICON_WIDTH (LSCAPE_SPLIT_CID2_WIDTH-LSCAPE_SPLIT_MORE_BTN_WIDTH) +#define LSCAPE_SPLIT_ONHOLD_TXT_T_PAD 456 +#define LSCAPE_SPLIT_ONHOLD_TXT_HEIGHT 40 + +#define LSCAPE_SPLIT_SWAP_CID1_L_PAD 307 +#define LSCAPE_SPLIT_SWAP_CID1_WIDTH 208 + +#define LSCAPE_SPLIT_SWAP_PLAY_L_PAD (LSCAPE_SPLIT_SWAP_CID1_L_PAD+12) +#define LSCAPE_SPLIT_SWAP_PLAY_WIDTH 40 + +#define LSCAPE_SPLIT_SWAP_CID2_L_PAD (LSCAPE_SPLIT_SWAP_CID1_L_PAD+LSCAPE_SPLIT_SWAP_CID1_WIDTH+142) +#define LSCAPE_SPLIT_SWAP_CID2_WIDTH 304 + +#define LSCAPE_SPLIT_SWAP_PAUSE_L_PAD (LSCAPE_SPLIT_SWAP_CID2_L_PAD+8) +#define LSCAPE_SPLIT_SWAP_PAUSE_WIDTH 62 + +#define LSCAPE_SPLIT_SWAP_NAME1_L_PAD (LSCAPE_SPLIT_CID1_L_PAD-21) +#define LSCAPE_SPLIT_SWAP_NAME1_WIDTH 250 + +#define LSCAPE_SPLIT_SWAP_NAME2_L_PAD (LSCAPE_SPLIT_SWAP_CID2_L_PAD-37) +#define LSCAPE_SPLIT_SWAP_NAME2_WIDTH 390 + +#define LSCAPE_SPLIT_SWAP_MORE_BTN_WIDTH 60 +#define LSCAPE_SPLIT_SWAP_MORE_BTN_L_PAD (LSCAPE_SPLIT_SWAP_CID2_L_PAD+LSCAPE_SPLIT_SWAP_CID2_WIDTH-LSCAPE_SPLIT_SWAP_MORE_BTN_WIDTH) +#define LSCAPE_SPLIT_SWAP_MORE_BTN_T_PAD (LSCAPE_SPLIT_TIMER_T_PAD-7) +#define LSCAPE_SPLIT_SWAP_MORE_BTN_HEIGHT 60 +#define LSCAPE_SPLIT_TIMER_TXT_W_ICON_WIDTH (LSCAPE_SPLIT_SWAP_CID2_WIDTH-LSCAPE_SPLIT_SWAP_MORE_BTN_WIDTH) + +#define LSCAPE_SPLIT_JOIN_BTN_L_PAD 40 +#define LSCAPE_SPLIT_JOIN_BTN_WIDTH 584 +#define LSCAPE_SPLIT_JOIN_BTN_T_PAD 614 +#define LSCAPE_SPLIT_JOIN_BTN_HEIGHT 80 + +#define LSCAPE_SPLIT_BIG_END_BTN_L_PAD (LSCAPE_SPLIT_JOIN_BTN_L_PAD+LSCAPE_SPLIT_JOIN_BTN_WIDTH+32) +#define LSCAPE_SPLIT_BIG_END_BTN_WIDTH LSCAPE_SPLIT_JOIN_BTN_WIDTH + +#define LSCAPE_QP_WIN_W MAIN_SCREEN_LSCAPE_W +#define LSCAPE_QP_WIN_H 170 + +#define LSCAPE_QP_CID_L_PAD 20 +#define LSCAPE_QP_CID_WIDTH 105 +#define LSCAPE_QP_CID_T_PAD 32 +#define LSCAPE_QP_CID_HEIGHT 105 + +#define LSCAPE_QP_MUTE_BTN_L_PAD 338 +#define LSCAPE_QP_MUTE_BTN_WIDTH 368 +#define LSCAPE_QP_MUTE_BTN_T_PAD 78 +#define LSCAPE_QP_MUTE_BTN_HEIGHT 74 + +#define LSCAPE_QP_END_BTN_L_PAD 726 +#define LSCAPE_QP_END_BTN_WIDTH 367 +#define LSCAPE_QP_END_BTN_T_PAD LSCAPE_QP_MUTE_BTN_T_PAD +#define LSCAPE_QP_END_BTN_HEIGHT LSCAPE_QP_MUTE_BTN_HEIGHT + +#define LSCAPE_QP_NAME_L_PAD LSCAPE_QP_MUTE_BTN_L_PAD +#define LSCAPE_QP_NAME_WIDTH 922 +#define LSCAPE_QP_NAME_T_PAD 22 +#define LSCAPE_QP_NAME_HEIGHT 36 + +/* + * End of NBEAT-HD GUI Widget Dimensions + */ + + +/* + * Relative positions + * In Landscape mode + */ +#define REL_LSCAPE_W(x) ((x)/MAIN_SCREEN_LSCAPE_W) +#define REL_LSCAPE_H(y) ((y)/MAIN_SCREEN_LSCAPE_H) + +#define REL_SCROLLER_W(x) ((x)/LSCAPE_SCROLLER_WIDTH) +#define REL_SCROLLER_H(y) ((y)/LSCAPE_SCROLLER_HEIGHT) + +#define REL_LSCAPE_CID_W(x) ((x)/LSCAPE_CID_WIDTH) +#define REL_LSCAPE_CID_H(y) ((y)/LSCAPE_CID_HEIGHT) + +/* Relative X & Y positions of widgets w.r.t. Quick-panel layout */ +#define REL_LSCAPE_QP_W(x) ((x)/LSCAPE_QP_WIN_W) +#define REL_LSCAPE_QP_H(y) ((y)/LSCAPE_QP_WIN_H) + +/* + * End of Relative positions + */ + + +/* + * MULTI-CALL CONF View + * In Landscape mode + */ +/* +#define INCALL_LANDSCAPE_BACKGROUND_CID_L REL_LSCAPE_W(0) +#define INCALL_LANDSCAPE_BACKGROUND_CID_R REL_LSCAPE_W(MAIN_SCREEN_H) +#define INCALL_LANDSCAPE_BACKGROUND_CID_T REL_LSCAPE_H(0) +#define INCALL_LANDSCAPE_BACKGROUND_CID_B REL_LSCAPE_H(MAIN_SCREEN_W) +*/ + +#define INCALL_LANDSCAPE_TITLE_BG_L REL_LSCAPE_W(0) +#define INCALL_LANDSCAPE_TITLE_BG_R REL_LSCAPE_W(MAIN_SCREEN_LSCAPE_W) +#define INCALL_LANDSCAPE_TITLE_BG_T REL_LSCAPE_H(LSCAPE_TITLE_T_PAD) +#define INCALL_LANDSCAPE_TITLE_BG_B REL_LSCAPE_H(LSCAPE_TITLE_T_PAD+LSCAPE_TITLE_HEIGHT) + +#define INCALL_LANDSCAPE_TITLE_TXT_L INCALL_LANDSCAPE_TITLE_BG_L +#define INCALL_LANDSCAPE_TITLE_TXT_R INCALL_LANDSCAPE_TITLE_BG_R +#define INCALL_LANDSCAPE_TITLE_TXT_T INCALL_LANDSCAPE_TITLE_BG_T +#define INCALL_LANDSCAPE_TITLE_TXT_B INCALL_LANDSCAPE_TITLE_BG_B + +/* +#define INCALL_LANDSCAPE_SEPARATOR_L REL_LSCAPE_W(0) +#define INCALL_LANDSCAPE_SEPARATOR_R REL_LSCAPE_W(MAIN_SCREEN_LSCAPE_W) +#define INCALL_LANDSCAPE_SEPARATOR_T REL_LSCAPE_H(50) +#define INCALL_LANDSCAPE_SEPARATOR_B REL_LSCAPE_H(55) +*/ + +#define INCALL_LANDSCAPE_BODY_BG_L REL_LSCAPE_W(0) +#define INCALL_LANDSCAPE_BODY_BG_R REL_LSCAPE_W(MAIN_SCREEN_LSCAPE_W) +#define INCALL_LANDSCAPE_BODY_BG_T REL_LSCAPE_H(LSCAPE_BODY_BG_T_PAD) +#define INCALL_LANDSCAPE_BODY_BG_B REL_LSCAPE_H(MAIN_SCREEN_LSCAPE_H) + +#define INCALL_LANDSCAPE_SCROLLER_L REL_LSCAPE_W(0) +#define INCALL_LANDSCAPE_SCROLLER_R REL_LSCAPE_W(MAIN_SCREEN_LSCAPE_W) +#define INCALL_LANDSCAPE_SCROLLER_T INCALL_LANDSCAPE_BODY_BG_T +#define INCALL_LANDSCAPE_SCROLLER_B REL_LSCAPE_H(LSCAPE_BODY_BG_T_PAD+LSCAPE_SCROLLER_HEIGHT) + +/* +#define INCALL_LANDSCAPE_CID_BG2_L REL_LSCAPE_W(0) +#define INCALL_LANDSCAPE_CID_BG2_R REL_LSCAPE_W(800) +#define INCALL_LANDSCAPE_CID_BG2_T REL_LSCAPE_H(0) +#define INCALL_LANDSCAPE_CID_BG2_B REL_LSCAPE_H(306) +*/ + +/*LSCAPE: CID-1 BG initial position*/ +/*5 in conference*/ +#define INCALL_LANDSCAPE_FIRST_CID_OUTER_BG_POS1_L REL_SCROLLER_W(FIRST_CID_OUTER_BG_POS1_L_PAD) +#define INCALL_LANDSCAPE_FIRST_CID_OUTER_BG_POS1_R REL_SCROLLER_W(FIRST_CID_OUTER_BG_POS1_L_PAD+CID_OUTER_BG_WIDTH) +/*4 in conference*/ +#define INCALL_LANDSCAPE_FIRST_CID_OUTER_BG_POS2_L REL_LSCAPE_W(FIRST_CID_OUTER_BG_POS2_L_PAD) +#define INCALL_LANDSCAPE_FIRST_CID_OUTER_BG_POS2_R REL_LSCAPE_W(FIRST_CID_OUTER_BG_POS2_L_PAD+CID_OUTER_BG_WIDTH) +/*3 in conference*/ +#define INCALL_LANDSCAPE_FIRST_CID_OUTER_BG_POS3_L REL_LSCAPE_W(FIRST_CID_OUTER_BG_POS3_L_PAD) +#define INCALL_LANDSCAPE_FIRST_CID_OUTER_BG_POS3_R REL_LSCAPE_W(FIRST_CID_OUTER_BG_POS3_L_PAD+CID_OUTER_BG_WIDTH) +/*2 in conference*/ +#define INCALL_LANDSCAPE_FIRST_CID_OUTER_BG_POS4_L REL_LSCAPE_W(FIRST_CID_OUTER_BG_POS4_L_PAD) +#define INCALL_LANDSCAPE_FIRST_CID_OUTER_BG_POS4_R REL_LSCAPE_W(FIRST_CID_OUTER_BG_POS4_L_PAD+CID_OUTER_BG_WIDTH) +/*LSCAPE: CID-1 BG initial position*/ +#define INCALL_LANDSCAPE_FIRST_CID_OUTER_BG_T REL_SCROLLER_H(CID_OUTER_BG_T_PAD) +#define INCALL_LANDSCAPE_FIRST_CID_OUTER_BG_B REL_SCROLLER_H(CID_OUTER_BG_HEIGHT) + +#define INCALL_LANDSCAPE_CID_INNER_BG_L REL_LSCAPE_CID_W(CID_INNER_BG_L_PAD) +#define INCALL_LANDSCAPE_CID_INNER_BG_R REL_LSCAPE_CID_W(CID_INNER_BG_L_PAD+CID_INNER_BG_WIDTH) +#define INCALL_LANDSCAPE_CID_INNER_BG_T REL_LSCAPE_CID_H(CID_INNER_BG_T_PAD) +#define INCALL_LANDSCAPE_CID_INNER_BG_B REL_LSCAPE_CID_H(CID_INNER_BG_T_PAD+CID_INNER_BG_HEIGHT) + +#define INCALL_LANDSCAPE_CID_END_L REL_LSCAPE_CID_W(CID_END_L_PAD) +#define INCALL_LANDSCAPE_CID_END_R REL_LSCAPE_CID_W(CID_END_L_PAD+CID_END_WIDTH) +#define INCALL_LANDSCAPE_CID_END_T REL_LSCAPE_CID_H(CID_END_T_PAD) +#define INCALL_LANDSCAPE_CID_END_B REL_LSCAPE_CID_H(CID_END_T_PAD+CID_END_HEIGHT) + +#define INCALL_LANDSCAPE_CID_NAME_L INCALL_LANDSCAPE_CID_INNER_BG_L +#define INCALL_LANDSCAPE_CID_NAME_R INCALL_LANDSCAPE_CID_INNER_BG_R +#define INCALL_LANDSCAPE_CID_NAME_T REL_LSCAPE_CID_H(CID_NAME_T_PAD) +#define INCALL_LANDSCAPE_CID_NAME_B REL_LSCAPE_CID_H(CID_NAME_T_PAD+CID_NAME_HEIGHT) + +#define INCALL_LANDSCAPE_CID_IMG_L REL_LSCAPE_CID_W(CID_IMG_L_PAD) +#define INCALL_LANDSCAPE_CID_IMG_R REL_LSCAPE_CID_W(CID_IMG_L_PAD+CID_IMG_WIDTH) +#define INCALL_LANDSCAPE_CID_IMG_T REL_LSCAPE_CID_H(CID_IMG_T_PAD) +#define INCALL_LANDSCAPE_CID_IMG_B REL_LSCAPE_CID_H(CID_IMG_T_PAD+CID_IMG_HEIGHT) + +#define INCALL_LANDSCAPE_BTN_CID_SPLIT_L REL_LSCAPE_CID_W(CID_SPLIT_L_PAD) +#define INCALL_LANDSCAPE_BTN_CID_SPLIT_R REL_LSCAPE_CID_W(CID_SPLIT_L_PAD+CID_SPLIT_WIDTH) +#define INCALL_LANDSCAPE_BTN_CID_SPLIT_T REL_LSCAPE_CID_H(CID_SPLIT_T_PAD) +#define INCALL_LANDSCAPE_BTN_CID_SPLIT_B REL_LSCAPE_CID_H(CID_SPLIT_T_PAD+CID_SPLIT_HEIGHT) +/*LSCAPE: CID-1 Data*/ + +/*LSCAPE: Other CID Data*/ +#define INCALL_LANDSCAPE_OTHER_CID_OUTER_BG_L REL_LSCAPE_CID_W(CID_OUTER_BG_WIDTH) +#define INCALL_LANDSCAPE_OTHER_CID_OUTER_BG_R REL_LSCAPE_CID_W(CID_OUTER_BG_WIDTH*2) +#define INCALL_LANDSCAPE_OTHER_CID_OUTER_BG_T REL_LSCAPE_CID_H(0) +#define INCALL_LANDSCAPE_OTHER_CID_OUTER_BG_B REL_LSCAPE_CID_H(CID_OUTER_BG_HEIGHT) +/*LSCAPE: Other CID Data*/ + +#define INCALL_LANDSCAPE_HOLD_L REL_LSCAPE_W(LSCAPE_HOLD_L_PAD) +#define INCALL_LANDSCAPE_HOLD_R REL_LSCAPE_W(LSCAPE_HOLD_L_PAD+LSCAPE_HOLD_WIDTH) +#define INCALL_LANDSCAPE_HOLD_T REL_LSCAPE_H(LSCAPE_HOLD_T_PAD) +#define INCALL_LANDSCAPE_HOLD_B REL_LSCAPE_H(LSCAPE_HOLD_T_PAD+LSCAPE_HOLD_HEIGHT) + +#define INCALL_LANDSCAPE_TIMER_L INCALL_LANDSCAPE_HOLD_L +#define INCALL_LANDSCAPE_TIMER_R REL_LSCAPE_W(LSCAPE_HOLD_L_PAD+LSCAPE_TIMER_WIDTH) +#define INCALL_LANDSCAPE_TIMER_T INCALL_LANDSCAPE_HOLD_T +#define INCALL_LANDSCAPE_TIMER_B INCALL_LANDSCAPE_HOLD_B + +#define INCALL_LANDSCAPE_BIG_END_L INCALL_LANDSCAPE_HOLD_L +#define INCALL_LANDSCAPE_BIG_END_R INCALL_LANDSCAPE_TIMER_R +#define INCALL_LANDSCAPE_BIG_END_T REL_LSCAPE_H(LSCAPE_BIG_END_T_PAD) +#define INCALL_LANDSCAPE_BIG_END_B REL_LSCAPE_H(LSCAPE_BIG_END_T_PAD+LSCAPE_BIG_END_HEIGHT) + +/* +#define INCALL_LANDSCAPE_BACKGROUND_SHARE_L REL_W(0) +#define INCALL_LANDSCAPE_BACKGROUND_SHARE_R REL_W(MAIN_SCREEN_W) +#define INCALL_LANDSCAPE_BACKGROUND_SHARE_T REL_H(365) +#define INCALL_LANDSCAPE_BACKGROUND_SHARE_B REL_H(774) +*/ +/* + * End of MULTI-CALL CONF View + */ + + +/* + * MULTI-CALL SPLIT View + * In Landscape mode + */ +/* L[ACT] + R[HLD] */ +#define MULTICALL_SPLIT_LANDSCAPE_BACKGROUND_CID_L REL_LSCAPE_W(0) +#define MULTICALL_SPLIT_LANDSCAPE_BACKGROUND_CID_R REL_LSCAPE_W(MAIN_SCREEN_LSCAPE_W) +#define MULTICALL_SPLIT_LANDSCAPE_BACKGROUND_CID_T REL_LSCAPE_H(0) +#define MULTICALL_SPLIT_LANDSCAPE_BACKGROUND_CID_B REL_LSCAPE_H(MAIN_SCREEN_LSCAPE_H) + +#define MULTICALL_SPLIT_LANDSCAPE_CID_1_L REL_LSCAPE_W(LSCAPE_SPLIT_CID1_L_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_CID_1_R REL_LSCAPE_W(LSCAPE_SPLIT_CID1_L_PAD+LSCAPE_SPLIT_CID1_WIDTH) +#define MULTICALL_SPLIT_LANDSCAPE_CID_1_T REL_LSCAPE_H(LSCAPE_SPLIT_CID1_T_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_CID_1_B REL_LSCAPE_H(LSCAPE_SPLIT_CID1_T_PAD+LSCAPE_SPLIT_CID1_HEIGHT) + +#define MULTICALL_SPLIT_LANDSCAPE_PAUSE_L REL_LSCAPE_W(LSCAPE_SPLIT_PAUSE_L_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_PAUSE_R REL_LSCAPE_W(LSCAPE_SPLIT_PAUSE_L_PAD+LSCAPE_SPLIT_PAUSE_WIDTH) +#define MULTICALL_SPLIT_LANDSCAPE_PAUSE_T REL_LSCAPE_H(LSCAPE_SPLIT_PAUSE_T_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_PAUSE_B REL_LSCAPE_H(LSCAPE_SPLIT_PAUSE_T_PAD+LSCAPE_SPLIT_PAUSE_HEIGHT) + +#define MULTICALL_SPLIT_LANDSCAPE_CID_2_L REL_LSCAPE_W(LSCAPE_SPLIT_CID2_L_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_CID_2_R REL_LSCAPE_W(LSCAPE_SPLIT_CID2_L_PAD+LSCAPE_SPLIT_CID2_WIDTH) +#define MULTICALL_SPLIT_LANDSCAPE_CID_2_T REL_LSCAPE_H(LSCAPE_SPLIT_CID2_T_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_CID_2_B REL_LSCAPE_H(LSCAPE_SPLIT_CID2_T_PAD+LSCAPE_SPLIT_CID2_HEIGHT) + +#define MULTICALL_SPLIT_LANDSCAPE_PLAY_L REL_LSCAPE_W(LSCAPE_SPLIT_PLAY_L_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_PLAY_R REL_LSCAPE_W(LSCAPE_SPLIT_PLAY_L_PAD+LSCAPE_SPLIT_PLAY_WIDTH) +#define MULTICALL_SPLIT_LANDSCAPE_PLAY_T REL_LSCAPE_H(LSCAPE_SPLIT_PLAY_T_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_PLAY_B REL_LSCAPE_H(LSCAPE_SPLIT_PLAY_T_PAD+LSCAPE_SPLIT_PLAY_HEIGHT) + +#define MULTICALL_SPLIT_LANDSCAPE_NAME_1_L REL_LSCAPE_W(LSCAPE_SPLIT_NAME1_L_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_NAME_1_R REL_LSCAPE_W(LSCAPE_SPLIT_NAME1_L_PAD+LSCAPE_SPLIT_NAME1_WIDTH) +#define MULTICALL_SPLIT_LANDSCAPE_NAME_1_T REL_LSCAPE_H(LSCAPE_SPLIT_NAME1_T_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_NAME_1_B REL_LSCAPE_H(LSCAPE_SPLIT_NAME1_T_PAD+LSCAPE_SPLIT_NAME1_HEIGHT) + +#define MULTICALL_SPLIT_LANDSCAPE_NAME_2_L REL_LSCAPE_W(LSCAPE_SPLIT_NAME2_L_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_NAME_2_R REL_LSCAPE_W(LSCAPE_SPLIT_NAME2_L_PAD+LSCAPE_SPLIT_NAME2_WIDTH) +#define MULTICALL_SPLIT_LANDSCAPE_NAME_2_T REL_LSCAPE_H(LSCAPE_SPLIT_NAME2_T_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_NAME_2_B REL_LSCAPE_H(LSCAPE_SPLIT_NAME2_T_PAD+LSCAPE_SPLIT_NAME2_HEIGHT) + +#define MULTICALL_SPLIT_LANDSCAPE_TIMER_L MULTICALL_SPLIT_LANDSCAPE_CID_1_L +#define MULTICALL_SPLIT_LANDSCAPE_TIMER_R MULTICALL_SPLIT_LANDSCAPE_CID_1_R +#define MULTICALL_SPLIT_LANDSCAPE_TIMER_T REL_LSCAPE_H(LSCAPE_SPLIT_TIMER_T_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_TIMER_B REL_LSCAPE_H(LSCAPE_SPLIT_TIMER_T_PAD+LSCAPE_SPLIT_TIMER_HEIGHT) + +#define MULTICALL_SPLIT_LANDSCAPE_ON_HOLD_TXT_L MULTICALL_SPLIT_LANDSCAPE_CID_2_L +#define MULTICALL_SPLIT_LANDSCAPE_ON_HOLD_TXT_R MULTICALL_SPLIT_LANDSCAPE_CID_2_R +#define MULTICALL_SPLIT_LANDSCAPE_ON_HOLD_TXT_T REL_LSCAPE_H(LSCAPE_SPLIT_ONHOLD_TXT_T_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_ON_HOLD_TXT_B REL_LSCAPE_H(LSCAPE_SPLIT_ONHOLD_TXT_T_PAD+LSCAPE_SPLIT_ONHOLD_TXT_HEIGHT) + +#define MULTICALL_SPLIT_LANDSCAPE_ON_HOLD_TXT_WITH_ICON_L MULTICALL_SPLIT_LANDSCAPE_ON_HOLD_TXT_L +#define MULTICALL_SPLIT_LANDSCAPE_ON_HOLD_TXT_WITH_ICON_R REL_LSCAPE_W(LSCAPE_SPLIT_CID2_L_PAD+LSCAPE_SPLIT_ONHOLD_TXT_W_ICON_WIDTH) +#define MULTICALL_SPLIT_LANDSCAPE_ON_HOLD_TXT_WITH_ICON_T MULTICALL_SPLIT_LANDSCAPE_ON_HOLD_TXT_T +#define MULTICALL_SPLIT_LANDSCAPE_ON_HOLD_TXT_WITH_ICON_B MULTICALL_SPLIT_LANDSCAPE_ON_HOLD_TXT_B + +#define MULTICALL_SPLIT_LANDSCAPE_MORE_ICON_L REL_LSCAPE_W(LSCAPE_SPLIT_MORE_BTN_L_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_MORE_ICON_R MULTICALL_SPLIT_LANDSCAPE_CID_2_R +#define MULTICALL_SPLIT_LANDSCAPE_MORE_ICON_T MULTICALL_SPLIT_LANDSCAPE_ON_HOLD_TXT_T +#define MULTICALL_SPLIT_LANDSCAPE_MORE_ICON_B MULTICALL_SPLIT_LANDSCAPE_ON_HOLD_TXT_B +/* L[ACT] + R[HLD] */ + +/* L[HLD] + R[ACT] */ +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_CID_1_L REL_LSCAPE_W(LSCAPE_SPLIT_SWAP_CID1_L_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_CID_1_R REL_LSCAPE_W(LSCAPE_SPLIT_SWAP_CID1_L_PAD+LSCAPE_SPLIT_SWAP_CID1_WIDTH) +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_CID_1_T MULTICALL_SPLIT_LANDSCAPE_CID_2_T +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_CID_1_B MULTICALL_SPLIT_LANDSCAPE_CID_2_B + +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_PLAY_L REL_LSCAPE_W(LSCAPE_SPLIT_SWAP_PLAY_L_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_PLAY_R REL_LSCAPE_W(LSCAPE_SPLIT_SWAP_PLAY_L_PAD+LSCAPE_SPLIT_SWAP_PLAY_WIDTH) +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_PLAY_T MULTICALL_SPLIT_LANDSCAPE_PLAY_T +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_PLAY_B MULTICALL_SPLIT_LANDSCAPE_PLAY_B + +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_CID_2_L REL_LSCAPE_W(LSCAPE_SPLIT_SWAP_CID2_L_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_CID_2_R REL_LSCAPE_W(LSCAPE_SPLIT_SWAP_CID2_L_PAD+LSCAPE_SPLIT_SWAP_CID2_WIDTH) +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_CID_2_T MULTICALL_SPLIT_LANDSCAPE_CID_1_T +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_CID_2_B MULTICALL_SPLIT_LANDSCAPE_CID_1_B + +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_PAUSE_L REL_LSCAPE_W(LSCAPE_SPLIT_SWAP_PAUSE_L_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_PAUSE_R REL_LSCAPE_W(LSCAPE_SPLIT_SWAP_PAUSE_L_PAD+LSCAPE_SPLIT_SWAP_PAUSE_WIDTH) +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_PAUSE_T MULTICALL_SPLIT_LANDSCAPE_PAUSE_T +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_PAUSE_B MULTICALL_SPLIT_LANDSCAPE_PAUSE_B + +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_NAME_1_L REL_LSCAPE_W(LSCAPE_SPLIT_SWAP_NAME1_L_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_NAME_1_R REL_LSCAPE_W(LSCAPE_SPLIT_SWAP_NAME1_L_PAD+LSCAPE_SPLIT_SWAP_NAME1_WIDTH) +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_NAME_1_T MULTICALL_SPLIT_LANDSCAPE_NAME_2_T +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_NAME_1_B MULTICALL_SPLIT_LANDSCAPE_NAME_2_B + +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_NAME_2_L REL_LSCAPE_W(LSCAPE_SPLIT_SWAP_NAME2_L_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_NAME_2_R REL_LSCAPE_W(LSCAPE_SPLIT_SWAP_NAME2_L_PAD+LSCAPE_SPLIT_SWAP_NAME2_WIDTH) +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_NAME_2_T MULTICALL_SPLIT_LANDSCAPE_NAME_1_T +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_NAME_2_B MULTICALL_SPLIT_LANDSCAPE_NAME_1_B + +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_ON_HOLD_TXT_L MULTICALL_SPLIT_LANDSCAPE_SWAP_CID_1_L +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_ON_HOLD_TXT_R MULTICALL_SPLIT_LANDSCAPE_SWAP_CID_1_R +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_ON_HOLD_TXT_T MULTICALL_SPLIT_LANDSCAPE_ON_HOLD_TXT_T +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_ON_HOLD_TXT_B MULTICALL_SPLIT_LANDSCAPE_ON_HOLD_TXT_T + +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_TIMER_L MULTICALL_SPLIT_LANDSCAPE_SWAP_CID_2_L +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_TIMER_R MULTICALL_SPLIT_LANDSCAPE_SWAP_CID_2_R +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_TIMER_T MULTICALL_SPLIT_LANDSCAPE_TIMER_T +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_TIMER_B MULTICALL_SPLIT_LANDSCAPE_TIMER_B + +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_TIMER_WITH_ICON_L MULTICALL_SPLIT_LANDSCAPE_SWAP_CID_2_L +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_TIMER_WITH_ICON_R REL_LSCAPE_W(LSCAPE_SPLIT_SWAP_CID2_L_PAD+LSCAPE_SPLIT_TIMER_TXT_W_ICON_WIDTH) +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_TIMER_WITH_ICON_T MULTICALL_SPLIT_LANDSCAPE_TIMER_T +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_TIMER_WITH_ICON_B MULTICALL_SPLIT_LANDSCAPE_TIMER_B + +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_MORE_ICON_L REL_LSCAPE_W(LSCAPE_SPLIT_SWAP_MORE_BTN_L_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_MORE_ICON_R REL_LSCAPE_W(LSCAPE_SPLIT_SWAP_MORE_BTN_L_PAD+LSCAPE_SPLIT_SWAP_MORE_BTN_WIDTH) +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_MORE_ICON_T REL_LSCAPE_H(LSCAPE_SPLIT_SWAP_MORE_BTN_T_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_SWAP_MORE_ICON_B REL_LSCAPE_H(LSCAPE_SPLIT_SWAP_MORE_BTN_T_PAD+LSCAPE_SPLIT_SWAP_MORE_BTN_HEIGHT) +/* L[HLD] + R[ACT] */ + +#define MULTICALL_SPLIT_LANDSCAPE_JOIN_L REL_LSCAPE_W(LSCAPE_SPLIT_JOIN_BTN_L_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_JOIN_R REL_LSCAPE_W(LSCAPE_SPLIT_JOIN_BTN_L_PAD+LSCAPE_SPLIT_JOIN_BTN_WIDTH) +#define MULTICALL_SPLIT_LANDSCAPE_JOIN_T REL_LSCAPE_H(LSCAPE_SPLIT_JOIN_BTN_T_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_JOIN_B REL_LSCAPE_H(LSCAPE_SPLIT_JOIN_BTN_T_PAD+LSCAPE_SPLIT_JOIN_BTN_HEIGHT) + +#define MULTICALL_SPLIT_LANDSCAPE_BIG_END_L REL_LSCAPE_W(LSCAPE_SPLIT_BIG_END_BTN_L_PAD) +#define MULTICALL_SPLIT_LANDSCAPE_BIG_END_R REL_LSCAPE_W(LSCAPE_SPLIT_BIG_END_BTN_L_PAD+LSCAPE_SPLIT_BIG_END_BTN_WIDTH) +#define MULTICALL_SPLIT_LANDSCAPE_BIG_END_T MULTICALL_SPLIT_LANDSCAPE_JOIN_T +#define MULTICALL_SPLIT_LANDSCAPE_BIG_END_B MULTICALL_SPLIT_LANDSCAPE_JOIN_B +/* + * End of MULTI-CALL SPLIT View + */ + +/* + * QUICK-PANEL layout + * In Portrait mode + */ +#define LSCAPE_QUICKPANEL_CID_L REL_LSCAPE_QP_W(LSCAPE_QP_CID_L_PAD) +#define LSCAPE_QUICKPANEL_CID_R REL_LSCAPE_QP_W(LSCAPE_QP_CID_L_PAD+LSCAPE_QP_CID_WIDTH) +#define LSCAPE_QUICKPANEL_CID_T REL_LSCAPE_QP_H(LSCAPE_QP_CID_T_PAD) +#define LSCAPE_QUICKPANEL_CID_B REL_LSCAPE_QP_H(LSCAPE_QP_CID_T_PAD+LSCAPE_QP_CID_HEIGHT) + +#define LSCAPE_QUICKPANEL_BTN_MUTE_L REL_LSCAPE_QP_W(LSCAPE_QP_MUTE_BTN_L_PAD) +#define LSCAPE_QUICKPANEL_BTN_MUTE_R REL_LSCAPE_QP_W(LSCAPE_QP_MUTE_BTN_L_PAD+LSCAPE_QP_END_BTN_WIDTH) +#define LSCAPE_QUICKPANEL_BTN_MUTE_T REL_LSCAPE_QP_H(LSCAPE_QP_MUTE_BTN_T_PAD) +#define LSCAPE_QUICKPANEL_BTN_MUTE_B REL_LSCAPE_QP_H(LSCAPE_QP_MUTE_BTN_T_PAD+LSCAPE_QP_END_BTN_HEIGHT) + +#define LSCAPE_QUICKPANEL_BTN_END_L REL_LSCAPE_QP_W(LSCAPE_QP_END_BTN_L_PAD) +#define LSCAPE_QUICKPANEL_BTN_END_R REL_LSCAPE_QP_W(LSCAPE_QP_END_BTN_L_PAD+LSCAPE_QP_END_BTN_WIDTH) +#define LSCAPE_QUICKPANEL_BTN_END_T REL_LSCAPE_QP_H(LSCAPE_QP_END_BTN_T_PAD) +#define LSCAPE_QUICKPANEL_BTN_END_B REL_LSCAPE_QP_H(LSCAPE_QP_END_BTN_T_PAD+LSCAPE_QP_END_BTN_HEIGHT) + +#define LSCAPE_QUICKPANEL_NAME_L REL_LSCAPE_QP_W(LSCAPE_QP_NAME_L_PAD) +#define LSCAPE_QUICKPANEL_NAME_R REL_LSCAPE_QP_W(LSCAPE_QP_NAME_L_PAD+LSCAPE_QP_NAME_WIDTH) +#define LSCAPE_QUICKPANEL_NAME_T REL_LSCAPE_QP_H(LSCAPE_QP_NAME_T_PAD) +#define LSCAPE_QUICKPANEL_NAME_B REL_LSCAPE_QP_H(LSCAPE_QP_NAME_T_PAD+LSCAPE_QP_NAME_HEIGHT) + +/* + * Caller info layout + * In Portrait mode + */ + +#define CALLER_INFO_L REL_W(CALLER_INFO_L_PAD) +#define CALLER_INFO_R REL_W(CALLER_INFO_L_PAD+CALLER_INFO_WIDTH) +#define CALLER_INFO_T REL_H(CALLER_INFO_T_PAD) +#define CALLER_INFO_B REL_H(CALLER_INFO_T_PAD+CALLER_INFO_HEIGHT) + +#define CALLER_INFO_HOLD_L REL_W(CALLER_INFO_L_PAD) +#define CALLER_INFO_HOLD_R REL_W(CALLER_INFO_L_PAD+CALLER_INFO_WIDTH) +#define CALLER_INFO_HOLD_T REL_H(CALLER_INFO_HOLD_T_PAD) +#define CALLER_INFO_HOLD_B REL_H(CALLER_INFO_HOLD_T_PAD+CALLER_INFO_HEIGHT) + +#define CALLER_INFO_TOP_L REL_W(0) +#define CALLER_INFO_TOP_R REL_W(MAIN_SCREEN_W) +#define CALLER_INFO_TOP_T REL_CALLER_INFO_H(0) +#define CALLER_INFO_TOP_B REL_CALLER_INFO_H(CALLER_INFO_TOP_PAD_HEIGHT) + +#define CALLER_INFO_NAME_L REL_W(CALLER_INFO_NAME_L_PAD) +#define CALLER_INFO_NAME_R REL_W(CALLER_INFO_NAME_L_PAD+CALLER_INFO_NAME_WIDTH) +#define CALLER_INFO_NAME_T REL_CALLER_INFO_H(CALLER_INFO_NAME_T_PAD) +#define CALLER_INFO_NAME_B REL_CALLER_INFO_H(CALLER_INFO_NAME_T_PAD+CALLER_INFO_NAME_HEIGHT) + +#define CALLER_INFO_VERT_SEP_1_L REL_W(CALLER_INFO_VERT_SEP_L_PAD) +#define CALLER_INFO_VERT_SEP_1_R REL_W(CALLER_INFO_VERT_SEP_L_PAD+CALLER_INFO_VERT_SEP_WIDTH) +#define CALLER_INFO_VERT_SEP_1_T REL_CALLER_INFO_H(CALLER_INFO_VERT_SEP_T_PAD) +#define CALLER_INFO_VERT_SEP_1_B REL_CALLER_INFO_H(CALLER_INFO_VERT_SEP_T_PAD+CALLER_INFO_VERT_SEP_HEIGHT) +#define CALLER_INFO_VERT_SEP_2_L CALLER_INFO_VERT_SEP_1_R +#define CALLER_INFO_VERT_SEP_2_R REL_W(CALLER_INFO_VERT_SEP_L_PAD+2*CALLER_INFO_VERT_SEP_WIDTH) +#define CALLER_INFO_VERT_SEP_2_T CALLER_INFO_VERT_SEP_1_T +#define CALLER_INFO_VERT_SEP_2_B CALLER_INFO_VERT_SEP_1_B + +#define CALLER_INFO_ICON_L REL_W(CALLER_INFO_ICON_L_PAD) +#define CALLER_INFO_ICON_R REL_W(CALLER_INFO_ICON_L_PAD+CALLER_INFO_ICON_WIDTH) +#define CALLER_INFO_ICON_T REL_CALLER_INFO_H(CALLER_INFO_ICON_T_PAD) +#define CALLER_INFO_ICON_B REL_CALLER_INFO_H(CALLER_INFO_ICON_T_PAD+CALLER_INFO_ICON_HEIGHT) + +#define CALLER_INFO_NUMBER_L REL_W(CALLER_INFO_NUMBER_L_PAD) +#define CALLER_INFO_NUMBER_R REL_W(CALLER_INFO_NUMBER_L_PAD+CALL_NUMBER_WIDTH) +#define CALLER_INFO_NUMBER_T REL_CALLER_INFO_H(CALLER_INFO_NUMBER_T_PAD) +#define CALLER_INFO_NUMBER_B REL_CALLER_INFO_H(CALLER_INFO_NUMBER_T_PAD+CALLER_INFO_NUMBER_HEIGHT) + +#define CALLER_INFO_TIMER_L REL_W(CALLER_INFO_TIME_L_PAD) +#define CALLER_INFO_TIMER_R REL_W(CALLER_INFO_TIME_L_PAD+CALLER_INFO_TIME_WIDTH) +#define CALLER_INFO_TIMER_T REL_CALLER_INFO_H(CALLER_INFO_TIME_T_PAD) +#define CALLER_INFO_TIMER_B REL_CALLER_INFO_H(CALLER_INFO_TIME_T_PAD+CALLER_INFO_TIME_HEIGHT) + +/* + * End of Caller info layout + */ + +/* + * Ctxpoup layout + * In Portrait mode + */ + +#define MORE_MENU_CTXPOPUP_ROW_H 97 +#define MORE_MENU_CTXPOPUP_ROW_ICON_W 64 +#define MORE_MENU_CTXPOPUP_ROW_ICON_H 64 +#define MORE_MENU_CTXPOPUP_ROW_ICON_PAD 16 + +#define MORE_MENU_CTXPOPUP_SEPARATOR_W 478 +#define MORE_MENU_CTXPOPUP_SEPARATOR_H 1 + +#define MORE_MENU_CTXPOPUP_ARROW_W 42 +#define MORE_MENU_CTXPOPUP_ARROW_H 22 + +#define MORE_MENU_CTXPOPUP_SHADOW_PADDING 3 +#define MORE_MENU_CTXPOPUP_PADDING 10 + +/* + * End of Ctxpoup layout + */ + + +/* + * SNS alerts layout + */ +#define ALERTS_BDAY_ICON_L REL_ALERTS_LY_W(BIRTHDAY_ICON_L_PAD) +#define ALERTS_BDAY_ICON_R REL_ALERTS_LY_W(BIRTHDAY_ICON_L_PAD+BIRTHDAY_ICON_WIDTH) +#define ALERTS_BDAY_ICON_T REL_ALERTS_LY_H(BIRTHDAY_ICON_T_PAD) +#define ALERTS_BDAY_ICON_B REL_ALERTS_LY_H(BIRTHDAY_ICON_T_PAD+BIRTHDAY_ICON_HEIGHT) + +#define ALERTS_BDAY_ICON_EXPANDED_T REL_ALERTS_EXP_LY_H(BIRTHDAY_ICON_T_PAD) +#define ALERTS_BDAY_ICON_EXPANDED_B REL_ALERTS_EXP_LY_H(BIRTHDAY_ICON_T_PAD+BIRTHDAY_ICON_HEIGHT) + +#define ALERTS_BDAY_TEXT_L REL_ALERTS_LY_W(BIRTHDAY_TEXT_L_PAD) +#define ALERTS_BDAY_TEXT_R REL_ALERTS_LY_W(BIRTHDAY_TEXT_L_PAD+BIRTHDAY_TEXT_WIDTH) +#define ALERTS_BDAY_TEXT_T REL_ALERTS_LY_H(BIRTHDAY_TEXT_T_PAD) +#define ALERTS_BDAY_TEXT_B REL_ALERTS_LY_H(BIRTHDAY_TEXT_T_PAD+BIRTHDAY_TEXT_HEIGHT) + +#define ALERTS_BDAY_TEXT_EXPANDED_T REL_ALERTS_EXP_LY_H(BIRTHDAY_TEXT_T_PAD) +#define ALERTS_BDAY_TEXT_EXPANDED_B REL_ALERTS_EXP_LY_H(BIRTHDAY_TEXT_T_PAD+BIRTHDAY_TEXT_HEIGHT) + +#define ALERTS_SNS_ICON_L REL_ALERTS_LY_W(SNS_STATUS_ICON_L_PAD) +#define ALERTS_SNS_ICON_R REL_ALERTS_LY_W(SNS_STATUS_ICON_L_PAD+SNS_STATUS_ICON_WIDTH) +#define ALERTS_SNS_ICON_T REL_ALERTS_LY_H(SNS_STATUS_ICON_T_PAD) +#define ALERTS_SNS_ICON_B REL_ALERTS_LY_H(SNS_STATUS_ICON_T_PAD+SNS_STATUS_ICON_HEIGHT) + +#define ALERTS_SNS_ICON_EXPANDED_T REL_ALERTS_EXP_LY_H(SNS_STATUS_ICON_T_PAD) +#define ALERTS_SNS_ICON_EXPANDED_B REL_ALERTS_EXP_LY_H(SNS_STATUS_ICON_T_PAD+SNS_STATUS_ICON_HEIGHT) + +#define ALERTS_SNS_TEXT_L REL_ALERTS_LY_W(SNS_STATUS_TEXT_L_PAD) +#define ALERTS_SNS_TEXT_R REL_ALERTS_LY_W(SNS_STATUS_TEXT_L_PAD+SNS_STATUS_TEXT_WIDTH) +#define ALERTS_SNS_TEXT_T REL_ALERTS_LY_H(SNS_STATUS_TEXT_T_PAD) +#define ALERTS_SNS_TEXT_B REL_ALERTS_LY_H(SNS_STATUS_TEXT_T_PAD+SNS_STATUS_TEXT_HEIGHT) + +#define ALERTS_SNS_EXPANDED_TEXT_L REL_ALERTS_LY_W(SNS_STATUS_TEXT_L_PAD) +#define ALERTS_SNS_EXPANDED_TEXT_R REL_ALERTS_LY_W(SNS_STATUS_TEXT_L_PAD+SNS_STATUS_EXPANDED_TEXT_WIDTH) +#define ALERTS_SNS_EXPANDED_TEXT_T REL_ALERTS_EXP_LY_H(SNS_STATUS_TEXT_T_PAD) +#define ALERTS_SNS_EXPANDED_TEXT_B REL_ALERTS_EXP_LY_H(SNS_STATUS_TEXT_T_PAD+SNS_STATUS_EXPANDED_TEXT_HEIGHT) + +#define ALERTS_SNS_ARROW_L REL_ALERTS_LY_W(SNS_STATUS_ARROW_L_PAD) +#define ALERTS_SNS_ARROW_R REL_ALERTS_LY_W(SNS_STATUS_ARROW_L_PAD+SNS_STATUS_ARROW_WIDTH) +#define ALERTS_SNS_ARROW_T REL_ALERTS_LY_H(SNS_STATUS_ARROW_T_PAD) +#define ALERTS_SNS_ARROW_B REL_ALERTS_LY_H(SNS_STATUS_ARROW_T_PAD+SNS_STATUS_ARROW_HEIGHT) + +#define ALERTS_SNS_EXPANDED_ARROW_T REL_ALERTS_EXP_LY_H(SNS_STATUS_ARROW_T_PAD) +#define ALERTS_SNS_EXPANDED_ARROW_B REL_ALERTS_EXP_LY_H(SNS_STATUS_ARROW_T_PAD+SNS_STATUS_ARROW_HEIGHT) +/* + * End of SNS alerts layout + */ +#endif /*_VCUI_VIEW_LAYOUT_HD_H_*/ diff --git a/ui/src/include/vcui-view-multi-call-conf.h b/ui/src/include/vcui-view-multi-call-conf.h new file mode 100755 index 0000000..9cc3b48 --- /dev/null +++ b/ui/src/include/vcui-view-multi-call-conf.h @@ -0,0 +1,33 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#ifndef _VCUI_VIEW_MULTI_CALL_CONF_H_ +#define _VCUI_VIEW_MULTI_CALL_CONF_H_ + + +voice_call_view_data_t *_vcui_view_multi_call_conf_new(vcui_app_call_data_t *ad); +int _vcui_view_multi_call_conf_check_valid_eo(voice_call_view_data_t *vd); +Evas_Object *_vcui_view_multi_call_conf_get_main_layout(voice_call_view_data_t *vd); +int _vcui_view_multi_call_conf_get_call_status(voice_call_view_data_t *vd); +void _vcui_view_multi_call_conf_set_call_timer(voice_call_view_data_t *vd, char *pcall_dur); +Evas_Object *_vcui_view_multi_call_conf_get_button_layout(voice_call_view_data_t *vd); +Evas_Object *_vcui_view_multi_call_conf_get_cid_layout(voice_call_view_data_t *vd); +int _vcui_view_multi_call_conf_get_total_members(voice_call_view_data_t *vd); +Evas_Object *_vc_ui_view_multi_call_conf_get_caller_info(voice_call_view_data_t *vd); + +#endif /*_VCUI_VIEW_MULTI_CALL_CONF_H_*/ + diff --git a/ui/vcui-view-multi-call-list.h b/ui/src/include/vcui-view-multi-call-list.h similarity index 55% rename from ui/vcui-view-multi-call-list.h rename to ui/src/include/vcui-view-multi-call-list.h index 1561a93..d1dc62b 100755 --- a/ui/vcui-view-multi-call-list.h +++ b/ui/src/include/vcui-view-multi-call-list.h @@ -15,24 +15,15 @@ */ -#ifndef _VCUI_VIEW_MULTI_CALL_LIST_ -#define _VCUI_VIEW_MULTI_CALL_LIST_ +#ifndef _VCUI_VIEW_MULTI_CALL_LIST_H_ +#define _VCUI_VIEW_MULTI_CALL_LIST_H_ -typedef struct { - Evas_Object *navi_frame; - Evas_Object *contents; - - Evas_Object *ic; - - Evas_Object *record_btn; - - vcui_app_call_status_t call_status; - - Evas_Object *multibox_gl; - - int total_members; -} vcui_view_multi_call_list_priv_t; - -#endif voice_call_view_data_t *_vcui_view_multi_call_list_new(vcui_app_call_data_t *ad); +int _vcui_view_multi_call_list_check_valid_eo(voice_call_view_data_t *vd); +Evas_Object *_vcui_view_multi_call_list_get_main_layout(voice_call_view_data_t *vd); +int _vcui_view_multi_call_list_get_call_status(voice_call_view_data_t *vd); +void _vcui_view_multi_call_list_set_call_timer(voice_call_view_data_t *vd, char *pcall_dur); +Evas_Object *_vcui_view_multi_call_list_get_cid_layout(voice_call_view_data_t *vd); +int _vcui_view_multi_call_list_get_total_members(voice_call_view_data_t *vd); +#endif diff --git a/ui/vcui-view-multi-call-split.h b/ui/src/include/vcui-view-multi-call-split.h similarity index 51% rename from ui/vcui-view-multi-call-split.h rename to ui/src/include/vcui-view-multi-call-split.h index 39b2750..58a92e8 100755 --- a/ui/vcui-view-multi-call-split.h +++ b/ui/src/include/vcui-view-multi-call-split.h @@ -15,22 +15,17 @@ */ -#ifndef _VOICE_CALL_UI_INCALL_MULTI_VIEW_SPLIT_ -#define _VOICE_CALL_UI_INCALL_MULTI_VIEW_SPLIT_ +#ifndef _VCUI_VIEW_MULTI_CALL_SPLIT_H_ +#define _VCUI_VIEW_MULTI_CALL_SPLIT_H_ -typedef struct { - Evas_Object *contents; - - Evas_Object *ic_incall; - Evas_Object *ic_onhold; - - Evas_Object *record_btn; - - call_data_t *now_data_hold; - call_data_t *now_data_unhold; - -} incall_multi_view_split_priv_t; voice_call_view_data_t *_vcui_view_multi_call_split_new(vcui_app_call_data_t *ad); -#endif +void _vcui_multi_view_split_rotation_with_resize(); +int _vcui_view_multi_call_split_check_valid_eo(voice_call_view_data_t *vd); +Evas_Object *_vcui_view_multi_call_split_get_layout(voice_call_view_data_t *vd); +Evas_Object *_vcui_view_multi_call_split_get_button_layout(voice_call_view_data_t *vd); +void _vcui_view_multi_call_split_set_call_timer(voice_call_view_data_t *vd, char *pcall_dur); +Evas_Object *_vc_ui_view_multi_call_split_get_caller_info_hold(voice_call_view_data_t *vd); +Evas_Object *_vc_ui_view_multi_call_split_get_caller_info_unhold(voice_call_view_data_t *vd); +#endif diff --git a/ui/vcui-view-popup.h b/ui/src/include/vcui-view-popup.h similarity index 72% rename from ui/vcui-view-popup.h rename to ui/src/include/vcui-view-popup.h index a912006..ec422b3 100755 --- a/ui/vcui-view-popup.h +++ b/ui/src/include/vcui-view-popup.h @@ -15,29 +15,31 @@ */ -#ifndef _VOICE_CALL_UI_POPUP_VIEW_ -#define _VOICE_CALL_UI_POPUP_VIEW_ +#ifndef _VCUI_VIEW_POPUP_H_ +#define _VCUI_VIEW_POPUP_H_ void _vcui_view_popup_unload(Evas_Object *popup_eo); void _vcui_view_popup_load(char *popup_msg, double time_out, int bterminate); void _vcui_view_popup_replace(char *popup_msg, double time_out, int bterminate); - void _vcui_view_popup_vol_ringtone(int vol_level); void _vcui_view_popup_vol_voice(int vol_level); void _vcui_view_popup_vol_bt(int vol_level); - void _vcui_view_popup_load_reject_call(char *name, char *number, int end_app); void _vcui_view_popup_load_endcall_time(call_data_t *cd); void _vcui_view_popup_load_redial(void); - void _vcui_view_popup_load_with_delay(char *popup_msg, double delay_time); - void _vcui_view_popup_load_sending_dtmf(char *status_string, char *dtmf_num); void _vcui_view_popup_unload_progress(vcui_app_call_data_t *ad); void _vcui_view_popup_load_progress(char *display_string); - -void _vcui_view_popup_load_snd_path(void); - +void _vcui_view_popup_load_snd_path(void *data); void _vcui_view_create_ticker_noti(char *ticker_msg); +void _vcui_view_popup_load_share(void *data); +void _vcui_view_load_send_dtmf_popup_with_buttons(char *status_string, char *dtmf_num); + +void _vcui_view_popup_second_mtcall_load(char *title_text, int unhold_call_count, int hold_call_count); +void _vcui_view_popup_second_mtcall_unload(void *data); +void _vcui_view_set_second_mtcall_popup_data(void *p_popup_data); +void *_vcui_view_get_second_mtcall_popup_data(void); +void _vcui_view_popup_load_more_option(void *data); #endif diff --git a/ui/vcui-view-incoming.h b/ui/src/include/vcui-view-quickpanel.h similarity index 56% rename from ui/vcui-view-incoming.h rename to ui/src/include/vcui-view-quickpanel.h index baaad16..adebce9 100755 --- a/ui/vcui-view-incoming.h +++ b/ui/src/include/vcui-view-quickpanel.h @@ -1,34 +1,27 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.tizenopensource.org/license - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -#ifndef _VOICE_CALL_UI_INCOMING_VIEW_ -#define _VOICE_CALL_UI_INCOMING_VIEW_ - -typedef struct { - Evas_Object *contents; - - call_data_t *now_data; - Evas_Object *ic; - - int bdont_refresh; - int bselected_btn; - -} incoming_view_priv_t; - -voice_call_view_data_t *_vcui_view_incoming_new(vcui_app_call_data_t *ad); - -#endif +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#ifndef __VCUI_VIEW_QUICKPANEL_H_ +#define __VCUI_VIEW_QUICKPANEL_H_ + +voice_call_view_data_t *_vcui_view_qp_new(vcui_app_call_data_t * ad); +void _vcui_view_qp_update_text_status(voice_call_view_data_t *vd, char *txt_status); +void _vc_ui_view_qp_set_call_timer(Evas_Object *qp_layout, char *pcall_timer); +void _vcui_view_qp_install_window(voice_call_view_data_t *vd); +void _vcui_view_qp_uninstall_window(voice_call_view_data_t *vd); + +#endif /*__VCUI_VIEW_QUICKPANEL_H_*/ diff --git a/ui/vcui-view-single-call.h b/ui/src/include/vcui-view-single-call.h similarity index 55% rename from ui/vcui-view-single-call.h rename to ui/src/include/vcui-view-single-call.h index e5aced4..29b4283 100755 --- a/ui/vcui-view-single-call.h +++ b/ui/src/include/vcui-view-single-call.h @@ -15,15 +15,16 @@ */ -#ifndef _VCUI_VIEW_SINGLE_CALL_ -#define _VCUI_VIEW_SINGLE_CALL_ - -typedef struct { - Evas_Object *contents; - Evas_Object *ic; - Evas_Object *record_btn; - call_data_t *now_data; -} incall_one_view_priv_t; +#ifndef _VCUI_VIEW_SINGLE_CALL_H_ +#define _VCUI_VIEW_SINGLE_CALL_H_ + voice_call_view_data_t *_vc_ui_view_single_call_new(vcui_app_call_data_t *ad); +int _vc_ui_view_single_call_check_valid_eo(voice_call_view_data_t *vd); +Evas_Object *_vc_ui_view_single_call_get_layout(voice_call_view_data_t *vd); +Evas_Object *_vc_ui_view_single_call_get_button_layout(voice_call_view_data_t *vd); +int _vc_ui_view_single_call_get_call_status(voice_call_view_data_t *vd); +void _vc_ui_view_single_call_set_call_timer(voice_call_view_data_t *vd, char *pcall_dur); +Evas_Object *_vc_ui_view_single_call_get_caller_info(voice_call_view_data_t *vd); + #endif diff --git a/ui/vcui-app-window.c b/ui/src/vcui-app-window.c similarity index 60% rename from ui/vcui-app-window.c rename to ui/src/vcui-app-window.c index 0b864ab..b3e4bd8 100755 --- a/ui/vcui-app-window.c +++ b/ui/src/vcui-app-window.c @@ -16,14 +16,15 @@ #include "vcui-app-window.h" +#include "vcui-view-quickpanel.h" -static void __vcui_app_win_focus_in_cb(void *data, Evas_Object *obj, void *event_info); -static void __vcui_app_win_focus_out_cb(void *data, Evas_Object *obj, void *event_info); +static Eina_Bool __vcui_app_win_focus_in_cb(void *data, int type, void *event); +static Eina_Bool __vcui_app_win_focus_out_cb(void *data, int type, void *event); static void __vcui_app_win_main_win_del_cb(void *data, Evas_Object *obj, void *event); static Eina_Bool __vcui_app_win_hard_key_down_cb(void *data, int type, void *event); static Eina_Bool __vcui_app_win_hard_key_up_cb(void *data, int type, void *event); static Eina_Bool __vcui_app_win_mouse_down_cb(void *data, int type, void *event); -static Eina_Bool __vcui_app_win_longpress_mute_timer_cb(void *data); +/*static Eina_Bool __vcui_app_win_longpress_mute_timer_cb(void *data);*/ static Eina_Bool __vcui_app_win_volup_key_longpress_timer_cb(void *data); static Eina_Bool __vcui_app_win_voldown_key_longpress_timer_cb(void *data); @@ -39,21 +40,51 @@ Evas_Object *_vcui_app_win_create_main(vcui_app_call_data_t *ad, const char *nam ecore_x_window_size_get(ecore_x_window_root_first_get(), &ad->root_w, &ad->root_h); evas_object_resize(eo, ad->root_w, ad->root_h); elm_win_indicator_mode_set(eo, ELM_WIN_INDICATOR_SHOW); - evas_object_smart_callback_add(eo, "focus-in", __vcui_app_win_focus_in_cb, ad); - evas_object_smart_callback_add(eo, "focus-out", __vcui_app_win_focus_out_cb, ad); } return eo; } -static void __vcui_app_win_focus_in_cb(void *data, Evas_Object *obj, void *event_info) +static Eina_Bool __vcui_app_win_focus_in_cb(void *data, int type, void *event) { CALL_UI_DEBUG(".."); + vcui_app_call_data_t *ad = (vcui_app_call_data_t *)data; + Ecore_X_Event_Window_Focus_Out *ev = (Ecore_X_Event_Window_Focus_Out *)event; + + if (ad == NULL) { + CALL_UI_DEBUG("ad == NULL"); + return ECORE_CALLBACK_CANCEL; + } + + if (ad->win_main!= NULL && ev->win == elm_win_xwindow_get(ad->win_main)) { + CALL_UI_DEBUG("Uninstall quick-panel view"); + _vcui_view_qp_uninstall_window(ad->view_st[VIEW_QUICKPANEL_VIEW]); + } + + CALL_UI_DEBUG("__win_focus_in_cb leave"); + + return ECORE_CALLBACK_PASS_ON; } -static void __vcui_app_win_focus_out_cb(void *data, Evas_Object *obj, void *event_info) +static Eina_Bool __vcui_app_win_focus_out_cb(void *data, int type, void *event) { CALL_UI_DEBUG(".."); + vcui_app_call_data_t *ad = (vcui_app_call_data_t *)data; + Ecore_X_Event_Window_Focus_Out *ev = (Ecore_X_Event_Window_Focus_Out *)event; + + if (ad == NULL) { + CALL_UI_DEBUG("ad == NULL"); + return ECORE_CALLBACK_CANCEL; + } + + if (ad->win_main != NULL && ev->win == elm_win_xwindow_get(ad->win_main)) { + CALL_UI_DEBUG("install quick-panel view"); + _vcui_view_qp_install_window(ad->view_st[VIEW_QUICKPANEL_VIEW]); + } + + CALL_UI_DEBUG("__win_focus_out_cb leave"); + + return ECORE_CALLBACK_PASS_ON; } static void __vcui_app_win_main_win_del_cb(void *data, Evas_Object *obj, void *event) @@ -66,14 +97,16 @@ static Eina_Bool __vcui_app_win_hard_key_down_cb(void *data, int type, void *eve { CALL_UI_DEBUG(".."); - vcui_app_call_data_t *ad = (vcui_app_call_data_t *) data; + vcui_app_call_data_t *ad = (vcui_app_call_data_t *)data; Ecore_Event_Key *ev = event; + gboolean banswering_enabled = EINA_FALSE; + gboolean bpowerkey_enabled = EINA_FALSE; retvm_if(ev == NULL, 0, "ERROR!!! ========= Event is NULL!!!"); if (ad->view_top == -1) { CALL_UI_DEBUG("ad->view_top is -1."); -#ifndef END_KEY_PROCESSING +#ifdef SEND_END_TO_UG if ((ad->contact_ug != NULL) && (!strcmp(ev->keyname, KEY_END))) { CALL_UI_DEBUG("send end key to contact ug."); ug_send_key_event(UG_KEY_EVENT_END); @@ -82,29 +115,67 @@ static Eina_Bool __vcui_app_win_hard_key_down_cb(void *data, int type, void *eve return EINA_FALSE; } - if (!strcmp(ev->keyname, KEY_VOLUMEUP)) { + if (!strcmp(ev->keyname, KEY_POWER)) { + bpowerkey_enabled = _vcui_is_powerkey_mode_on(); + CALL_UI_DEBUG("[KEY]KEY_POWER pressed, bpowerkey_enabled(%d)", bpowerkey_enabled); + if (bpowerkey_enabled == EINA_TRUE) { + CALL_UI_DEBUG("Lock the LCD state to ON..."); + vcall_engine_device_control_lcd_state(VC_LCD_ON_LOCK); + + if (ad->view_st[ad->view_top]->type == VIEW_DIALLING_VIEW) { + if (ad->ball_view_hide) { + CALL_UI_DEBUG("VCUI_RQST_REDIAL_STOP !!"); + vcall_engine_process_auto_redial(EINA_FALSE); + elm_exit(); + } else { + vcall_engine_cancel_call(); + } + } else if (ad->view_st[ad->view_top]->type == VIEW_INCOMING_LOCK_VIEW) { + vcall_engine_reject_call(); + } else if ((ad->view_st[ad->view_top]->type >= VIEW_INCALL_ONECALL_VIEW) + && (ad->view_st[ad->view_top]->type <= VIEW_INCALL_MULTICALL_LIST_VIEW)) { + vcall_engine_release_call_by_type(VCALL_ENGINE_RELEASE_ALL_CALLS); + } else { + CALL_UI_DEBUG("nothing..."); + } + } + } else if (!strcmp(ev->keyname, KEY_VOLUMEUP)) { CALL_UI_DEBUG("[KEY]KEY_VOLUMEUP pressed"); - if ((ad->view_st[ad->view_top]->type == VIEW_INCOMING_VIEW) || (ad->view_st[ad->view_top]->type == VIEW_INCOMING_LOCK_VIEW)) { - _vcui_engine_interface_process_mute_alert(); + if (ad->view_st[ad->view_top]->type == VIEW_INCOMING_LOCK_VIEW) { + vcall_engine_mute_alert(); ad->bmute_ringtone = EINA_TRUE; } else { ad->vol_longpress_cnt = 0; - if (_voicecall_dvc_get_proximity_sensor_state() != VCALL_SENSOR_NEAR) - _voicecall_dvc_control_lcd_state(VC_LCD_ON); - _vcui_set_volume(VAL_VOL_UP); - ad->volup_key_longpress_timer = ecore_timer_add(VOLUME_KEY_LONG_PRESS_TIMEOUT, __vcui_app_win_volup_key_longpress_timer_cb, ad); + vcall_engine_device_control_lcd_state(VC_LCD_ON); + { + _vcui_set_volume(VAL_VOL_UP); + ad->volup_key_longpress_timer = ecore_timer_add(VOLUME_KEY_LONG_PRESS_TIMEOUT, __vcui_app_win_volup_key_longpress_timer_cb, ad); + } } } else if (!strcmp(ev->keyname, KEY_VOLUMEDOWN)) { CALL_UI_DEBUG("[KEY]KEY_VOLUMEDOWN pressed"); - if ((ad->view_st[ad->view_top]->type == VIEW_INCOMING_VIEW) || (ad->view_st[ad->view_top]->type == VIEW_INCOMING_LOCK_VIEW)) { - _vcui_engine_interface_process_mute_alert(); + if (ad->view_st[ad->view_top]->type == VIEW_INCOMING_LOCK_VIEW) { + vcall_engine_mute_alert(); ad->bmute_ringtone = EINA_TRUE; } else { ad->vol_longpress_cnt = 0; - if (_voicecall_dvc_get_proximity_sensor_state() != VCALL_SENSOR_NEAR) - _voicecall_dvc_control_lcd_state(VC_LCD_ON); - _vcui_set_volume(VAL_VOL_DOWN); - ad->voldown_key_longpress_timer = ecore_timer_add(VOLUME_KEY_LONG_PRESS_TIMEOUT, __vcui_app_win_voldown_key_longpress_timer_cb, ad); + vcall_engine_device_control_lcd_state(VC_LCD_ON); + { + _vcui_set_volume(VAL_VOL_DOWN); + ad->voldown_key_longpress_timer = ecore_timer_add(VOLUME_KEY_LONG_PRESS_TIMEOUT, __vcui_app_win_voldown_key_longpress_timer_cb, ad); + } + } + } else if (!strcmp(ev->keyname, KEY_SELECT)) { + banswering_enabled = _vcui_is_answering_mode_on(); + CALL_UI_DEBUG("[KEY]KEY_SELECT pressed"); + if (banswering_enabled == EINA_TRUE) { + if (ad->view_st[ad->view_top]->type == VIEW_INCOMING_LOCK_VIEW) { + CALL_UI_DEBUG("Answering mode on and Home key pressed on MT screen"); + + if (_vcui_is_phonelock_status() == EINA_FALSE) + vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, VCONFKEY_IDLE_UNLOCK); + vcall_engine_answer_call(); + } } } @@ -116,7 +187,7 @@ static Eina_Bool __vcui_app_win_hard_key_up_cb(void *data, int type, void *event { CALL_UI_DEBUG(".."); - vcui_app_call_data_t *ad = (vcui_app_call_data_t *) data; + vcui_app_call_data_t *ad = (vcui_app_call_data_t *)data; Ecore_Event_Key *ev = event; retvm_if(ev == NULL, 0, "ERROR!!! ========= Event is NULL!!!"); @@ -145,9 +216,7 @@ static Eina_Bool __vcui_app_win_hard_key_up_cb(void *data, int type, void *event static Eina_Bool __vcui_app_win_mouse_down_cb(void *data, int type, void *event) { - /*CALL_UI_DEBUG("..");*/ - - vcui_app_call_data_t *ad = (vcui_app_call_data_t *) data; + vcui_app_call_data_t *ad = (vcui_app_call_data_t *)data; Ecore_Event_Mouse_Button *ev = event; ad->touch_x = ev->x; @@ -175,19 +244,24 @@ void _vcui_app_win_key_grab(vcui_app_call_data_t *ad) if (ad->downkey_handler == NULL) ad->downkey_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, __vcui_app_win_hard_key_down_cb, ad); if (ad->upkey_handler == NULL) - ad->upkey_handler = ecore_event_handler_add(ECORE_EVENT_KEY_UP, __vcui_app_win_hard_key_up_cb, ad); /* (for long press)*/ + ad->upkey_handler = ecore_event_handler_add(ECORE_EVENT_KEY_UP, __vcui_app_win_hard_key_up_cb, ad); if (ad->mouse_evnt_handler == NULL) - ad->mouse_evnt_handler = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, __vcui_app_win_mouse_down_cb, ad); /*for ctxpopup*/ + ad->mouse_evnt_handler = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, __vcui_app_win_mouse_down_cb, ad); /*for ctxpopup */ + if (ad->focus_in == NULL) + ad->focus_in = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_IN, __vcui_app_win_focus_in_cb, ad); + if (ad->focus_out == NULL) + ad->focus_out = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_OUT, __vcui_app_win_focus_out_cb, ad); CALL_UI_KPI("_vcui_app_win_key_grab done"); } +#if 0 static Eina_Bool __vcui_app_win_longpress_mute_timer_cb(void *data) { CALL_UI_DEBUG(".."); - vcui_app_call_data_t *ad = (vcui_app_call_data_t *) data; - call_data_t *call_data = _vcui_doc_get_recent_mt(); + vcui_app_call_data_t *ad = (vcui_app_call_data_t *)data; + call_data_t *call_data = _vcui_doc_get_recent_mt_call_data(); if (call_data == NULL) return ECORE_CALLBACK_CANCEL; @@ -211,20 +285,21 @@ static Eina_Bool __vcui_app_win_longpress_mute_timer_cb(void *data) _vcui_view_popup_unload(ad->vol_ringtone_popup_eo); - _vcui_engine_interface_process_mute_alert(); + vcall_engine_mute_alert(); ad->bmute_ringtone = EINA_TRUE; return ECORE_CALLBACK_CANCEL; } +#endif static Eina_Bool __vcui_app_win_volup_key_longpress_timer_cb(void *data) { CALL_UI_DEBUG(".."); - vcui_app_call_data_t *ad = (vcui_app_call_data_t *) data; + vcui_app_call_data_t *ad = (vcui_app_call_data_t *)data; - if ((ad->view_st[ad->view_top]->type == VIEW_INCOMING_VIEW || ad->view_st[ad->view_top]->type == VIEW_INCOMING_LOCK_VIEW)) { - if((ad->ringtone_val == RINGTONE_MAX) || (ad->bmute_ringtone == EINA_TRUE)){ + if (ad->view_st[ad->view_top]->type == VIEW_INCOMING_LOCK_VIEW) { + if ((ad->ringtone_val == RINGTONE_MAX) || (ad->bmute_ringtone == EINA_TRUE)) { if (ad->volup_key_longpress_timer) { ecore_timer_del(ad->volup_key_longpress_timer); ad->volup_key_longpress_timer = NULL; @@ -232,7 +307,7 @@ static Eina_Bool __vcui_app_win_volup_key_longpress_timer_cb(void *data) return ECORE_CALLBACK_CANCEL; } } else if (ad->headset_status == EINA_TRUE) { - if(ad->bt_vol_val== BT_VOL_MAX) { + if (ad->bt_vol_val == BT_VOL_MAX) { if (ad->volup_key_longpress_timer) { ecore_timer_del(ad->volup_key_longpress_timer); ad->volup_key_longpress_timer = NULL; @@ -240,7 +315,7 @@ static Eina_Bool __vcui_app_win_volup_key_longpress_timer_cb(void *data) return ECORE_CALLBACK_CANCEL; } } else { - if(ad->voice_vol_val == VOICE_VOL_MAX) { + if (ad->voice_vol_val == VOICE_VOL_MAX) { if (ad->volup_key_longpress_timer) { ecore_timer_del(ad->volup_key_longpress_timer); ad->volup_key_longpress_timer = NULL; @@ -262,10 +337,10 @@ static Eina_Bool __vcui_app_win_voldown_key_longpress_timer_cb(void *data) { CALL_UI_DEBUG(".."); - vcui_app_call_data_t *ad = (vcui_app_call_data_t *) data; + vcui_app_call_data_t *ad = (vcui_app_call_data_t *)data; - if ((ad->view_st[ad->view_top]->type == VIEW_INCOMING_VIEW || ad->view_st[ad->view_top]->type == VIEW_INCOMING_LOCK_VIEW)) { - if((ad->ringtone_val == RINGTONE_MAX) || (ad->bmute_ringtone == EINA_TRUE)) { + if (ad->view_st[ad->view_top]->type == VIEW_INCOMING_LOCK_VIEW) { + if ((ad->ringtone_val == RINGTONE_MAX) || (ad->bmute_ringtone == EINA_TRUE)) { if (ad->voldown_key_longpress_timer) { ecore_timer_del(ad->voldown_key_longpress_timer); ad->voldown_key_longpress_timer = NULL; @@ -273,7 +348,7 @@ static Eina_Bool __vcui_app_win_voldown_key_longpress_timer_cb(void *data) return ECORE_CALLBACK_CANCEL; } } else if (ad->headset_status == EINA_TRUE) { - if(ad->bt_vol_val == BT_VOL_MIN) { + if (ad->bt_vol_val == BT_VOL_MIN) { if (ad->voldown_key_longpress_timer) { ecore_timer_del(ad->voldown_key_longpress_timer); ad->voldown_key_longpress_timer = NULL; @@ -281,7 +356,7 @@ static Eina_Bool __vcui_app_win_voldown_key_longpress_timer_cb(void *data) return ECORE_CALLBACK_CANCEL; } } else { - if(ad->voice_vol_val == VOICE_VOL_MIN) { + if (ad->voice_vol_val == VOICE_VOL_MIN) { if (ad->voldown_key_longpress_timer) { ecore_timer_del(ad->voldown_key_longpress_timer); ad->voldown_key_longpress_timer = NULL; @@ -292,7 +367,7 @@ static Eina_Bool __vcui_app_win_voldown_key_longpress_timer_cb(void *data) ad->vol_longpress_cnt++; - if((ad->vol_longpress_cnt % 3) == 0) { + if ((ad->vol_longpress_cnt % 3) == 0) { _vcui_set_volume(VAL_VOL_DOWN); } @@ -320,4 +395,3 @@ void _vcui_app_win_set_noti_type(int bwin_noti) } return; } - diff --git a/ui/src/vcui-application.c b/ui/src/vcui-application.c new file mode 100755 index 0000000..6b9995c --- /dev/null +++ b/ui/src/vcui-application.c @@ -0,0 +1,2195 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#include "vcui-application.h" +#include "vcui-app-window.h" +#include "vcui-app-data.h" +#include "vcui-document.h" + +#include "vcui-view-dialing.h" +#include "vcui-view-incoming-lock.h" +#include "vcui-view-keypad.h" +#include "vcui-view-single-call.h" +#include "vcui-view-multi-call-split.h" +#include "vcui-view-multi-call-conf.h" +#include "vcui-view-multi-call-list.h" +#include "vcui-view-callend.h" +#include "vcui-view-quickpanel.h" +#include "vcui-view-popup.h" +#include +#include +#include +#include +#ifdef SIGNAL_HANDLER +#include +#endif +#include "appsvc.h" +#include "voice-call-engine.h" + +static vcui_app_call_data_t global_ad; + +#ifdef SIGNAL_HANDLER +#define VCUI_SIG_NUM 12 +static struct sigaction vcui_app_sigact; +static struct sigaction vcui_app_sigoldact[VCUI_SIG_NUM]; +static int vcui_app_sig_to_handle[] = { SIGABRT, SIGBUS, SIGFPE, SIGILL, SIGQUIT, SIGSEGV, SIGSYS, SIGTRAP, SIGXCPU, SIGXFSZ, SIGTERM, SIGPIPE }; +#endif + +static gboolean g_avoid_multi_setup = EINA_FALSE; +static Eina_Bool __vcui_avoid_multi_setup_timer_cb(void *data); + +#define CALL_PKG_NAME "org.tizen.call" +#define CISS_AUL_CMD "org.tizen.ciss" +#define CISS_MODE_OPT "REQ" +#define __VCUI_NOTIFICATION_CALL_GROUP_ID 1001 + +/* For Debug Information, Call Event name string constant */ +static char *gszcall_callback_msg[VC_ENGINE_MSG_MAX_TO_UI] = { + "VC_ENGINE_MSG_INCOM_TO_UI", + "VC_ENGINE_MSG_OUTGOING_TO_UI", + "VC_ENGINE_MSG_OUTGOING_ORIG_TO_UI", + "VC_ENGINE_MSG_OUTGOING_ORIG_TO_UI_TEST", + "VC_ENGINE_MSG_OUTGOING_ALERT_TO_UI", + "VC_ENGINE_MSG_CONNECTED_TO_UI", + "VC_ENGINE_MSG_NORMAL_END_TO_UI", + "VC_ENGINE_MSG_INCOM_END_TO_UI", + "VC_ENGINE_MSG_REJECTED_END_TO_UI", + "VC_ENGINE_MSG_OUTGOING_END_TO_UI", + "VC_ENGINE_MSG_OUTGOING_END_SIGNAL_PLAY_TO_UI", + "VC_ENGINE_MSG_OUTGOING_ABORTED_TO_UI", + "VC_ENGINE_MSG_DTMF_ACK_TO_UI", + + "VC_ENGINE_MSG_SS_HELD_TO_UI", + "VC_ENGINE_MSG_SS_RETREIVED_TO_UI", + "VC_ENGINE_MSG_SS_SWAP_TO_UI", + "VC_ENGINE_MSG_SS_SETUP_CONF_TO_UI", + "VC_ENGINE_MSG_SS_SPLIT_CONF_TO_UI", + "VC_ENGINE_MSG_SS_TRANSFERRED_TO_UI", + "VC_ENGINE_MSG_SS_CONNECT_LINE_IND_TO_UI", + + "VC_ENGINE_MSG_IND_FORWARD_TO_UI", + "VC_ENGINE_MSG_IND_ACTIVATE_TO_UI", + "VC_ENGINE_MSG_IND_HOLD_TO_UI", + "VC_ENGINE_MSG_IND_TRANSFER_TO_UI", + "VC_ENGINE_MSG_IND_SETUPCONFERENCE_TO_UI", + "VC_ENGINE_MSG_IND_BARRING_TO_UI", + "VC_ENGINE_MSG_IND_WAITING_TO_UI", + "VC_ENGINE_MSG_IND_CUGINFO_TO_UI", + "VC_ENGINE_MSG_IND_SSNOTIFY_TO_UI", + "VC_ENGINE_MSG_IND_CALLINGNAMEINFO_TO_UI", + "VC_ENGINE_MSG_IND_REDIRECT_CNF_TO_UI", + "VC_ENGINE_MSG_IND_ACTIVATECCBS_CNF_TO_UI", + "VC_ENGINE_MSG_IND_ACTIVATECCBS_USERINFO_TO_UI", + "VC_ENGINE_MSG_IND_AOC_TO_UI", + + "VC_ENGINE_MSG_ERROR_OCCURED_TO_UI", + + "VC_ENGINE_MSG_ACTION_INCOM_FORCE_TO_UI", + "VC_ENGINE_MSG_ACTION_SAT_REQUEST_TO_UI", + "VC_ENGINE_MSG_ACTION_SAT_RESPONSE_TO_UI", + "VC_ENGINE_MSG_ACTION_CALL_END_HELD_RETREIVED_TO_UI", + "VC_ENGINE_MSG_ACTION_NO_ACTIVE_TASK_TO_UI", + + "VC_ENGINE_MSG_GET_VOLUME_RESP_TO_UI", + "VC_ENGINE_MSG_SET_VOLUME_FROM_BT_TO_UI", + "VC_ENGINE_MSG_HEADSET_STATUS_TO_UI", + "VC_ENGINE_MSG_EARJACK_STATUS_TO_UI", + + "VC_ENGINE_MSG_ACCEPT_CHOICE_BOX_TO_UI", + "VC_ENGINE_MSG_MESSAGE_BOX_TO_UI", + + "VC_ENGINE_MSG_REDIAL_TO_UI", + "VC_ENGINE_MSG_CREATE_NEWVOICEFILE_TO_UI", +}; + +static char *gszcall_error_msg[IDS_CALL_MAX] = { + "IDS_CALL_POP_CALL_IS_DIVERTED", + "IDS_CALL_POP_CALLFAILED", + "IDS_CALL_POP_CALLING_EMERG_ONLY", + "IDS_CALL_POP_CALLNOTCALLOWED", + "IDS_CALL_POP_CAUSE_WRONG_NUMBER", + "IDS_CALL_POP_CHANGEOFFLINEMODETOCALL", + "IDS_CALL_POP_DTMFSENDING_FAIL", + "IDS_CALL_POP_FDNCALLONLY", + "IDS_CALL_POP_HOLD_FAILED", + "IDS_CALL_POP_HOLD_NOT_SUPPORTED", + "IDS_CALL_POP_INCOMPLETE", + "IDS_CALL_POP_JOIN_FAILED", + "IDS_CALL_POP_JOIN_NOT_SUPPORTED", + "IDS_CALL_POP_OPERATION_REFUSED", + "IDS_CALL_POP_PHONE_NOT_INITIALISED", + "IDS_CALL_POP_REJECTED", + "IDS_CALL_POP_SENDING", + "IDS_CALL_POP_SOS_CALL_ONLY_IN_NO_SIM_MODE", + "IDS_CALL_POP_SPLIT_FAILED", + "IDS_CALL_POP_SPLIT_NOT_SUPPORTED", + "IDS_CALL_POP_SWAP_FAILED", + "IDS_CALL_POP_SWAP_NOT_SUPPORTED", + "IDS_CALL_POP_TRANSFER_FAILED", + "IDS_CALL_POP_TRANSFER_NOT_SUPPORTED", + "IDS_CALL_POP_UNABLE_TO_RETRIEVE", + "IDS_CALL_POP_UNAVAILABLE", + "IDS_CALL_POP_UNHOLD_NOT_SUPPORTED", + "IDS_CALL_POP_VOICE_CALL_IS_NOT_ALLOWED_DURING_VIDEO_CALL", + "IDS_CALL_POP_WAITING_ACTIVE", + "IDS_CALL_BODY_CALLENDED", + "Invalid DTMF", + "Sent" +}; + +static int __vcui_launch_ciss(const char *number); +static void __vcui_cache_flush_set(Evas *e); +static void __vcui_init_view_register_function(vcui_app_call_data_t *app_data, vcui_app_call_view_id_t view_id, voice_call_view_data_t *(*view_new) ()); +static int __vcui_app_create(void *data); +static int __vcui_app_pause(void *data); +static int __vcui_app_reset(bundle *kb, void *data); +static int __vcui_app_resume(void *data); +static int __vcui_app_terminate(void *data); +static void __vcui_fade_out_cb_routine(void); +static int __vcui_lang_changed_cb(void *data); +static int __vcui_low_mem_cb(void *data); +static int __vcui_low_bat_cb(void *data); +static int __vcui_rotate_cb(enum appcore_rm m, void *data); +static void __vcui_init(vcui_app_call_data_t *ad); +static void __vcui_app_callback(int event, void *pdata, void *puser_data); + +#ifdef SIGNAL_HANDLER +/** +* This function serves as the signal handler function for the SIGSEGV Signal +* +* @return nothing +* @param[in] signal_no Signal Number +* @param[in] signal_info Information associated with the generated signal +* @param[in] signal_context Signal Context Info +*/ +static void __vcui_exit_handler(void) +{ + printf("\n __vcui_app_exit_handler\n"); + /*syslog (LOG_INFO, "[VOICE-CALL] __vcui_app_exit_handler\n"); */ +} + +/** +* This function serves as the signal handler function for the SIGSEGV Signal +* +* @return nothing +* @param[in] signal_no Signal Number +* @param[in] signal_info Information associated with the generated signal +* @param[in] signal_context Signal Context Info +*/ +static void __vcui_sigsegv_handler(int signal_no) +{ + int i = 0; + + CALL_UI_DEBUG("SISEGV Received, Signal Number: :%d \n", signal_no); + + vcall_engine_force_reset(); + __vcui_fade_out_cb_routine(); + + for (i = 0; i < VCUI_SIG_NUM; i++) { + sigaction(vcui_app_sig_to_handle[i], &(vcui_app_sigoldact[i]), NULL); + } + + raise(signal_no); /*raise signal intentionally (pass the same signal) */ +} + +/** +* This function registers a user space signal handler for the signal SIGSEGV (Signal #11) +* +* @return nothing +*/ +static void __vcui_register_sigsegv_handler() +{ + CALL_UI_DEBUG(".."); + + int i = 0; + vcui_app_sigact.sa_flags = SA_NOCLDSTOP; + vcui_app_sigact.sa_handler = (void *)__vcui_sigsegv_handler; + sigemptyset(&vcui_app_sigact.sa_mask); + + for (; i < VCUI_SIG_NUM; i++) { + sigaction(vcui_app_sig_to_handle[i], &vcui_app_sigact, &(vcui_app_sigoldact[i])); + } + +} +#endif + +static int __vcui_launch_ciss(const char *number) +{ + bundle *kb; + + CALL_UI_DEBUG("number(%s)"); + kb = bundle_create(); + bundle_add(kb, "CISS_LAUNCHING_MODE", CISS_MODE_OPT); + bundle_add(kb, "CISS_REQ_STRING", number); + aul_launch_app(CISS_AUL_CMD, kb); + bundle_free(kb); + return VC_NO_ERROR; +} + +static int __vcui_app_create(void *data) +{ + CALL_UI_DEBUG("__vcui_app_create().."); + CALL_UI_KPI("__vcui_app_create start"); + vcui_app_call_data_t *ad = data; + + elm_theme_extension_add(NULL, CALL_THEME); + + CALL_UI_KPI("_vcui_app_win_create_main start"); + ad->win_main = (Evas_Object *)_vcui_app_win_create_main(ad, PACKAGE); + CALL_UI_KPI("_vcui_app_win_create_main done"); + if (ad->win_main == NULL) { + CALL_UI_DEBUG("ERROR"); + return VC_ERROR; + } + + UG_INIT_EFL(ad->win_main, UG_OPT_INDICATOR_ENABLE); + + __vcui_hide_main_ui_set_flag(); + + ad->evas = evas_object_evas_get(ad->win_main); + ad->scale_factor = elm_config_scale_get(); + + __vcui_cache_flush_set(ad->evas); + + ecore_init(); + ecore_x_init(NULL); + _vcui_app_win_key_grab(ad); + + _vcui_view_common_timer_text_init(); + + _vcui_app_win_set_noti_type(EINA_TRUE); + + /* add system event callback */ + appcore_set_event_callback(APPCORE_EVENT_LANG_CHANGE, __vcui_lang_changed_cb, ad); + appcore_set_event_callback(APPCORE_EVENT_LOW_MEMORY, __vcui_low_mem_cb, NULL); + appcore_set_event_callback(APPCORE_EVENT_LOW_BATTERY, __vcui_low_bat_cb, NULL); + + CALL_UI_KPI("appcore_set_rotation_cb start"); + appcore_set_rotation_cb(__vcui_rotate_cb, ad); + CALL_UI_KPI("appcore_set_rotation_cb done"); + +#ifdef SIGNAL_HANDLER + __vcui_register_sigsegv_handler(); + atexit(__vcui_exit_handler); +#endif + + /* + ** Requested by Inpyo Kang + ** This is temp fix for email UG bs proglem.. must be removed later. + */ + elm_config_preferred_engine_set("opengl-x11"); + + CALL_UI_KPI("__vcui_app_create done"); + return VC_NO_ERROR; +} + +static int __vcui_app_pause(void *data) +{ + CALL_UI_DEBUG("__vcui_app_pause().."); + + return VC_NO_ERROR; +} + +static int __vcui_app_reset(bundle *kb, void *data) +{ +/* +#aul_test launch org.tizen.call launch-type "MO" number "01030011234" +#aul_test launch org.tizen.call launch-type "MT" number "01030011234" handle "1" clicause "1" fwded "1" activeline "1" +#aul_test open_content "01030011234" ( /opt/share/miregex/phonenum.uri) +*/ + CALL_UI_DEBUG("__vcui_app_reset().."); + CALL_UI_KPI("__vcui_app_reset start"); + vcui_app_call_data_t *ad = (vcui_app_call_data_t *)data; + + const char *launch_type = NULL; + const char *mime_type = NULL; + const char *tmp = NULL; + const char *uri_bundle = NULL; + char *telnum = NULL; + +#ifdef _RESET_OPEN_APP_ + { + launch_type = bundle_get_val(kb, "__AUL_CMD__"); + if (launch_type != NULL) { + CALL_UI_DEBUG("launch type: [%s]", launch_type); + if (!strncmp(launch_type, "OPEN_APP", 8)) { + elm_win_raise(ad->win_main); + return; + } + } + } +#endif + + /* mime content based AUL */ + mime_type = bundle_get_val(kb, AUL_K_MIME_TYPE); + if (mime_type != NULL) { + CALL_UI_DEBUG("mime_type: [%s]", mime_type); + if (strncmp(mime_type, "phonenum.uri", 12) == 0 || strncmp(mime_type, "tel.uri", 7) == 0) { + tmp = bundle_get_val(kb, AUL_K_MIME_CONTENT); + if (tmp == NULL) { + CALL_UI_DEBUG("bundle val is NULL"); + elm_exit(); + return VC_NO_ERROR; + } + + CALL_UI_DEBUG("AUL_K_MIME_CONTENT: [%s]", tmp); + if (strncmp(tmp, "tel:", 4) == 0) { + telnum = (char *)tmp + 4; + } else { + telnum = (char *)tmp; + } + + CALL_UI_DEBUG("number: [%s]", telnum); + + vcui_call_mo_data_t call_data; + memset(&call_data, 0, sizeof(call_data)); + snprintf(call_data.call_number, sizeof(call_data.call_number), "%s", telnum); + vcall_engine_process_normal_call(call_data.call_number, call_data.ct_index, EINA_FALSE); + + return VC_NO_ERROR; + } else { + CALL_UI_DEBUG("wrong mime type!!"); + elm_exit(); + return VC_NO_ERROR; + } + } + + uri_bundle = (const char *)appsvc_get_uri(kb); + if (uri_bundle != NULL) { + CALL_UI_DEBUG("tmp: [%s]", uri_bundle); + if (strncmp(uri_bundle, "tel:", 4) == 0) { + telnum = (char *)uri_bundle + 4; + CALL_UI_DEBUG("number: [%s]", telnum); + + tmp = (char *)appsvc_get_data(kb, "calltype"); + + if (tmp) { + CALL_UI_DEBUG("calltype: [%s]", tmp); + if (!strncmp(tmp, "EMERGENCY", 9)) { + vcui_call_ecc_data_t call_data; + memset(&call_data, 0, sizeof(call_data)); + snprintf(call_data.call_number, sizeof(call_data.call_number), "%s", telnum); + vcall_engine_process_emergency_call(call_data.call_number); + } else { + CALL_UI_DEBUG("wrong calltype!"); + elm_exit(); + return VC_ERROR; + } + } else { + vcui_call_mo_data_t call_data; + memset(&call_data, 0, sizeof(call_data)); + snprintf(call_data.call_number, sizeof(call_data.call_number), "%s", telnum); + + tmp = (char *)appsvc_get_data(kb, "ctindex"); + if (tmp) { + CALL_UI_DEBUG("ctindex: [%s]", tmp); + call_data.ct_index = atoi(tmp); + } else { + CALL_UI_DEBUG("bundle val is NULL"); + call_data.ct_index = -1; + } + + if ((vcall_engine_check_incall_ss_string(call_data.call_number) == EINA_TRUE) && (_vcui_doc_get_all_call_data_count() >= 1)) { + vcall_engine_process_incall_ss(call_data.call_number); + _vcui_view_auto_change(); + } else if (vcall_engine_check_ss_string(call_data.call_number) == EINA_TRUE) { + __vcui_launch_ciss(call_data.call_number); + if (_vcui_doc_get_all_call_data_count() == 0) + elm_exit(); + return VC_NO_ERROR; + } else { + vcall_engine_process_normal_call(call_data.call_number, call_data.ct_index, EINA_FALSE); + } + } + + return VC_NO_ERROR; + } else { + CALL_UI_DEBUG("wrong type!"); + elm_exit(); + return VC_NO_ERROR; + } + } + + /* AUL */ + launch_type = bundle_get_val(kb, "launch-type"); + if (launch_type != NULL) { + CALL_UI_DEBUG("launch type: [%s]", launch_type); + if (!strncmp(launch_type, "MO", 2)) { + + if (g_avoid_multi_setup == EINA_TRUE) { + CALL_UI_DEBUG("Avoid multi touch setup"); + return VC_NO_ERROR; + } + + ecore_timer_add(3.5, __vcui_avoid_multi_setup_timer_cb, ad); + g_avoid_multi_setup = EINA_TRUE; + + vcui_call_mo_data_t call_data; + memset(&call_data, 0, sizeof(call_data)); + + tmp = bundle_get_val(kb, "number"); + if (tmp) { + CALL_UI_DEBUG("number: [%s]", tmp); + } else { + CALL_UI_DEBUG("bundle val is NULL"); + elm_exit(); + return VC_NO_ERROR; + } + snprintf(call_data.call_number, sizeof(call_data.call_number), "%s", tmp); + + tmp = bundle_get_val(kb, "ctindex"); + if (tmp) { + CALL_UI_DEBUG("ctindex: [%s]", tmp); + call_data.ct_index = atoi(tmp); + } else { + CALL_UI_DEBUG("bundle val is NULL"); + call_data.ct_index = -1; + } + + if ((vcall_engine_check_incall_ss_string(call_data.call_number) == EINA_TRUE) && (_vcui_doc_get_all_call_data_count() >= 1)) { + vcall_engine_process_incall_ss(call_data.call_number); + _vcui_view_auto_change(); + } else if (vcall_engine_check_ss_string(call_data.call_number) == EINA_TRUE) { + __vcui_launch_ciss(call_data.call_number); + if (_vcui_doc_get_all_call_data_count() == 0) + elm_exit(); + return VC_NO_ERROR; + } else { + vcall_engine_process_normal_call(call_data.call_number, call_data.ct_index, EINA_FALSE); + } + } else if (!strncmp(launch_type, "MT", 2)) { + vcui_call_mt_data_t call_data; + memset(&call_data, 0, sizeof(call_data)); + + tmp = bundle_get_val(kb, "handle"); + if (tmp) { + CALL_UI_DEBUG("handle: [%s]", tmp); + call_data.call_handle = atoi(tmp); + } else { + CALL_UI_DEBUG("bundle val is NULL"); + elm_exit(); + return VC_NO_ERROR; + } + + tmp = bundle_get_val(kb, "calltype"); + if (tmp) { + CALL_UI_DEBUG("calltype: [%s]", tmp); + call_data.call_type = atoi(tmp); + } else { + CALL_UI_DEBUG("calltype is NULL but NOT mendatory"); + call_data.call_type = 0; + } + + tmp = bundle_get_val(kb, "cliindicator"); + if (tmp) { + CALL_UI_DEBUG("cliindicator: [%s]", tmp); + call_data.cli_presentation_indicator = atoi(tmp); + } else { + CALL_UI_DEBUG("cliindicator is NULL but NOT mendatory"); + call_data.cli_presentation_indicator = 0; + } + + tmp = bundle_get_val(kb, "number"); + if (tmp) { + CALL_UI_DEBUG("number: [%s]", tmp); + vcall_engine_util_strcpy(call_data.call_num, VC_PHONE_NUMBER_LENGTH_MAX, tmp); + } else { + CALL_UI_DEBUG("bundle val is NULL"); + /*return VC_NO_ERROR; *//*check clir mt call. */ + } + + tmp = bundle_get_val(kb, "name_mode"); + if (tmp) { + CALL_UI_DEBUG("name_mode: [%s]", tmp); + call_data.calling_name_mode = atoi(tmp); + } else { + CALL_UI_DEBUG("name_mode is NULL but NOT mendatory"); + call_data.calling_name_mode = -1; + } + + tmp = bundle_get_val(kb, "name"); + if (tmp) { + CALL_UI_DEBUG("name: [%s]", tmp); + vcall_engine_util_strcpy(call_data.calling_name, VC_PHONE_NAME_LENGTH_MAX, tmp); + } else { + CALL_UI_DEBUG("bundle val is NULL but NOT mendatory"); + } + + tmp = bundle_get_val(kb, "rdnumber"); + if (tmp) { + CALL_UI_DEBUG("rdnumber: [%s]", tmp); + vcall_engine_util_strcpy(call_data.redirected_number, VC_PHONE_NUMBER_LENGTH_MAX, tmp); + } else { + CALL_UI_DEBUG("bundle val is NULL but NOT mendatory"); + } + + tmp = bundle_get_val(kb, "rdsubaddress"); + if (tmp) { + CALL_UI_DEBUG("rdnumber: [%s]", tmp); + vcall_engine_util_strcpy(call_data.redirected_sub_address, VC_PHONE_SUBADDRESS_LENGTH_MAX, tmp); + } else { + CALL_UI_DEBUG("bundle val is NULL but NOT mendatory"); + } + + tmp = bundle_get_val(kb, "clicause"); + if (tmp) { + CALL_UI_DEBUG("clicause: [%s]", tmp); + call_data.cli_cause = atoi(tmp); + } else { + CALL_UI_DEBUG("bundle val is NULL"); + elm_exit(); + return VC_NO_ERROR; + } + + tmp = bundle_get_val(kb, "fwded"); + if (tmp) { + CALL_UI_DEBUG("fwded: [%s]", tmp); + call_data.bfwded = atoi(tmp); + } else { + CALL_UI_DEBUG("bundle val is NULL"); + elm_exit(); + return VC_NO_ERROR; + } + + tmp = bundle_get_val(kb, "activeline"); + if (tmp) { + CALL_UI_DEBUG("activeline: [%s]", tmp); + call_data.active_line = atoi(tmp); + } else { + CALL_UI_DEBUG("bundle val is NULL"); + elm_exit(); + return VC_NO_ERROR; + } + + vcall_engine_incoming_info_t mtcall_info; + + mtcall_info.call_handle = call_data.call_handle; + mtcall_info.call_type = call_data.call_type; + mtcall_info.cli_presentation_indicator = call_data.cli_presentation_indicator; + vcall_engine_util_strcpy(mtcall_info.call_num, sizeof(mtcall_info.call_num), call_data.call_num); + mtcall_info.calling_name_mode = call_data.calling_name_mode; + vcall_engine_util_strcpy(mtcall_info.calling_name, sizeof(mtcall_info.calling_name), call_data.calling_name); + vcall_engine_util_strcpy(mtcall_info.redirected_number, sizeof(mtcall_info.redirected_number), call_data.redirected_number); + vcall_engine_util_strcpy(mtcall_info.redirected_sub_address, sizeof(mtcall_info.redirected_sub_address), call_data.redirected_sub_address); + mtcall_info.cli_cause = call_data.cli_cause; + mtcall_info.bfwded = call_data.bfwded; + mtcall_info.active_line = call_data.active_line; + + vcall_engine_process_incoming_call(&mtcall_info); + } else if (!strncmp(launch_type, "EMERGENCY", 9)) { + vcui_call_ecc_data_t call_data; + memset(&call_data, 0, sizeof(call_data)); + + tmp = bundle_get_val(kb, "number"); + if (tmp) { + CALL_UI_DEBUG("number: [%s]", tmp); + } else { + CALL_UI_DEBUG("bundle val is NULL"); + } + snprintf(call_data.call_number, sizeof(call_data.call_number), "%s", tmp); + vcall_engine_process_emergency_call(call_data.call_number); + } else if (!strncmp(launch_type, "SATSETUPCALL", 12)) { + vcui_call_sat_data_t sat_setup_call_info; + memset(&sat_setup_call_info, 0, sizeof(sat_setup_call_info)); + + tmp = bundle_get_val(kb, "cmd_id"); + if (tmp) { + CALL_UI_DEBUG("cmd_id: [%s]", tmp); + sat_setup_call_info.command_id = atoi(tmp); + } else { + CALL_UI_DEBUG("bundle val is NULL"); + elm_exit(); + return VC_NO_ERROR; + } + + tmp = bundle_get_val(kb, "cmd_qual"); + if (tmp) { + CALL_UI_DEBUG("cmd_qual: [%s]", tmp); + sat_setup_call_info.command_qualifier = atoi(tmp); + } else { + CALL_UI_DEBUG("bundle val is NULL"); + elm_exit(); + return VC_NO_ERROR; + } + + tmp = bundle_get_val(kb, "disp_text"); + if (tmp) { + CALL_UI_DEBUG("disp_text: [%s]", tmp); + vcall_engine_util_strcpy(sat_setup_call_info.disp_text, sizeof(sat_setup_call_info.disp_text), tmp); + } else { + CALL_UI_DEBUG("bundle val is NULL"); + /*elm_exit(); + return VC_NO_ERROR; */ + } + + tmp = bundle_get_val(kb, "call_num"); + if (tmp) { + CALL_UI_DEBUG("call_num: [%s]", tmp); + vcall_engine_util_strcpy(sat_setup_call_info.call_num, sizeof(sat_setup_call_info.call_num), tmp); + } else { + CALL_UI_DEBUG("bundle val is NULL"); + elm_exit(); + return VC_NO_ERROR; + } + + tmp = bundle_get_val(kb, "dur"); + if (tmp) { + CALL_UI_DEBUG("dur: [%s]", tmp); + sat_setup_call_info.duration = atoi(tmp); + } else { + CALL_UI_DEBUG("bundle val is NULL"); + elm_exit(); + return VC_NO_ERROR; + } + + vcall_engine_sat_setup_call_info_t sat_setup_data; + memset(&sat_setup_data, 0, sizeof(sat_setup_data)); + sat_setup_data.command_id = sat_setup_call_info.command_id; + sat_setup_data.command_qualifier = sat_setup_call_info.command_qualifier; + sat_setup_data.duration = sat_setup_call_info.duration; + memcpy(sat_setup_data.disp_text, sat_setup_call_info.disp_text, sizeof(sat_setup_data.disp_text)); + memcpy(sat_setup_data.call_num, sat_setup_call_info.call_num, VC_PHONE_NUMBER_LENGTH_MAX); + + vcall_engine_process_sat_setup_call(&sat_setup_data); + } else if (!strncmp(launch_type, "ECCTEST", 7)) { + vcui_call_ecc_data_t call_data; + memset(&call_data, 0, sizeof(call_data)); + vcall_engine_process_emergency_call_test(call_data.call_number); + } else if (!strncmp(launch_type, "DOWNLOADCALL", 12)) { + vcui_call_mo_data_t call_data; + memset(&call_data, 0, sizeof(call_data)); + + tmp = bundle_get_val(kb, "number"); + if (tmp) { + CALL_UI_DEBUG("number: [%s]", tmp); + } else { + CALL_UI_DEBUG("bundle val is NULL"); + } + + if (tmp != NULL) { + snprintf(call_data.call_number, sizeof(call_data.call_number), "%s", tmp); + } else { + snprintf(call_data.call_number, sizeof(call_data.call_number), "%s", "116"); + } + vcall_engine_util_strcpy(call_data.call_number, sizeof(call_data.call_number), tmp); + vcall_engine_process_normal_call(call_data.call_number, call_data.ct_index, EINA_TRUE); + } else if (!strncmp(launch_type, "CALL_COMMAND", 12)) { + vcui_call_mo_data_t call_data; + memset(&call_data, 0, sizeof(call_data)); + + tmp = bundle_get_val(kb, "value"); + if (tmp) { + CALL_UI_DEBUG("number: [%s]", tmp); + } else { + CALL_UI_DEBUG("bundle val is NULL"); + } + + if (!strncmp(tmp, "REJECT_MT", 9)) { + vcall_engine_reject_call(); + } /* If need to add more command, add here. */ + } else { + CALL_UI_DEBUG("unknown launch type"); + } + CALL_UI_KPI("__vcui_app_reset done"); + return VC_NO_ERROR; + } + + CALL_UI_DEBUG("bundle data is wrong!!"); + elm_exit(); + return VC_NO_ERROR; +} + +static int __vcui_app_resume(void *data) +{ + CALL_UI_DEBUG("__vcui_app_resume().."); + + return VC_NO_ERROR; +} + +static int __vcui_app_terminate(void *data) +{ + CALL_UI_DEBUG("__vcui_app_terminate().."); + + if (_vcui_doc_get_all_call_data_count() >= 1) { + CALL_UI_DEBUG("WARNING!! call exists. abnormal terminate!!"); + vcall_engine_release_call_by_type(VCALL_ENGINE_RELEASE_ALL_CALLS); + vcall_engine_set_to_default(); + } + + __vcui_fade_out_cb_routine(); + return VC_NO_ERROR; +} + +static void __vcui_cache_flush_set(Evas *e) +{ +#ifdef _CACHE_FLUSH_ + evas_image_cache_set(e, 4096 * 1024); + evas_font_cache_set(e, 512 * 1024); + + edje_file_cache_set(0); + edje_collection_cache_set(0); +#endif +} + +static void __vcui_init_view_register_function(vcui_app_call_data_t *app_data, vcui_app_call_view_id_t view_id, voice_call_view_data_t *(*view_new) ()) +{ + app_data->func_new[view_id] = view_new; +} + +void _vcui_response_volume(int vol_alert_type, int vol_level) +{ + vcui_app_call_data_t *ad = _vcui_get_app_data(); + + if (vol_alert_type == VCUI_VOL_VOICE) { + ad->voice_vol_val = vol_level; + _vcui_set_volume(ad->vol_key_status); + } else if (vol_alert_type == VCUI_VOL_HEADSET) { + ad->bt_vol_val = vol_level; + _vcui_set_volume(ad->vol_key_status); + } else { + CALL_UI_DEBUG("ERROR"); + } +} + +void _vcui_set_volume(int key_status) +{ + vcui_app_call_data_t *ad = _vcui_get_app_data(); + + if (_vcui_doc_get_all_call_data_count() == 0) { + CALL_UI_DEBUG("ignore it"); + return; + } + + if (ad->view_st[ad->view_top]->type == VIEW_INCOMING_LOCK_VIEW) { + int err_code = 0; + int settings_sound_status = EINA_FALSE; + + err_code = vconf_get_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, &settings_sound_status); + if (settings_sound_status == EINA_FALSE) { + CALL_UI_DEBUG("ringtone vol is ignored in sound off status."); + return; + } + + if (ad->bmute_ringtone == EINA_TRUE) { + CALL_UI_DEBUG("during mute ringtone, vol will not changed"); + return; + } + + if (ad->ringtone_val < RINGTONE_MIN) { + int vol_level = vcall_engine_get_volume_level(VCALL_ENGINE_VOL_TYPE_RINGTONE); + + if ((vol_level < RINGTONE_MIN) || (vol_level > RINGTONE_MAX)) { + CALL_UI_DEBUG("ERROR : ringtone vol:[%d]", vol_level); + return; + } + ad->ringtone_val = vol_level; + } + + CALL_UI_DEBUG("RINGTONE : Set Volume"); + if (key_status == VAL_VOL_DOWN && ad->ringtone_val > RINGTONE_MIN) { + ad->ringtone_val--; + vcall_engine_set_volume_level(VCALL_ENGINE_VOL_TYPE_RINGTONE, ad->ringtone_val); + } else if (key_status == VAL_VOL_UP && ad->ringtone_val < RINGTONE_MAX) { + ad->ringtone_val++; + vcall_engine_set_volume_level(VCALL_ENGINE_VOL_TYPE_RINGTONE, ad->ringtone_val); + } + _vcui_view_popup_vol_ringtone(ad->ringtone_val); + } else if (ad->headset_status == EINA_TRUE) { + if (ad->bt_vol_val < BT_VOL_MIN) { + CALL_UI_DEBUG("BT VOL : Get Volume"); + ad->vol_key_status = key_status; + ad->bt_vol_val = vcall_engine_get_volume_level(VCALL_ENGINE_VOL_TYPE_HEADSET); + return; + } + + CALL_UI_DEBUG("BT VOL : Set Volume"); + if (key_status == VAL_VOL_DOWN && ad->bt_vol_val > BT_VOL_MIN) { /*Key Down */ + ad->bt_vol_val--; + vcall_engine_set_volume_level(VCALL_ENGINE_VOL_TYPE_HEADSET, ad->bt_vol_val); + } else if (key_status == VAL_VOL_UP && ad->bt_vol_val < BT_VOL_MAX) { /*Key Up */ + ad->bt_vol_val++; + vcall_engine_set_volume_level(VCALL_ENGINE_VOL_TYPE_HEADSET, ad->bt_vol_val); + } + _vcui_view_popup_vol_bt(ad->bt_vol_val); + } else { + CALL_UI_DEBUG("TAPI VOL : Get Volume"); + ad->vol_key_status = key_status; + ad->voice_vol_val = vcall_engine_get_volume_level(VCALL_ENGINE_VOL_TYPE_VOICE); + + CALL_UI_DEBUG("TAPI VOL : Set Volume"); + if (key_status == VAL_VOL_DOWN && ad->voice_vol_val > VOICE_VOL_MIN) { /*Key Down */ + ad->voice_vol_val--; + vcall_engine_set_volume_level(VCALL_ENGINE_VOL_TYPE_VOICE, ad->voice_vol_val); + } else if (key_status == VAL_VOL_UP && ad->voice_vol_val < VOICE_VOL_MAX) { /*Key Up */ + ad->voice_vol_val++; + vcall_engine_set_volume_level(VCALL_ENGINE_VOL_TYPE_VOICE, ad->voice_vol_val); + } + _vcui_view_popup_vol_voice(ad->voice_vol_val); + } + +} + +static void __vcui_fade_out_cb_routine() +{ + CALL_UI_DEBUG(".."); + vcui_app_call_data_t *ad = _vcui_get_app_data(); + + if (ad->child_is == 1) { + /*system("killall dialer"); */ + } + if (ad->disp && ad->win) { + utilx_ungrab_key(ad->disp, ad->win, KEY_VOLUMEUP); + utilx_ungrab_key(ad->disp, ad->win, KEY_VOLUMEDOWN); + utilx_ungrab_key(ad->disp, ad->win, KEY_SELECT); + } + + if (ad->focus_in) { + ecore_event_handler_del(ad->focus_in); + ad->focus_in = NULL; + } + if (ad->focus_out) { + ecore_event_handler_del(ad->focus_out); + ad->focus_out = NULL; + } + + _vcui_doc_remove_all_call_data(); + vcall_engine_device_control_lcd_state(VC_LCD_ON_UNLOCK); + _vcui_view_common_timer_destroy(); +} + +static int __vcui_lang_changed_cb(void *data) +{ + CALL_UI_DEBUG(".."); + + _vcui_view_auto_change(); + _vcui_view_quickpanel_change(); + + return VC_NO_ERROR; +} + +static int __vcui_low_mem_cb(void *data) +{ + CALL_UI_DEBUG(".."); + + return VC_NO_ERROR; +} + +static int __vcui_low_bat_cb(void *data) +{ + CALL_UI_DEBUG(".."); + + return VC_NO_ERROR; +} + +static int __vcui_get_rotate_angle(enum appcore_rm rotate_mode) +{ + CALL_UI_DEBUG(".."); + int rotate_angle; + if (APPCORE_RM_UNKNOWN == rotate_mode) { + appcore_get_rotation_state(&rotate_mode); + } + + switch (rotate_mode) { + case APPCORE_RM_PORTRAIT_NORMAL: + /**< Portrait mode */ + CALL_UI_DEBUG("rotate mode is APPCORE_RM_PORTRAIT_NORMAL"); + rotate_angle = 0; + break; + case APPCORE_RM_PORTRAIT_REVERSE: + /**< Portrait upside down mode */ + CALL_UI_DEBUG("rotate mode is APPCORE_RM_PORTRAIT_REVERSE"); + rotate_angle = 180; + break; + case APPCORE_RM_LANDSCAPE_NORMAL: + /**< Left handed landscape mode */ + CALL_UI_DEBUG("rotate mode is APPCORE_RM_LANDSCAPE_NORMAL"); + rotate_angle = 270; + break; + case APPCORE_RM_LANDSCAPE_REVERSE: + /**< Right handed landscape mode */ + CALL_UI_DEBUG("rotate mode is APPCORE_RM_LANDSCAPE_REVERSE"); + rotate_angle = 90; + break; + default: + rotate_angle = -1; + break; + } + + return rotate_angle; +} + +static void __vcui_ug_handle_rotate_event(const int rotate_angle, void *data) +{ + CALL_UI_DEBUG(".."); + vcui_app_call_data_t *ad = (vcui_app_call_data_t *)data; + + switch (rotate_angle) { + case 0: + /**< Portrait mode */ + CALL_UI_DEBUG("rotate mode is APPCORE_RM_PORTRAIT_NORMAL"); + ug_send_event(UG_EVENT_ROTATE_PORTRAIT); + break; + case 180: + /**< Portrait upside down mode */ + CALL_UI_DEBUG("rotate mode is APPCORE_RM_PORTRAIT_REVERSE"); + ug_send_event(UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN); + break; + case 270: + /**< Left handed landscape mode */ + CALL_UI_DEBUG("rotate mode is APPCORE_RM_LANDSCAPE_NORMAL"); + ug_send_event(UG_EVENT_ROTATE_LANDSCAPE); + break; + case 90: + /**< Right handed landscape mode */ + CALL_UI_DEBUG("rotate mode is APPCORE_RM_LANDSCAPE_REVERSE"); + ug_send_event(UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN); + break; + default: + break; + } + if ((rotate_angle >= 0) + && (ad->contact_ug == NULL)) { + elm_win_rotation_with_resize_set(ad->win_main, rotate_angle); + } +} + +#ifdef __LANDSCAPE_MODE_ +static Eina_Bool __vcui_handle_rotate_evnt_idle_cb(void *data) +{ + CALL_UI_DEBUG(".."); + vcui_app_call_data_t *ad = (vcui_app_call_data_t *)data; + + if (ad == NULL) + return EINA_FALSE; + + CALL_UI_DEBUG("Rotate on ad->view_top[%d]", ad->view_top); + _vcui_view_change(ad->view_top, 0, NULL, NULL); + return ECORE_CALLBACK_CANCEL; +} + +static void __vcui_handle_rotate_event(const int rotate_angle, void *data) +{ + CALL_UI_DEBUG(".."); + vcui_app_call_data_t *ad = (vcui_app_call_data_t *)data; + + if (ad == NULL) { + CALL_UI_DEBUG("ad is NULL"); + return; + } + + if (0 == rotate_angle || 180 == rotate_angle || 270 == rotate_angle || 90 == rotate_angle) { + ad->rotate_angle = rotate_angle; + ecore_idler_add(__vcui_handle_rotate_evnt_idle_cb, ad); + } + return; +} +#endif + +static int __vcui_rotate_cb(enum appcore_rm rotate_mode, void *data) +{ + CALL_UI_DEBUG("__vcui_rotate_cb().."); + vcui_app_call_data_t *ad = _vcui_get_app_data(); + int rotate_angle; + if (ad == NULL) { + CALL_UI_DEBUG("ad is NULL"); + return VC_ERROR; + } + + rotate_angle = __vcui_get_rotate_angle(rotate_mode); + CALL_UI_DEBUG("rotate_angle [%d]", rotate_angle); + if (ad->contact_ug) + { + __vcui_ug_handle_rotate_event(rotate_angle, ad); + } +#ifdef __LANDSCAPE_MODE_ + else { + /* Implement the landscape implementation here */ + __vcui_handle_rotate_event(rotate_angle, ad); + } +#endif + return VC_NO_ERROR; +} + +static void __vcui_init(vcui_app_call_data_t *ad) +{ + CALL_UI_KPI("g_type_init start"); + g_type_init(); + CALL_UI_KPI("g_type_init done"); + _vcui_doc_data_init(); + _vcui_view_common_init(); + vcall_engine_init((vcall_engine_app_cb) __vcui_app_callback, ad); + + CALL_UI_KPI("__vcui_init_view_register_function for all views start"); + __vcui_init_view_register_function(ad, VIEW_DIALLING_VIEW, _vcui_view_dialing_new); + __vcui_init_view_register_function(ad, VIEW_INCOMING_LOCK_VIEW, _vcui_view_incoming_lock_new); + __vcui_init_view_register_function(ad, VIEW_INCALL_ONECALL_VIEW, _vc_ui_view_single_call_new); + __vcui_init_view_register_function(ad, VIEW_INCALL_MULTICALL_SPLIT_VIEW, _vcui_view_multi_call_split_new); + __vcui_init_view_register_function(ad, VIEW_INCALL_MULTICALL_CONF_VIEW, _vcui_view_multi_call_conf_new); + __vcui_init_view_register_function(ad, VIEW_INCALL_MULTICALL_LIST_VIEW, _vcui_view_multi_call_list_new); + __vcui_init_view_register_function(ad, VIEW_ENDCALL_VIEW, _vcui_view_callend_new); + __vcui_init_view_register_function(ad, VIEW_QUICKPANEL_VIEW, _vcui_view_qp_new); + CALL_UI_KPI("__vcui_init_view_register_function for all views done"); + + ad->view_top = -1; + ad->view_before_top = -1; + ad->headset_status = (int)_vcui_is_headset_conected(); + ad->speaker_status = EINA_FALSE; + ad->mute_status = EINA_FALSE; + ad->child_is = -1; + ad->show_flag = WIN_HIDE; + ad->ringtone_val = -1; + ad->voice_vol_val = -1; + ad->bt_vol_val = -1; + ad->call_end_type = CALL_END_TYPE_NONE; + ad->wbamr_status= EINA_FALSE; +} + +char *_vcui_get_endcause_string(int end_cause, char *data) +{ + char *string_id = NULL; + CALL_UI_DEBUG("end type : %d", end_cause); + switch (end_cause) { + case VC_ENGINE_ENDCAUSE_USER_UNAVAILABLE: + string_id = _("IDS_CALL_BODY_CALLED_PARTY_UNAVAILABLE"); + break; + case VC_ENGINE_ENDCAUSE_UNASSIGNED_NUMBER: + string_id = _("IDS_CALL_BODY_NUMBER_DOES_NOT_EXIST"); + break; + case VC_ENGINE_ENDCAUSE_USER_DOESNOT_RESPOND: + string_id = _("IDS_CALL_BODY_NO_ANSWER"); + break; + case VC_ENGINE_ENDCAUSE_CALL_DISCONNECTED: + string_id = _("IDS_CALL_BODY_DISCONNECTED"); + break; + case VC_ENGINE_ENDCAUSE_CALL_ENDED: + string_id = _("IDS_CALL_BODY_CALLENDED"); + break; + case VC_ENGINE_ENDCAUSE_CALL_SERVICE_NOT_ALLOWED: + string_id = _("IDS_CALL_POP_SERVICE_NOT_ALLOWED"); + break; + case VC_ENGINE_ENDCAUSE_CALL_BARRED: + string_id = _("IDS_CALL_POP_CALL_BARRED"); + break; + case VC_ENGINE_ENDCAUSE_NO_SERVICE: + string_id = _("IDS_CALL_POP_NOSERVICE"); + break; + case VC_ENGINE_ENDCAUSE_NW_BUSY: + string_id = _("IDS_CALL_POP_NETWORKBUSY"); + break; + case VC_ENGINE_ENDCAUSE_NW_FAILED: + string_id = _("IDS_CALL_POP_NETWORK_UNAVAILABLE"); + break; + case VC_ENGINE_ENDCAUSE_SERVICE_TEMP_UNAVAILABLE: + string_id = _("IDS_CALL_BODY_SERVICE_UNAVAILABLE"); + break; + case VC_ENGINE_ENDCAUSE_NO_ANSWER: + string_id = _("IDS_CALL_BODY_NO_ANSWER"); + break; + case VC_ENGINE_ENDCAUSE_NO_CREDIT: + string_id = _("IDS_CALL_POP_NOCREDITLEFT"); + break; + case VC_ENGINE_ENDCAUSE_REJECTED: + string_id = _("IDS_CALL_BODY_CALL_REJECTED"); + break; + case VC_ENGINE_ENDCAUSE_USER_BUSY: + string_id = _("IDS_CALL_POP_USER_BUSY"); + break; + case VC_ENGINE_ENDCAUSE_WRONG_GROUP: + string_id = _("IDS_CALL_POP_WRONG_GROUP"); + break; + case VC_ENGINE_ENDCAUSE_INVALID_NUMBER_FORMAT: + string_id = _("IDS_CALL_POP_CAUSE_WRONG_NUMBER"); + break; + case VC_ENGINE_ENDCAUSE_CALL_NOT_ALLOWED: + string_id = _("IDS_CALL_POP_CALLNOTCALLOWED"); + break; + case VC_ENGINE_ENDCAUSE_TAPI_ERROR: + string_id = _("IDS_CALL_POP_AEESYS_SYSTEMFAILUREERROR"); + break; + case VC_ENGINE_ENDCAUSE_CALL_FAILED: + string_id = _("IDS_CALL_POP_CALLFAILED"); + break; + case VC_ENGINE_ENDCAUSE_NUMBER_CHANGED: + string_id = _("IDS_CALL_BODY_NUMBER_CHANGED"); + break; + case VC_ENGINE_ENDCAUSE_IMEI_REJECTED: + string_id = _("IDS_CALL_POP_VERIFY_SIM_OR_INSERT_VALID_SIM"); + break; + case VC_ENGINE_ENDCAUSE_NO_USER_RESPONDING: /**< User not responding */ + case VC_ENGINE_ENDCAUSE_USER_ALERTING_NO_ANSWER: /**< User Alerting No Answer */ + default: + string_id = _("IDS_CALL_BODY_CALLENDED"); + break; + } + vcall_engine_util_strcpy(data, VC_DATA_LENGTH_MAX, string_id); + return data; +} + +void _vcui_cache_flush() +{ +#ifdef _CACHE_FLUSH_ + vcui_app_call_data_t *ad = _vcui_get_app_data(); + + evas_font_cache_flush(ad->evas); + evas_image_cache_flush(ad->evas); + + edje_file_cache_flush(); + edje_collection_cache_flush(); + + evas_render_idle_flush(ad->evas); +#endif +} + +int _vcui_is_idle_lock() +{ + int lock_state; + int ret = vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &(lock_state)); + if (ret == -1) { + CALL_UI_DEBUG("Cannot get vconf key"); + } + + if (lock_state == VCONFKEY_IDLE_LOCK) + return CALL_LOCK; + else + return CALL_UNLOCK; +} + +unsigned long _vcui_get_diff_now(time_t start_time) +{ + time_t curr_time; + unsigned long call_duration_in_sec = 0; + curr_time = time(&curr_time); + call_duration_in_sec = curr_time - start_time; + return call_duration_in_sec; +} + +gboolean _vcui_is_gcf_mode(void) +{ + gboolean bgcf_status = EINA_FALSE; + int ret = -1; + + ret = vconf_get_int(VCONFKEY_ADMIN_GCF_TEST, &bgcf_status); + if (0 == ret) { + CALL_UI_DEBUG("bgcf_status = [%d]\n", bgcf_status); + } else { + CALL_UI_DEBUG("vconf_get_int failed..[%d]\n", ret); + } + + return bgcf_status; +} + +gboolean _vcui_is_headset_conected(void) +{ + int bt_connected = VCONFKEY_BT_DEVICE_NONE; + Eina_Bool ret = EINA_FALSE; + + ret = vconf_get_int(VCONFKEY_BT_DEVICE, &bt_connected); + if (0 == ret) { + CALL_UI_DEBUG("bt_connected = [0x%x] ", bt_connected); + } else { + CALL_UI_DEBUG("vconf_get_int failed..[%d]", ret); + } + + return (VCONFKEY_BT_DEVICE_HEADSET_CONNECTED == (bt_connected & VCONFKEY_BT_DEVICE_HEADSET_CONNECTED)) ? EINA_TRUE : EINA_FALSE; +} + +gboolean _vcui_is_headset_switch_on(void) +{ + int bt_status = VCONFKEY_BT_STATUS_OFF; + Eina_Bool ret = EINA_FALSE; + + ret = vconf_get_int(VCONFKEY_BT_STATUS, &bt_status); + if (0 == ret) { + CALL_UI_DEBUG("bt_status = [0x%x] ", bt_status); + } else { + CALL_UI_DEBUG("vconf_get_int failed..[%d]", ret); + } + + return (VCONFKEY_BT_STATUS_ON == (bt_status & VCONFKEY_BT_STATUS_ON)) ? EINA_TRUE : EINA_FALSE; +} + +gboolean _vcui_is_answering_mode_on(void) +{ + gboolean bAnswerMode = EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + + ret = vconf_get_bool(VCONFKEY_CISSAPPL_ANSWERING_KEY_BOOL, &bAnswerMode); + if (0 == ret) { + CALL_UI_DEBUG("bAnswerMode = [%d] \n", bAnswerMode); + } else { + CALL_UI_DEBUG("vconf_get_int failed..[%d]\n", ret); + } + + return bAnswerMode; +} + +gboolean _vcui_is_powerkey_mode_on(void) +{ + gboolean bPowerkeyMode = EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + + ret = vconf_get_bool(VCONFKEY_CISSAPPL_POWER_KEY_ENDS_CALL_BOOL, &bPowerkeyMode); + if (0 == ret) { + CALL_UI_DEBUG("bPowerkeyMode = [%d] \n", bPowerkeyMode); + } else { + CALL_UI_DEBUG("vconf_get_int failed..[%d]\n", ret); + } + + return bPowerkeyMode; +} + +gboolean _vcui_is_phonelock_status() +{ + gboolean b_phonelock = EINA_FALSE; + if (!vconf_get_bool(VCONFKEY_SETAPPL_STATE_POWER_ON_LOCK_BOOL, &b_phonelock)) { + CALL_UI_DEBUG("b_phonelock:[%d]", b_phonelock); + return b_phonelock; + } else { + CALL_UI_DEBUG("get VCONFKEY_SETAPPL_STATE_POWER_ON_LOCK_BOOL failed.."); + return EINA_FALSE; + } +} + +void _vcui_add_calllog(int type, call_data_t *data, int boutgoing_end) +{ + CALL_UI_DEBUG("type = [0x%x] ", type); + CTSvalue *plog; + time_t current_time; + int missed_cnt = 0; + + if (data == NULL) + return; + contacts_svc_connect(); + + current_time = time(NULL); + + plog = contacts_svc_value_new(CTS_VALUE_PHONELOG); + contacts_svc_value_set_str(plog, CTS_PLOG_VAL_NUMBER_STR, _vcui_doc_get_call_number(data)); + contacts_svc_value_set_int(plog, CTS_PLOG_VAL_LOG_TIME_INT, (int)current_time); + contacts_svc_value_set_int(plog, CTS_PLOG_VAL_LOG_TYPE_INT, type); + contacts_svc_value_set_int(plog, CTS_PLOG_VAL_RELATED_ID_INT, _vcui_doc_get_contact_index(data)); + + if ((type == CTS_PLOG_TYPE_VOICE_INCOMMING_UNSEEN) || (type == CTS_PLOG_TYPE_VOICE_REJECT) || (type == CTS_PLOG_TYPE_VOICE_BLOCKED) || (boutgoing_end == EINA_TRUE)) { + contacts_svc_value_set_int(plog, CTS_PLOG_VAL_DURATION_INT, 0); + } else { + contacts_svc_value_set_int(plog, CTS_PLOG_VAL_DURATION_INT, _vcui_get_diff_now(_vcui_doc_get_call_start_time(data))); + } + contacts_svc_insert_phonelog(plog); + + contacts_svc_value_free(plog); + missed_cnt = contacts_svc_count(CTS_GET_UNSEEN_MISSED_CALL); + contacts_svc_disconnect(); + + /* vconf set & quickpanel noti (for missed call) */ + if (type == CTS_PLOG_TYPE_VOICE_INCOMMING_UNSEEN) { + char szname[255] = { 0, }; + char str_buf[1024] = { 0, }; + int noti_flags = 0; + notification_h noti = NULL; + notification_error_e noti_err = NOTIFICATION_ERROR_NONE; + + if (strlen(_vcui_doc_get_call_display_name(data)) == 0) { + snprintf(szname, sizeof(szname), "%s", _vcui_doc_get_call_number(data)); + } else { + snprintf(szname, sizeof(szname), "%s", _vcui_doc_get_call_display_name(data)); + } + CALL_UI_DEBUG("szname:[%s]", szname); + + if (missed_cnt == 1) { + strncpy(str_buf, _("IDS_CALL_POP_CALLMISSED"), sizeof(str_buf) - 1); + } else { + char *temp = _("IDS_CALL_HEADER_PD_MISSED_CALLS"); + snprintf(str_buf, sizeof(str_buf), temp, missed_cnt); + } + CALL_UI_DEBUG("Notification string :[%s]", str_buf); + + noti = notification_new(NOTIFICATION_TYPE_NOTI, __VCUI_NOTIFICATION_CALL_GROUP_ID, NOTIFICATION_PRIV_ID_NONE); + if (noti == NULL) { + CALL_UI_DEBUG("Fail to notification_new"); + return; + } + + noti_err = notification_set_pkgname(noti, CALL_PKG_NAME); + if (noti_err != NOTIFICATION_ERROR_NONE) { + CALL_UI_DEBUG("Fail to noification_set_pkgname %d", noti_err); + } + + noti_err = notification_set_application(noti, DIALER_PKG); + if (noti_err != NOTIFICATION_ERROR_NONE) { + CALL_UI_DEBUG("Fail to notification_set_application : %d", noti_err); + } + + bundle *args = bundle_create(); + + bundle_add(args, "logs", "missed_call"); + noti_err = notification_set_args(noti, args, NULL); + if (noti_err != NOTIFICATION_ERROR_NONE) { + CALL_UI_DEBUG("Fail to notification_set_args : %d", noti_err); + } + bundle_free(args); + + noti_err = notification_set_time(noti, current_time); + if (noti_err != NOTIFICATION_ERROR_NONE) { + CALL_UI_DEBUG("Fail to notification_set_icon : %d", noti_err); + } + + /* Set notification single title*/ + noti_err = notification_set_text(noti, NOTIFICATION_TEXT_TYPE_TITLE, szname, NULL, NOTIFICATION_VARIABLE_TYPE_NONE); + if (noti_err != NOTIFICATION_ERROR_NONE) { + CALL_UI_DEBUG("Fail to notification_set_text(single-title) : %d", noti_err); + } + + /* Set noitification single content*/ + noti_err = notification_set_text(noti, NOTIFICATION_TEXT_TYPE_CONTENT, str_buf, NULL, NOTIFICATION_VARIABLE_TYPE_NONE); + if (noti_err != NOTIFICATION_ERROR_NONE) { + CALL_UI_DEBUG("Fail to notification_set_text(single-content) : %d", noti_err); + } + + /* Set notification group title*/ + noti_err = notification_set_text(noti, NOTIFICATION_TEXT_TYPE_GROUP_TITLE, str_buf, NULL, NOTIFICATION_VARIABLE_TYPE_NONE); + if (noti_err != NOTIFICATION_ERROR_NONE) { + CALL_UI_DEBUG("Fail to notification_set_text(group-title) : %d", noti_err); + } + + noti_flags = NOTIFICATION_PROP_DISABLE_TICKERNOTI | NOTIFICATION_PROP_DISPLAY_ONLY_SIMMODE; + noti_err = notification_set_property(noti, noti_flags); + if(noti_err != NOTIFICATION_ERROR_NONE) { + CALL_UI_DEBUG("Fail to notification_set_property : %d", noti_err); + } + + char *file_path = _vcui_doc_get_caller_id_file_path(data); + CALL_UI_DEBUG("data->call_file_path(%s)", file_path); + if ((strcmp(file_path, NOIMG_ICON) == 0) + || (missed_cnt > 1)) { + noti_err = notification_set_image(noti, NOTIFICATION_IMAGE_TYPE_THUMBNAIL, NOTIFY_MISSED_CALL_ICON); + } else { + noti_err = notification_set_image(noti, NOTIFICATION_IMAGE_TYPE_THUMBNAIL, file_path); + } + if (noti_err != NOTIFICATION_ERROR_NONE) { + CALL_UI_DEBUG("Fail to notification_set_icon : %d", noti_err); + } + noti_err = notification_set_image(noti, NOTIFICATION_IMAGE_TYPE_ICON, NOTIFY_SUB_MISSED_CALL_ICON); + if (noti_err != NOTIFICATION_ERROR_NONE) { + CALL_UI_DEBUG("Fail to notification_set_icon : %d", noti_err); + } + + noti_err = notification_insert(noti, NULL); + if (noti_err != NOTIFICATION_ERROR_NONE) { + CALL_UI_DEBUG("Fail to notification_set_text_domain"); + } + + noti_err = notification_free(noti); + if (noti_err != NOTIFICATION_ERROR_NONE) { + CALL_UI_DEBUG("Fail to notification_set_text_domain"); + } + } +} + +void _vcui_raise_main_win() +{ + CALL_UI_DEBUG(".."); + + vcui_app_call_data_t *ad = _vcui_get_app_data(); + if (ad == NULL) { + CALL_UI_DEBUG("App data is NULL"); + return; + } + if (ad->win_main == NULL) { + CALL_UI_DEBUG("Main Window is NULL"); + return; + } + + elm_win_activate(ad->win_main); + _vcui_show_main_ui_set_flag(); + /*view_refresh_now(); */ + +} + +int _vcui_check_valid_eo(Evas_Object *eo, char *v_name) +{ + /*CALL_UI_DEBUG("eo addr:[%p], v_name:[%s]", eo, v_name); */ + const char *obj_name = evas_object_name_get(eo); + if (obj_name == NULL) { + CALL_UI_DEBUG("obj_name is NULL!!. eo addr:[%p], v_name:[%s]", eo, v_name); + return VC_ERROR; + } + if (strncmp(obj_name, v_name, strlen(obj_name)) == 0) { + return VC_NO_ERROR; + } else { + CALL_UI_DEBUG("different name !! "); + return VC_ERROR; + } +} + +vcui_app_call_data_t *_vcui_get_app_data() +{ + return &global_ad; +} + +void _vcui_show_main_ui_set_flag() +{ + vcui_app_call_data_t *ad = _vcui_get_app_data(); + if (ad->show_flag == WIN_HIDE) { + CALL_UI_DEBUG("show_flag : WIN_SHOW"); + evas_object_show(ad->win_main); + ad->show_flag = WIN_SHOW; + } +} + +void __vcui_hide_main_ui_set_flag() +{ + vcui_app_call_data_t *ad = _vcui_get_app_data(); + CALL_UI_DEBUG("show_flag: WIN_HIDE"); + evas_object_hide(ad->win_main); + ad->show_flag = WIN_HIDE; +} + +Evas_Object *_vcui_load_edj(Evas_Object *parent, const char *file, const char *group) +{ + Evas_Object *eo; + int r; + + eo = elm_layout_add(parent); + if (eo) { + r = elm_layout_file_set(eo, file, group); + if (!r) { + evas_object_del(eo); + CALL_UI_DEBUG("ERROR!!"); + return NULL; + } + + evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(parent, eo); + } + + return eo; +} + +int main(int argc, char *argv[]) +{ + CALL_UI_DEBUG("voice call ui main().."); + + struct appcore_ops ops = { + .create = __vcui_app_create, + .terminate = __vcui_app_terminate, + .pause = __vcui_app_pause, + .resume = __vcui_app_resume, + .reset = __vcui_app_reset, + }; + + memset(&global_ad, 0, sizeof(vcui_app_call_data_t)); + + ops.data = &global_ad; + + CALL_UI_KPI("__vcui_init start"); + __vcui_init(&global_ad); + CALL_UI_KPI("__vcui_init done"); + + appcore_set_i18n(PACKAGE, LOCALEDIR); + + return appcore_efl_main(PACKAGE, &argc, &argv, &ops); +} + +static Eina_Bool __vcui_avoid_multi_setup_timer_cb(void *data) +{ + CALL_UI_DEBUG(".."); + + g_avoid_multi_setup = EINA_FALSE; + + return ECORE_CALLBACK_CANCEL; +} + +static void __vcui_app_callback(int event, void *pdata, void *puser_data) +{ + vcui_app_call_data_t *ad = (vcui_app_call_data_t *)puser_data; + vc_engine_msg_type *msg = (vc_engine_msg_type *)pdata; + + if ((ad == NULL) || (msg == NULL)) { + CALL_UI_DEBUG("ERROR.NULL pointer"); + return; + } + CALL_UI_DEBUG("@@@ event:[%s], view_top:[%d], count:[%d] @@@ \n", gszcall_callback_msg[event], ad->view_top, _vcui_doc_get_all_call_data_count()); + + switch (event) { + case VC_ENGINE_MSG_INCOM_TO_UI: + { + vcall_engine_device_control_lcd_state(VC_LCD_ON_LOCK); + + CALL_UI_DEBUG("num:[%s], name:[%s]", msg->incoming.call_num, msg->incoming.call_name); + + call_data_t *call_data = NULL; + call_data = _vcui_doc_allocate_call_data_memory(); + if (call_data == NULL) { + CALL_UI_DEBUG("Error"); + elm_exit(); + return; + } + _vcui_doc_set_call_handle(call_data, msg->incoming.call_handle); + _vcui_doc_set_contact_index(call_data, msg->incoming.contact_index); + _vcui_doc_set_contact_phone_type(call_data, msg->incoming.phone_type); + _vcui_doc_set_birthday_remaining_days(call_data, msg->incoming.bday_remaining_days); + _vcui_doc_set_call_number(call_data, msg->incoming.call_num); + + if (msg->incoming.brestricted == EINA_TRUE) { + if (msg->incoming.bpayphone == EINA_TRUE) { + _vcui_doc_set_call_display_name(call_data, _("Payphone")); + } else { + _vcui_doc_set_call_display_name(call_data, dgettext("sys_string", "IDS_COM_BODY_UNKNOWN")); + } + } else { + _vcui_doc_set_call_display_name(call_data, msg->incoming.call_name); + } + + if ((strcmp((char *)msg->incoming.call_file_path, "default") == 0) || (strlen((char *)msg->incoming.call_file_path) == 0)) { + _vcui_doc_set_caller_id_file_path(call_data, NOIMG_ICON); + } else { + _vcui_doc_set_caller_id_file_path(call_data, msg->incoming.call_file_path); + } + + if ((strcmp((char *)msg->incoming.call_full_file_path, "default") == 0) || (strlen((char *)msg->incoming.call_full_file_path) == 0)) { + _vcui_doc_set_caller_id_full_file_path(call_data, NOIMG_ICON); + } else { + _vcui_doc_set_caller_id_full_file_path(call_data, msg->incoming.call_full_file_path); + } + _vcui_doc_set_call_status(call_data, NO_STATUS); + _vcui_doc_set_call_type(call_data, CALL_INCOMING); + _vcui_doc_set_auto_reject_status(call_data, msg->incoming.brejected); + + _vcui_doc_set_recent_mt_call_data(call_data); + _vcui_doc_add_call_data(call_data); + + { + /*Auto Reject Check */ + if (EINA_TRUE == msg->incoming.brejected) { + CALL_UI_DEBUG("the call rejected and show reject popup"); + vcall_engine_reject_call(); + _vcui_add_calllog(CTS_PLOG_TYPE_VOICE_BLOCKED, call_data, EINA_FALSE); + + if (_vcui_doc_get_all_call_data_count() > 1) { + _vcui_view_popup_load_reject_call(_vcui_doc_get_call_display_name(call_data), _vcui_doc_get_call_number(call_data), EINA_FALSE); + } else { + _vcui_view_popup_load_reject_call(_vcui_doc_get_call_display_name(call_data), _vcui_doc_get_call_number(call_data), EINA_TRUE); + } + } else { + _vcui_view_change(VIEW_INCOMING_LOCK_VIEW, 0, NULL, NULL); + } + } + } + break; + + case VC_ENGINE_MSG_OUTGOING_TO_UI: + { + call_data_t *call_data = NULL; + call_data = _vcui_doc_allocate_call_data_memory(); + if (call_data == NULL) { + CALL_UI_DEBUG("Error"); + elm_exit(); + return; + } + + _vcui_doc_set_call_handle(call_data, NO_HANDLE); + _vcui_doc_set_contact_index(call_data, msg->outgoing.contact_index); + _vcui_doc_set_contact_phone_type(call_data, msg->outgoing.phone_type); + _vcui_doc_set_birthday_remaining_days(call_data, msg->outgoing.bday_remaining_days); + _vcui_doc_set_call_number(call_data, msg->outgoing.call_num); + _vcui_doc_set_call_display_name(call_data, msg->outgoing.call_name); + + if ((strcmp((char *)msg->outgoing.call_file_path, "default") == 0) || (strlen((char *)msg->outgoing.call_file_path) == 0)) { + _vcui_doc_set_caller_id_file_path(call_data, NOIMG_ICON); + } else { + _vcui_doc_set_caller_id_file_path(call_data, msg->outgoing.call_file_path); + } + + if ((strcmp((char *)msg->outgoing.call_full_file_path, "default") == 0) || (strlen((char *)msg->outgoing.call_full_file_path) == 0)) { + _vcui_doc_set_caller_id_full_file_path(call_data, NOIMG_ICON); + } else { + _vcui_doc_set_caller_id_full_file_path(call_data, msg->outgoing.call_full_file_path); + } + _vcui_doc_set_call_status(call_data, NO_STATUS); + _vcui_doc_set_call_type(call_data, CALL_OUTGOING); + _vcui_doc_set_call_start_time(call_data); + + _vcui_doc_set_recent_mo_call_data(call_data); + } + break; + + case VC_ENGINE_MSG_OUTGOING_ORIG_TO_UI: + { + vcall_engine_device_control_lcd_state(VC_LCD_ON_LOCK); + + vc_engine_outgoing_orig_type outgoing_orig = msg->outgoing_orig; + + call_data_t *call_data = _vcui_doc_get_recent_mo_call_data(); + _vcui_doc_set_call_handle(call_data, outgoing_orig.call_handle); + + if (outgoing_orig.bemergency == EINA_TRUE) { + CALL_UI_DEBUG("it is emergency call"); + char *em_name = _("IDS_CALL_POP_EMERGENCY_CALL"); + _vcui_doc_set_call_display_name(call_data, em_name); + _vcui_doc_set_caller_id_file_path(call_data, NOIMG_ICON); + _vcui_doc_set_caller_id_full_file_path(call_data, NOIMG_ICON); + _vcui_doc_set_contact_phone_type(call_data, -1); + _vcui_doc_set_birthday_remaining_days(call_data, -1); + } + + _vcui_doc_add_call_data(call_data); + _vcui_view_change(VIEW_DIALLING_VIEW, 0, NULL, NULL); + + /*Update the quick-panel window */ + _vcui_view_quickpanel_change(); + _vcui_view_qp_update_text_status(ad->view_st[VIEW_QUICKPANEL_VIEW], _("IDS_CALL_POP_CALLING")); + } + break; + + case VC_ENGINE_MSG_OUTGOING_ORIG_TO_UI_TEST: + { + vcall_engine_device_control_lcd_state(VC_LCD_ON_LOCK); + + vc_engine_outgoing_orig_type outgoing_orig = msg->outgoing_orig; + + call_data_t *call_data = _vcui_doc_get_recent_mo_call_data(); + _vcui_doc_set_call_handle(call_data, 1); + + if (outgoing_orig.bemergency == EINA_TRUE) { + CALL_UI_DEBUG("it is emergency call"); + char *em_name = _("IDS_CALL_POP_EMERGENCY_CALL"); + _vcui_doc_set_call_display_name(call_data, em_name); + _vcui_doc_set_caller_id_file_path(call_data, NOIMG_ICON); + _vcui_doc_set_caller_id_full_file_path(call_data, NOIMG_ICON); + _vcui_doc_set_contact_phone_type(call_data, -1); + _vcui_doc_set_birthday_remaining_days(call_data, -1); + } + + _vcui_doc_add_call_data(call_data); + _vcui_view_change(VIEW_DIALLING_VIEW, 0, NULL, NULL); + + /*Update the quick-panel window */ + _vcui_view_quickpanel_change(); + _vcui_view_qp_update_text_status(ad->view_st[VIEW_QUICKPANEL_VIEW], _("IDS_CALL_POP_CALLING")); + } + break; + + case VC_ENGINE_MSG_OUTGOING_ALERT_TO_UI: + { + call_data_t *call_data = _vcui_doc_get_recent_mo_call_data(); + if (_vcui_doc_is_valid_call_data(call_data) == EINA_FALSE) { + CALL_UI_DEBUG("Error. check outgoing_orig msg."); + elm_exit(); + return; + } + + _vcui_view_qp_update_text_status(ad->view_st[VIEW_QUICKPANEL_VIEW], _("IDS_CALL_POP_CALLING")); + } + break; + + case VC_ENGINE_MSG_CONNECTED_TO_UI: + { + vcall_engine_device_control_lcd_state(VC_LCD_ON_UNLOCK); + + vc_engine_connected_type connected = msg->connected; + call_data_t *call_data = _vcui_doc_get_call_data_by_handle(connected.call_handle); + if (_vcui_doc_is_valid_call_data(call_data) == EINA_FALSE) { + CALL_UI_DEBUG("Error"); + elm_exit(); + return; + } + _vcui_doc_set_call_status(call_data, CALL_UNHOLD); + _vcui_doc_set_call_handle(call_data, connected.call_handle); + _vcui_doc_set_call_start_time(call_data); + /* When new call connected, if it's multiparty call, always show split1 first. */ + ad->bswapped = EINA_FALSE; + + _vcui_view_auto_change(); + + /*Update the quick-panel window */ + _vcui_view_quickpanel_change(); + } + break; + + case VC_ENGINE_MSG_NORMAL_END_TO_UI: + { + vcall_engine_device_control_lcd_state(VC_LCD_ON_LOCK); + + vc_engine_normal_end_type normal_end = msg->normal_end; + + CALL_UI_DEBUG("end_cause_type:[%d]", normal_end.end_cause_type); + + vcui_app_call_data_t *ad = _vcui_get_app_data(); + time_t start_time; + int call_type = -1; + + call_data_t *call_data = _vcui_doc_get_call_data_by_handle(normal_end.call_handle); + if (_vcui_doc_is_valid_call_data(call_data) == EINA_FALSE) { + CALL_UI_DEBUG("Error"); + elm_exit(); + return; + } + call_type = _vcui_doc_get_call_type(call_data); + CALL_UI_DEBUG("call_type: %d", call_type); + if (call_type == CALL_OUTGOING) { + _vcui_add_calllog(CTS_PLOG_TYPE_VOICE_OUTGOING, call_data, EINA_FALSE); + } else if (call_type == CALL_INCOMING) { + _vcui_add_calllog(CTS_PLOG_TYPE_VOICE_INCOMMING, call_data, EINA_FALSE); + } + start_time = _vcui_doc_get_call_start_time(call_data); + + + if (_vcui_doc_get_all_call_data_count() == 1 && ad->view_top == VIEW_INCALL_ONECALL_VIEW) { + ad->call_end_type = CALL_END_TYPE_SINGLE_CALL; + } + CALL_UI_DEBUG("ad->call_end_type[%d]", ad->call_end_type); + + if (ad->call_end_type == CALL_END_TYPE_SINGLE_CALL) { + CALL_UI_DEBUG("Show end screen - %d", ad->call_end_type); + _vcui_view_change(VIEW_ENDCALL_VIEW, -1, call_data, NULL); + ad->call_end_type = CALL_END_TYPE_NONE; + CALL_UI_DEBUG("Blink show: end call time"); + _vcui_view_common_call_end_show(start_time, normal_end.end_cause_type); + _vcui_doc_remove_call_data(call_data); + } else if (ad->call_end_type == CALL_END_TYPE_CONF_CALL) { + if (_vcui_doc_get_all_call_data_count() == 1) { + ad->call_end_type = CALL_END_TYPE_NONE; + } else if (ad->view_top != VIEW_ENDCALL_VIEW) { + _vcui_view_change(VIEW_ENDCALL_VIEW, -1, call_data, NULL); + _vcui_view_common_call_end_show(start_time, normal_end.end_cause_type); + } + _vcui_doc_remove_call_data(call_data); + } else { + _vcui_doc_remove_call_data(call_data); + _vcui_view_common_call_terminate_or_view_change(); + } + /*Update the quick-panel window */ + _vcui_view_quickpanel_change(); + } + break; + + case VC_ENGINE_MSG_INCOM_END_TO_UI: + { + vcall_engine_device_control_lcd_state(VC_LCD_ON_UNLOCK); + + vc_engine_common_with_handle_type incom_end = msg->incom_end; + + call_data_t *call_data = _vcui_doc_get_call_data_by_handle(incom_end.call_handle); + if (_vcui_doc_is_valid_call_data(call_data) == EINA_FALSE) { + CALL_UI_DEBUG("Error"); + elm_exit(); + return; + } + _vcui_add_calllog(CTS_PLOG_TYPE_VOICE_INCOMMING_UNSEEN, call_data, EINA_FALSE); + _vcui_doc_remove_call_data(call_data); + _vcui_view_common_call_terminate_or_view_change(); + } + break; + + case VC_ENGINE_MSG_REJECTED_END_TO_UI: + { + vcall_engine_device_control_lcd_state(VC_LCD_ON_UNLOCK); + + vc_engine_common_with_handle_type rejected_end = msg->rejected_end; + + call_data_t *pcall_data = _vcui_doc_get_call_data_by_handle(rejected_end.call_handle); + if (_vcui_doc_is_valid_call_data(pcall_data) == EINA_FALSE) { + CALL_UI_DEBUG("Error"); + elm_exit(); + return; + } + + if (_vcui_doc_get_auto_reject_status(pcall_data) == EINA_TRUE) { + CALL_UI_DEBUG("auto rejected."); + _vcui_doc_remove_call_data(pcall_data); + } else { + _vcui_add_calllog(CTS_PLOG_TYPE_VOICE_REJECT, pcall_data, EINA_FALSE); + _vcui_doc_remove_call_data(pcall_data); + _vcui_view_common_call_terminate_or_view_change(); + } + } + break; + + case VC_ENGINE_MSG_OUTGOING_END_TO_UI: + { + vcall_engine_device_control_lcd_state(VC_LCD_ON_UNLOCK); + + vc_engine_outgoing_end_type outgoing_end = msg->outgoing_end; + call_data_t *call_data = _vcui_doc_get_call_data_by_handle(outgoing_end.call_handle); + if (_vcui_doc_is_valid_call_data(call_data) == EINA_FALSE) { + CALL_UI_DEBUG("It is the case which call orig is not received."); + char data[VC_DATA_LENGTH_MAX] = { 0, }; + _vcui_view_popup_load(_vcui_get_endcause_string(outgoing_end.end_cause_type, data), POPUP_TIMEOUT_LONG, EINA_TRUE); + } else { + _vcui_add_calllog(CTS_PLOG_TYPE_VOICE_OUTGOING, call_data, EINA_TRUE); + if (outgoing_end.bauto_redial == EINA_TRUE) { + CALL_UI_DEBUG("bauto_redial is EINA_TRUE"); + _vcui_doc_remove_call_data_from_list(call_data); + } else { + CALL_UI_DEBUG("show the call end screen"); + vcui_app_call_data_t *ad = _vcui_get_app_data(); + if (_vcui_doc_get_all_call_data_count() == 1 && ad->view_top == VIEW_DIALLING_VIEW) { + ad->call_end_type = CALL_END_TYPE_SINGLE_CALL; + _vcui_view_change(VIEW_ENDCALL_VIEW, -1, call_data, NULL); + } + _vcui_doc_remove_call_data(call_data); + } + _vcui_view_common_call_end_show_dialing(outgoing_end.end_cause_type, outgoing_end.bauto_redial); + } + + } + break; + + case VC_ENGINE_MSG_OUTGOING_END_SIGNAL_PLAY_TO_UI: + { + vc_engine_outgoing_end_signal_play_type outgoing_end_signal_play = msg->outgoing_end_signal_play; + call_data_t *call_data = _vcui_doc_get_call_data_by_handle(outgoing_end_signal_play.call_handle); + if (call_data != NULL) { + _vcui_view_dialing_draw_txt_ended(ad->view_st[ad->view_top], outgoing_end_signal_play.end_cause_type); + } else { + CALL_UI_DEBUG("Check it whether call data exists. handle:[%d]", outgoing_end_signal_play.call_handle); + } + } + break; + + case VC_ENGINE_MSG_OUTGOING_ABORTED_TO_UI: + { + vcall_engine_device_control_lcd_state(VC_LCD_ON_UNLOCK); + + vc_engine_common_with_handle_type outgoing_aborted = msg->outgoing_aborted; + call_data_t *call_data = _vcui_doc_get_call_data_by_handle(outgoing_aborted.call_handle); + if (call_data == NULL) + call_data = _vcui_doc_get_recent_mo_call_data(); + + if (call_data == NULL) { + CALL_UI_DEBUG("Error"); + elm_exit(); + return; + } + + _vcui_add_calllog(CTS_PLOG_TYPE_VOICE_OUTGOING, call_data, EINA_TRUE); + + _vcui_doc_remove_call_data(call_data); + + _vcui_view_common_call_terminate_or_view_change(); + + } + break; + + case VC_ENGINE_MSG_DTMF_ACK_TO_UI: + { + + vc_engine_dtmf_ack_type dtmf_ack = msg->dtmf_progress; + + if (EINA_FALSE == dtmf_ack.bstatus) { + _vcui_view_popup_unload_progress(ad); + if ((dtmf_ack.string_id != -1) && (dtmf_ack.string_id != IDS_CALL_POP_DTMF_SENT)) { + CALL_UI_DEBUG("load popup window... Start"); + _vcui_view_popup_load(_(gszcall_error_msg[dtmf_ack.string_id]), POPUP_TIMEOUT_LONG, EINA_FALSE); + } + } else { + CALL_UI_DEBUG("display_string:[%s], string_id:[%d]", dtmf_ack.display_string, dtmf_ack.string_id); + if (dtmf_ack.string_id == IDS_CALL_POP_UNAVAILABLE) { /*check for the ID when string is added */ + _vcui_view_load_send_dtmf_popup_with_buttons(_("Send DTMF tones?"), dtmf_ack.display_string); /*add the string */ + } else if (dtmf_ack.string_id == IDS_CALL_POP_SENDING) { + _vcui_view_popup_load_sending_dtmf(_(gszcall_error_msg[dtmf_ack.string_id]), dtmf_ack.display_string); + } + } + } + break; + + case VC_ENGINE_MSG_SS_HELD_TO_UI: + { + _vcui_doc_set_all_call_data_to_hold_status(); + _vcui_view_update(); + /*Update the quick-panel window */ + _vcui_view_quickpanel_change(); + + } + break; + + case VC_ENGINE_MSG_SS_RETREIVED_TO_UI: + { + _vcui_doc_set_all_call_data_to_unhold_status(); + _vcui_view_update(); + /*Update the quick-panel window */ + _vcui_view_quickpanel_change(); + + } + break; + + case VC_ENGINE_MSG_SS_SWAP_TO_UI: + { + _vcui_view_popup_unload(ad->popup_eo); + + if (ad->bholdisleft == EINA_TRUE) { + ad->bswapped = EINA_FALSE; + } else { + ad->bswapped = EINA_TRUE; + } + + _vcui_doc_swap_all_call_data_status(); + _vcui_view_auto_change(); + /*Update the quick-panel window */ + _vcui_view_quickpanel_change(); + } + break; + + case VC_ENGINE_MSG_SS_SETUP_CONF_TO_UI: + { + _vcui_view_popup_unload(ad->popup_eo); + + _vcui_doc_set_all_call_data_to_unhold_status(); + _vcui_view_auto_change(); + /*Update the quick-panel window */ + _vcui_view_quickpanel_change(); + } + break; + + case VC_ENGINE_MSG_SS_SPLIT_CONF_TO_UI: + { + vc_engine_common_with_handle_type ss_split_conf = msg->ss_split_conf; + + CALL_UI_DEBUG("[UI]The handle is %d ", ss_split_conf.call_handle); + + call_data_t *call_data = _vcui_doc_get_call_data_by_handle(ss_split_conf.call_handle); + if (call_data == NULL) { + CALL_UI_DEBUG("Error"); + elm_exit(); + return; + } else { + _vcui_doc_set_all_call_data_to_hold_status(); + _vcui_doc_set_call_status(call_data, CALL_UNHOLD); + + _vcui_view_auto_change(); + /*Update the quick-panel window */ + _vcui_view_quickpanel_change(); + } + } + break; + + case VC_ENGINE_MSG_SS_TRANSFERRED_TO_UI: + break; + + case VC_ENGINE_MSG_SS_CONNECT_LINE_IND_TO_UI: + break; + + case VC_ENGINE_MSG_IND_FORWARD_TO_UI: + break; + + case VC_ENGINE_MSG_IND_ACTIVATE_TO_UI: + { + _vcui_view_popup_load(_("IDS_CALL_POP_UNHELD"), POPUP_TIMEOUT_SHORT, EINA_FALSE); + } + break; + + case VC_ENGINE_MSG_IND_HOLD_TO_UI: + { + _vcui_view_popup_load(_("IDS_CALL_POP_HELD"), POPUP_TIMEOUT_SHORT, EINA_FALSE); + } + break; + + case VC_ENGINE_MSG_IND_TRANSFER_TO_UI: + break; + + case VC_ENGINE_MSG_IND_SETUPCONFERENCE_TO_UI: + break; + + case VC_ENGINE_MSG_IND_BARRING_TO_UI: + break; + + case VC_ENGINE_MSG_IND_WAITING_TO_UI: + { + _vcui_view_popup_load(_("IDS_CALL_POP_WAITING_ACTIVE"), POPUP_TIMEOUT_SHORT, EINA_FALSE); + } + break; + + case VC_ENGINE_MSG_IND_CUGINFO_TO_UI: + break; + + case VC_ENGINE_MSG_IND_SSNOTIFY_TO_UI: + break; + + case VC_ENGINE_MSG_IND_CALLINGNAMEINFO_TO_UI: + break; + + case VC_ENGINE_MSG_IND_REDIRECT_CNF_TO_UI: + break; + + case VC_ENGINE_MSG_IND_ACTIVATECCBS_CNF_TO_UI: + break; + + case VC_ENGINE_MSG_IND_ACTIVATECCBS_USERINFO_TO_UI: + break; + + case VC_ENGINE_MSG_GET_VOLUME_RESP_TO_UI: + { + vc_engine_vol_resp_type vol_resp = msg->vol_resp; + _vcui_response_volume(vol_resp.vol_alert_type, vol_resp.vol_level); + } + break; + + case VC_ENGINE_MSG_SET_VOLUME_FROM_BT_TO_UI: + { + vc_engine_vol_set_from_bt_type vol_set_from_bt = msg->vol_set_from_bt; + ad->bt_vol_val = vol_set_from_bt.vol_level; + _vcui_view_popup_vol_bt(ad->bt_vol_val); + } + break; + + case VC_ENGINE_MSG_ACTION_NO_ACTIVE_TASK_TO_UI: + { + + } + break; + + case VC_ENGINE_MSG_ACTION_CALL_END_HELD_RETREIVED_TO_UI: + { + + } + break; + + case VC_ENGINE_MSG_ACTION_SAT_RESPONSE_TO_UI: + { + + } + break; + + case VC_ENGINE_MSG_ACTION_SAT_REQUEST_TO_UI: + { + + } + break; + + case VC_ENGINE_MSG_ERROR_OCCURED_TO_UI: + break; + + case VC_ENGINE_MSG_IND_AOC_TO_UI: + break; + + case VC_ENGINE_MSG_ACCEPT_CHOICE_BOX_TO_UI: + { + CALL_UI_DEBUG("not supported"); + } + break; + + case VC_ENGINE_MSG_HEADSET_STATUS_TO_UI: + { + vc_engine_headset_status_type headset_status = msg->headset_status; + ad->headset_status = headset_status.bstatus; + if (ad->headset_status == EINA_TRUE) { + ad->speaker_status = EINA_FALSE; + } + CALL_UI_DEBUG("Headset Status = %d", ad->headset_status); + CALL_UI_DEBUG("ad->view_top:[%d]", ad->view_top); + + if ((ad->view_top == VIEW_INCALL_ONECALL_VIEW) || (ad->view_top == VIEW_INCALL_MULTICALL_SPLIT_VIEW) + || (ad->view_top == VIEW_INCALL_MULTICALL_CONF_VIEW) || (ad->view_top == VIEW_DIALLING_VIEW)) { + if (ad->view_st[ad->view_top] != NULL) { + ad->view_st[ad->view_top]->onUpdate(ad->view_st[ad->view_top], NULL, NULL); + } + } + + } + break; + + case VC_ENGINE_MSG_EARJACK_STATUS_TO_UI: + { + vc_engine_earjack_status_type earjack_status = msg->earjack_status; + + CALL_UI_DEBUG("earjack Status = %d", earjack_status.bstatus); + CALL_UI_DEBUG("ad->view_top:[%d]", ad->view_top); + + if (earjack_status.bstatus == EINA_TRUE) { + if (ad->ctxpopup_radio_group_eo != NULL) + elm_radio_value_set(ad->ctxpopup_radio_group_eo, VCUI_SND_PATH_RECEIVER_EARJACK); + + ad->speaker_status = EINA_FALSE; + ad->headset_status = EINA_FALSE; + + if ((ad->view_top == VIEW_INCALL_ONECALL_VIEW) || (ad->view_top == VIEW_INCALL_MULTICALL_SPLIT_VIEW) + || (ad->view_top == VIEW_INCALL_MULTICALL_CONF_VIEW) || (ad->view_top == VIEW_DIALLING_VIEW)) { + if (ad->view_st[ad->view_top] != NULL) { + ad->view_st[ad->view_top]->onUpdate(ad->view_st[ad->view_top], NULL, NULL); + } + } + } else { + if (_vcui_is_headset_conected() == EINA_TRUE) { + if (ad->ctxpopup_radio_group_eo != NULL) + elm_radio_value_set(ad->ctxpopup_radio_group_eo, VCUI_SND_PATH_HEADSET); + + ad->speaker_status = EINA_FALSE; + ad->headset_status = EINA_TRUE; + + if ((ad->view_top == VIEW_INCALL_ONECALL_VIEW) || (ad->view_top == VIEW_INCALL_MULTICALL_SPLIT_VIEW) + || (ad->view_top == VIEW_INCALL_MULTICALL_CONF_VIEW) || (ad->view_top == VIEW_DIALLING_VIEW)) { + if (ad->view_st[ad->view_top] != NULL) { + ad->view_st[ad->view_top]->onUpdate(ad->view_st[ad->view_top], NULL, NULL); + } + } + } else { + if (ad->ctxpopup_radio_group_eo != NULL) + elm_radio_value_set(ad->ctxpopup_radio_group_eo, VCUI_SND_PATH_RECEIVER_EARJACK); + + ad->speaker_status = EINA_FALSE; + ad->headset_status = EINA_FALSE; + + if ((ad->view_top == VIEW_INCALL_ONECALL_VIEW) || (ad->view_top == VIEW_INCALL_MULTICALL_SPLIT_VIEW) + || (ad->view_top == VIEW_INCALL_MULTICALL_CONF_VIEW) || (ad->view_top == VIEW_DIALLING_VIEW)) { + if (ad->view_st[ad->view_top] != NULL) { + ad->view_st[ad->view_top]->onUpdate(ad->view_st[ad->view_top], NULL, NULL); + } + } + } + } + } + break; + + case VC_ENGINE_MSG_ACTION_INCOM_FORCE_TO_UI: + { + call_data_t *call_data = _vcui_doc_get_recent_mo_call_data(); + if (call_data != NULL && _vcui_doc_get_call_handle(call_data) == NO_HANDLE) { + _vcui_doc_remove_call_data_from_list(call_data); + _vcui_doc_set_recent_mo_call_data(NULL); + } + } + break; + + case VC_ENGINE_MSG_MESSAGE_BOX_TO_UI: + { + vcall_engine_device_control_lcd_state(VC_LCD_ON_UNLOCK); + + vc_engine_msg_box_type msg_box = msg->msg_box; + _vcui_view_popup_load(_(gszcall_error_msg[msg_box.string_id]), POPUP_TIMEOUT_LONG, EINA_TRUE); + } + break; + + case VC_ENGINE_MSG_REDIAL_TO_UI: + { + CALL_UI_DEBUG("not used"); + } + break; + + case VC_ENGINE_MSG_NOTI_WBAMR_TO_UI: + { + vc_engine_wbamr_status_type wbamr_status = msg->wbamr_status; + ad->wbamr_status = wbamr_status.bstatus; + } + break; + default: + break; + } + + _vcui_doc_print_all_call_data(gszcall_callback_msg[event]); + + CALL_UI_DEBUG("End.."); +} diff --git a/ui/vcui-doc-launch.c b/ui/src/vcui-doc-launch.c similarity index 65% rename from ui/vcui-doc-launch.c rename to ui/src/vcui-doc-launch.c index d58ea02..477b546 100755 --- a/ui/vcui-doc-launch.c +++ b/ui/src/vcui-doc-launch.c @@ -15,23 +15,29 @@ */ +#include + #include "vcui-application.h" #include "contacts-ug.h" #define MSG_COMPOSER_UG "msg-composer-efl" #define MSG_PKG "org.tizen.message" #define ADD_TO_CONTACTS_UG "contacts-details-efl" +#define VIEW_CONTACT_UG "contacts-details-efl" struct vcui_ug_priv_data *local_priv_data = NULL; #define COMMON_FUNCTIONS #ifdef COMMON_FUNCTIONS +#if 0 static void __vcui_doc_launch_ug_common_back_btn_cb(void *data, Evas_Object *obj, void *event_info) { Evas_Object *navi = data; elm_naviframe_item_pop(navi); } +#endif +#ifdef _LOCAL_UG_EFFECT_ static void __vcui_doc_launch_ug_common_hide_effect_finished(void *data, Evas_Object *obj, const char *emission, const char *source) { struct vcui_ug_priv_data *temp_priv_data = (struct vcui_ug_priv_data *)data; @@ -50,7 +56,7 @@ static void __vcui_doc_launch_ug_common_hide_effect_finished(void *data, Evas_Ob if (temp_priv_data->on_destroy_callback != NULL) temp_priv_data->on_destroy_callback(temp_priv_data->destroy_callback_param); - ug_destroy((struct ui_gadget *)(temp_priv_data->need_ug)); + ug_destroy((ui_gadget_h)(temp_priv_data->need_ug)); free(temp_priv_data); local_priv_data = NULL; @@ -59,11 +65,11 @@ static void __vcui_doc_launch_ug_common_hide_effect_finished(void *data, Evas_Ob CALL_UI_DEBUG("__vcui_doc_launch_ug_common_hide_effect_finished end"); } } +#endif -static void __vcui_doc_launch_ug_common_layout_cb(struct ui_gadget *ug, enum ug_mode mode, void *priv) +static void __vcui_doc_launch_ug_common_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv) { Evas_Object *base, *win; - struct vcui_ug_priv_data *temp_priv_data = (struct vcui_ug_priv_data *)priv; if (!ug) return; @@ -84,17 +90,18 @@ static void __vcui_doc_launch_ug_common_layout_cb(struct ui_gadget *ug, enum ug_ edje_object_signal_callback_add(elm_layout_edje_get(ly), "elm,action,hide,finished", "", __vcui_doc_launch_ug_common_hide_effect_finished, temp_priv_data); edje_object_signal_emit(elm_layout_edje_get(ly), "elm,state,show", ""); #else + win = ug_get_window(); evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, base); evas_object_show(base); #endif } -static void __vcui_doc_launch_ug_common_destroy_cb(struct ui_gadget *ug, void *priv) +static void __vcui_doc_launch_ug_common_destroy_cb(ui_gadget_h ug, void *priv) { CALL_UI_DEBUG(""); struct vcui_ug_priv_data *temp_priv_data = NULL; - if(priv != NULL) + if (priv != NULL) temp_priv_data = (struct vcui_ug_priv_data *)priv; else temp_priv_data = local_priv_data; @@ -157,19 +164,21 @@ static void __vcui_doc_launch_ug_common_destroy_cb(struct ui_gadget *ug, void *p } #endif -static void __vcui_doc_launch_ug_contact_list_layout_cb(struct ui_gadget *ug, enum ug_mode mode, void *priv) +static void __vcui_doc_launch_ug_contact_list_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv) { __vcui_doc_launch_ug_common_layout_cb(ug, mode, priv); CALL_UI_DEBUG("__vcui_doc_launch_ug_contact_list_layout_cb success"); } -static void __vcui_doc_launch_ug_contact_list_destroy_cb(struct ui_gadget *ug, void *priv) +static void __vcui_doc_launch_ug_contact_list_destroy_cb(ui_gadget_h ug, void *priv) { + vcui_app_call_data_t *ad = _vcui_get_app_data(); __vcui_doc_launch_ug_common_destroy_cb(ug, priv); + ad->contact_ug = NULL; CALL_UI_DEBUG("__vcui_doc_launch_ug_contact_list_destroy_cb success"); } -static void __vcui_doc_launch_ug_contact_list_result_cb(struct ui_gadget *ug, bundle *result, void *priv) +static void __vcui_doc_launch_ug_contact_list_result_cb(ui_gadget_h ug, service_h result, void *priv) { CALL_UI_DEBUG("__vcui_doc_launch_ug_contact_list_result_cb nothing"); } @@ -177,19 +186,21 @@ static void __vcui_doc_launch_ug_contact_list_result_cb(struct ui_gadget *ug, bu void _vcui_doc_launch_contact_list_ug(void *parent_ui_gadget, void *navi, void *parent, void (*on_start_callback) (void *), void (*on_destroy_callback) (void *), void *callback_param, void *ugs_array_data) { CALL_UI_DEBUG("_vcui_doc_launch_contact_list_ug start"); - bundle *bd = bundle_create(); + vcui_app_call_data_t *ad = _vcui_get_app_data(); + service_h service; - if (bd == NULL) { - CALL_UI_DEBUG("bundle_craete() return NULL"); + int ret = service_create(&service); + if (ret < 0) { + CALL_UI_DEBUG("service_create() return error : %d", ret); return; } - bundle_add(bd, "type", "1"); + service_add_extra_data(service, "type", "1"); struct vcui_ugs_array *pugs_array = (struct vcui_ugs_array *)ugs_array_data; if (pugs_array->last_ug_type == VCUI_UG_TYPE_CONTACT_LIST) { CALL_UI_DEBUG("launch exit because of same ug execution"); - bundle_free(bd); + service_destroy(service); return; } struct ug_cbs cbs = { 0, }; @@ -199,8 +210,8 @@ void _vcui_doc_launch_contact_list_ug(void *parent_ui_gadget, void *navi, void * struct vcui_ug_priv_data *temp_priv_data = malloc(sizeof(struct vcui_ug_priv_data)); if (temp_priv_data == NULL) { - CALL_UI_DEBUG("malloc error.\n"); - bundle_free(bd); + CALL_UI_DEBUG("malloc error."); + service_destroy(service); return; } temp_priv_data->on_start_callback = on_start_callback; @@ -211,7 +222,7 @@ void _vcui_doc_launch_contact_list_ug(void *parent_ui_gadget, void *navi, void * temp_priv_data->need_ug_lists = ugs_array_data; local_priv_data = cbs.priv = temp_priv_data; - struct ui_gadget *ug = ug_create(parent_ui_gadget, PKGNAME_CONTACT_UG, UG_MODE_FULLVIEW, bd, &cbs); + ui_gadget_h ug = ug_create(parent_ui_gadget, PKGNAME_CONTACT_UG, UG_MODE_FULLVIEW, service, &cbs); temp_priv_data->need_ug = ug; if (ug == NULL) { free(temp_priv_data); @@ -222,24 +233,25 @@ void _vcui_doc_launch_contact_list_ug(void *parent_ui_gadget, void *navi, void * pugs_array->ug_count = pugs_array->ug_count + 1; pugs_array->last_ug_type = VCUI_UG_TYPE_CONTACT_LIST; pugs_array->ug_lists = eina_list_append(pugs_array->ug_lists, (void *)ug); + ad->contact_ug = ug; } - bundle_free(bd); + service_destroy(service); CALL_UI_DEBUG("_vcui_doc_launch_contact_list_ug end"); } -static void __vcui_doc_launch_ug_phoneui_layout_cb(struct ui_gadget *ug, enum ug_mode mode, void *priv) +static void __vcui_doc_launch_ug_phoneui_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv) { __vcui_doc_launch_ug_common_layout_cb(ug, mode, priv); CALL_UI_DEBUG("__vcui_doc_launch_ug_phoneui_layout_cb success"); } -static void __vcui_doc_launch_ug_phoneui_destroy_cb(struct ui_gadget *ug, void *priv) +static void __vcui_doc_launch_ug_phoneui_destroy_cb(ui_gadget_h ug, void *priv) { __vcui_doc_launch_ug_common_destroy_cb(ug, priv); CALL_UI_DEBUG("__vcui_doc_launch_ug_phoneui_destroy_cb success"); } -static void __vcui_doc_launch_ug_phoneui_result_cb(struct ui_gadget *ug, bundle *result, void *priv) +static void __vcui_doc_launch_ug_phoneui_result_cb(ui_gadget_h ug, service_h result, void *priv) { CALL_UI_DEBUG("__vcui_doc_launch_ug_phoneui_result_cb nothing"); } @@ -247,19 +259,20 @@ static void __vcui_doc_launch_ug_phoneui_result_cb(struct ui_gadget *ug, bundle void _vcui_doc_launch_phoneui_ug(void *parent_ui_gadget, void *navi, void *parent, void (*on_start_callback) (void *), void (*on_destroy_callback) (void *), void *callback_param, void *ugs_array_data) { CALL_UI_DEBUG("launch_PHONEUI UG start"); - bundle *bd = bundle_create(); + service_h service; - if (bd == NULL) { - CALL_UI_DEBUG("bundle_craete() return NULL"); + int ret = service_create(&service); + if (ret < 0) { + CALL_UI_DEBUG("service_create() return error : %d", ret); return; } - bundle_add(bd, "type", "1"); + service_add_extra_data(service, "type", "51"); struct vcui_ugs_array *pugs_array = (struct vcui_ugs_array *)ugs_array_data; if (pugs_array->last_ug_type == VCUI_UG_TYPE_ADD_CALL) { CALL_UI_DEBUG("launch exit because of same ug execution"); - bundle_free(bd); + service_destroy(service); return; } struct ug_cbs cbs = { 0, }; @@ -269,8 +282,8 @@ void _vcui_doc_launch_phoneui_ug(void *parent_ui_gadget, void *navi, void *paren struct vcui_ug_priv_data *temp_priv_data = malloc(sizeof(struct vcui_ug_priv_data)); if (temp_priv_data == NULL) { - CALL_UI_DEBUG("malloc error.\n"); - bundle_free(bd); + CALL_UI_DEBUG("malloc error."); + service_destroy(service); return; } temp_priv_data->on_start_callback = on_start_callback; @@ -281,7 +294,7 @@ void _vcui_doc_launch_phoneui_ug(void *parent_ui_gadget, void *navi, void *paren temp_priv_data->need_ug_lists = ugs_array_data; local_priv_data = cbs.priv = temp_priv_data; - struct ui_gadget *ug = ug_create(parent_ui_gadget, PKGNAME_DIALER_UG, UG_MODE_FULLVIEW, bd, &cbs); + ui_gadget_h ug = ug_create(parent_ui_gadget, PKGNAME_DIALER_UG, UG_MODE_FULLVIEW, service, &cbs); temp_priv_data->need_ug = ug; if (ug == NULL) { free(temp_priv_data); @@ -293,10 +306,11 @@ void _vcui_doc_launch_phoneui_ug(void *parent_ui_gadget, void *navi, void *paren pugs_array->last_ug_type = VCUI_UG_TYPE_ADD_CALL; pugs_array->ug_lists = eina_list_append(pugs_array->ug_lists, (void *)ug); } - bundle_free(bd); + service_destroy(service); CALL_UI_DEBUG("_vcui_doc_launch_contact_list_ug end"); } +#if 0 static void __vcui_doc_launch_render_flush_post_cb(void *data, Evas *e, void *event_info) { vcui_app_call_data_t *ad = (vcui_app_call_data_t *)data; @@ -306,25 +320,54 @@ static void __vcui_doc_launch_render_flush_post_cb(void *data, Evas *e, void *ev edje_object_signal_emit(_EDJ(ad->ly), "elm,state,show", ""); evas_event_callback_del(e, EVAS_CALLBACK_RENDER_FLUSH_POST, __vcui_doc_launch_render_flush_post_cb); } +#endif void _vcui_doc_launch_msg_composer(void *data, char *number) { CALL_UI_DEBUG(".."); - bundle *kb; - kb = bundle_create(); + service_h service; + int ret = SERVICE_ERROR_NONE; + + ret = service_create(&service); + if (ret != SERVICE_ERROR_NONE) { + CALL_UI_DEBUG("service_create() return error : %d", ret); + return; + } + + ret = service_set_operation(service, SERVICE_OPERATION_SEND_TEXT); + if (ret != SERVICE_ERROR_NONE) { + CALL_UI_DEBUG("service_set_operation() return error : %d", ret); + ret = service_destroy(service); + return; + } + + ret = service_set_package(service, MSG_PKG); + if (ret != SERVICE_ERROR_NONE) { + CALL_UI_DEBUG("service_set_package() return error : %d", ret); + ret = service_destroy(service); + return; + } + + ret = service_add_extra_data(service, SERVICE_DATA_TO, number); + if (ret != SERVICE_ERROR_NONE) { + CALL_UI_DEBUG("service_add_extra_data() return error : %d", ret); + ret = service_destroy(service); + return; + } - bundle_add(kb, "type", "compose"); - bundle_add(kb, "TO", number); - aul_launch_app(MSG_PKG, kb); - bundle_free(kb); + ret = service_send_launch_request(service, NULL, NULL); + if (ret != SERVICE_ERROR_NONE) { + CALL_UI_DEBUG("service_send_launch_request() is failed : %d", ret); + } + + service_destroy(service); } void _vcui_doc_launch_destroy_ug_all(void *ugs_array_data) { CALL_UI_DEBUG(".."); vcui_app_call_data_t *ad = _vcui_get_app_data(); - Evas_Object *base; struct vcui_ugs_array *pugs_array = (struct vcui_ugs_array *)ugs_array_data; if (pugs_array != NULL) { @@ -339,7 +382,7 @@ void _vcui_doc_launch_destroy_ug_all(void *ugs_array_data) if (base != NULL) { evas_object_hide(base); - elm_objectt_part_content_unset(base, "elm.swallow.content"); + elm_layout_content_unset(base, "elm.swallow.content"); evas_object_del(base); } if (local_priv_data->on_destroy_callback != NULL) @@ -373,18 +416,18 @@ void _vcui_doc_launch_destroy_ug_all(void *ugs_array_data) } } -static void __vcui_doc_launch_ug_contact_layout_cb(struct ui_gadget *ug, enum ug_mode mode, void *priv) +static void __vcui_doc_launch_ug_contact_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv) { __vcui_doc_launch_ug_common_layout_cb(ug, mode, priv); CALL_UI_DEBUG("__vcui_doc_launch_ug_contact_layout_cb success"); } -static void __vcui_doc_launch_ug_contact_result_cb(struct ui_gadget *ug, bundle *result, void *priv) +static void __vcui_doc_launch_ug_contact_result_cb(ui_gadget_h ug, service_h result, void *priv) { CALL_UI_DEBUG("__vcui_doc_launch_ug_phoneui_result_cb nothing"); } -static void __vcui_doc_launch_ug_contact_destroy_cb(struct ui_gadget *ug, void *priv) +static void __vcui_doc_launch_ug_contact_destroy_cb(ui_gadget_h ug, void *priv) { CALL_UI_DEBUG("__vcui_doc_launch_ug_contact_destroy_cb.."); vcui_app_call_data_t *ad = _vcui_get_app_data(); @@ -397,23 +440,24 @@ void _vcui_doc_launch_add_to_contacts_ug(void *parent_ui_gadget, void *navi, voi { CALL_UI_DEBUG("launch_ADD_TO_CONTACTS UG start"); vcui_app_call_data_t *ad = _vcui_get_app_data(); - bundle *bd = bundle_create(); + service_h service; char buf[4] = {0,}; - if (bd == NULL) { - CALL_UI_DEBUG("bundle_craete() return NULL"); + int ret = service_create(&service); + if (ret < 0) { + CALL_UI_DEBUG("service_create() return error : %d", ret); return; } - snprintf(buf, sizeof(buf), "%d", CT_UG_REQUEST_ADD_WITH_NUM); - bundle_add(bd, CT_UG_BUNDLE_TYPE, buf); /*CT_UG_REQUEST_ADD_WITH_NUM*/ - CALL_UI_DEBUG("number %s", (char*) data); - bundle_add(bd, CT_UG_BUNDLE_NUM, (char*) data); + snprintf(buf, sizeof(buf), "%d", 22); + service_add_extra_data(service, "type", buf); + CALL_UI_DEBUG("number %s", (char *)data); + service_add_extra_data(service, "ct_num", (char *)data); struct vcui_ugs_array *pugs_array = (struct vcui_ugs_array *)ugs_array_data; if (pugs_array->last_ug_type == VCUI_UG_TYPE_ADD_TO_CONTACTS) { CALL_UI_DEBUG("launch exit because of same ug execution"); - bundle_free(bd); + service_destroy(service); return; } struct ug_cbs cbs = { 0, }; @@ -423,8 +467,8 @@ void _vcui_doc_launch_add_to_contacts_ug(void *parent_ui_gadget, void *navi, voi struct vcui_ug_priv_data *temp_priv_data = malloc(sizeof(struct vcui_ug_priv_data)); if (temp_priv_data == NULL) { - CALL_UI_DEBUG("malloc error.\n"); - bundle_free(bd); + CALL_UI_DEBUG("malloc error."); + service_destroy(service); return; } temp_priv_data->on_start_callback = on_start_callback; @@ -435,7 +479,7 @@ void _vcui_doc_launch_add_to_contacts_ug(void *parent_ui_gadget, void *navi, voi temp_priv_data->need_ug_lists = ugs_array_data; local_priv_data = cbs.priv = temp_priv_data; - struct ui_gadget *ug = ug_create(parent_ui_gadget, ADD_TO_CONTACTS_UG, UG_MODE_FULLVIEW, bd, &cbs); + ui_gadget_h ug = ug_create(parent_ui_gadget, ADD_TO_CONTACTS_UG, UG_MODE_FULLVIEW, service, &cbs); temp_priv_data->need_ug = ug; if (ug == NULL) { free(temp_priv_data); @@ -448,6 +492,69 @@ void _vcui_doc_launch_add_to_contacts_ug(void *parent_ui_gadget, void *navi, voi pugs_array->ug_lists = eina_list_append(pugs_array->ug_lists, (void *)ug); ad->contact_ug = ug; } - bundle_free(bd); + service_destroy(service); CALL_UI_DEBUG("_vcui_doc_launch_add_to_contacts_ug end"); } + +void _vcui_doc_launch_view_contact_ug(void *parent_ui_gadget, void *navi, void *parent, void (*on_start_callback) (void *), void (*on_destroy_callback) (void *), void *callback_param, void *ugs_array_data, void *data) +{ + CALL_UI_DEBUG("launch_VIEW_CONTACT UG start"); + vcui_app_call_data_t *ad = _vcui_get_app_data(); + service_h service; + char buf[4] = {0,}; + char contactId[128] = {0,}; + + int ret = service_create(&service); + if (ret < 0) { + CALL_UI_DEBUG("service_create() return error : %d", ret); + return; + } + + snprintf(buf, sizeof(buf), "%d", 0); + service_add_extra_data(service, "type", buf); /*CT_UG_REQUEST_DETAIL*/ + CALL_UI_DEBUG("ct_id %d", (int)data); + snprintf(contactId, sizeof(contactId), "%d", (int)data); + service_add_extra_data(service, "ct_id", contactId); + + struct vcui_ugs_array *pugs_array = (struct vcui_ugs_array *)ugs_array_data; + if (pugs_array->last_ug_type == VCUI_UG_TYPE_VIEW_CONTACT) { + CALL_UI_DEBUG("launch exit because of same ug execution"); + service_destroy(service); + return; + } + struct ug_cbs cbs = { 0, }; + cbs.layout_cb = __vcui_doc_launch_ug_contact_layout_cb; + cbs.destroy_cb = __vcui_doc_launch_ug_contact_destroy_cb; + cbs.result_cb = __vcui_doc_launch_ug_contact_result_cb; + + struct vcui_ug_priv_data *temp_priv_data = malloc(sizeof(struct vcui_ug_priv_data)); + if (temp_priv_data == NULL) { + CALL_UI_DEBUG("malloc error."); + service_destroy(service); + return; + } + temp_priv_data->on_start_callback = on_start_callback; + temp_priv_data->on_destroy_callback = on_destroy_callback; + temp_priv_data->destroy_callback_param = callback_param; + temp_priv_data->need_navi = navi; + temp_priv_data->need_parent = parent; + temp_priv_data->need_ug_lists = ugs_array_data; + local_priv_data = cbs.priv = temp_priv_data; + + ui_gadget_h ug = ug_create(parent_ui_gadget, VIEW_CONTACT_UG, UG_MODE_FULLVIEW, service, &cbs); + temp_priv_data->need_ug = ug; + if (ug == NULL) { + free(temp_priv_data); + local_priv_data = NULL; + CALL_UI_DEBUG("_vcui_doc_launch_view_contact_ug fail"); + } else { + struct vcui_ugs_array *pugs_array = (struct vcui_ugs_array *)ugs_array_data; + pugs_array->ug_count = pugs_array->ug_count + 1; + pugs_array->last_ug_type = VCUI_UG_TYPE_VIEW_CONTACT; + pugs_array->ug_lists = eina_list_append(pugs_array->ug_lists, (void *)ug); + ad->contact_ug = ug; + } + service_destroy(service); + CALL_UI_DEBUG("_vcui_doc_launch_view_contact_ug end"); +} + diff --git a/ui/src/vcui-document.c b/ui/src/vcui-document.c new file mode 100755 index 0000000..0eaa709 --- /dev/null +++ b/ui/src/vcui-document.c @@ -0,0 +1,976 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#include "vcui-application.h" +#include "vcui-document.h" + +struct _call_data_t { + unsigned char call_handle; + int contact_id; + int contact_phone_type; + int bday_remaining_days; + time_t start_time; + + char call_num[VC_PHONE_NUMBER_LENGTH_MAX]; + char call_display[VC_DISPLAY_NAME_LENGTH_MAX]; + char call_file_path[VC_IMAGE_PATH_LENGTH_MAX]; + char call_full_file_path[VC_IMAGE_PATH_LENGTH_MAX]; + + gboolean brejected; /* auto reject */ + + /* The below 2 fields are required on UI side as well, even though we can get these values from engine data structure + * When call is ended, engine will clear the call object info and hence we cannot get these status at this moment + * So we have to maintain a copy in UI side as well */ + int call_type; /* whether MO or MT call*/ + int caller_status; /* HOLD/UNHOLD */ +}; + +static call_data_t *recent_mo; +static call_data_t *recent_mt; +static call_data_t *recent_call; +static Eina_List *caller_list; + +/** + * This function initializes the data structure pointers maintained in the document file + * + * @return nothing + * @param[in] nothing +*/ +void _vcui_doc_data_init() +{ + recent_mo = NULL; + recent_mt = NULL; + recent_call = NULL; + caller_list = NULL; +} + +/** + * This function allocates memory for the call data structure - call_data_t + * + * @return pointer to the memory allocated for call-data structure, or NULL if memory allocation fails + * @param[in] nothing +*/ +call_data_t *_vcui_doc_allocate_call_data_memory(void) +{ + call_data_t *pcall_data = NULL; + + pcall_data = (call_data_t *)calloc(1, sizeof(call_data_t)); + if (pcall_data == NULL) { + CALL_UI_DEBUG("memory allocation failed..."); + } + return pcall_data; +} + +/** + * This function retrieves the value of the call handle + * + * @return value of the call handle + * @param[in] pcall_data pointer to the call-data structure +*/ +int _vcui_doc_get_call_handle(call_data_t *pcall_data) +{ + VCUI_RETURN_INVALID_IF_FAIL(pcall_data); + return pcall_data->call_handle; +} + +/** + * This function assigns the value of call handle for a given pointer of the call-data structure + * + * @return nothing + * @param[in] pcall_data pointer to the call-data structure + * @param[in] call_handle new value of the call handle +*/ +void _vcui_doc_set_call_handle(call_data_t *pcall_data, int call_handle) +{ + VCUI_RETURN_IF_FAIL(pcall_data); + pcall_data->call_handle = call_handle; +} + +/** + * This function retrieves the value of the call number + * + * @return pointer to the call number string + * @param[in] pcall_data pointer to the call-data structure +*/ +char *_vcui_doc_get_call_number(call_data_t *pcall_data) +{ + VCUI_RETURN_NULL_IF_FAIL(pcall_data); + return (char *) pcall_data->call_num; +} + +/** + * This function assigns the value of call number for a given pointer of the call-data structure + * + * @return nothing + * @param[in] pcall_data pointer to the call-data structure + * @param[in] pnumber pointer to the call number string +*/ +void _vcui_doc_set_call_number(call_data_t *pcall_data, char *pnumber) +{ + VCUI_RETURN_IF_FAIL(pcall_data); + memset(pcall_data->call_num, 0, sizeof(pcall_data->call_num)); + vcall_engine_util_strcpy(pcall_data->call_num, VC_PHONE_NUMBER_LENGTH_MAX, pnumber); +} + +/** + * This function retrieves the value of the call name (available from contact DB) + * + * @return pointer to the call name string + * @param[in] pcall_data pointer to the call-data structure +*/ +char *_vcui_doc_get_call_display_name(call_data_t *pcall_data) +{ + VCUI_RETURN_NULL_IF_FAIL(pcall_data); + return (char *) pcall_data->call_display; +} + +/** + * This function assigns the value of contact name for a given pointer of the call-data structure + * + * @return nothing + * @param[in] pcall_data pointer to the call-data structure + * @param[in] pname pointer to the call number string +*/ +void _vcui_doc_set_call_display_name(call_data_t *pcall_data, char *pname) +{ + VCUI_RETURN_IF_FAIL(pcall_data); + memset(pcall_data->call_display, 0, sizeof(pcall_data->call_display)); + vcall_engine_util_strcpy(pcall_data->call_display, VC_DISPLAY_NAME_LENGTH_MAX, pname); +} + +/** + * This function retrieves the caller-ID file path (caller-ID for split screen) + * + * @return pointer to the caller-ID file path string + * @param[in] pcall_data pointer to the call-data structure +*/ +char *_vcui_doc_get_caller_id_file_path(call_data_t *pcall_data) +{ + VCUI_RETURN_NULL_IF_FAIL(pcall_data); + return (char *) pcall_data->call_file_path; +} + +/** + * This function assigns the value of caller-ID file-path for a given pointer of the call-data structure + * + * @return nothing + * @param[in] pcall_data pointer to the call-data structure + * @param[in] pfile_path pointer to the caller-ID file-path string +*/ +void _vcui_doc_set_caller_id_file_path(call_data_t *pcall_data, char *pfile_path) +{ + VCUI_RETURN_IF_FAIL(pcall_data); + memset(pcall_data->call_file_path, 0, sizeof(pcall_data->call_file_path)); + vcall_engine_util_strcpy(pcall_data->call_file_path, VC_IMAGE_PATH_LENGTH_MAX, pfile_path); +} + +/** + * This function retrieves the caller-ID full file path (caller-ID for full screen) + * + * @return pointer to the caller-ID full file path string + * @param[in] pcall_data pointer to the call-data structure +*/ +char *_vcui_doc_get_caller_id_full_file_path(call_data_t *pcall_data) +{ + VCUI_RETURN_NULL_IF_FAIL(pcall_data); + return (char *) pcall_data->call_full_file_path; +} + +/** + * This function assigns the value of caller-ID full file-path for a given pointer of the call-data structure + * + * @return nothing + * @param[in] pcall_data pointer to the call-data structure + * @param[in] pfull_file_path pointer to the caller-ID full file-path string +*/ +void _vcui_doc_set_caller_id_full_file_path(call_data_t *pcall_data, char *pfull_file_path) +{ + VCUI_RETURN_IF_FAIL(pcall_data); + memset(pcall_data->call_full_file_path, 0, sizeof(pcall_data->call_full_file_path)); + vcall_engine_util_strcpy(pcall_data->call_full_file_path, VC_IMAGE_PATH_LENGTH_MAX, pfull_file_path); +} + +/** + * This function retrieves the value of the call start time + * + * @return value of the call start time + * @param[in] pcall_data pointer to the call-data structure +*/ +int _vcui_doc_get_call_start_time(call_data_t *pcall_data) +{ + VCUI_RETURN_INVALID_IF_FAIL(pcall_data); + return pcall_data->start_time; +} + +/** + * This function assigns the value of call start time for a given pointer of the call-data structure + * + * @return nothing + * @param[in] pcall_data pointer to the call-data structure +*/ +void _vcui_doc_set_call_start_time(call_data_t *pcall_data) +{ + VCUI_RETURN_IF_FAIL(pcall_data); + time(&(pcall_data->start_time)); +} + +/** + * This function retrieves the value of the contact index + * + * @return value of the contact index + * @param[in] pcall_data pointer to the call-data structure +*/ +int _vcui_doc_get_contact_index(call_data_t *pcall_data) +{ + VCUI_RETURN_INVALID_IF_FAIL(pcall_data); + return pcall_data->contact_id; +} + +/** + * This function assigns the value of contact index for a given pointer of the call-data structure + * + * @return nothing + * @param[in] pcall_data pointer to the call-data structure + * @param[in] contact_index value of the contact index +*/ +void _vcui_doc_set_contact_index(call_data_t *pcall_data, int contact_index) +{ + VCUI_RETURN_IF_FAIL(pcall_data); + pcall_data->contact_id = contact_index; +} + +/** + * This function retrieves the value of the contact phone type + * + * @return value of the contact phone type + * @param[in] pcall_data pointer to the call-data structure +*/ +int _vcui_doc_get_contact_phone_type(call_data_t *pcall_data) +{ + VCUI_RETURN_INVALID_IF_FAIL(pcall_data); + return pcall_data->contact_phone_type; +} + +/** + * This function assigns the value of contact phone type for a given pointer of the call-data structure + * + * @return nothing + * @param[in] pcall_data pointer to the call-data structure + * @param[in] phone_type value of the contact phone type +*/ +void _vcui_doc_set_contact_phone_type(call_data_t *pcall_data, int phone_type) +{ + VCUI_RETURN_IF_FAIL(pcall_data); + pcall_data->contact_phone_type = phone_type; +} + +/** + * This function retrieves the value of the remaining days for the contact birthday + * + * @return value of the contact remaining days in birthday + * @param[in] pcall_data pointer to the call-data structure +*/ +int _vcui_doc_get_birthday_remaining_days(call_data_t *pcall_data) +{ + VCUI_RETURN_INVALID_IF_FAIL(pcall_data); + return pcall_data->bday_remaining_days; +} + +/** + * This function assigns the value of birthday remaining days for a given pointer of the call-data structure + * + * @return nothing + * @param[in] pcall_data pointer to the call-data structure + * @param[in] bday_rem_days value of the birthday remaining days +*/ +void _vcui_doc_set_birthday_remaining_days(call_data_t *pcall_data, int bday_rem_days) +{ + VCUI_RETURN_IF_FAIL(pcall_data); + pcall_data->bday_remaining_days = bday_rem_days; +} + +/** + * This function retrieves the value of the auto reject status + * + * @return value of the auto reject status + * @param[in] pcall_data pointer to the call-data structure +*/ +int _vcui_doc_get_auto_reject_status(call_data_t *pcall_data) +{ + VCUI_RETURN_INVALID_IF_FAIL(pcall_data); + return pcall_data->brejected; +} + +/** + * This function assigns the value of auto reject status for a given pointer of the call-data structure + * + * @return nothing + * @param[in] pcall_data pointer to the call-data structure + * @param[in] bauto_rejected value of the auto reject status +*/ +void _vcui_doc_set_auto_reject_status(call_data_t *pcall_data, gboolean bauto_rejected) +{ + VCUI_RETURN_IF_FAIL(pcall_data); + pcall_data->brejected = bauto_rejected; +} + +/** + * This function retrieves if a call is MO or MT type + * + * @return value of the call type - MO or MT + * @param[in] pcall_data pointer to the call-data structure +*/ +int _vcui_doc_get_call_type(call_data_t *pcall_data) +{ + VCUI_RETURN_INVALID_IF_FAIL(pcall_data); + return pcall_data->call_type; +} + +/** + * This function assigns the value of call type for a given pointer of the call-data structure + * + * @return nothing + * @param[in] pcall_data pointer to the call-data structure + * @param[in] call_type type of call, MO or MT +*/ +void _vcui_doc_set_call_type(call_data_t *pcall_data, int call_type) +{ + VCUI_RETURN_IF_FAIL(pcall_data); + pcall_data->call_type = call_type; +} + +/** + * This function retrieves the call status of a particular call data structure (HOLD/UNHOLD) + * + * @return value of the call status, HOLD/UNHOLD + * @param[in] pcall_data pointer to the call-data structure +*/ +int _vcui_doc_get_call_status(call_data_t *pcall_data) +{ + VCUI_RETURN_INVALID_IF_FAIL(pcall_data); + return pcall_data->caller_status; +} + +/** + * This function assigns the value of call status for a given pointer of the call-data structure + * + * @return nothing + * @param[in] pcall_data pointer to the call-data structure + * @param[in] call_status status of call, active/held +*/ +void _vcui_doc_set_call_status(call_data_t *pcall_data, int call_status) +{ + VCUI_RETURN_IF_FAIL(pcall_data); + pcall_data->caller_status = call_status; +} + +/** + * This function retrieves the pointer to the most recent MO(outgoing) call data + * + * @return pointer to the call data structure + * @param[in] nothing +*/ +call_data_t *_vcui_doc_get_recent_mo_call_data() +{ + return recent_mo; +} + +/** + * This function assigns the pointer of the most recent MO(outgoing) call data + * to the pointer stored in the vcui-document file (recent_mo) + * + * @return nothing + * @param[in] in pointer to the call-data structure to be copied/assigned +*/ +void _vcui_doc_set_recent_mo_call_data(call_data_t *in) +{ + CALL_UI_DEBUG(".."); + if (in == NULL) { + CALL_UI_DEBUG("set recent_mo to null"); + } + if (recent_mo != NULL && recent_mo->call_handle == NO_HANDLE) { + CALL_UI_DEBUG("Set_recent 1"); + free(recent_mo); + recent_mo = NULL; + } + _vcui_doc_set_all_recent(in); + recent_mo = in; +} + +/** + * This function retrieves the pointer to the most recent MT(incoming) call data + * + * @return pointer to the call data structure + * @param[in] nothing +*/ +call_data_t *_vcui_doc_get_recent_mt_call_data() +{ + return recent_mt; +} + +/** + * This function assigns the pointer of the most recent MT(incoming) call data + * to the pointer stored in the vcui-document file (recent_mt) + * + * @return nothing + * @param[in] in pointer to the call-data structure to be copied/assigned +*/ +void _vcui_doc_set_recent_mt_call_data(call_data_t *in) +{ + CALL_UI_DEBUG(".."); + if (in == NULL) { + CALL_UI_DEBUG("set recent_mt to null"); + } + _vcui_doc_set_all_recent(in); + recent_mt = in; +} + +/** + * This function retrieves the pointer to the most recent call data, either MT(incoming)/MO(outgoing) + * + * @return pointer to the call data structure + * @param[in] nothing +*/ +call_data_t *_vcui_doc_get_recent_call_data() +{ + CALL_UI_DEBUG(".."); + if (recent_call == NULL) { + CALL_UI_DEBUG("recent is NULL"); + if (recent_mo != NULL) { + recent_call = recent_mo; + CALL_UI_DEBUG("recent is mo"); + } else if (recent_mt != NULL) { + recent_call = recent_mt; + CALL_UI_DEBUG("recent is mt"); + } + } + return recent_call; +} + +/** + * This function assigns the pointer of the most recent MT(incoming)/MO(outgoing) call data + * to the pointer stored in the vcui-document file (recent_call) + * + * @return nothing + * @param[in] in pointer to the call-data structure to be copied/assigned +*/ +void _vcui_doc_set_all_recent(call_data_t *in) +{ + CALL_UI_DEBUG(".."); + if (in == NULL) { + CALL_UI_DEBUG("set recent_call to null"); + } + recent_call = in; +} + +/** + * This function adds the call data structure to the list of call data maintained in the + * vcui-document file (caller_list link list) + * + * @return nothing + * @param[in] in pointer to the call-data structure to be copied/assigned +*/ +void _vcui_doc_add_call_data(call_data_t *in) +{ + if (in == NULL) + return; + Eina_List *l = NULL; + call_data_t *cd = NULL; + EINA_LIST_FOREACH(caller_list, l, cd) { + if (cd == in) { + return; + } + } + + caller_list = eina_list_append(caller_list, (void *)in); +} + +/** + * This function updates the call data structure contained in the list of call data maintained in the + * vcui-document file (caller_list link list) with the new call-data structure + * + * @return nothing + * @param[in] in pointer to the call-data structure to be updated +*/ +void _vcui_doc_update_call_data(call_data_t *in) +{ + if (in == NULL) + return; + Eina_List *l = NULL; + call_data_t *cd = NULL; + EINA_LIST_FOREACH(caller_list, l, cd) { + if (cd == in) { + *cd = *in; + return; + } + } +} + +/** + * This function checks if the call data pointer data is valid and present in the 'caller_list' list + * + * @return TRUE if the call-data is present and FALSE if there is no such call-data in the list + * @param[in] in pointer to the call-data structure +*/ +Eina_Bool _vcui_doc_is_valid_call_data(call_data_t *in) +{ + if (in == NULL) + return EINA_FALSE; + Eina_List *l = NULL; + call_data_t *cd = NULL; + EINA_LIST_FOREACH(caller_list, l, cd) { + if (cd == in) { + return EINA_TRUE; + } + } + + return EINA_FALSE; +} + +/** + * This function removes the call data structure from the list of call data maintained in the + * vcui-document file (caller_list link list) and frees the call data structure + * + * @return nothing + * @param[in] in pointer to the call-data structure to be added +*/ +void _vcui_doc_remove_call_data(call_data_t *in) +{ + if (in == NULL) { + CALL_UI_DEBUG("Call data is Null"); + return; + } + Eina_List *l = NULL; + call_data_t *cd = NULL; + EINA_LIST_FOREACH(caller_list, l, cd) { + if (cd == in) { + if (in == _vcui_doc_get_recent_mo_call_data()) + _vcui_doc_set_recent_mo_call_data(NULL); + if (in == _vcui_doc_get_recent_mt_call_data()) + _vcui_doc_set_recent_mt_call_data(NULL); + + caller_list = eina_list_remove(caller_list, in); + free(in); + in = NULL; + CALL_UI_DEBUG("Call data removed"); + break; + } + + } + + if (_vcui_doc_get_all_call_data_count() == 0) { + eina_list_free(caller_list); + caller_list = NULL; + } + +} + +/** + * This function removes the call data structure from the list of call data maintained in the + * vcui-document file (caller_list link list) + * + * @return a pointer to the call data structure which is passed + * @param[in] in pointer to the call-data structure to be added +*/ +call_data_t *_vcui_doc_remove_call_data_from_list(call_data_t *in) +{ + if (in == NULL) { + CALL_UI_DEBUG("Call data is Null"); + return NULL; + } + Eina_List *l = NULL; + call_data_t *cd = NULL; + EINA_LIST_FOREACH(caller_list, l, cd) { + if (cd == in) { + caller_list = eina_list_remove(caller_list, in); + return in; + } + } + return NULL; +} + +/** + * This function removes all the call data from list and frees the memory + * + * @return nothing + * @param[in] void +*/ +void _vcui_doc_remove_all_call_data() +{ + Eina_List *l = NULL; + call_data_t *cd = NULL; + EINA_LIST_FOREACH(caller_list, l, cd) { + if (cd != NULL) { + free(cd); + cd = NULL; + } + } + eina_list_free(caller_list); + caller_list = NULL; +} + +/** + * This function retrieves the earliest call data based on the call status + * + * @return pointer to the call data structure + * @param[in] call_status value of the call status (hold/unhold) +*/ +call_data_t *_vcui_doc_get_call_data_by_call_status(int call_status) +{ + + Eina_List *l = NULL; + call_data_t *fast_cd = NULL; + call_data_t *cd = NULL; + int i = 0; + EINA_LIST_FOREACH(caller_list, l, cd) { + if (cd != NULL) { + if (cd->caller_status == call_status) { + if (i == 0) { + fast_cd = cd; + i++; + continue; + } else { + if (fast_cd->start_time > cd->start_time) { + fast_cd = cd; + } + } + i++; + } + } + } + return fast_cd; +} + +/** + * This function retrieves the most recent MO call data + * + * @return pointer to the call data structure + * @param[in] nothing +*/ +call_data_t *_vcui_doc_get_call_data_mo_type() +{ + + Eina_List *l = NULL; + call_data_t *last_cd = NULL; + call_data_t *cd = NULL; + int i = 0; + EINA_LIST_FOREACH(caller_list, l, cd) { + if (cd != NULL) { + if (cd->call_type == CALL_OUTGOING) { + if (i == 0) { + last_cd = cd; + i++; + continue; + } else { + if (last_cd->start_time < cd->start_time) { + last_cd = cd; + } + } + i++; + } + } + } + return last_cd; +} + +/** + * This function retrieves the first call data in the list + * + * @return pointer to the call data structure + * @param[in] nothing +*/ +call_data_t *_vcui_doc_get_first_call_data_from_list() +{ + Eina_List *l = NULL; + call_data_t *cd = NULL; + EINA_LIST_FOREACH(caller_list, l, cd) { + if (cd != NULL) { + return cd; + } + } + return NULL; +} + +/** + * This function retrieves the first call data in the list which is of UNHOLD status + * + * @return pointer to the call data structure + * @param[in] nothing +*/ +call_data_t *_vcui_doc_get_first_call_data_by_unhold_status() +{ + Eina_List *l = NULL; + call_data_t *cd = NULL; + EINA_LIST_FOREACH(caller_list, l, cd) { + if (cd != NULL) { + if (cd->caller_status == CALL_UNHOLD) { + return cd; + } + } + } + return NULL; +} + +/** + * This function retrieves the call data based on the given call handle + * + * @return pointer to the call data structure + * @param[in] handle value of the call handle +*/ +call_data_t *_vcui_doc_get_call_data_by_handle(int handle) +{ + Eina_List *l = NULL; + call_data_t *cd = NULL; + EINA_LIST_FOREACH(caller_list, l, cd) { + if (cd != NULL) { + if (cd->call_handle == handle) { + return cd; + } + } + } + return NULL; +} + +/** + * This function retrieves the count of call data which are in HOLD status + * + * @return count of held call data + * @param[in] nothing +*/ +int _vcui_doc_get_hold_call_data_count() +{ + int i = 0; + Eina_List *l = NULL; + call_data_t *cd = NULL; + EINA_LIST_FOREACH(caller_list, l, cd) { + if (cd != NULL) { + if (cd->caller_status == CALL_HOLD) { + i++; + } + } + } + CALL_UI_DEBUG("(%d)", i); + return i; +} + +/** + * This function retrieves the count of call data which are in UNHOLD status + * + * @return count of active call data + * @param[in] nothing +*/ +int _vcui_doc_get_unhold_call_data_count() +{ + int i = 0; + Eina_List *l = NULL; + call_data_t *cd = NULL; + EINA_LIST_FOREACH(caller_list, l, cd) { + if (cd != NULL) { + if (cd->caller_status == CALL_UNHOLD) { + i++; + } + } + } + CALL_UI_DEBUG("(%d)", i); + return i; +} + +/** + * This function retrieves the count of call data which are in NO status (neither hold/unhold) + * + * @return count of 'no status' call data + * @param[in] nothing +*/ +int _vcui_doc_get_no_status_call_data_count() +{ + int i = 0; + Eina_List *l = NULL; + call_data_t *cd = NULL; + EINA_LIST_FOREACH(caller_list, l, cd) { + if (cd != NULL) { + if (cd->caller_status == NO_STATUS) { + i++; + } + } + } + return i; +} + +/** + * This function retrieves the count of all call data in the list + * + * @return count of all call data + * @param[in] nothing +*/ +int _vcui_doc_get_all_call_data_count() +{ + int i = eina_list_count(caller_list); + return i; +} + +/** + * This function retrieves the call status of a group (greater than 1 member group) + * + * @return value of the call status (HOLD/UNHOLD) + * @param[in] nothing +*/ +int _vcui_doc_get_group_call_status() +{ + if (_vcui_doc_get_all_call_data_count() > 1) { + if (_vcui_doc_get_hold_call_data_count() > 1) { + return CALL_HOLD; + } else { + return CALL_UNHOLD; + } + } else { + return CALL_UNHOLD; + } +} + +/** + * This function retrieves the pointer to the list containing the call data with HOLD status + * + * @return pointer to the HOLD call data list + * @param[in] nothing +*/ +Eina_List *_vcui_doc_get_caller_list_with_hold_status() +{ + if (_vcui_doc_get_all_call_data_count() == 0) + return NULL; + Eina_List *hold_list = NULL; + Eina_List *l = NULL; + call_data_t *cd = NULL; + + EINA_LIST_FOREACH(caller_list, l, cd) { + if (cd != NULL) { + if (cd->caller_status == CALL_HOLD) { + hold_list = eina_list_append(hold_list, cd); + } + } + } + return hold_list; +} + +/** + * This function retrieves the pointer to the list containing the call data with UNHOLD status + * + * @return pointer to the UNHOLD call data list + * @param[in] nothing +*/ +Eina_List *_vcui_doc_get_caller_list_with_unhold_status() +{ + if (_vcui_doc_get_all_call_data_count() == 0) + return NULL; + Eina_List *unhold_list = NULL; + Eina_List *l = NULL; + call_data_t *cd = NULL; + + EINA_LIST_FOREACH(caller_list, l, cd) { + if (cd != NULL) { + CALL_UI_DEBUG("_vcui_doc_get_caller_list_with_unhold_status"); + if (cd->caller_status == CALL_UNHOLD) { + CALL_UI_DEBUG("find it"); + unhold_list = eina_list_append(unhold_list, cd); + } + } + } + return unhold_list; +} + +/** + * This function prints all the call data structure members + * + * @return nothing + * @param[in] msg_pos type of message +*/ +void _vcui_doc_print_all_call_data(char *msg_pos) +{ + CALL_UI_DEBUG(" --------%s------------", msg_pos); + Eina_List *l = NULL; + call_data_t *cd = NULL; + EINA_LIST_FOREACH(caller_list, l, cd) { + if (cd != NULL) { + CALL_UI_DEBUG(" call_handle %d", cd->call_handle); + CALL_UI_DEBUG(" call_num %s", cd->call_num); + CALL_UI_DEBUG(" call_display %s", cd->call_display); + CALL_UI_DEBUG(" call_file_path %s", cd->call_file_path); + CALL_UI_DEBUG(" call_full_file_path %s", cd->call_full_file_path); + CALL_UI_DEBUG(" call_time %d", (int)(cd->start_time)); + } + } + CALL_UI_DEBUG(" --------------------------"); +} + +/** + * This function assigns UNHOLD call status to all the call data in the list + * + * @return nothing + * @param[in] nothing +*/ +void _vcui_doc_set_all_call_data_to_unhold_status() +{ + Eina_List *l = NULL; + call_data_t *cd = NULL; + EINA_LIST_FOREACH(caller_list, l, cd) { + if (cd != NULL) { + if (cd->caller_status == CALL_HOLD) { + cd->caller_status = CALL_UNHOLD; + } + } + } +} + +/** + * This function assigns HOLD call status to all the call data in the list + * + * @return nothing + * @param[in] nothing +*/ +void _vcui_doc_set_all_call_data_to_hold_status() +{ + Eina_List *l = NULL; + call_data_t *cd = NULL; + EINA_LIST_FOREACH(caller_list, l, cd) { + if (cd != NULL) { + if (cd->caller_status == CALL_UNHOLD) { + cd->caller_status = CALL_HOLD; + } + } + } +} + +/** + * This function swaps the HOLD and UNHOLD calls in the call list + * + * @return nothing + * @param[in] nothing +*/ +void _vcui_doc_swap_all_call_data_status() +{ + Eina_List *l = NULL; + call_data_t *cd = NULL; + EINA_LIST_FOREACH(caller_list, l, cd) { + if (cd != NULL) { + if (cd->caller_status == CALL_HOLD) { + cd->caller_status = CALL_UNHOLD; + } else if (cd->caller_status == CALL_UNHOLD) { + cd->caller_status = CALL_HOLD; + } + } + } +} + diff --git a/ui/vcui-view-callend.c b/ui/src/vcui-view-callend.c similarity index 59% rename from ui/vcui-view-callend.c rename to ui/src/vcui-view-callend.c index fca9be6..3412c58 100755 --- a/ui/vcui-view-callend.c +++ b/ui/src/vcui-view-callend.c @@ -20,6 +20,15 @@ #include "vcui-view-callend.h" #include "vcui-view-elements.h" +#define VCUI_VIEW_CALLEND_LAYOUT_ID "ENDCALLVIEW" +typedef struct { + Evas_Object *contents; + Evas_Object *caller_info; + Evas_Object *btn_ly; + Evas_Object *ic; /* small size call image */ + vcui_app_call_status_t call_status; +} endcall_view_priv_t; + static call_data_t *call_data = NULL; static int __vcui_view_callend_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3); @@ -62,7 +71,7 @@ static void __vcui_view_callend_draw_screen(Evas_Object *eo, void *data) /* ============ Check valid Evas Object ============= */ int valid = 0; - valid = _vcui_check_valid_eo(priv->contents, "ENDCALLVIEW"); + valid = _vcui_check_valid_eo(priv->contents, VCUI_VIEW_CALLEND_LAYOUT_ID); if (valid == -1) { CALL_UI_DEBUG("[========== ENDCALLVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents); return; @@ -72,30 +81,38 @@ static void __vcui_view_callend_draw_screen(Evas_Object *eo, void *data) if (ad->call_end_type == CALL_END_TYPE_SINGLE_CALL) { CALL_UI_DEBUG("CALL_END_TYPE_SINGLE_CALL type end screen"); + char *file_path = _vcui_doc_get_caller_id_file_path(call_data); + char *call_number = _vcui_doc_get_call_number(call_data); + char *call_name = _vcui_doc_get_call_display_name(call_data); + /* call image */ _vcui_delete_contact_image(priv->contents); - if (strcmp((char *)call_data->call_file_path, NOIMG_ICON) == 0 && strcmp((char *)call_data->call_full_file_path, NOIMG_ICON) == 0) { - _vcui_show_wallpaper_image(priv->contents); + if (strcmp(file_path, NOIMG_ICON) == 0) { + _vcui_show_call_not_saved_bg_img(priv->contents); + _vcui_show_default_image(priv->contents, vd->app_data->win_main, CALLER_ID_DEFAULT); } else { - if (strcmp((char *)call_data->call_full_file_path, NOIMG_ICON) == 0) { /* normal size */ + _vcui_show_call_bg_img(priv->contents); + { _vcui_show_wallpaper_image(priv->contents); - priv->ic = _vcui_show_contact_image(priv->contents, vd->app_data->win_main, call_data->call_file_path); - } else { /* full size */ - _vcui_set_full_image(priv->contents, vd->app_data->win_main, call_data->call_full_file_path); + priv->ic = _vcui_show_contact_image(priv->contents, vd->app_data->win_main, file_path); } } + _vcui_create_voicecall_button(vd, call_number); + _vcui_create_videocall_button(vd, call_number); + _vcui_create_message_button(vd, call_number); + /* call name (if nothing, call number) */ - if (strlen((char *)call_data->call_display) == 0) { - edje_object_part_text_set(_EDJ(eo), "txt_call_name", (char *)call_data->call_num); - edje_object_signal_emit(_EDJ(eo), "show-all-buttons", "end-screen"); + if (strlen(call_name) == 0) { + _vcui_show_caller_info_name(vd, call_number, EINA_FALSE); + _vcui_create_add_to_contacts_button(vd, call_number); } else { - edje_object_part_text_set(_EDJ(eo), "txt_call_name", (char *)call_data->call_display); - edje_object_part_text_set(_EDJ(eo), "txt_contact_phone_type", (char *)call_data->call_num); - edje_object_signal_emit(_EDJ(eo), "show-some-buttons", "end-screen"); + int ct_id = _vcui_doc_get_contact_index(call_data); + _vcui_show_caller_info_name(vd, call_name, EINA_FALSE); + _vcui_show_caller_info_number(vd, call_number, EINA_FALSE); + _vcui_create_view_contact_button(vd, ct_id); } - - _vcui_view_common_set_each_time(call_data->start_time); + _vcui_view_common_set_each_time(_vcui_doc_get_call_start_time(call_data)); } else if (ad->call_end_type == CALL_END_TYPE_CONF_CALL) { CALL_UI_DEBUG("CALL_END_TYPE_CONF_CALL type end screen"); char buf[DEF_BUF_LEN] = { 0, }; @@ -104,22 +121,21 @@ static void __vcui_view_callend_draw_screen(Evas_Object *eo, void *data) _vcui_show_wallpaper_image(priv->contents); priv->ic = _vcui_show_default_image(priv->contents, vd->app_data->win_main, CONF_ICON); if (priv->call_status == CALL_HOLD) { - double scale_factor = 0.0; - scale_factor = elm_config_scale_get(); - CALL_UI_DEBUG("scale_factor %f", scale_factor); - - if (scale_factor == 1.0) { + CALL_UI_DEBUG("ad->root_w: %d ad->root_h: %d", ad->root_w, ad->root_h); + if (ad->root_w == MAIN_WIN_HD_W && ad->root_h == MAIN_WIN_HD_H) { edje_object_signal_emit(_EDJ(priv->contents), "SHOW_DIM_HD", "CID_HD"); - } else { + } else if (ad->root_w == MAIN_WIN_WVGA_W && ad->root_h == MAIN_WIN_WVGA_H) { edje_object_signal_emit(_EDJ(priv->contents), "SHOW_DIM_WVGA", "CID_WVGA"); } } else { edje_object_signal_emit(_EDJ(priv->contents), "HIDE_DIM", "CID"); } + _vcui_show_caller_info_name(vd, _("IDS_CALL_OPT_CONFERENCE_CALL"), EINA_FALSE); + snprintf(buf, DEF_BUF_LEN, "%d %s", (_vcui_doc_get_hold_call_data_count() + _vcui_doc_get_unhold_call_data_count()), _("IDS_CALL_BODY_PEOPLE")); + _vcui_show_caller_info_number(vd, buf, EINA_FALSE); - edje_object_part_text_set(_EDJ(eo), "txt_call_name", _("IDS_CALL_OPT_CONFERENCE_CALL")); - snprintf(buf, DEF_BUF_LEN, "%d %s", (_vcui_doc_get_count_hold() + _vcui_doc_get_count_unhold()), _("IDS_CALL_BODY_PEOPLE")); - edje_object_part_text_set(_EDJ(eo), "txt_contact_phone_type", buf); /* in case of multicallconf, it is num of people */ + /*create a small button for Hold/Swap*/ + _vcui_create_hold_swap_button(vd); _vcui_create_top_left_button_disabled(vd); _vcui_create_top_middle_button_disabled(vd); @@ -128,8 +144,6 @@ static void __vcui_view_callend_draw_screen(Evas_Object *eo, void *data) _vcui_create_bottom_middle_button_disabled(vd); _vcui_create_bottom_right_button_disabled(vd); - _vcui_create_button_bigend_disabled(vd); - } else { CALL_UI_DEBUG("invalid type... return"); return; @@ -138,21 +152,16 @@ static void __vcui_view_callend_draw_screen(Evas_Object *eo, void *data) evas_object_show(eo); } -static Evas_Object *__vcui_view_callend_create_contents(void *data) +static Evas_Object *__vcui_view_callend_create_contents(void *data, char *grp_name) { if (data == NULL) { CALL_UI_DEBUG("ERROR"); return NULL; } voice_call_view_data_t *vd = (voice_call_view_data_t *)data; - vcui_app_call_data_t *ad = vd->app_data; Evas_Object *eo = NULL; - /* load edje */ - if (ad->call_end_type == CALL_END_TYPE_SINGLE_CALL) - eo = _vcui_load_edj(vd->app_data->win_main, EDJ_NAME, GRP_END_SINGLECALL); - else if (ad->call_end_type == CALL_END_TYPE_CONF_CALL) - eo = _vcui_load_edj(vd->app_data->win_main, EDJ_NAME, GRP_END_CONFCALL); + eo = _vcui_load_edj(vd->app_data->win_main, EDJ_NAME, grp_name); if (eo == NULL) return NULL; @@ -188,18 +197,19 @@ static int __vcui_view_callend_oncreate(voice_call_view_data_t *view_data, int p voice_call_view_data_t *vd = view_data; vcui_app_call_data_t *ad = vd->app_data; endcall_view_priv_t *priv = (endcall_view_priv_t *)vd->priv; + Evas_Object *sep_ly = NULL; CALL_UI_DEBUG("call_end_type[%d]", ad->call_end_type); if (ad->call_end_type == CALL_END_TYPE_SINGLE_CALL) { call_data = (call_data_t *)param2; } else if (ad->call_end_type == CALL_END_TYPE_CONF_CALL) { - priv->call_status = _vcui_doc_get_show_callstatus(); - call_data = _vcui_doc_get_last_status(priv->call_status); + priv->call_status = _vcui_doc_get_group_call_status(); + call_data = _vcui_doc_get_call_data_by_call_status(priv->call_status); } if (call_data == NULL) { CALL_UI_DEBUG("call Data is NULL"); - return; + return VC_ERROR; } if (!vd->layout) { @@ -210,11 +220,26 @@ static int __vcui_view_callend_oncreate(voice_call_view_data_t *view_data, int p CALL_UI_DEBUG("ERROR"); return VC_ERROR; } + /* Create Contents */ - priv->contents = __vcui_view_callend_create_contents(vd); + if (ad->call_end_type == CALL_END_TYPE_SINGLE_CALL) { + priv->contents = __vcui_view_callend_create_contents(vd, GRP_END_SINGLECALL); + sep_ly = __vcui_view_callend_create_contents(vd, GRP_SEPARATOR_LAYOUT_3BUTTON); + elm_object_part_content_set(priv->contents, "btn_bg", sep_ly); + } else if (ad->call_end_type == CALL_END_TYPE_CONF_CALL) { + priv->contents = __vcui_view_callend_create_contents(vd, GRP_END_CONFCALL); + sep_ly = __vcui_view_callend_create_contents(vd, GRP_SEPARATOR_LAYOUT); + elm_object_part_content_set(priv->contents, "btn_bg", sep_ly); + priv->btn_ly = __vcui_view_callend_create_contents(vd, GRP_BUTTON_LAYOUT); + elm_object_part_content_set(priv->contents, "btn_region", priv->btn_ly); + } + priv->caller_info = __vcui_view_callend_create_contents(vd, GRP_CALLER_INFO); + elm_object_part_content_set(priv->contents, "caller_info", priv->caller_info); + edje_object_signal_emit(_EDJ(priv->caller_info), "set-end-caller_ifno", "end-screen"); + elm_object_part_content_set(vd->layout, "elm.swallow.content", priv->contents); - evas_object_name_set(priv->contents, "ENDCALLVIEW"); + evas_object_name_set(priv->contents, VCUI_VIEW_CALLEND_LAYOUT_ID); CALL_UI_DEBUG("[========== ENDCALLVIEW: priv->contents Addr : [%p] ==========]", priv->contents); } else { @@ -249,6 +274,10 @@ static int __vcui_view_callend_onshow(voice_call_view_data_t *view_data) CALL_UI_KPI("__vcui_view_callend_onshow start"); endcall_view_priv_t *priv = (endcall_view_priv_t *)view_data->priv; + /*change the orientation to normal - 0 */ + elm_win_rotation_with_resize_set(view_data->app_data->win_main, 0); + elm_win_rotation_with_resize_set(view_data->app_data->popup_mw, 0); + __vcui_view_callend_draw_screen(priv->contents, view_data); evas_object_hide(view_data->layout); @@ -271,6 +300,11 @@ static int __vcui_view_callend_ondestroy(voice_call_view_data_t *view_data) priv->contents = NULL; } + if (priv->caller_info) { + evas_object_del(priv->caller_info); + priv->caller_info = NULL; + } + free(priv); priv = NULL; } @@ -289,3 +323,66 @@ static int __vcui_view_callend_ondestroy(voice_call_view_data_t *view_data) CALL_UI_DEBUG("complete destroy one view"); return VC_NO_ERROR; } + +int _vc_ui_view_callend_check_valid_eo(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + + endcall_view_priv_t *priv = NULL; + int valid = -1; + + VCUI_RETURN_VALUE_IF_FAIL(vd , -1); + priv = (endcall_view_priv_t *) vd->priv; + + valid = _vcui_check_valid_eo(priv->contents, VCUI_VIEW_CALLEND_LAYOUT_ID); + + return valid; +} + +Evas_Object *_vc_ui_view_callend_get_layout(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + endcall_view_priv_t *priv = NULL; + + VCUI_RETURN_NULL_IF_FAIL(vd); + priv = (endcall_view_priv_t *) vd->priv; + + VCUI_RETURN_NULL_IF_FAIL(priv); + return priv->contents; +} + +Evas_Object *_vc_ui_view_callend_get_button_layout(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + endcall_view_priv_t *priv = NULL; + + VCUI_RETURN_NULL_IF_FAIL(vd); + priv = (endcall_view_priv_t *) vd->priv; + + VCUI_RETURN_NULL_IF_FAIL(priv); + return priv->btn_ly; +} + +void _vc_ui_view_callend_set_call_timer(voice_call_view_data_t *vd, char *pcall_dur) +{ + endcall_view_priv_t *priv = NULL; + + VCUI_RETURN_IF_FAIL(vd); + priv = (endcall_view_priv_t *) vd->priv; + + VCUI_RETURN_IF_FAIL(priv); + edje_object_part_text_set(_EDJ(priv->caller_info), "txt_status", _(pcall_dur)); +} + +Evas_Object *_vc_ui_view_callend_get_caller_info(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + endcall_view_priv_t *priv = NULL; + + VCUI_RETURN_NULL_IF_FAIL(vd); + priv = (endcall_view_priv_t *) vd->priv; + + VCUI_RETURN_NULL_IF_FAIL(priv); + return priv->caller_info; +} + diff --git a/ui/vcui-view-choice.c b/ui/src/vcui-view-choice.c similarity index 69% rename from ui/vcui-view-choice.c rename to ui/src/vcui-view-choice.c index c3d688a..27427dc 100755 --- a/ui/vcui-view-choice.c +++ b/ui/src/vcui-view-choice.c @@ -19,7 +19,6 @@ #include "vcui-app-data.h" #include "vcui-view-choice.h" #include "vcui-view-dialing.h" -#include "vcui-view-incoming.h" #include "vcui-view-incoming-lock.h" #include "vcui-view-single-call.h" #include "vcui-view-multi-call-list.h" @@ -29,15 +28,14 @@ #include "vcui-view-callend.h" static const char *vcui_view_name[] = { "VIEW_DIALLING_VIEW", - "VIEW_INCOMING_VIEW", "VIEW_INCOMING_LOCK_VIEW", "VIEW_INCALL_ONECALL_VIEW", "VIEW_INCALL_MULTICALL_SPLIT_VIEW", "VIEW_INCALL_MULTICALL_CONF_VIEW", "VIEW_INCALL_MULTICALL_LIST_VIEW", - "VIEW_INCALL_KEYPAD_VIEW", "VIEW_ENDCALL_VIEW", - "VIEW_MAX", + "VIEW_QUICKPANEL_VIEW", + "VIEW_MAX", }; void _vcui_view_change(vcui_app_call_view_id_t view_id, int param1, void *param2, void *param3) @@ -55,8 +53,8 @@ void _vcui_view_change(vcui_app_call_view_id_t view_id, int param1, void *param2 _vcui_doc_launch_destroy_ug_all(&(ad->ugs_array_data)); #else if (ad->ugs_array_data.ug_count != 0) { - Eina_List *l; - struct ui_gadget *ug; + Eina_List *l = NULL; + ui_gadget_h ug = NULL; EINA_LIST_FOREACH(ad->ugs_array_data.ug_lists, l, ug) { CALL_UI_DEBUG("Destroy UG due to _vcui_view_change"); ug_destroy(ug); @@ -64,6 +62,7 @@ void _vcui_view_change(vcui_app_call_view_id_t view_id, int param1, void *param2 ad->ugs_array_data.ug_lists = eina_list_free(ad->ugs_array_data.ug_lists); ad->ugs_array_data.ug_count = 0; ad->ugs_array_data.last_ug_type = VCUI_UG_TYPE_NOE; + ad->contact_ug = NULL; } #endif if (ad->view_st[view_id]) { @@ -71,39 +70,25 @@ void _vcui_view_change(vcui_app_call_view_id_t view_id, int param1, void *param2 voice_call_view_data_t *vd = (voice_call_view_data_t *) ad->view_st[view_id]; if (vd->layout) { if (view_id == VIEW_DIALLING_VIEW) { - vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *) vd->priv; - valid = _vcui_check_valid_eo(priv->contents, "DIALVIEW"); - } else if (view_id == VIEW_INCOMING_VIEW) { - incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv; - valid = _vcui_check_valid_eo(priv->contents, "INCOMINGVIEW"); + valid = _vc_ui_view_dialing_check_valid_eo(vd); } else if (view_id == VIEW_INCOMING_LOCK_VIEW) { - incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *) vd->priv; - valid = _vcui_check_valid_eo(priv->contents, "INCOMINGLOCKVIEW"); + valid = _vc_ui_view_incoming_lock_check_valid_eo(vd); } else if (view_id == VIEW_INCALL_ONECALL_VIEW) { - incall_one_view_priv_t *priv = (incall_one_view_priv_t *) vd->priv; - valid = _vcui_check_valid_eo(priv->contents, "ONEVIEW"); + valid = _vc_ui_view_single_call_check_valid_eo(vd); } else if (view_id == VIEW_INCALL_MULTICALL_SPLIT_VIEW) { - incall_multi_view_split_priv_t *priv = (incall_multi_view_split_priv_t *) vd->priv; - valid = _vcui_check_valid_eo(priv->contents, "MULTIVIEWSPLIT"); + valid = _vcui_view_multi_call_split_check_valid_eo(vd); } else if (view_id == VIEW_INCALL_MULTICALL_CONF_VIEW) { - vcui_view_multi_call_conf_priv_t *priv = (vcui_view_multi_call_conf_priv_t *) vd->priv; - valid = _vcui_check_valid_eo(priv->contents, "MULTIVIEWCONF"); + valid = _vcui_view_multi_call_conf_check_valid_eo(vd); } else if (view_id == VIEW_INCALL_MULTICALL_LIST_VIEW) { - vcui_view_multi_call_list_priv_t *priv = (vcui_view_multi_call_list_priv_t *) vd->priv; - valid = _vcui_check_valid_eo(priv->contents, "MULTIVIEWLIST"); - } else if (view_id == VIEW_INCALL_KEYPAD_VIEW) { - vcui_view_keypad_priv_t *priv = (vcui_view_keypad_priv_t *) vd->priv; - valid = _vcui_check_valid_eo(priv->contents, "KEYPADVIEW"); + valid = _vcui_view_multi_call_list_check_valid_eo(vd); } else if (view_id == VIEW_ENDCALL_VIEW) { - endcall_view_priv_t *priv = (endcall_view_priv_t *) vd->priv; - valid = _vcui_check_valid_eo(priv->contents, "ENDCALLVIEW"); + valid = _vc_ui_view_callend_check_valid_eo(vd); } else { CALL_UI_DEBUG("[============ BAD INPUT!!!! Check Input Layout!!!!! %d============]", view_id); } if (valid == -1) { CALL_UI_DEBUG("[========== WARNING!! Invalid Evas Object ==========]"); ad->view_st[view_id] = NULL; - /* free priv */ } } @@ -112,11 +97,11 @@ void _vcui_view_change(vcui_app_call_view_id_t view_id, int param1, void *param2 } ad->view_before_top = ad->view_top; /* hold the current top window in the before_top pointer */ ad->view_top = view_id; /* set the new top window to the view_id which is passed... this step enables in setting 00:00:00 as timer */ - if (view_id == VIEW_DIALLING_VIEW || view_id == VIEW_INCOMING_VIEW || view_id == VIEW_INCOMING_LOCK_VIEW) { + if (view_id == VIEW_DIALLING_VIEW || view_id == VIEW_INCOMING_LOCK_VIEW) { _vcui_raise_main_win(); } if ((ad->view_before_top != -1) && (ad->view_before_top != view_id)) { - CALL_UI_DEBUG("hide & destory [%d]", ad->view_before_top); + CALL_UI_DEBUG("hide & destroy [%d]", ad->view_before_top); CALL_UI_KPI("%s onHide start", vcui_view_name[ad->view_before_top]); ad->view_st[ad->view_before_top]->onHide(ad->view_st[ad->view_before_top]); CALL_UI_KPI("%s onHide done", vcui_view_name[ad->view_before_top]); @@ -147,21 +132,22 @@ void _vcui_view_change(vcui_app_call_view_id_t view_id, int param1, void *param2 void _vcui_view_auto_change() { CALL_UI_DEBUG(".."); - if (_vcui_doc_get_count_nostatus() == 1) { - call_data_t *call_data = _vcui_doc_get_all_recent(); - if (call_data->mo_mt_status == CALL_OUTGOING) { - _vcui_view_change(VIEW_DIALLING_VIEW, 0, NULL, NULL); - } else if (call_data->mo_mt_status == CALL_INCOMING) { - if (_vcui_is_idle_lock() == CALL_UNLOCK) - _vcui_view_change(VIEW_INCOMING_VIEW, 0, NULL, NULL); - else - _vcui_view_change(VIEW_INCOMING_LOCK_VIEW, 0, NULL, NULL); + void *data = _vcui_view_get_second_mtcall_popup_data(); + _vcui_view_popup_second_mtcall_unload(data); + + if (_vcui_doc_get_no_status_call_data_count() == 1) { + call_data_t *call_data = _vcui_doc_get_recent_call_data(); + int call_type = _vcui_doc_get_call_type(call_data); + if (call_type == CALL_OUTGOING) { + _vcui_view_change(VIEW_DIALLING_VIEW, 0, NULL, NULL); + } else if (call_type == CALL_INCOMING) { + _vcui_view_change(VIEW_INCOMING_LOCK_VIEW, 0, NULL, NULL); } else { CALL_UI_DEBUG("ERROR"); } - } else if (_vcui_doc_get_count() > 1) { - if (_vcui_doc_get_count_unhold() == 0 || _vcui_doc_get_count_hold() == 0) { + } else if (_vcui_doc_get_all_call_data_count() > 1) { + if (_vcui_doc_get_unhold_call_data_count() == 0 || _vcui_doc_get_hold_call_data_count() == 0) { _vcui_view_change(VIEW_INCALL_MULTICALL_CONF_VIEW, 0, NULL, NULL); } else { _vcui_view_change(VIEW_INCALL_MULTICALL_SPLIT_VIEW, 0, NULL, NULL); @@ -203,3 +189,36 @@ void _vcui_view_destroy(vcui_app_call_view_id_t view_id) ad->view_st[view_id]->onDestroy(ad->view_st[view_id]); } } + +void _vcui_view_quickpanel_change() +{ +#ifdef _QUICKPANNEL_SUPPORT_ + CALL_UI_DEBUG(".."); + vcui_app_call_data_t *ad = _vcui_get_app_data(); + if (ad->win_quickpanel) { + if (_vcui_doc_get_all_call_data_count() < 1) { + CALL_UI_DEBUG("destroy quickpanel"); + ad->view_st[VIEW_QUICKPANEL_VIEW]->onHide(ad->view_st[VIEW_QUICKPANEL_VIEW]); + ad->view_st[VIEW_QUICKPANEL_VIEW]->onDestroy(ad->view_st[VIEW_QUICKPANEL_VIEW]); + ad->win_quickpanel = NULL; + } else { + if (ad->view_st[VIEW_QUICKPANEL_VIEW]->layout != NULL) { + CALL_UI_DEBUG("update quickpanel"); + ad->view_st[VIEW_QUICKPANEL_VIEW]->onUpdate(ad->view_st[VIEW_QUICKPANEL_VIEW], NULL, NULL); + } + } + } else { + CALL_UI_DEBUG("create quickpanel"); + if (ad->view_st[VIEW_QUICKPANEL_VIEW] == NULL) { + voice_call_view_data_t *view_data = ad->func_new[VIEW_QUICKPANEL_VIEW] (ad); + ad->view_st[VIEW_QUICKPANEL_VIEW] = view_data; + } + if (ad->view_st[VIEW_QUICKPANEL_VIEW]->layout == NULL) { + CALL_UI_DEBUG("create!!"); + ad->view_st[VIEW_QUICKPANEL_VIEW]->onCreate(ad->view_st[VIEW_QUICKPANEL_VIEW], 0, NULL, NULL); + } + } +#else + CALL_UI_DEBUG("Not applied yet"); +#endif +} diff --git a/ui/vcui-view-common.c b/ui/src/vcui-view-common.c similarity index 69% rename from ui/vcui-view-common.c rename to ui/src/vcui-view-common.c index 8c1cf06..17e7cad 100755 --- a/ui/vcui-view-common.c +++ b/ui/src/vcui-view-common.c @@ -17,15 +17,17 @@ #include "vcui-application.h" #include "vcui-view-common.h" +#include "vcui-view-layout-hd.h" #include "vcui-view-dialing.h" -#include "vcui-view-incoming.h" +#include "vcui-view-incoming-lock.h" #include "vcui-view-single-call.h" #include "vcui-view-multi-call-split.h" #include "vcui-view-multi-call-conf.h" #include "vcui-view-multi-call-list.h" #include "vcui-view-keypad.h" #include "vcui-view-callend.h" +#include "vcui-view-quickpanel.h" static vcui_view_common_t gincall_common_data; @@ -41,8 +43,6 @@ static vcui_view_common_t *__vcui_view_common_get_common_data() static Eina_Bool __vcui_view_common_timer_cb(void *data) { - //voice_call_view_data_t *vd = (voice_call_view_data_t *)data; - //vcui_app_call_data_t *ad = vd->app_data; vcui_view_common_t *common_data = __vcui_view_common_get_common_data(); char dur[TIME_BUF_LEN]; static int end_count = 0; @@ -92,8 +92,8 @@ static Eina_Bool __vcui_view_common_timer_end_cb(void *data) } else if (common_data->time_count == 3) { _vcui_view_common_set_text_time(_(" ")); } else if (common_data->time_count == 4) { - char data[VC_DATA_LENGTH_MAX] = { 0, }; - _vcui_view_common_set_text_time(_vcui_get_endcause_string(end_type, data)); + char data_txt[VC_DATA_LENGTH_MAX] = { 0, }; + _vcui_view_common_set_text_time(_vcui_get_endcause_string(end_type, data_txt)); } common_data->time_count++; @@ -116,7 +116,6 @@ static Eina_Bool __vcui_view_common_timer_end_dialing_cb(void *data) { CALL_UI_DEBUG(".."); vcui_view_common_t *common_data = __vcui_view_common_get_common_data(); - vcui_app_call_data_t *ad = _vcui_get_app_data(); if (common_data->tm_end_dialing) { ecore_timer_del(common_data->tm_end_dialing); @@ -124,10 +123,8 @@ static Eina_Bool __vcui_view_common_timer_end_dialing_cb(void *data) } if (common_data->bredial == EINA_TRUE) { - /*_vcui_view_all_hide();*/ - _vcui_engine_interface_process_auto_redial(EINA_TRUE); + vcall_engine_process_auto_redial(EINA_TRUE); _vcui_view_popup_load_redial(); - _vcui_view_dialing_draw_txt_dialing(ad->view_st[VIEW_DIALLING_VIEW]); } else { _vcui_view_common_call_terminate_or_view_change(); } @@ -154,106 +151,31 @@ void _vcui_view_common_set_text_time(char *time_dur) { vcui_app_call_data_t *ad = _vcui_get_app_data(); voice_call_view_data_t *data = ad->view_st[ad->view_top]; - int valid = 0; if (data != NULL) { if (data->type == VIEW_INCALL_ONECALL_VIEW) { - if (data->priv) { - incall_one_view_priv_t *priv = data->priv; - if (priv->contents) { - /* ============ Check valid Evas Object ============= */ - valid = _vcui_check_valid_eo(priv->contents, "ONEVIEW"); - if (valid == -1) { - CALL_UI_DEBUG("[========== ONEVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents); - return; - } - /* ============ Check valid Evas Object ============= */ - edje_object_part_text_set(_EDJ(priv->contents), "txt_timer", _(time_dur)); //TODO - } else { - CALL_UI_DEBUG("ERR : Null Evas_Object priv->contents"); - } - - } + _vc_ui_view_single_call_set_call_timer(data, time_dur); } else if (data->type == VIEW_INCALL_MULTICALL_SPLIT_VIEW) { - if (data->priv) { - incall_multi_view_split_priv_t *priv = data->priv; - /* ============ Check valid Evas Object ============= */ - valid = _vcui_check_valid_eo(priv->contents, "MULTIVIEWSPLIT"); - if (valid == -1) { - CALL_UI_DEBUG("[========== MULTIVIEWSPLIT : Invalid Evas Object, priv->contents : %p ==========]", priv->contents); - return; - } - /* ============ Check valid Evas Object ============= */ - edje_object_part_text_set(_EDJ(priv->contents), "txt_timer", _(time_dur)); //TODO - } else { - CALL_UI_DEBUG("ERR : Null Evas_Object data->layout"); - } + _vcui_view_multi_call_split_set_call_timer(data, time_dur); } else if (data->type == VIEW_INCALL_MULTICALL_CONF_VIEW) { - if (data->priv) { - vcui_view_multi_call_conf_priv_t *priv = data->priv; - /* ============ Check valid Evas Object ============= */ - valid = _vcui_check_valid_eo(priv->contents, "MULTIVIEWCONF"); - if (valid == -1) { - CALL_UI_DEBUG("[========== MULTIVIEWCONF : Invalid Evas Object, priv->contents : %p ==========]", priv->contents); - return; - } - /* ============ Check valid Evas Object ============= */ - edje_object_part_text_set(_EDJ(priv->contents), "txt_timer", _(time_dur)); //TODO - } else { - CALL_UI_DEBUG("ERR : Null Evas_Object data->layout"); - } + _vcui_view_multi_call_conf_set_call_timer(data, time_dur); } else if (data->type == VIEW_INCALL_MULTICALL_LIST_VIEW) { - if (data->priv) { - vcui_view_multi_call_list_priv_t *priv = data->priv; - /* ============ Check valid Evas Object ============= */ - valid = _vcui_check_valid_eo(priv->contents, "MULTIVIEWLIST"); - if (valid == -1) { - CALL_UI_DEBUG("[========== MULTIVIEWLIST : Invalid Evas Object, priv->contents : %p ==========]", priv->contents); - return; - } - /* ============ Check valid Evas Object ============= */ - edje_object_part_text_set(_EDJ(priv->contents), "txt_timer", _(time_dur)); //TODO - } else { - CALL_UI_DEBUG("ERR : Null Evas_Object data->layout"); - } - } else if (data->type == VIEW_INCALL_KEYPAD_VIEW) { - if (data->priv) { - vcui_view_keypad_priv_t *priv = data->priv; - /* ============ Check valid Evas Object ============= */ - valid = _vcui_check_valid_eo(priv->contents, "KEYPADVIEW"); - if (valid == -1) { - CALL_UI_DEBUG("[========== KEYPADVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents); - return; - } - /* ============ Check valid Evas Object ============= */ - edje_object_part_text_set(_EDJ(priv->contents), "txt_timer", _(time_dur)); //TODO - } else { - CALL_UI_DEBUG("ERR : Null Evas_Object data->layout"); - } + _vcui_view_multi_call_list_set_call_timer(data, time_dur); } else if (data->type == VIEW_ENDCALL_VIEW) { - if (data->priv) { - endcall_view_priv_t *priv = data->priv; - /* ============ Check valid Evas Object ============= */ - valid = _vcui_check_valid_eo(priv->contents, "ENDCALLVIEW"); - if (valid == -1) { - CALL_UI_DEBUG("[========== KEYPADVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents); - return; - } - /* ============ Check valid Evas Object ============= */ - edje_object_part_text_set(_EDJ(priv->contents), "txt_timer", _(time_dur)); //TODO - } else { - CALL_UI_DEBUG("ERR : Null Evas_Object data->layout"); - } + _vc_ui_view_callend_set_call_timer(data, time_dur); } else { - /*to do nothing in case of other view.*/ + /*to do nothing in case of other view. */ } } - } + + if (ad->win_quickpanel && ad->quickpanel_layout) { + _vc_ui_view_qp_set_call_timer(ad->quickpanel_layout, time_dur); + } +} void _vcui_view_common_set_each_time(time_t starttime) { time_t curr_time; - //char call_duration[9]; unsigned long call_duration_in_sec = 0; unsigned long sec = 0; unsigned long min = 0; @@ -267,7 +189,7 @@ void _vcui_view_common_set_each_time(time_t starttime) vcui_view_common_t *common_data = __vcui_view_common_get_common_data(); - // set the start time for every call + /*set the start time for every call */ common_data->start_call_time = starttime; CALL_UI_DEBUG(" common_data->start_call_time %lu", (unsigned long)common_data->start_call_time); @@ -348,7 +270,7 @@ void _vcui_view_common_call_end_show_dialing(int end_type, int bredial) if (ad->call_end_type == CALL_END_TYPE_NONE) { _vcui_view_dialing_draw_txt_ended(ad->view_st[ad->view_top], end_type); } else if (ad->call_end_type == CALL_END_TYPE_SINGLE_CALL) { - common_data->time_end_flag = TIME_END_START; // to stop timer from updating the call end screen + common_data->time_end_flag = TIME_END_START; /*to stop timer from updating the call end screen */ _vcui_view_common_set_text_time(_vcui_get_endcause_string(end_type, data)); } @@ -399,7 +321,7 @@ int _vcui_view_common_call_terminate_or_view_change(void) CALL_UI_DEBUG(".."); vcui_app_call_data_t *ad = _vcui_get_app_data(); - if (_vcui_doc_get_count() == 0) { + if (_vcui_doc_get_all_call_data_count() == 0) { if (ad->contact_ug == NULL) { CALL_UI_DEBUG("EXIT - contact ug is closed"); elm_exit(); @@ -418,3 +340,55 @@ int _vcui_view_common_call_terminate_or_view_change(void) } return VC_NO_ERROR; } + +void _vcui_view_common_show_noid_image(Evas_Object *layout) +{ + CALL_UI_DEBUG(".."); + vcui_app_call_data_t *ad = _vcui_get_app_data(); + Evas_Object *noid_icon = NULL; + + noid_icon = edje_object_part_swallow_get(_EDJ(layout), "swl-cid-noid"); + if (noid_icon) { + edje_object_part_unswallow(_EDJ(layout), noid_icon); + evas_object_del(noid_icon); + } + + noid_icon = elm_image_add(ad->win_main); + elm_object_part_content_set(layout, "swl-cid-noid", noid_icon); + elm_image_file_set(noid_icon, MO_NOCALLER_ID_ICON, NULL); + + edje_object_signal_emit(_EDJ(layout), "show-noid-image", "show-noid"); +} + +void _vcui_view_common_update_mute_btn() +{ + vcui_app_call_data_t *ad = _vcui_get_app_data(); + vcui_app_call_view_id_t view_id = ad->view_top; + voice_call_view_data_t *vd = ad->view_st[view_id]; + VCUI_RETURN_IF_FAIL(vd); + + int valid = 0; + + if (vd->layout) { + if (view_id == VIEW_DIALLING_VIEW) { + valid = _vc_ui_view_dialing_check_valid_eo(vd); + } else if (view_id == VIEW_INCALL_ONECALL_VIEW) { + valid = _vc_ui_view_single_call_check_valid_eo(vd); + } else if (view_id == VIEW_INCALL_MULTICALL_SPLIT_VIEW) { + valid = _vcui_view_multi_call_split_check_valid_eo(vd); + } else if (view_id == VIEW_INCALL_MULTICALL_CONF_VIEW) { + valid = _vcui_view_multi_call_conf_check_valid_eo(vd); + } else if (view_id == VIEW_INCALL_MULTICALL_LIST_VIEW) { + valid = _vcui_view_multi_call_list_check_valid_eo(vd); + } else { + CALL_UI_DEBUG("[============ BAD INPUT!!!! Check Input Layout!!!!! %d============]", view_id); + } + if (valid == -1) { + CALL_UI_DEBUG("[========== WARNING!! Invalid Evas Object ==========]"); + return; + } + } + + _vcui_create_bottom_middle_button(vd); +} + diff --git a/ui/vcui-view-dialing.c b/ui/src/vcui-view-dialing.c similarity index 60% rename from ui/vcui-view-dialing.c rename to ui/src/vcui-view-dialing.c index b18a144..4d8c1b3 100755 --- a/ui/vcui-view-dialing.c +++ b/ui/src/vcui-view-dialing.c @@ -18,6 +18,17 @@ #include "vcui-application.h" #include "vcui-view-dialing.h" #include "vcui-view-elements.h" +#include "vcui-view-common.h" +#include "vcui-app-window.h" +#include "vcui-view-keypad.h" + +#define VIEW_DIALING_LAYOUT_ID "DIALVIEW" +typedef struct { + Evas_Object *contents; + Evas_Object *caller_info; + Evas_Object *btn_ly; + Evas_Object *ic; +} vcui_view_dialing_priv_t; static int __vcui_view_dialing_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3); static int __vcui_view_dialing_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2); @@ -59,111 +70,20 @@ void _vcui_view_dialing_draw_txt_ended(voice_call_view_data_t *vd, int end_type) } vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *)vd->priv; + vcui_app_call_data_t *ad = _vcui_get_app_data(); int valid = 0; - valid = _vcui_check_valid_eo(priv->contents, "DIALVIEW"); + valid = _vcui_check_valid_eo(priv->contents, VIEW_DIALING_LAYOUT_ID); if (valid == -1) { CALL_UI_DEBUG("[========== DIALVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents); } else { char data[VC_DATA_LENGTH_MAX] = { 0, }; - edje_object_part_text_set(_EDJ(priv->contents), "txt_mo_status", _(_vcui_get_endcause_string(end_type, data))); + edje_object_part_text_set(_EDJ(priv->caller_info), "txt_status", _(_vcui_get_endcause_string(end_type, data))); + ad->quickpanel_text = data; } /* ============ Check valid Evas Object ============= */ } -void _vcui_view_dialing_draw_txt_connecting(voice_call_view_data_t *vd) -{ - /* ============ Check valid Evas Object ============= */ - if (vd == NULL) { - CALL_UI_DEBUG("View Data is NULL"); - return; - } - - vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *)vd->priv; - - int valid = 0; - valid = _vcui_check_valid_eo(priv->contents, "DIALVIEW"); - if (valid == -1) { - CALL_UI_DEBUG("[========== DIALVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents); - } else { - edje_object_part_text_set(_EDJ(priv->contents), "txt_mo_status", _("IDS_CALL_POP_CONNECTING")); - } - /* ============ Check valid Evas Object ============= */ -} - -void _vcui_view_dialing_draw_txt_dialing(voice_call_view_data_t *vd) -{ - /* ============ Check valid Evas Object ============= */ - if (vd == NULL) { - CALL_UI_DEBUG("View Data is NULL"); - return; - } - - vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *)vd->priv; - - int valid = 0; - valid = _vcui_check_valid_eo(priv->contents, "DIALVIEW"); - if (valid == -1) { - CALL_UI_DEBUG("[========== DIALVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents); - } else { - edje_object_part_text_set(_EDJ(priv->contents), "txt_mo_status", _("IDS_CALL_POP_DIALLING")); - } - /* ============ Check valid Evas Object ============= */ -} - -static void __vcui_view_dialing_update_screen(Evas_Object *eo, void *data) -{ - CALL_UI_DEBUG(".."); - - voice_call_view_data_t *vd = (voice_call_view_data_t *)data; - vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *)vd->priv; - - call_data_t *now_call_data = _vcui_doc_get_recent_mo(); - - /* ============ Check valid Evas Object ============= */ - int valid = 0; - valid = _vcui_check_valid_eo(priv->contents, "DIALVIEW"); - if (valid == -1) { - CALL_UI_DEBUG("[========== DIALVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents); - return; - } - /* ============ Check valid Evas Object ============= */ - - if (now_call_data == NULL) { - CALL_UI_DEBUG("Now Data is NULL"); - return; - } - - /* call image */ - if (strcmp((char *)priv->now_data->call_file_path, NOIMG_ICON) == 0) { - _vcui_show_wallpaper_image(priv->contents); - } else { - CALL_UI_DEBUG("there is caller image."); - - _vcui_show_wallpaper_image(priv->contents); - priv->ic = _vcui_show_contact_image(priv->contents, vd->app_data->win_main, priv->now_data->call_file_path); - } - - /* call name (if nothing, call number) */ - if (strlen((char *)priv->now_data->call_display) == 0) { - edje_object_part_text_set(_EDJ(eo), "txt_call_name", (char *)priv->now_data->call_num); - } else { - edje_object_part_text_set(_EDJ(eo), "txt_call_name", (char *)priv->now_data->call_display); - edje_object_part_text_set(_EDJ(eo), "txt_contact_phone_type", (char *)priv->now_data->call_num); - } - - _vcui_create_top_left_button_disabled(vd); - _vcui_create_top_middle_button_disabled(vd); - _vcui_create_top_right_button_disabled(vd); - _vcui_create_bottom_left_button(vd); - _vcui_create_bottom_middle_button_disabled(vd); - _vcui_create_bottom_right_button_disabled(vd); - - _vcui_create_button_bigend(vd); - - evas_object_show(eo); -} - static void __vcui_view_dialing_draw_screen(Evas_Object *eo, void *data) { CALL_UI_DEBUG(".."); @@ -171,11 +91,12 @@ static void __vcui_view_dialing_draw_screen(Evas_Object *eo, void *data) voice_call_view_data_t *vd = (voice_call_view_data_t *)data; vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *)vd->priv; - call_data_t *now_call_data = _vcui_doc_get_recent_mo(); + call_data_t *now_call_data = _vcui_doc_get_recent_mo_call_data(); + Eina_Bool bshift_alert = EINA_FALSE; /* ============ Check valid Evas Object ============= */ int valid = 0; - valid = _vcui_check_valid_eo(priv->contents, "DIALVIEW"); + valid = _vcui_check_valid_eo(priv->contents, VIEW_DIALING_LAYOUT_ID); if (valid == -1) { CALL_UI_DEBUG("[========== DIALVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents); return; @@ -187,46 +108,57 @@ static void __vcui_view_dialing_draw_screen(Evas_Object *eo, void *data) return; } + char *file_path = _vcui_doc_get_caller_id_file_path(now_call_data); + CALL_UI_DEBUG("file_path: %s", file_path); + /* call image */ - if (strcmp((char *)priv->now_data->call_file_path, NOIMG_ICON) == 0) { - _vcui_show_wallpaper_image(priv->contents); + _vcui_delete_contact_image(priv->contents); + if (strcmp(file_path, NOIMG_ICON) == 0) { + _vcui_view_common_show_noid_image(priv->contents); + bshift_alert = EINA_TRUE; } else { - CALL_UI_DEBUG("there is caller image."); - - _vcui_show_wallpaper_image(priv->contents); - priv->ic = _vcui_show_contact_image(priv->contents, vd->app_data->win_main, priv->now_data->call_file_path); + { + _vcui_show_wallpaper_image(priv->contents); + priv->ic = _vcui_show_contact_image(priv->contents, vd->app_data->win_main, file_path); + } } + _vcui_show_call_bg_img(priv->contents); + + char *call_number = _vcui_doc_get_call_number(now_call_data); + char *call_name = _vcui_doc_get_call_display_name(now_call_data); /* call name (if nothing, call number) */ - if (strlen((char *)priv->now_data->call_display) == 0) { - edje_object_part_text_set(_EDJ(eo), "txt_call_name", (char *)priv->now_data->call_num); + if (strlen(call_name) == 0) { + _vcui_show_caller_info_name(vd, call_number, EINA_FALSE); } else { - edje_object_part_text_set(_EDJ(eo), "txt_call_name", (char *)priv->now_data->call_display); - edje_object_part_text_set(_EDJ(eo), "txt_contact_phone_type", (char *)priv->now_data->call_num); + _vcui_show_caller_info_name(vd, call_name, EINA_FALSE); + _vcui_show_caller_info_number(vd, call_number, EINA_FALSE); } - edje_object_part_text_set(_EDJ(priv->contents), "txt_mo_status", _("IDS_CALL_POP_DIALLING")); + _vcui_show_caller_info_icon(vd, EINA_FALSE); + _vcui_show_caller_info_status(vd, _("IDS_CALL_POP_CALLING"), EINA_FALSE); _vcui_create_top_left_button_disabled(vd); - _vcui_create_top_middle_button_disabled(vd); - _vcui_create_top_right_button_disabled(vd); + _vcui_create_top_middle_button(vd); + _vcui_create_top_right_button(vd); _vcui_create_bottom_left_button(vd); _vcui_create_bottom_middle_button_disabled(vd); - _vcui_create_bottom_right_button_disabled(vd); - _vcui_create_button_bigend(vd); + _vcui_create_bottom_right_button(vd); + + _vcui_elements_check_keypad_n_hide(vd); evas_object_show(eo); } -static Evas_Object *__vcui_view_dialing_create_contents(void *data) +static Evas_Object *__vcui_view_dialing_create_contents(void *data, char *grpname) { CALL_UI_KPI("__vcui_view_dialing_create_contents start"); voice_call_view_data_t *vd = (voice_call_view_data_t *)data; Evas_Object *eo = NULL; /* load edje */ - eo = _vcui_load_edj(vd->app_data->win_main, EDJ_NAME, GRP_MOVIEW); + eo = _vcui_load_edj(vd->app_data->win_main, EDJ_NAME, grpname); if (eo == NULL) return NULL; CALL_UI_KPI("__vcui_view_dialing_create_contents done"); @@ -262,6 +194,7 @@ static int __vcui_view_dialing_oncreate(voice_call_view_data_t *view_data, int p vcui_app_call_data_t *ad = view_data->app_data; vcui_view_dialing_priv_t *priv = view_data->priv; + Evas_Object *sep_ly = NULL; if (!view_data->layout) { @@ -273,10 +206,19 @@ static int __vcui_view_dialing_oncreate(voice_call_view_data_t *view_data, int p return VC_ERROR; } /* Create Contents */ - priv->contents = __vcui_view_dialing_create_contents(view_data); + priv->contents = __vcui_view_dialing_create_contents(view_data, GRP_MOVIEW); elm_object_part_content_set(view_data->layout, "elm.swallow.content", priv->contents); - evas_object_name_set(priv->contents, "DIALVIEW"); + priv->caller_info = __vcui_view_dialing_create_contents(view_data, GRP_CALLER_INFO); + elm_object_part_content_set(priv->contents, "caller_info", priv->caller_info); + + sep_ly = __vcui_view_dialing_create_contents(view_data, GRP_SEPARATOR_LAYOUT); + elm_object_part_content_set(priv->contents, "btn_bg", sep_ly); + + priv->btn_ly = __vcui_view_dialing_create_contents(view_data, GRP_BUTTON_LAYOUT); + elm_object_part_content_set(priv->contents, "btn_region", priv->btn_ly); + + evas_object_name_set(priv->contents, VIEW_DIALING_LAYOUT_ID); CALL_UI_DEBUG("[========== DIALVIEW: priv->contents Addr : [%p] ==========]", priv->contents); } @@ -289,7 +231,7 @@ static int __vcui_view_dialing_onupdate(voice_call_view_data_t *view_data, void CALL_UI_DEBUG("dialling view update"); vcui_view_dialing_priv_t *priv = view_data->priv; - __vcui_view_dialing_update_screen(priv->contents, view_data); + __vcui_view_dialing_draw_screen(priv->contents, view_data); return VC_NO_ERROR; } @@ -299,7 +241,7 @@ static int __vcui_view_dialing_onhide(voice_call_view_data_t *view_data) int valid = 0; vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *)view_data->priv; - valid = _vcui_check_valid_eo(priv->contents, "DIALVIEW"); + valid = _vcui_check_valid_eo(priv->contents, VIEW_DIALING_LAYOUT_ID); if (valid == -1) { CALL_UI_DEBUG("[========== DIALVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents); @@ -315,11 +257,6 @@ static int __vcui_view_dialing_onshow(voice_call_view_data_t *view_data) CALL_UI_DEBUG("dialling view show"); vcui_view_dialing_priv_t *priv = view_data->priv; - priv->now_data = _vcui_doc_get_recent_mo(); - if (priv->now_data == NULL) { - CALL_UI_DEBUG("call data is null"); - return VC_ERROR; - } __vcui_view_dialing_draw_screen(priv->contents, view_data); @@ -346,6 +283,19 @@ static int __vcui_view_dialing_ondestroy(voice_call_view_data_t *view_data) vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *)vd->priv; if (priv != NULL) { + if (priv->btn_ly) { + evas_object_del(priv->btn_ly); + priv->btn_ly = NULL; + } + + if (priv->caller_info) { + evas_object_del(priv->caller_info); + priv->caller_info = NULL; + } + + /*Delete keypad layout*/ + _vcui_keypad_delete_layout(priv->contents); + if (priv->contents) { evas_object_del(priv->contents); priv->contents = NULL; @@ -366,3 +316,55 @@ static int __vcui_view_dialing_ondestroy(voice_call_view_data_t *view_data) _vcui_cache_flush(); return VC_NO_ERROR; } + +int _vc_ui_view_dialing_check_valid_eo(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + + vcui_view_dialing_priv_t *priv = NULL; + int valid = -1; + + VCUI_RETURN_VALUE_IF_FAIL(vd , -1); + priv = (vcui_view_dialing_priv_t *) vd->priv; + + valid = _vcui_check_valid_eo(priv->contents, VIEW_DIALING_LAYOUT_ID); + + return valid; +} + +Evas_Object *_vc_ui_view_dialing_get_layout(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + vcui_view_dialing_priv_t *priv = NULL; + + VCUI_RETURN_NULL_IF_FAIL(vd); + priv = (vcui_view_dialing_priv_t *) vd->priv; + + VCUI_RETURN_NULL_IF_FAIL(priv); + return priv->contents; +} + +Evas_Object *_vc_ui_view_dialing_get_button_layout(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + vcui_view_dialing_priv_t *priv = NULL; + + VCUI_RETURN_NULL_IF_FAIL(vd); + priv = (vcui_view_dialing_priv_t *) vd->priv; + + VCUI_RETURN_NULL_IF_FAIL(priv); + return priv->btn_ly; +} + +Evas_Object *_vc_ui_view_dialing_get_caller_info(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + vcui_view_dialing_priv_t *priv = NULL; + + VCUI_RETURN_NULL_IF_FAIL(vd); + priv = (vcui_view_dialing_priv_t *) vd->priv; + + VCUI_RETURN_NULL_IF_FAIL(priv); + return priv->caller_info; +} + diff --git a/ui/src/vcui-view-elements.c b/ui/src/vcui-view-elements.c new file mode 100755 index 0000000..cc56ac5 --- /dev/null +++ b/ui/src/vcui-view-elements.c @@ -0,0 +1,1575 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#include "vcui-application.h" +#include "vcui-view-elements.h" +#include "vcui-view-dialing.h" +#include "vcui-view-single-call.h" +#include "vcui-view-multi-call-conf.h" +#include "vcui-view-multi-call-split.h" +#include "vcui-view-multi-call-list.h" +#include "vcui-view-keypad.h" +#include "vcui-view-incoming-lock.h" +#include "vcui-view-callend.h" +#include "vcui-view-quickpanel.h" +#include "vcui-view-popup.h" + +static void __vcui_hold_btn_cb(void *data, Evas_Object *obj, void *event_info); +static void __vcui_unhold_btn_cb(void *data, Evas_Object *obj, void *event_info); +static void __vcui_join_btn_cb(void *data, Evas_Object *obj, void *event_info); +static void __vcui_keypad_btn_cb(void *data, Evas_Object *obj, void *event_info); +static void __vcui_contacts_btn_cb(void *data, Evas_Object *obj, void *event_info); +static void __vcui_addcall_btn_cb(void *data, Evas_Object *obj, void *event_info); +static void __vcui_sound_path_btn_cb(void *data, Evas_Object *obj, void *event_info); +static void __vcui_spk_btn_cb(void *data, Evas_Object *obj, void *event_info); +static void __vcui_spk_press_btn_cb(void *data, Evas_Object *obj, void *event_info); +static void __vcui_mute_btn_cb(void *data, Evas_Object *obj, void *event_info); +static void __vcui_bigend_btn_cb(void *data, Evas_Object *obj, void *event_info); +static void __vcui_videocall_btn_cb(void *data, Evas_Object *obj, void *event_info); +static void __vcui_voicecall_btn_cb(void *data, Evas_Object *obj, void *event_info); +static void __vcui_msg_btn_cb(void *data, Evas_Object *obj, void *event_info); +static void __vcui_hold_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG(".."); + vcall_engine_process_hold_call(); +} + +static void __vcui_unhold_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG(".."); + vcall_engine_process_hold_call(); +} + +void _vcui_swap_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + 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(); +} + +static void __vcui_join_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG(".."); + _vcui_create_top_left_button_disabled(data); + vcall_engine_join_call(); +} + +void _vcui_conf_img_cb(void *data, Evas_Object *obj, void *event_info) +{ /* for multicall list view */ + CALL_UI_DEBUG(".."); + _vcui_view_change(VIEW_INCALL_MULTICALL_LIST_VIEW, 0, 0, 0); +} + +static void __vcui_keypad_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + Evas_Object *view_ly = NULL; + + switch (vd->type) { + case VIEW_DIALLING_VIEW: + { + view_ly = _vc_ui_view_dialing_get_layout(vd); + } + break; + case VIEW_INCALL_ONECALL_VIEW: + { + view_ly = _vc_ui_view_single_call_get_layout(vd); + } + break; + case VIEW_INCALL_MULTICALL_SPLIT_VIEW: + { + view_ly = _vcui_view_multi_call_split_get_layout(vd); + } + break; + case VIEW_INCALL_MULTICALL_CONF_VIEW: + { + view_ly = _vcui_view_multi_call_conf_get_main_layout(vd); + } + break; + default: + CALL_UI_DEBUG("code should never reach here"); + return; + } + + if (_vcui_keypad_get_show_status() == EINA_FALSE) { /*show keypad region*/ + CALL_UI_DEBUG(".."); + + /*Hide caller info area*/ + edje_object_signal_emit(_EDJ(view_ly), "HIDE", "CALL_AREA"); + edje_object_signal_emit(_EDJ(view_ly), "HIDE_NOISE_REDUCTIION", "NOISE_REDUCTIION"); + edje_object_signal_emit(_EDJ(view_ly), "HIDE_SOUND_EQ", "SOUND_EQ"); + + /*Show keypad layout - ON view*/ + edje_object_signal_emit(_EDJ(view_ly), "SHOW", "KEYPAD_BTN"); + + /*Actual show with animation*/ + _vcui_keypad_show_layout(vd); + + elm_object_text_set(obj, dgettext("sys_string", "IDS_COM_SK_HIDE")); + + _vcui_keypad_set_show_status(EINA_TRUE); + } else { + CALL_UI_DEBUG(".."); + + /*Hide animation on keypad*/ + _vcui_keypad_show_hide_effect(vd, view_ly); + + /*Set keypad text*/ + elm_object_text_set(obj, _("IDS_CALL_SK3_KEYPAD")); + + /*Set keypad status flag*/ + _vcui_keypad_set_show_status(EINA_FALSE); + } +} + +static void __vcui_contacts_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + vcui_app_call_data_t *ad = vd->app_data; + + if (ad->beffect_show == EINA_TRUE) { + ad->bcontact_clicked = EINA_TRUE; + } else { + _vcui_doc_launch_contact_list_ug(NULL, NULL, vd->layout, NULL, NULL, NULL, &(vd->app_data->ugs_array_data)); + } +} + +static void __vcui_addcall_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + vcui_app_call_data_t *ad = vd->app_data; + + if (ad->beffect_show == EINA_TRUE) { + ad->badd_call_clicked = EINA_TRUE; + } else { + _vcui_doc_launch_phoneui_ug(NULL, NULL, vd->layout, NULL, NULL, NULL, &(vd->app_data->ugs_array_data)); + } +} + +static void __vcui_sound_path_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG(".."); + _vcui_view_popup_load_snd_path(data); +} + +/* #define RCS_TEST */ + +static void __vcui_spk_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + vcui_app_call_data_t *ad = vd->app_data; + + CALL_UI_DEBUG("vd->type:[%d]", vd->type); + + vcall_engine_process_loudspeaker(EINA_TRUE); + + ad->speaker_status = EINA_TRUE; + _vcui_create_bottom_left_button(vd); + +} + +static void __vcui_spk_press_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + vcui_app_call_data_t *ad = vd->app_data; + + CALL_UI_DEBUG("vd->type:[%d]", vd->type); + + vcall_engine_process_loudspeaker(EINA_FALSE); + + ad->speaker_status = EINA_FALSE; + _vcui_create_bottom_left_button(vd); + +} + +static void __vcui_mute_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG(".."); + + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + vcui_app_call_data_t *ad = vd->app_data; + + CALL_UI_DEBUG("vd->type:[%d]", vd->type); + + vcall_engine_process_voice_mute(EINA_TRUE); + + ad->mute_status = EINA_TRUE; + if (vd->type == VIEW_QUICKPANEL_VIEW) { + _vcui_view_common_update_mute_btn(); + } else { + _vcui_create_bottom_middle_button(vd); + } + _vcui_create_quickpanel_mute_button(vd); + +} + +static void __vcui_mute_press_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + vcui_app_call_data_t *ad = vd->app_data; + + CALL_UI_DEBUG("vd->type:[%d]", vd->type); + + vcall_engine_process_voice_mute(EINA_FALSE); + + ad->mute_status = EINA_FALSE; + + if (vd->type == VIEW_QUICKPANEL_VIEW) { + _vcui_view_common_update_mute_btn(); + } else { + _vcui_create_bottom_middle_button(vd); + } + _vcui_create_quickpanel_mute_button(vd); + +} + +static void __vcui_bigend_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG(".."); + + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + vcui_app_call_data_t *ad = vd->app_data; + CALL_UI_DEBUG("vd->type:[%d]", vd->type); + + switch (vd->type) { + case VIEW_DIALLING_VIEW: + { + vcall_engine_cancel_call(); + } + break; + case VIEW_INCALL_ONECALL_VIEW: + { + vcall_engine_release_call(); + } + break; + case VIEW_INCALL_MULTICALL_SPLIT_VIEW: + { + vcall_engine_release_call_by_type(VCALL_ENGINE_RELEASE_ALL_ACTIVE_CALLS); + } + break; + case VIEW_INCALL_MULTICALL_CONF_VIEW: + { + int call_status = -1; + call_status = _vcui_view_multi_call_conf_get_call_status(vd); + if (call_status == CALL_HOLD) + vcall_engine_release_call_by_type(VCALL_ENGINE_RELEASE_ALL_HELD_CALLS); + else if (call_status == CALL_UNHOLD) + vcall_engine_release_call_by_type(VCALL_ENGINE_RELEASE_ALL_ACTIVE_CALLS); + ad->call_end_type = CALL_END_TYPE_CONF_CALL; + } + break; + case VIEW_INCALL_MULTICALL_LIST_VIEW: + { + int call_status = -1; + call_status = _vcui_view_multi_call_list_get_call_status(vd); + if (call_status == CALL_HOLD) + vcall_engine_release_call_by_type(VCALL_ENGINE_RELEASE_ALL_HELD_CALLS); + else if (call_status == CALL_UNHOLD) + vcall_engine_release_call_by_type(VCALL_ENGINE_RELEASE_ALL_ACTIVE_CALLS); + int grp_count = 0; + vcall_engine_get_group_count(&grp_count); + CALL_UI_DEBUG("No. of groups - %d", grp_count); + if (grp_count == 1) + ad->call_end_type = CALL_END_TYPE_CONF_CALL; + else + ad->call_end_type = CALL_END_TYPE_NONE; + } + break; + default: + CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); + return; + break; + + } +} + +Evas_Object *__vcui_create_button_style(void *data, Evas_Object **p_button, char *part_name) +{ + Evas_Object *layout; + Evas_Object *sw; + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + + switch (vd->type) { + case VIEW_DIALLING_VIEW: + { + layout = _vc_ui_view_dialing_get_button_layout(vd); + } + break; + case VIEW_INCALL_ONECALL_VIEW: + { + layout = _vc_ui_view_single_call_get_button_layout(vd); + } + break; + case VIEW_INCALL_MULTICALL_SPLIT_VIEW: + { + layout = _vcui_view_multi_call_split_get_button_layout(vd); + } + break; + case VIEW_INCALL_MULTICALL_CONF_VIEW: + { + layout = _vcui_view_multi_call_conf_get_button_layout(vd); + } + break; + case VIEW_ENDCALL_VIEW: + { + layout = _vc_ui_view_callend_get_button_layout(vd); + } + break; + default: + CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); + return NULL; + break; + + } + + sw = edje_object_part_swallow_get(_EDJ(layout), part_name); + if (sw) { + edje_object_part_unswallow(_EDJ(layout), sw); + evas_object_del(sw); + } + + *p_button = elm_button_add(layout); + elm_object_part_content_set(layout, part_name, *p_button); + + return layout; +} + +/* Add-Call/Join button ENABLED*/ +Evas_Object *_vcui_create_top_left_button(void *data) +{ + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + vcui_app_call_data_t *ad = vd->app_data; + Evas_Object *btn; + Evas_Object *layout; + Eina_Bool bjoin = EINA_FALSE; + + if (vd->type == VIEW_INCALL_MULTICALL_SPLIT_VIEW) + bjoin = EINA_TRUE; + + layout = __vcui_create_button_style(data, &btn, "top_left_button"); + { + if (bjoin) { + CALL_UI_KPI("elm_object_style_set start :: style_call_sixbtn_join"); + elm_object_style_set(btn, "style_call_sixbtn_join"); + CALL_UI_KPI("elm_object_style_set done :: style_call_sixbtn_join"); + elm_object_text_set(btn, _("IDS_CALL_BUTTON_JOIN")); + evas_object_smart_callback_add(btn, "clicked", __vcui_join_btn_cb, vd); + } else { + CALL_UI_KPI("elm_object_style_set start :: style_call_sixbtn_add"); + elm_object_style_set(btn, "style_call_sixbtn_add"); + CALL_UI_KPI("elm_object_style_set done :: style_call_sixbtn_add"); + elm_object_text_set(btn, _("IDS_CALL_BUTTON_ADD_CALL")); + evas_object_smart_callback_add(btn, "clicked", __vcui_addcall_btn_cb, data); + } + } + return btn; +} + +/* Add-Call/Join Button DISABLED */ +Evas_Object *_vcui_create_top_left_button_disabled(void *data) +{ + CALL_UI_KPI("_vcui_create_top_left_button_disabled start"); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + Evas_Object *btn; + Evas_Object *layout; + Eina_Bool bjoin = EINA_FALSE; + + if (vd->type == VIEW_INCALL_MULTICALL_SPLIT_VIEW) + bjoin = EINA_TRUE; + + layout = __vcui_create_button_style(data, &btn, "top_left_button"); + { + if (bjoin) { + CALL_UI_KPI("elm_object_style_set start :: style_call_sixbtn_disabled_join"); + elm_object_style_set(btn, "style_call_sixbtn_disabled_join"); + CALL_UI_KPI("elm_object_style_set done :: style_call_sixbtn_disabled_join"); + elm_object_text_set(btn, _("IDS_CALL_BUTTON_JOIN")); + } else { + CALL_UI_KPI("elm_object_style_set start :: style_call_sixbtn_disabled_add"); + elm_object_style_set(btn, "style_call_sixbtn_disabled_add"); + CALL_UI_KPI("elm_object_style_set done :: style_call_sixbtn_disabled_add"); + elm_object_text_set(btn, _("IDS_CALL_BUTTON_ADD_CALL")); + } + } + + CALL_UI_KPI("_vcui_create_top_left_button_disabled done"); + + return btn; +} + +/* Keypad Button ENABLED */ +Evas_Object *_vcui_create_top_middle_button(void *data) +{ + Evas_Object *btn; + Evas_Object *layout; + Evas_Object *view_ly = NULL; + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + + layout = __vcui_create_button_style(data, &btn, "top_middle_button"); + CALL_UI_KPI("elm_object_style_set start :: style_call_sixbtn_keypad"); + elm_object_style_set(btn, "style_call_sixbtn_keypad"); + CALL_UI_KPI("elm_object_style_set done :: style_call_sixbtn_keypad"); + + switch (vd->type) { + case VIEW_DIALLING_VIEW: + { + view_ly = _vc_ui_view_dialing_get_layout(vd); + } + break; + case VIEW_INCALL_ONECALL_VIEW: + { + view_ly = _vc_ui_view_single_call_get_layout(vd); + } + break; + case VIEW_INCALL_MULTICALL_SPLIT_VIEW: + { + view_ly = _vcui_view_multi_call_split_get_layout(vd); + } + break; + case VIEW_INCALL_MULTICALL_CONF_VIEW: + { + view_ly = _vcui_view_multi_call_conf_get_main_layout(vd); + } + break; + default: + CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); + return NULL; + break; + } + + /*Create keypad layout*/ + _vcui_keypad_create_layout(vd, view_ly); + if (_vcui_keypad_get_show_status() == EINA_FALSE) { + elm_object_text_set(btn, _("IDS_CALL_SK3_KEYPAD")); + } else { + elm_object_text_set(btn, dgettext("sys_string", "IDS_COM_SK_HIDE")); + } + evas_object_smart_callback_add(btn, "clicked", __vcui_keypad_btn_cb, data); + + return btn; +} + +/* Keypad Button DISABLED */ +Evas_Object *_vcui_create_top_middle_button_disabled(void *data) +{ + CALL_UI_KPI("_vcui_create_top_middle_button_disabled start"); + Evas_Object *btn; + Evas_Object *layout; + + layout = __vcui_create_button_style(data, &btn, "top_middle_button"); + CALL_UI_KPI("elm_object_style_set start :: style_call_sixbtn_disabled_keypad"); + elm_object_style_set(btn, "style_call_sixbtn_disabled_keypad"); + CALL_UI_KPI("elm_object_style_set done :: style_call_sixbtn_disabled_keypad"); + elm_object_text_set(btn, _("IDS_CALL_SK3_KEYPAD")); + CALL_UI_KPI("_vcui_create_top_middle_button_disabled done"); + + return btn; +} + +/* End Call Button ENABLED */ +Evas_Object *_vcui_create_top_right_button(void *data) +{ + Evas_Object *btn; + Evas_Object *layout; + + layout = __vcui_create_button_style(data, &btn, "top_right_button"); + elm_object_style_set(btn, "style_call_sixbtn_end"); + elm_object_text_set(btn, _("IDS_CALL_SK3_END_CALL")); + evas_object_smart_callback_add(btn, "clicked", __vcui_bigend_btn_cb, data); + + return btn; +} + +/* End Call Button DISABLED */ +Evas_Object *_vcui_create_top_right_button_disabled(void *data) +{ + Evas_Object *btn; + Evas_Object *layout; + + layout = __vcui_create_button_style(data, &btn, "top_right_button"); + elm_object_style_set(btn, "style_call_sixbtn_disabled_end"); + elm_object_text_set(btn, _("IDS_CALL_SK3_END_CALL")); + + return btn; +} + +/* Speaker Button ENABLED */ +Evas_Object *_vcui_create_bottom_left_button(void *data) +{ + CALL_UI_KPI("_vcui_create_bottom_left_button start"); + Evas_Object *btn; + Evas_Object *layout; + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + vcui_app_call_data_t *ad = vd->app_data; + + layout = __vcui_create_button_style(data, &btn, "bottom_left_button"); + if (EINA_TRUE == _vcui_is_headset_conected()) { + elm_object_style_set(btn, "style_call_sixbtn_speaker"); + elm_object_text_set(btn, _("IDS_CALL_BUTTON_SOUND_ABB")); + evas_object_smart_callback_add(btn, "clicked", __vcui_sound_path_btn_cb, vd); + } else { + elm_object_text_set(btn, _("IDS_CALL_BUTTON_SPEAKER")); + if (ad->speaker_status == EINA_FALSE) { + elm_object_style_set(btn, "style_call_sixbtn_speaker"); + evas_object_smart_callback_add(btn, "clicked", __vcui_spk_btn_cb, vd); + } else { + elm_object_style_set(btn, "style_call_sixbtn_speaker_on"); + evas_object_smart_callback_add(btn, "clicked", __vcui_spk_press_btn_cb, vd); + } + } + CALL_UI_KPI("_vcui_create_bottom_left_button done"); + + return btn; +} + +/* Speaker Button DISABLED */ +Evas_Object *_vcui_create_bottom_left_button_disabled(void *data) +{ + CALL_UI_KPI("_vcui_create_bottom_left_button_disabled start"); + Evas_Object *btn; + Evas_Object *layout; + + layout = __vcui_create_button_style(data, &btn, "bottom_left_button"); + CALL_UI_KPI("elm_object_style_set start :: style_call_sixbtn_disabled_speaker"); + elm_object_style_set(btn, "style_call_sixbtn_disabled_speaker"); + CALL_UI_KPI("elm_object_style_set done :: style_call_sixbtn_disabled_speaker"); + elm_object_text_set(btn, _("IDS_CALL_BUTTON_SPEAKER")); + CALL_UI_KPI("_vcui_create_bottom_left_button_disabled done"); + + return btn; +} + +/* Mute Button ENABLED */ +Evas_Object *_vcui_create_bottom_middle_button(void *data) +{ + Evas_Object *btn; + Evas_Object *layout; + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + vcui_app_call_data_t *ad = vd->app_data; + + layout = __vcui_create_button_style(data, &btn, "bottom_middle_button"); + elm_object_text_set(btn, _("IDS_CALL_BUTTON_MUTE_ABB")); + if (ad->mute_status == EINA_FALSE) { + elm_object_style_set(btn, "style_call_sixbtn_mute"); + evas_object_smart_callback_add(btn, "clicked", __vcui_mute_btn_cb, vd); + } else { + elm_object_style_set(btn, "style_call_sixbtn_mute_on"); + evas_object_smart_callback_add(btn, "clicked", __vcui_mute_press_btn_cb, vd); + } + + return btn; +} + +/* Mute Button DISABLED */ +Evas_Object *_vcui_create_bottom_middle_button_disabled(void *data) +{ + CALL_UI_KPI("_vcui_create_bottom_middle_button_disabled start"); + Evas_Object *btn; + Evas_Object *layout; + + layout = __vcui_create_button_style(data, &btn, "bottom_middle_button"); + CALL_UI_KPI("elm_object_style_set start :: style_call_sixbtn_disabled_mute"); + elm_object_style_set(btn, "style_call_sixbtn_disabled_mute"); + CALL_UI_KPI("elm_object_style_set done :: style_call_sixbtn_disabled_mute"); + elm_object_text_set(btn, _("IDS_CALL_BUTTON_MUTE_ABB")); + CALL_UI_KPI("_vcui_create_bottom_middle_button_disabled done"); + + return btn; +} + +/* Share/Contacts Button ENABLED */ +Evas_Object *_vcui_create_bottom_right_button(void *data) +{ + Evas_Object *btn; + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + vcui_app_call_data_t *ad = vd->app_data; + + __vcui_create_button_style(data, &btn, "bottom_right_button"); + + { + CALL_UI_KPI("elm_object_style_set start :: style_call_sixbtn_contacts"); + elm_object_style_set(btn, "style_call_sixbtn_contacts"); + CALL_UI_KPI("elm_object_style_set done :: style_call_sixbtn_contacts"); + elm_object_text_set(btn, _("IDS_CALL_BUTTON_CONTACTS")); + evas_object_smart_callback_add(btn, "clicked", __vcui_contacts_btn_cb, vd); + } + + return btn; +} + +/* Share/Contacts Button DISABLED */ +Evas_Object *_vcui_create_bottom_right_button_disabled(void *data) +{ + CALL_UI_KPI("_vcui_create_bottom_right_button_disabled start"); + Evas_Object *btn; + + __vcui_create_button_style(data, &btn, "bottom_right_button"); + CALL_UI_KPI("elm_object_style_set start :: style_call_sixbtn_disabled"); + CALL_UI_KPI("elm_object_style_set done :: style_call_sixbtn_disabled"); + + { + CALL_UI_KPI("elm_object_style_set start :: style_call_sixbtn_disabled_contacts"); + elm_object_style_set(btn, "style_call_sixbtn_disabled_contacts"); + CALL_UI_KPI("elm_object_style_set done :: style_call_sixbtn_disabled_contacts"); + elm_object_text_set(btn, _("IDS_CALL_BUTTON_CONTACTS")); + } + + CALL_UI_KPI("_vcui_create_bottom_right_button_disabled done"); + + return btn; +} + +Evas_Object *_vcui_create_hold_swap_button(void *data) +{ + Evas_Object *btn; + Evas_Object *ic; + Evas_Object *layout; + Evas_Object *sw; + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + int call_status = 0; + Eina_Bool bswap_button = EINA_FALSE; + Eina_Bool bhold_button = EINA_FALSE; + + switch (vd->type) { + case VIEW_INCALL_ONECALL_VIEW: + { + layout = _vc_ui_view_single_call_get_layout(vd); + call_status = _vc_ui_view_single_call_get_call_status(vd); + bhold_button = EINA_TRUE; + } + break; + case VIEW_INCALL_MULTICALL_CONF_VIEW: + { + layout = _vcui_view_multi_call_conf_get_main_layout(vd); + call_status = _vcui_view_multi_call_conf_get_call_status(vd); + bhold_button = EINA_TRUE; + } + break; + case VIEW_INCALL_MULTICALL_SPLIT_VIEW: + { + layout = _vcui_view_multi_call_split_get_layout(vd); + bswap_button = EINA_TRUE; + } + break; + default: + CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); + return NULL; + break; + } + CALL_UI_DEBUG("vd type:[%d], call_status:[%d]", vd->type, call_status); + + sw = edje_object_part_swallow_get(_EDJ(layout), "btn_hold_swap"); + if (sw) { + edje_object_part_unswallow(_EDJ(layout), sw); + evas_object_del(sw); + } + + btn = elm_button_add(layout); + elm_object_part_content_set(layout, "btn_hold_swap", btn); + ic = elm_image_add(layout); + evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); + elm_icon_resizable_set(ic, 1, 1); + elm_object_content_set(btn, ic); + + if (bhold_button) { + elm_object_style_set(btn, "style_normal_holdbtn"); + if (call_status == CALL_UNHOLD) { + elm_image_file_set(ic, HOLD_ICON, NULL); + edje_object_part_text_set(_EDJ(layout), "txt_hold_swap", _("IDS_CALL_BUTTON_HOLD")); + evas_object_smart_callback_add(btn, "clicked", __vcui_hold_btn_cb, vd); + } else { /* CALL_HOLD */ + elm_image_file_set(ic, UNHOLD_ICON, NULL); + edje_object_part_text_set(_EDJ(layout), "txt_hold_swap", _("IDS_CALL_BUTTON_UNHOLD")); + evas_object_smart_callback_add(btn, "clicked", __vcui_unhold_btn_cb, vd); + } + } else if (bswap_button) { + elm_object_style_set(btn, "style_normal_swapbtn"); + elm_image_file_set(ic, SWAP_ICON, NULL); + edje_object_part_text_set(_EDJ(layout), "txt_hold_swap", _("Swap")); + evas_object_smart_callback_add(btn, "clicked", _vcui_swap_btn_cb, vd); + } + + return layout; +} + +Evas_Object *_vcui_create_button_bigend(void *data) +{ + CALL_UI_KPI("_vcui_create_button_bigend start"); + Evas_Object *btn; + Evas_Object *layout; + Evas_Object *sw; + + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + switch (vd->type) { + case VIEW_DIALLING_VIEW: + { + layout = _vc_ui_view_dialing_get_layout(vd); + } + break; + case VIEW_INCALL_ONECALL_VIEW: + { + layout = _vc_ui_view_single_call_get_layout(vd); + } + break; + case VIEW_INCALL_MULTICALL_SPLIT_VIEW: + { + layout = _vcui_view_multi_call_split_get_layout(vd); + } + break; + case VIEW_INCALL_MULTICALL_CONF_VIEW: + { + layout = _vcui_view_multi_call_conf_get_main_layout(vd); + } + break; + case VIEW_INCALL_MULTICALL_LIST_VIEW: + { + layout = _vcui_view_multi_call_list_get_main_layout(vd); + } + break; + default: + CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); + return NULL; + break; + + } + + sw = edje_object_part_swallow_get(_EDJ(layout), "btn_bigend"); + if (sw) { + edje_object_part_unswallow(_EDJ(layout), sw); + evas_object_del(sw); + } + + btn = elm_button_add(layout); + elm_object_part_content_set(layout, "btn_bigend", btn); + CALL_UI_KPI("elm_object_style_set start :: style_call_text_only_red"); + elm_object_style_set(btn, "style_call_text_only_red"); + CALL_UI_KPI("elm_object_style_set done :: style_call_text_only_red"); + elm_object_text_set(btn, _("IDS_CALL_OPT_END_ALL_CALLS")); + evas_object_smart_callback_add(btn, "clicked", __vcui_bigend_btn_cb, vd); + CALL_UI_KPI("_vcui_create_button_bigend done"); + return layout; +} + +Evas_Object *_vcui_create_button_bigend_disabled(void *data) +{ + CALL_UI_KPI("_vcui_create_button_bigend_disabled start"); + Evas_Object *btn; + Evas_Object *layout; + Evas_Object *sw; + + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + switch (vd->type) { + case VIEW_DIALLING_VIEW: + { + layout = _vc_ui_view_dialing_get_layout(vd); + } + break; + case VIEW_INCALL_ONECALL_VIEW: + { + layout = _vc_ui_view_single_call_get_layout(vd); + } + break; + case VIEW_INCALL_MULTICALL_SPLIT_VIEW: + { + layout = _vcui_view_multi_call_split_get_layout(vd); + } + break; + case VIEW_INCALL_MULTICALL_CONF_VIEW: + { + layout = _vcui_view_multi_call_conf_get_main_layout(vd); + } + break; + case VIEW_ENDCALL_VIEW: + { + layout = _vc_ui_view_callend_get_layout(vd); + } + break; + default: + CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); + return NULL; + break; + + } + + sw = edje_object_part_swallow_get(_EDJ(layout), "btn_bigend"); + if (sw) { + edje_object_part_unswallow(_EDJ(layout), sw); + evas_object_del(sw); + } + + btn = elm_button_add(layout); + elm_object_part_content_set(layout, "btn_bigend", btn); + CALL_UI_KPI("elm_object_style_set start :: style_call_text_only_red_disabled"); + elm_object_style_set(btn, "style_call_text_only_red_disabled"); + CALL_UI_KPI("elm_object_style_set done :: style_call_text_only_red_disabled"); + elm_object_text_set(btn, _("IDS_CALL_SK3_END_CALL")); + CALL_UI_KPI("_vcui_create_button_bigend_disabled done"); + return layout; +} + +Evas_Object *_vcui_create_conf_list_button_hold(void *data) +{ + Evas_Object *btn; + Evas_Object *ic; + Evas_Object *layout; + Evas_Object *sw; + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + + int call_status = 0; + switch (vd->type) { + case VIEW_INCALL_MULTICALL_CONF_VIEW: + { + layout = _vcui_view_multi_call_conf_get_main_layout(vd); + call_status = _vcui_doc_get_group_call_status(); + } + break; + case VIEW_INCALL_MULTICALL_LIST_VIEW: + { + layout = _vcui_view_multi_call_list_get_main_layout(vd); + call_status = _vcui_doc_get_group_call_status(); + } + break; + default: + CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); + return NULL; + break; + + } + CALL_UI_DEBUG("vd type:[%d], call_status:[%d]", vd->type, call_status); + + sw = edje_object_part_swallow_get(_EDJ(layout), "btn_hold"); + if (sw) { + edje_object_part_unswallow(_EDJ(layout), sw); + evas_object_del(sw); + } + + btn = elm_button_add(layout); + CALL_UI_KPI("elm_object_style_set start :: style_list_holdbtn"); + elm_object_style_set(btn, "style_list_holdbtn"); + CALL_UI_KPI("elm_object_style_set done :: style_list_holdbtn"); + elm_object_part_content_set(layout, "btn_hold", btn); + ic = elm_image_add(layout); + evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); + elm_icon_resizable_set(ic, 1, 1); + elm_object_content_set(btn, ic); + + if (call_status == CALL_UNHOLD) { + elm_image_file_set(ic, HOLD_ICON, NULL); + elm_object_text_set(btn, _("IDS_CALL_BUTTON_HOLD")); + + evas_object_smart_callback_add(btn, "clicked", __vcui_hold_btn_cb, vd); + } else { /* CALL_HOLD */ + elm_image_file_set(ic, UNHOLD_ICON, NULL); + elm_object_text_set(btn, _("IDS_CALL_BUTTON_UNHOLD")); + + evas_object_smart_callback_add(btn, "clicked", __vcui_unhold_btn_cb, vd); + } + + return layout; +} + +Evas_Object *_vcui_show_wallpaper_image(Evas_Object *contents) +{ + Evas_Object *d_image = NULL; + return d_image; +} + +void _vcui_delete_contact_image(Evas_Object *contents) +{ + Evas_Object *sw; + + sw = edje_object_part_swallow_get(_EDJ(contents), "swl_cid"); + if (sw) { + edje_object_part_unswallow(_EDJ(contents), sw); + evas_object_del(sw); + } +} + +Evas_Object *_vcui_show_contact_image(Evas_Object *contents, Evas_Object *win_main, char *path) +{ + Evas_Object *sw; + Evas_Object *ic; + + sw = edje_object_part_swallow_get(_EDJ(contents), "swl_cid"); + if (sw) { + edje_object_part_unswallow(_EDJ(contents), sw); + evas_object_del(sw); + } + + ic = elm_image_add(win_main); + elm_object_part_content_set(contents, "swl_cid", ic); + elm_image_file_set(ic, path, NULL); + + return ic; +} + +Evas_Object *_vcui_show_default_image(Evas_Object *contents, Evas_Object *win_main, char *path) +{ + Evas_Object *sw; + Evas_Object *ic; + + sw = edje_object_part_swallow_get(_EDJ(contents), "swl_cid"); + if (sw) { + edje_object_part_unswallow(_EDJ(contents), sw); + evas_object_del(sw); + } + + ic = elm_image_add(win_main); + elm_object_part_content_set(contents, "swl_cid", ic); + elm_image_file_set(ic, path, NULL); + + return ic; +} + +static void __vcui_more_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG("__vcui_more_btn_cb.."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + vcui_app_call_data_t *ad = vd->app_data; + + _vcui_view_popup_load_more_option(data); +} + +static void __vcui_videocall_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG("__vcui_videocall_btn_cb.."); + char *tel_num = (char *)data; + + bundle *kb; + kb = bundle_create(); + bundle_add(kb, "KEY_CALL_TYPE", "MO"); + bundle_add(kb, "number", tel_num); + aul_launch_app("org.tizen.vtmain", kb); + bundle_free(kb); + + free(tel_num); + tel_num = NULL; + + _vcui_view_common_call_end_timer_reset(); + evas_object_smart_callback_del(obj, "clicked", __vcui_videocall_btn_cb); +} + +static void __vcui_voicecall_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG("__vcui_voicecall_btn_cb.."); + vcui_app_call_data_t *ad = _vcui_get_app_data(); + char *tel_num = (char *)data; + vcui_call_mo_data_t call_data; + + _vcui_view_common_timer_redial_reset(); + ad->speaker_status = EINA_FALSE; + ad->mute_status = EINA_FALSE; + ad->wbamr_status = EINA_FALSE; + + memset(&call_data, 0, sizeof(call_data)); + + snprintf(call_data.call_number, sizeof(call_data.call_number), "%s", tel_num); + call_data.ct_index = -1; + + vcall_engine_process_normal_call(call_data.call_number, call_data.ct_index, EINA_FALSE); + + free(tel_num); + tel_num = NULL; + + evas_object_smart_callback_del(obj, "clicked", __vcui_voicecall_btn_cb); +} + +static void __vcui_msg_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG("__vcui_msg_btn_cb.."); + char *tel_num = (char *)data; + + _vcui_doc_launch_msg_composer(NULL, tel_num); + + free(tel_num); + tel_num = NULL; + + _vcui_view_common_call_end_timer_reset(); + evas_object_smart_callback_del(obj, "clicked", __vcui_msg_btn_cb); +} + +static void __vcui_add_to_contacts_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + vcui_app_call_data_t *ad = _vcui_get_app_data(); + voice_call_view_data_t *vd = ad->view_st[VIEW_ENDCALL_VIEW]; + char *tel_num = (char *)data; + + _vcui_doc_launch_add_to_contacts_ug(NULL, NULL, vd->layout, NULL, NULL, NULL, &(vd->app_data->ugs_array_data), tel_num); + + free(tel_num); + tel_num = NULL; + + evas_object_smart_callback_del(obj, "clicked", __vcui_add_to_contacts_btn_cb); +} + +static void __vcui_view_contact_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + vcui_app_call_data_t *ad = _vcui_get_app_data(); + voice_call_view_data_t *vd = ad->view_st[VIEW_ENDCALL_VIEW]; + + _vcui_doc_launch_view_contact_ug(NULL, NULL, vd->layout, NULL, NULL, NULL, &(vd->app_data->ugs_array_data), data); + + evas_object_smart_callback_del(obj, "clicked", __vcui_view_contact_btn_cb); +} + +Evas_Object *_vcui_create_videocall_button(void *data, char *number) +{ + Evas_Object *btn; + Evas_Object *layout; + Evas_Object *sw; + voice_call_view_data_t *vd = NULL; + char *tel_number = NULL; + + VCUI_RETURN_NULL_IF_FAIL((vd = (voice_call_view_data_t *)data) != NULL); + layout = _vc_ui_view_callend_get_layout(vd); + + tel_number = strdup(number); + + sw = edje_object_part_swallow_get(_EDJ(layout), "btn_videocall"); + if (sw) { + edje_object_part_unswallow(_EDJ(layout), sw); + evas_object_del(sw); + } + + btn = elm_button_add(layout); + elm_object_part_content_set(layout, "btn_videocall", btn); + elm_object_style_set(btn, "style_call_end_video_call_button"); + + elm_object_text_set(btn, dgettext("sys_string", "IDS_COM_BODY_VIDEO_CALL")); + evas_object_smart_callback_add(btn, "clicked", __vcui_videocall_btn_cb, tel_number); + + return layout; +} + +Evas_Object *_vcui_create_voicecall_button(void *data, char *number) +{ + Evas_Object *btn; + Evas_Object *layout; + Evas_Object *sw; + voice_call_view_data_t *vd = NULL; + char *tel_number = NULL; + + VCUI_RETURN_NULL_IF_FAIL((vd = (voice_call_view_data_t *)data) != NULL); + layout = _vc_ui_view_callend_get_layout(vd); + + tel_number = strdup(number); + + sw = edje_object_part_swallow_get(_EDJ(layout), "btn_voicecall"); + if (sw) { + edje_object_part_unswallow(_EDJ(layout), sw); + evas_object_del(sw); + } + + btn = elm_button_add(layout); + elm_object_part_content_set(layout, "btn_voicecall", btn); + elm_object_style_set(btn, "style_call_end_voice_call_button"); + + elm_object_text_set(btn, dgettext("sys_string", "IDS_COM_BODY_VOICE_CALL")); + evas_object_smart_callback_add(btn, "clicked", __vcui_voicecall_btn_cb, tel_number); + + return layout; +} + +Evas_Object *_vcui_create_message_button(void *data, char *number) +{ + Evas_Object *btn; + Evas_Object *layout; + Evas_Object *sw; + voice_call_view_data_t *vd = NULL; + char *tel_number = NULL; + + VCUI_RETURN_NULL_IF_FAIL((vd = (voice_call_view_data_t *)data) != NULL); + layout = _vc_ui_view_callend_get_layout(vd); + + tel_number = strdup(number); + + sw = edje_object_part_swallow_get(_EDJ(layout), "btn_message"); + if (sw) { + edje_object_part_unswallow(_EDJ(layout), sw); + evas_object_del(sw); + } + + btn = elm_button_add(layout); + elm_object_part_content_set(layout, "btn_message", btn); + elm_object_style_set(btn, "style_call_end_message_button"); + + elm_object_text_set(btn, dgettext("sys_string", "IDS_COM_BODY_MESSAGE")); + evas_object_smart_callback_add(btn, "clicked", __vcui_msg_btn_cb, tel_number); + + return layout; +} + +Evas_Object *_vcui_create_add_to_contacts_button(void *data, char *number) +{ + Evas_Object *btn; + Evas_Object *layout; + Evas_Object *sw; + char *tel_number = strdup(number); + + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + switch (vd->type) { + case VIEW_ENDCALL_VIEW: + { + layout = _vc_ui_view_callend_get_layout(vd); + } + break; + default: + CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); + if (tel_number != NULL) { + free(tel_number); + tel_number = NULL; + } + return NULL; + break; + + } + + sw = edje_object_part_swallow_get(_EDJ(layout), "btn_contacts"); + if (sw) { + edje_object_part_unswallow(_EDJ(layout), sw); + evas_object_del(sw); + } + + btn = elm_button_add(layout); + elm_object_part_content_set(layout, "btn_contacts", btn); + elm_object_style_set(btn, "style_call_text_only_grey"); + elm_object_text_set(btn, dgettext("sys_string", "IDS_COM_OPT_ADD_TO_CONTACTS")); + evas_object_smart_callback_add(btn, "clicked", __vcui_add_to_contacts_btn_cb, tel_number); + + return layout; +} + +Evas_Object *_vcui_create_view_contact_button(void *data, int ct_id) +{ + Evas_Object *btn; + Evas_Object *layout; + Evas_Object *sw; + + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + switch (vd->type) { + case VIEW_ENDCALL_VIEW: + { + layout = _vc_ui_view_callend_get_layout(vd); + } + break; + default: + CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); + return NULL; + break; + + } + + sw = edje_object_part_swallow_get(_EDJ(layout), "btn_contacts"); + if (sw) { + edje_object_part_unswallow(_EDJ(layout), sw); + evas_object_del(sw); + } + + btn = elm_button_add(layout); + elm_object_part_content_set(layout, "btn_contacts", btn); + elm_object_style_set(btn, "style_call_text_only_grey"); + elm_object_text_set(btn, _("IDS_CALL_BUTTON_VIEW_CONTACT")); + evas_object_smart_callback_add(btn, "clicked", __vcui_view_contact_btn_cb, (void *)ct_id); + + return layout; +} + +static void __qp_end_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + vcui_app_call_data_t *ad = vd->app_data; + int grp_count = 0; + + vcall_engine_get_group_count(&grp_count); + CALL_UI_DEBUG("No. of groups - %d", grp_count); + + if (grp_count > 1) { + CALL_UI_DEBUG("multi-party call"); + vcall_engine_release_call_by_type(VCALL_ENGINE_RELEASE_ALL_ACTIVE_CALLS); + } else if (grp_count == 1) { + CALL_UI_DEBUG("single-party call"); + int all_calls = 0, call_status = 0; + all_calls = _vcui_doc_get_all_call_data_count(); + call_status = _vcui_doc_get_group_call_status(); + CALL_UI_DEBUG("all_calls[%d], call_status[%d]", all_calls, call_status); + + if (all_calls > 1) { + CALL_UI_DEBUG("End active conference call"); + if (call_status == CALL_HOLD) + vcall_engine_release_call_by_type(VCALL_ENGINE_RELEASE_ALL_HELD_CALLS); + else + vcall_engine_release_call_by_type(VCALL_ENGINE_RELEASE_ALL_ACTIVE_CALLS); + ad->call_end_type = CALL_END_TYPE_CONF_CALL; /*conf call end screen SHOW */ + } else if (all_calls == 1) { + CALL_UI_DEBUG("End single active call"); + vcall_engine_release_call(); + } else { + CALL_UI_DEBUG("invalid case"); + } + } else { + CALL_UI_DEBUG("dialing/connecting screen end"); + vcall_engine_cancel_call(); + } +} + +Evas_Object *_vcui_create_quickpanel_mute_button(void *data) +{ + CALL_UI_DEBUG(".."); + Evas_Object *btn, *layout, *sw; + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + vcui_app_call_data_t *ad = vd->app_data; + CALL_UI_DEBUG("vd->type: %d", vd->type); + + layout = ad->quickpanel_layout; + VCUI_RETURN_NULL_IF_FAIL(layout); + + sw = edje_object_part_swallow_get(_EDJ(layout), "btn_left"); + if (sw) { + edje_object_part_unswallow(_EDJ(layout), sw); + evas_object_del(sw); + } + + btn = elm_button_add(layout); + + elm_object_part_content_set(layout, "btn_left", btn); + elm_object_text_set(btn, _("IDS_CALL_BUTTON_MUTE_ABB")); + + if (ad->mute_status == EINA_FALSE) { + elm_object_style_set(btn, "style_call_qp_text_only_normal"); + evas_object_smart_callback_add(btn, "clicked", __vcui_mute_btn_cb, vd); + } else { + Evas_Object *ic = elm_image_add(layout); + elm_image_file_set(ic, QP_MUTE_ICON, NULL); + elm_object_content_set(btn, ic); + + elm_object_style_set(btn, "style_call_small_text_with_icon"); + evas_object_smart_callback_add(btn, "clicked", __vcui_mute_press_btn_cb, vd); + } + + return layout; +} + +Evas_Object *_vcui_create_quickpanel_unhold_button(void *data) +{ + CALL_UI_DEBUG(".."); + Evas_Object *btn, *layout, *sw; + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + vcui_app_call_data_t *ad = vd->app_data; + CALL_UI_DEBUG("vd->type: %d", vd->type); + + layout = ad->quickpanel_layout; + VCUI_RETURN_NULL_IF_FAIL(layout); + + sw = edje_object_part_swallow_get(_EDJ(layout), "btn_left"); + if (sw) { + edje_object_part_unswallow(_EDJ(layout), sw); + evas_object_del(sw); + } + + btn = elm_button_add(layout); + elm_object_part_content_set(layout, "btn_left", btn); + elm_object_style_set(btn, "style_call_qp_text_only_normal"); + + elm_object_text_set(btn, _("IDS_CALL_BUTTON_UNHOLD")); + evas_object_smart_callback_add(btn, "clicked", __vcui_hold_btn_cb, vd); + + return layout; +} + +Evas_Object *_vcui_create_quickpanel_end_button(void *data) +{ + CALL_UI_DEBUG(".."); + Evas_Object *btn, *layout, *sw; + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + vcui_app_call_data_t *ad = vd->app_data; + CALL_UI_DEBUG("vd->type: %d", vd->type); + + switch (vd->type) { + case VIEW_QUICKPANEL_VIEW: + { + layout = ad->quickpanel_layout; + } + break; + + default: + CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); + return NULL; + break; + + } + + sw = edje_object_part_swallow_get(_EDJ(layout), "btn_right"); + if (sw) { + edje_object_part_unswallow(_EDJ(layout), sw); + evas_object_del(sw); + } + + btn = elm_button_add(layout); + elm_object_part_content_set(layout, "btn_right", btn); + elm_object_style_set(btn, "style_call_qp_text_only_end"); + elm_object_text_set(btn, _("IDS_CALL_SK3_END_CALL")); + evas_object_smart_callback_add(btn, "clicked", __qp_end_btn_cb, vd); + + return layout; +} + +static Evas_Object *__vcui_create_caller_info(void *data, Eina_Bool bhold) +{ + Evas_Object *caller_info = NULL; + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + + switch (vd->type) { + case VIEW_DIALLING_VIEW: + { + caller_info = _vc_ui_view_dialing_get_caller_info(vd); + } + break; + case VIEW_INCOMING_LOCK_VIEW: + { + caller_info = _vc_ui_view_incoming_lock_get_caller_info(vd); + } + break; + case VIEW_INCALL_ONECALL_VIEW: + { + caller_info = _vc_ui_view_single_call_get_caller_info(vd); + } + break; + case VIEW_INCALL_MULTICALL_CONF_VIEW: + { + caller_info = _vc_ui_view_multi_call_conf_get_caller_info(vd); + } + break; + case VIEW_INCALL_MULTICALL_SPLIT_VIEW: + { + if (bhold == EINA_TRUE) { + caller_info = _vc_ui_view_multi_call_split_get_caller_info_hold(vd); + } else { + caller_info = _vc_ui_view_multi_call_split_get_caller_info_unhold(vd); + } + } + break; + case VIEW_ENDCALL_VIEW: + { + caller_info = _vc_ui_view_callend_get_caller_info(vd); + } + break; + default: + CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); + break; + } + + return caller_info; +} + + +/* Caller info name or number*/ +void _vcui_show_caller_info_name(void *data, const char *name, Eina_Bool bhold) +{ + Evas_Object *layout = NULL; + + layout = __vcui_create_caller_info(data, bhold); + edje_object_part_text_set(_EDJ(layout), "txt_call_name", name); +} + +/* Caller info number */ +void _vcui_show_caller_info_number(void *data, const char *number, Eina_Bool bhold) +{ + Evas_Object *layout = NULL; + + layout = __vcui_create_caller_info(data, bhold); + edje_object_part_text_set(_EDJ(layout), "txt_phone_num", number); +} + +/* Caller info icon*/ +Evas_Object *_vcui_show_caller_info_icon(void *data, Eina_Bool bhold) +{ + Evas_Object *sw = NULL; + Evas_Object *ic = NULL; + Evas_Object *btn = NULL; + Evas_Object *layout = NULL; + + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + + layout = __vcui_create_caller_info(data, bhold); + + sw = edje_object_part_swallow_get(_EDJ(layout), "caller_info_icon"); + if (sw) { + edje_object_part_unswallow(_EDJ(layout), sw); + evas_object_del(sw); + } + + if (vd->type == VIEW_DIALLING_VIEW || + vd->type == VIEW_INCOMING_LOCK_VIEW) { + CALL_UI_DEBUG("Call status icon"); + ic = elm_image_add(layout); + elm_image_file_set(ic, CALLER_INFO_ICON, NULL); + elm_object_part_content_set(layout, "caller_info_icon", ic); + + return ic; + } else { + CALL_UI_DEBUG("More button"); + + edje_object_signal_emit(_EDJ(layout), "show_vert_separtor", "call-screen"); + + btn = elm_button_add(layout); + CALL_UI_KPI("elm_object_style_set start :: style_caller_info_morebtn"); + elm_object_style_set(btn, "style_caller_info_morebtn"); + CALL_UI_KPI("elm_object_style_set done :: style_caller_info_morebtn"); + elm_object_part_content_set(layout, "caller_info_icon", btn); + + evas_object_smart_callback_add(btn, "clicked", __vcui_more_btn_cb, vd); + + return btn; + } +} + +/* Caller info status*/ +Evas_Object *_vcui_show_caller_info_status(void *data, const char *status, Eina_Bool bhold) +{ + Evas_Object *layout = NULL; + + layout = __vcui_create_caller_info(data, bhold); + edje_object_part_text_set(_EDJ(layout), "txt_status", status); + + return layout; +} + +Evas_Object *_vcui_show_contact_image_split(Evas_Object *contents, const char *path, const char *full_path, Eina_Bool bhold) +{ + Evas_Object *sw = NULL; + Evas_Object *img = NULL; + char *part = NULL; + + if (bhold) { + part = "swl_cid_hold"; + } else { + part = "swl_cid_unhold"; + } + + sw = edje_object_part_swallow_get(_EDJ(contents), part); + if (sw) { + edje_object_part_unswallow(_EDJ(contents), sw); + evas_object_del(sw); + } + + if (strcmp(full_path, CONF_SPLIT_ICON) == 0) { + CALL_UI_DEBUG("Conf Image"); + img = elm_image_add(contents); + elm_image_file_set(img, CONF_SPLIT_ICON, NULL); + } else if ((strncmp(full_path, IMGDIR, strlen(IMGDIR)) == 0) || (strlen(full_path) == 0)) { + CALL_UI_DEBUG("No caller image"); + img = elm_image_add(contents); + elm_image_file_set(img, NOIMG_SPLIT_ICON, NULL); + } else { + CALL_UI_DEBUG("Display : %s", full_path); + img = elm_bg_add(contents); + elm_bg_load_size_set(img, MAIN_WIN_HD_W, 445); + elm_bg_file_set(img, full_path, NULL); + evas_object_size_hint_weight_set(img, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(img, 0.5, 0.5); + evas_object_show(img); + } + + elm_object_part_content_set(contents, part, img); + return img; +} + +Evas_Object *_vcui_show_call_bg_img(Evas_Object *contents) +{ + Evas_Object *d_image; + Evas_Object *sw; + + sw = edje_object_part_swallow_get(_EDJ(contents), "call_bg_img"); + if (sw) { + edje_object_part_unswallow(_EDJ(contents), sw); + evas_object_del(sw); + } + + d_image = elm_image_add(contents); + elm_image_file_set(d_image, CALL_BG_IMG, NULL); + elm_object_part_content_set(contents, "call_bg_img", d_image); + + return d_image; +} + +Evas_Object *_vcui_show_call_not_saved_bg_img(Evas_Object *contents) +{ + Evas_Object *d_image; + Evas_Object *sw; + + sw = edje_object_part_swallow_get(_EDJ(contents), "call_bg_img"); + if (sw) { + edje_object_part_unswallow(_EDJ(contents), sw); + evas_object_del(sw); + } + + d_image = elm_image_add(contents); + elm_image_file_set(d_image, CALL_NOT_SAVED_BG_IMG, NULL); + elm_object_part_content_set(contents, "call_bg_img", d_image); + + return d_image; +} + +void _vcui_elements_check_keypad_n_hide(void *data) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + Evas_Object *view_ly = NULL; + + switch (vd->type) { + case VIEW_DIALLING_VIEW: + { + view_ly = _vc_ui_view_dialing_get_layout(vd); + } + break; + case VIEW_INCALL_ONECALL_VIEW: + { + view_ly = _vc_ui_view_single_call_get_layout(vd); + } + break; + case VIEW_INCALL_MULTICALL_SPLIT_VIEW: + { + view_ly = _vcui_view_multi_call_split_get_layout(vd); + } + break; + case VIEW_INCALL_MULTICALL_CONF_VIEW: + { + view_ly = _vcui_view_multi_call_conf_get_main_layout(vd); + } + break; + default: + CALL_UI_DEBUG("code should never reach here"); + return; + } + + if (_vcui_keypad_get_show_status() == EINA_TRUE) { + /*Hide caller info area*/ + edje_object_signal_emit(_EDJ(view_ly), "HIDE", "CALL_AREA"); + } +} + diff --git a/ui/src/vcui-view-incoming-lock.c b/ui/src/vcui-view-incoming-lock.c new file mode 100755 index 0000000..38d6df3 --- /dev/null +++ b/ui/src/vcui-view-incoming-lock.c @@ -0,0 +1,1142 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include + +#include "vcui-application.h" +#include "vcui-app-window.h" +#include "vcui-view-incoming-lock.h" +#include "vcui-view-layout-hd.h" + +#define VCUI_REJECT_MSG_LENGTH_MAX (140+1) +#define REJ_MSG_GENLIST_DATA "reject_msg_genlist_data" +#define REJ_MSG_LIST_OPEN_STATUS_KEY "list_open_status_key" +#define REJ_MSG_GENLIST_INDEX "reject_msg_genlist_index" +#define VCUI_CST_REJECT_MSG_GET "cst_reject_msg_get" +#define VCUI_CST_SO_PATH "/opt/ug/lib/libug-setting-call-efl.so" +#define VIEW_INCOMING_LOCK_LAYOUT_ID "INCOMINGLOCKVIEW" + +typedef struct { + Evas_Object *contents; + Evas_Object *caller_info; + Evas_Object *ic; + Evas_Object *lock_reject_with_msg; + Evas_Object *msg_glist; + + double y_scale_factor; + + int reject_with_msg_start_y; + int reject_with_msg_cur_y; + + int msg_list_height; + + gboolean bmouse_down_pressed; /*Tracks the mouse-down, mouse-move and mouse-up events are executed in sequence*/ + + void *dl_handle; + Elm_Genlist_Item_Class *itc_reject_msg; + Evas_Coord y_momentum; + char *(*msg_func_ptr) (int); + char reject_msg[VCUI_REJECT_MSG_LENGTH_MAX]; +} incoming_lock_view_priv_t; + +static int __vcui_view_incoming_lock_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3); +static int __vcui_view_incoming_lock_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2); +static int __vcui_view_incoming_lock_onhide(voice_call_view_data_t *view_data); +static int __vcui_view_incoming_lock_onshow(voice_call_view_data_t *view_data); +static int __vcui_view_incoming_lock_ondestroy(voice_call_view_data_t *view_data); + +static voice_call_view_data_t s_view = { + .type = VIEW_INCOMING_LOCK_VIEW, + .app_data = NULL, + .layout = NULL, + .onCreate = __vcui_view_incoming_lock_oncreate, + .onUpdate = __vcui_view_incoming_lock_onupdate, + .onHide = __vcui_view_incoming_lock_onhide, + .onShow = __vcui_view_incoming_lock_onshow, + .onDestroy = __vcui_view_incoming_lock_ondestroy, + .priv = NULL, +}; + +voice_call_view_data_t *_vcui_view_incoming_lock_new(vcui_app_call_data_t *ad) +{ + + s_view.app_data = ad; + s_view.priv = calloc(1, sizeof(incoming_lock_view_priv_t)); + + if (!s_view.priv) { + CALL_UI_DEBUG("ERROR!!!!!!!!!!!"); + } + + return &s_view; +} + +static Evas_Object *__vcui_view_incoming_lock_load_edj(Evas *evas, char *edjname, const char *grpname) +{ + Evas_Object *edj; + + edj = edje_object_add(evas); + if (!edje_object_file_set(edj, edjname, grpname)) { + CALL_UI_DEBUG("ERROR!!"); + return NULL; + } + + return edj; +} + +static void __vcui_view_incoming_lock_accept_cb(void *data, Evas_Object *obj, void *event_info) +{ + int all_call_count = 0; + int nostatus_call_count = 0; + int unhold_call_count = 0; + int hold_call_count = 0; + + if (_vcui_is_phonelock_status() == EINA_FALSE) + vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, VCONFKEY_IDLE_UNLOCK); + + all_call_count = _vcui_doc_get_all_call_data_count(); + nostatus_call_count = _vcui_doc_get_no_status_call_data_count(); + unhold_call_count = _vcui_doc_get_unhold_call_data_count(); + hold_call_count = _vcui_doc_get_hold_call_data_count(); + CALL_UI_DEBUG("all_call_count:%d >>>> nostatus_call_count:%d >>>> unhold_call_count:%d >>>> hold_call_count:%d", \ + all_call_count, nostatus_call_count, unhold_call_count, hold_call_count); + + if (unhold_call_count == 0) { + CALL_UI_DEBUG("No Call Or Held call - Accept"); + vcall_engine_answer_call(); + } else { + CALL_UI_DEBUG("Show popup - 2nd MT call - test volume popup"); + _vcui_view_popup_second_mtcall_load(_("IDS_CALL_HEADER_ACCEPT_CALL_AFTER"), unhold_call_count, hold_call_count); + } +} + +static Evas_Object *__vcui_view_incoming_lock_create_accept_btn(Evas_Object *layout) +{ + Evas_Object *btn; + + Evas_Object *sw = edje_object_part_swallow_get(_EDJ(layout), "btn_accept"); + if (sw) { + edje_object_part_unswallow(_EDJ(layout), sw); + evas_object_del(sw); + } + + btn = elm_button_add(layout); + elm_object_part_content_set(layout, "btn_accept", btn); + elm_object_style_set(btn, "sweep"); + elm_object_text_set(btn, _("IDS_CALL_BUTTON_ACCEPT")); + evas_object_smart_callback_add(btn, "clicked", __vcui_view_incoming_lock_accept_cb, NULL); + + return btn; +} + +static void __vcui_view_incoming_lock_reject_cb(void *data, Evas_Object *obj, void *event_info) +{ + vcall_engine_reject_call(); +} + +static Evas_Object *__vcui_view_incoming_lock_create_reject_btn(Evas_Object *layout) +{ + Evas_Object *btn; + + Evas_Object *sw = edje_object_part_swallow_get(_EDJ(layout), "btn_reject"); + if (sw) { + edje_object_part_unswallow(_EDJ(layout), sw); + evas_object_del(sw); + } + + btn = elm_button_add(layout); + elm_object_part_content_set(layout, "btn_reject", btn); + elm_object_style_set(btn, "sweep"); + elm_object_text_set(btn, _("IDS_CALL_BUTTON_REJECT")); + evas_object_smart_callback_add(btn, "clicked", __vcui_view_incoming_lock_reject_cb, NULL); + + return btn; +} + +static void __reject_msg_list_param_reset(void *data) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + + priv->y_momentum = 0; + priv->reject_with_msg_start_y = 0; + priv->reject_with_msg_cur_y = 0; + priv->bmouse_down_pressed = EINA_FALSE; +} + +static void __reject_screen_transit_complete_cb(void *data, Elm_Transit *transit) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + + if (EINA_FALSE == evas_object_data_get(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY)) { + edje_object_signal_emit(priv->lock_reject_with_msg, "show-up-arrow", "reject_msg"); + } else { + edje_object_signal_emit(priv->lock_reject_with_msg, "show-down-arrow", "reject_msg"); + } + + __reject_msg_list_param_reset(vd); + + return; +} + +static Eina_Bool __rej_msg_show_sliding_effect(void *data) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + Evas_Object *screen_ly; + Elm_Transit *transit; + int xpos = 0; + int ypos = 0; + int width = 0; + int height = 0; + int transit_y = 0; + int max_height_limit = 0; + + screen_ly = priv->lock_reject_with_msg; + transit = elm_transit_add(); + elm_transit_object_add(transit, screen_ly); + + evas_object_geometry_get(priv->lock_reject_with_msg, &xpos, &ypos, &width, &height); + CALL_UI_DEBUG("reject_w_msg dimensions ---> x[%d] y[%d] w[%d] h[%d]", xpos, ypos, width, height); + CALL_UI_DEBUG("priv->y_momentum: %d", priv->y_momentum); + + /*Max height possible*/ + max_height_limit = (priv->msg_list_height) * (priv->y_scale_factor); + CALL_UI_DEBUG("max_height_limit: %d", max_height_limit); + + if (EINA_FALSE == evas_object_data_get(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY)) { + CALL_UI_DEBUG("Close list... Check if opening is feasible"); + + if (priv->y_momentum) { + CALL_UI_DEBUG("Momentum..."); + + if (priv->y_momentum < -1500) { + CALL_UI_DEBUG("Huge Momentum... Move the layout"); + + /*effect to pull up the window.*/ + transit_y = -(max_height_limit + ypos); + + elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE); + } else { + CALL_UI_DEBUG("Small Momentum.."); + + if (ypos != 0) { /*Reject msg layout is displaced from its original position*/ + if (-ypos < max_height_limit/2) { /*Layout position is lesser than half of the height*/ + CALL_UI_DEBUG("Movement L.T. HALF the height.."); + + /*effect to pull down the window.*/ + transit_y = -ypos; + + elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE); + } else if (-ypos >= max_height_limit/2 && -ypos <= max_height_limit) { /*Layout position is greater than half of the height*/ + CALL_UI_DEBUG("Movement G.T. HALF the height.."); + + /*effect to pull up the window.*/ + transit_y = -(max_height_limit + ypos); + + elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE); + } + } + } + } else { + CALL_UI_DEBUG("NO Momentum... Dont open"); + + if (ypos != 0) { /*Reject msg layout is displaced from its original position*/ + if (-ypos < max_height_limit/2) { /*Layout position is lesser than half of the height*/ + CALL_UI_DEBUG("Movement L.T. HALF the height.."); + + /*effect to pull down the window.*/ + transit_y = -ypos; + + elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE); + } else if (-ypos >= max_height_limit/2 && -ypos <= max_height_limit) { /*Layout position is greater than half of the height*/ + CALL_UI_DEBUG("Movement G.T. HALF the height.."); + + /*effect to pull up the window.*/ + transit_y = -(max_height_limit + ypos); + + elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE); + } + } + } + } else { + CALL_UI_DEBUG("Open list... Check if closing is feasible"); + + if (priv->y_momentum) { + CALL_UI_DEBUG("Momentum..."); + + if (priv->y_momentum > 1500) { + CALL_UI_DEBUG("Huge Momentum... Move the layout"); + + /*effect to pull down the window.*/ + transit_y = -ypos; + + elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE); + } else { + CALL_UI_DEBUG("Small Momentum.."); + + if (ypos != 0) { /*Reject msg layout is displaced from its original position*/ + if (-ypos < (max_height_limit * 0.8)) { /*Layout position is lesser than 80% of the height*/ + CALL_UI_DEBUG("Movement L.T. 80 percent of the height.."); + + /*effect to pull down the window.*/ + transit_y = -ypos; + + elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE); + } else if (-ypos >= (max_height_limit * 0.8) && -ypos <= max_height_limit) { /*Layout position is greater than half of the height*/ + CALL_UI_DEBUG("Movement G.T. 80 percent of the height.."); + + /*effect to pull up the window.*/ + transit_y = -(max_height_limit + ypos); + + elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE); + } + } + } + } else { + CALL_UI_DEBUG("NO Momentum... Dont close"); + + if (ypos != 0) { /*Reject msg layout is displaced from its original position*/ + if (-ypos < (max_height_limit * 0.8)) { /*Layout position is lesser than 80% of the height*/ + CALL_UI_DEBUG("Movement L.T. 80 percent of the height.."); + + /*effect to pull down the window.*/ + transit_y = -ypos; + + elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE); + } else if (-ypos >= (max_height_limit * 0.8) && -ypos <= max_height_limit) { /*Layout position is greater than half of the height*/ + CALL_UI_DEBUG("Movement G.T. 80 percent of the height.."); + + /*effect to pull up the window.*/ + transit_y = -(max_height_limit + ypos); + + elm_transit_effect_translation_add(transit, 0, 0, 0, transit_y); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE); + } + } + } + } + + elm_transit_del_cb_set(transit, __reject_screen_transit_complete_cb, vd); + + if (priv->y_momentum < 0) + priv->y_momentum = -priv->y_momentum; + + if (priv->y_momentum < 1500) { + elm_transit_duration_set(transit, 0.5); + } else if (priv->y_momentum >= 1500 && priv->y_momentum < 3000) { + elm_transit_duration_set(transit, 0.4); + } else if (priv->y_momentum >= 3000 && priv->y_momentum < 4500) { + elm_transit_duration_set(transit, 0.3); + } else if (priv->y_momentum >= 4500) { + elm_transit_duration_set(transit, 0.2); + } + evas_object_show(screen_ly); /*It must be called before elm_transit_go(). transit policy*/ + elm_transit_objects_final_state_keep_set(transit, EINA_TRUE); /*Keep the window position as end of effect.*/ + elm_transit_go(transit); + + return ECORE_CALLBACK_CANCEL; +} + +static void __vcui_view_incoming_lock_reject_with_msg_mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + Evas_Event_Mouse_Move *ev = event_info; + + priv->reject_with_msg_start_y = ev->cur.canvas.y; + priv->bmouse_down_pressed = EINA_TRUE; +} + +static void __vcui_view_incoming_lock_reject_with_msg_mouse_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + Evas_Event_Mouse_Move *ev = event_info; + int diff_y = 0; + int max_height_limit = 0; + + /*Max height possible*/ + max_height_limit = (priv->msg_list_height) * (priv->y_scale_factor); + CALL_UI_DEBUG("max_height_limit: %d", max_height_limit); + + if (priv->bmouse_down_pressed) { + CALL_UI_DEBUG("mouse down was pressed - handle move event"); + priv->reject_with_msg_cur_y = ev->cur.canvas.y; + + diff_y = (priv->reject_with_msg_cur_y - priv->reject_with_msg_start_y) * (priv->y_scale_factor); + CALL_UI_DEBUG("diff_y [<<< %d >>>>]", diff_y); + + if (EINA_FALSE == evas_object_data_get(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY)) { + if ((diff_y > -max_height_limit) && (diff_y <= 0)) { + /*Lies between 0 and msg-list layout height*/ + evas_object_move(priv->lock_reject_with_msg, 0, diff_y); + } else if (diff_y <= -max_height_limit) { + /*Special case - Move the max distance - msg-list height*/ + evas_object_move(priv->lock_reject_with_msg, 0, -max_height_limit); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_TRUE); + __reject_screen_transit_complete_cb(vd, NULL); + } + } else { + if ((diff_y >= 0) && (diff_y < max_height_limit)) { + /*Lies between 0 and msg-list layout height*/ + evas_object_move(priv->lock_reject_with_msg, 0, -(max_height_limit - diff_y)); + } else if (diff_y >= max_height_limit) { + /*Special case - Move the max distance - msg-list height*/ + evas_object_move(priv->lock_reject_with_msg, 0, 0); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, (const void *)EINA_FALSE); + __reject_screen_transit_complete_cb(vd, NULL); + } + } + } else { + CALL_UI_DEBUG("mouse down was NOT pressed - DONT handle move event"); + } +} + +static void __vcui_view_incoming_lock_reject_with_msg_mouse_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + + if (priv->bmouse_down_pressed) { + ecore_idler_add(__rej_msg_show_sliding_effect, vd); + } else { + CALL_UI_DEBUG("mouse down was NOT pressed - DONT handle up event"); + } +} + +static void __send_reject_msg_status_cb(msg_handle_t Handle, msg_struct_t pStatus, void *pUserParam) +{ + VCUI_RETURN_IF_FAIL(pStatus != NULL); + int status = MSG_NETWORK_SEND_FAIL; + + msg_get_int_value(pStatus, MSG_SENT_STATUS_NETWORK_STATUS_INT, &status); + CALL_UI_DEBUG("status:[%d]", status); + if (status != MSG_NETWORK_SEND_SUCCESS) { + CALL_UI_DEBUG(".."); + _vcui_view_popup_replace(_("IDS_MSGC_POP_SENDINGFAILED"), POPUP_TIMEOUT_SHORT, EINA_TRUE); + } +} + +static Eina_Bool __send_reject_msg_on_idle(void *data) +{ + VCUI_RETURN_FALSE_IF_FAIL(data != NULL); + + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + call_data_t *call_data = NULL; + + msg_error_t err = MSG_SUCCESS; + msg_handle_t msgHandle = NULL; + + call_data = _vcui_doc_get_recent_mt_call_data(); + if (call_data == NULL) { + CALL_UI_DEBUG("call data is null"); + return EINA_FALSE; + } + + err = msg_open_msg_handle(&msgHandle); + if (err != MSG_SUCCESS) { + CALL_UI_DEBUG("msg_open_msg_handle()- failed [%d]", err); + return EINA_FALSE; + } + + err = msg_reg_sent_status_callback(msgHandle, &__send_reject_msg_status_cb, NULL); + if (err != MSG_SUCCESS) { + CALL_UI_DEBUG("msg_reg_sent_status_callback()- failed [%d]", err); + msg_close_msg_handle(&msgHandle); + return EINA_FALSE; + } + msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO); + msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT); + msg_struct_t pReq = msg_create_struct(MSG_STRUCT_REQUEST_INFO); + + /* Set message type to SMS reject*/ + msg_set_int_value(msgInfo, MSG_MESSAGE_TYPE_INT, MSG_TYPE_SMS_REJECT); + + /* No setting send option */ + msg_set_bool_value(sendOpt, MSG_SEND_OPT_SETTING_BOOL, FALSE); + + /* Set message body */ + if (msg_set_str_value(msgInfo, MSG_MESSAGE_SMS_DATA_STR, priv->reject_msg, strlen(priv->reject_msg))!= MSG_SUCCESS) { + return EINA_FALSE; + } + + /* Create address list*/ + msg_struct_list_s *addr_list; + msg_get_list_handle(msgInfo, MSG_MESSAGE_ADDR_LIST_STRUCT, (void **)&addr_list); + msg_struct_t addr_info = addr_list->msg_struct_info[0]; + char *call_number = _vcui_doc_get_call_number(call_data); + + /* Set message address */ + msg_set_int_value(addr_info, MSG_ADDRESS_INFO_RECIPIENT_TYPE_INT, MSG_RECIPIENTS_TYPE_TO); + msg_set_str_value(addr_info, MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, call_number, strlen(call_number)); + addr_list->nCount = 1; + + /* Set message struct to Request*/ + msg_set_struct_handle(pReq, MSG_REQUEST_MESSAGE_HND, msgInfo); + msg_set_struct_handle(pReq, MSG_REQUEST_SENDOPT_HND, sendOpt); + + /* Send message */ + err = msg_sms_send_message(msgHandle, pReq); + if (err != MSG_SUCCESS) { + CALL_UI_DEBUG("msg_sms_send_message() - failed [%d]", err); + msg_close_msg_handle(&msgHandle); + _vcui_view_popup_replace(_("IDS_MSGC_POP_SENDINGFAILED"), POPUP_TIMEOUT_SHORT, EINA_TRUE); + } else { + CALL_UI_DEBUG("Sending..."); + } + + msg_release_struct(&pReq); + msg_release_struct(&msgInfo); + msg_release_struct(&sendOpt); + + return EINA_FALSE; +} + +static char *__reject_list_get_msg_by_index(void *data, int index) +{ + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + + char *ret_str = NULL; + + if (priv->msg_func_ptr) { + ret_str = (char *) priv->msg_func_ptr(index); /* i : reject msg index(0 ~ 4)*/ + CALL_UI_DEBUG("ret_str(%s)", ret_str); + } + + return ret_str; +} + +static char *__reject_msg_gl_label_get_msg(void *data, Evas_Object *obj, const char *part) +{ + VCUI_RETURN_NULL_IF_FAIL(part != NULL); + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)evas_object_data_get(obj, REJ_MSG_GENLIST_DATA); + + int index = (int)data; + CALL_UI_DEBUG("index: %d", index); + char *entry_label = NULL; + char *msg_str = NULL; + + if (!strcmp(part, "elm.text")) { + if (index != -1) { + msg_str = __reject_list_get_msg_by_index(vd, index); + CALL_UI_DEBUG("msg_str(%s)", msg_str); + + if (msg_str != NULL) { + entry_label = elm_entry_markup_to_utf8(msg_str); + if (entry_label == NULL) { + free(msg_str); + msg_str = NULL; + return NULL; + } + free(msg_str); + msg_str = NULL; + return entry_label; + } + } else { + CALL_UI_DEBUG(".."); + msg_str = _("No message"); + return strdup(msg_str); + } + } + + return NULL; +} + +static void __reject_msg_send_btn_cb(void *data, Evas_Object *obj, void *event_info) +{ + VCUI_RETURN_IF_FAIL(data != NULL); + CALL_UI_DEBUG(".."); + + char *ret_str = NULL; + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + int index = (int)evas_object_data_get(obj, REJ_MSG_GENLIST_INDEX); + + ret_str = __reject_list_get_msg_by_index(vd, index); + if (ret_str) { + snprintf(priv->reject_msg, sizeof(priv->reject_msg), "%s", ret_str); + free(ret_str); + } + + vcall_engine_reject_call(); + + ecore_timer_add(TIMER_TIMEOUT_0_3_SEC, __send_reject_msg_on_idle, vd); +} + +static Evas_Object *__reject_msg_gl_content_get_msg(void *data, Evas_Object *obj, const char *part) +{ + CALL_UI_DEBUG(".."); + + Evas_Object *button; + int index = (int)data; + CALL_UI_DEBUG("index: %d", index); + + if (!strcmp(part, "elm.swallow.end")) { + if (index != -1) { + voice_call_view_data_t *vd = (voice_call_view_data_t *)evas_object_data_get(obj, REJ_MSG_GENLIST_DATA); + button = elm_button_add(obj); + evas_object_data_set(button, REJ_MSG_GENLIST_INDEX, data); + elm_object_text_set(button, dgettext("sys_string", "IDS_COM_SK_SEND")); + evas_object_propagate_events_set(button, EINA_FALSE); + evas_object_smart_callback_add(button, "clicked", __reject_msg_send_btn_cb, vd); + return button; + } else { + CALL_UI_DEBUG("do nothing for index [%d]", index); + } + } + + return NULL; +} + +static void __reject_msg_gl_sel_msg(void *data, Evas_Object *obj, void *event_info) +{ + elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE); +} + +static Evas_Event_Flags __reject_msg_flick_gesture_move_event_cb(void *data, void *event_info) +{ + CALL_UI_DEBUG("Flick_Gesture Move"); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + Elm_Gesture_Line_Info *info = (Elm_Gesture_Line_Info *)event_info; + + CALL_UI_DEBUG("*********************************************"); + CALL_UI_DEBUG("info->angle = %lf", info->angle); + CALL_UI_DEBUG("info->momentum.mx = %d, info->momentum.my = %d", info->momentum.mx, info->momentum.my); + CALL_UI_DEBUG("info->momentum.n = %d", info->momentum.n); + CALL_UI_DEBUG("info->momentum.tx = %d, info->momentum.ty = %d", info->momentum.tx, info->momentum.ty); + CALL_UI_DEBUG("info->momentum.x1 = %d, info->momentum.x2 = %d", info->momentum.x1, info->momentum.x2); + CALL_UI_DEBUG("info->momentum.y1 = %d, info->momentum.y2 = %d", info->momentum.y1, info->momentum.y2); + CALL_UI_DEBUG("*********************************************"); + + priv->y_momentum = info->momentum.my; + + return EVAS_EVENT_FLAG_NONE; +} + +static void __reject_msg_back_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + + if (NULL == vd) { + CALL_UI_DEBUG("view data is NULL"); + return; + } + evas_object_move(priv->lock_reject_with_msg, 0, 0); + edje_object_signal_emit(priv->lock_reject_with_msg, "show-up-arrow", "reject_msg"); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, EINA_FALSE); + +} + +static void __create_new_msg_cb(void *data, Evas_Object *obj, void *event_info) +{ + VCUI_RETURN_IF_FAIL(data != NULL); + CALL_UI_DEBUG(".."); + + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + char *tel_number = NULL; + call_data_t *call_data = NULL; + + vcall_engine_reject_call(); + + vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, VCONFKEY_IDLE_UNLOCK); + + call_data = _vcui_doc_get_recent_mt_call_data(); + if (call_data == NULL) { + CALL_UI_DEBUG("call data is null"); + return; + } + tel_number = _vcui_doc_get_call_number(call_data); + _vcui_doc_launch_msg_composer(vd, tel_number); +} + +static void __reject_msg_create_call_setting_handle(void *data) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + char *error = NULL; + + priv->dl_handle = dlopen(VCUI_CST_SO_PATH, RTLD_LAZY); + if (priv->dl_handle) { + priv->msg_func_ptr = dlsym(priv->dl_handle, VCUI_CST_REJECT_MSG_GET); + if ((error = dlerror()) != NULL) { + CALL_UI_DEBUG("dlsym failed!!! error = %s", error); + priv->msg_func_ptr = NULL; + dlclose(priv->dl_handle); + priv->dl_handle = NULL; + } + } else { + CALL_UI_DEBUG("failed to open libug-setting-call-efl.so"); + } +} + +static void __reject_msg_list_height_update(void *data, int msg_cnt) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + + CALL_UI_DEBUG("msg_cnt[%d]", msg_cnt); + + switch (msg_cnt) { + case 0: + case 1: + priv->msg_list_height = MTLOCK_REJECT_MSG_ONE_LINE_LIST_HEIGHT+MTLOCK_REJECT_MSG_TOOLBAR_HEIGHT; + edje_object_signal_emit(priv->lock_reject_with_msg, "show-one-line", "reject-list"); + break; + case 2: + priv->msg_list_height = MTLOCK_REJECT_MSG_TWO_LINE_LIST_HEIGHT+MTLOCK_REJECT_MSG_TOOLBAR_HEIGHT; + edje_object_signal_emit(priv->lock_reject_with_msg, "show-two-line", "reject-list"); + break; + case 3: + priv->msg_list_height = MTLOCK_REJECT_MSG_THREE_LINE_LIST_HEIGHT+MTLOCK_REJECT_MSG_TOOLBAR_HEIGHT; + edje_object_signal_emit(priv->lock_reject_with_msg, "show-three-line", "reject-list"); + break; + case 4: + priv->msg_list_height = MTLOCK_REJECT_MSG_FOUR_LINE_LIST_HEIGHT+MTLOCK_REJECT_MSG_TOOLBAR_HEIGHT; + edje_object_signal_emit(priv->lock_reject_with_msg, "show-four-line", "reject-list"); + break; + case 5: + priv->msg_list_height = MTLOCK_REJECT_MSG_FIVE_LINE_LIST_HEIGHT+MTLOCK_REJECT_MSG_TOOLBAR_HEIGHT; + edje_object_signal_emit(priv->lock_reject_with_msg, "show-five-line", "reject-list"); + break; + case 6: + priv->msg_list_height = MTLOCK_REJECT_MSG_SIX_LINE_LIST_HEIGHT+MTLOCK_REJECT_MSG_TOOLBAR_HEIGHT; + edje_object_signal_emit(priv->lock_reject_with_msg, "show-six-line", "reject-list"); + break; + default: + break; + } +} + +static void __reject_msg_create_glist(void *data) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + int msg_cnt = 0; + int index = 0; + + /* msg count from setting */ + vconf_get_int(VCONFKEY_CISSAPPL_REJECT_CALL_MSG_INT, &msg_cnt); + CALL_UI_DEBUG("msg_cnt: %d", msg_cnt); + + /* create gen list */ + priv->msg_glist = elm_genlist_add(priv->lock_reject_with_msg); + evas_object_data_set(priv->msg_glist, REJ_MSG_GENLIST_DATA, (const void *)vd); + evas_object_size_hint_weight_set(priv->msg_glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(priv->msg_glist, EVAS_HINT_FILL, EVAS_HINT_FILL); + edje_object_part_swallow(priv->lock_reject_with_msg, "swl_msglist", priv->msg_glist); + + priv->itc_reject_msg = elm_genlist_item_class_new(); + + priv->itc_reject_msg->item_style = "call/reject_msg"; + priv->itc_reject_msg->func.text_get = __reject_msg_gl_label_get_msg; + priv->itc_reject_msg->func.content_get = __reject_msg_gl_content_get_msg; + priv->itc_reject_msg->func.state_get = NULL; + priv->itc_reject_msg->func.del = NULL; + + if (msg_cnt == 0 ) { + index = -1; + elm_genlist_item_append(priv->msg_glist, priv->itc_reject_msg, (void *)index, NULL, ELM_GENLIST_ITEM_NONE, __reject_msg_gl_sel_msg, NULL); + } else { + for (index = 0; index < msg_cnt; index++) { + elm_genlist_item_append(priv->msg_glist, priv->itc_reject_msg, (void *)index, NULL, ELM_GENLIST_ITEM_NONE, __reject_msg_gl_sel_msg, NULL); + } + } + + /*Adjust the list height*/ + __reject_msg_list_height_update(vd, msg_cnt); +} + +static void __reject_msg_create_gesture_layer(void *data) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + Evas_Object *rej_msg_gesture_layer = NULL; + Evas_Object *rej_msg_bg = NULL; + + rej_msg_bg = (Evas_Object *)edje_object_part_object_get(priv->lock_reject_with_msg, "reject_msg_bg"); + rej_msg_gesture_layer = elm_gesture_layer_add(priv->lock_reject_with_msg); + if (FALSE == elm_gesture_layer_attach(rej_msg_gesture_layer, (Evas_Object *)rej_msg_bg)) { + CALL_UI_DEBUG("elm_gesture_layer_attach failed !!"); + evas_object_del(rej_msg_gesture_layer); + rej_msg_gesture_layer = NULL; + } else { + elm_gesture_layer_cb_set(rej_msg_gesture_layer, ELM_GESTURE_N_FLICKS, ELM_GESTURE_STATE_MOVE, __reject_msg_flick_gesture_move_event_cb, vd); + } +} + +static void __reject_msg_create_toolbar(void *data) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + Evas_Object *rej_msg_toolbar = NULL; + Evas_Object *btn = NULL; + Elm_Object_Item *item = NULL; + + rej_msg_toolbar = elm_toolbar_add(priv->lock_reject_with_msg); + elm_toolbar_homogeneous_set(rej_msg_toolbar, TRUE); + elm_toolbar_shrink_mode_set(rej_msg_toolbar, ELM_TOOLBAR_SHRINK_EXPAND); + elm_toolbar_item_append(rej_msg_toolbar, REJ_MSG_CREATE_ICON, NULL, __create_new_msg_cb, vd); + item = elm_toolbar_item_append(rej_msg_toolbar, NULL, NULL, NULL, NULL); + elm_object_item_disabled_set(item, EINA_TRUE); + item = elm_toolbar_item_append(rej_msg_toolbar, NULL, NULL, NULL, NULL); + elm_object_item_disabled_set(item, EINA_TRUE); + item = elm_toolbar_item_append(rej_msg_toolbar, NULL, NULL, NULL, NULL); + btn = elm_button_add(rej_msg_toolbar); + elm_object_style_set(btn, "naviframe/back_btn/default"); + evas_object_smart_callback_add(btn, "clicked", __reject_msg_back_cb, vd); + elm_object_item_content_set(item, btn); + edje_object_part_swallow(priv->lock_reject_with_msg, "swl_msgtoolbar", rej_msg_toolbar); +} + +static Evas_Object *__vcui_view_incoming_lock_create_reject_msg_layout(void *data) +{ + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + vcui_app_call_data_t *ad = vd->app_data; + Evas_Object *rej_msg_bg = NULL; + + if (priv->lock_reject_with_msg != NULL) { + evas_object_del(priv->lock_reject_with_msg); + priv->lock_reject_with_msg = NULL; + } + priv->lock_reject_with_msg = __vcui_view_incoming_lock_load_edj(evas_object_evas_get(ad->win_main), EDJ_NAME, GRP_LOCK_REJECT_WITH_MSG); + evas_object_resize(priv->lock_reject_with_msg, ad->root_w, ad->root_h); + + __reject_msg_create_call_setting_handle(vd); + + __reject_msg_create_glist(vd); + + __reject_msg_create_gesture_layer(vd); + + __reject_msg_create_toolbar(vd); + + rej_msg_bg = (Evas_Object *)edje_object_part_object_get(priv->lock_reject_with_msg, "reject_msg_bg"); + evas_object_event_callback_add(rej_msg_bg, EVAS_CALLBACK_MOUSE_DOWN, __vcui_view_incoming_lock_reject_with_msg_mouse_down_cb, vd); + evas_object_event_callback_add(rej_msg_bg, EVAS_CALLBACK_MOUSE_MOVE, __vcui_view_incoming_lock_reject_with_msg_mouse_move_cb, vd); + evas_object_event_callback_add(rej_msg_bg, EVAS_CALLBACK_MOUSE_UP, __vcui_view_incoming_lock_reject_with_msg_mouse_up_cb, vd); + + edje_object_part_text_set(priv->lock_reject_with_msg, "reject_msg_text", _("IDS_VCALL_BUTTON_REJECT_WITH_MESSAGE")); + edje_object_signal_emit(priv->lock_reject_with_msg, "show-up-arrow", "reject_msg"); + evas_object_data_set(priv->lock_reject_with_msg, REJ_MSG_LIST_OPEN_STATUS_KEY, EINA_FALSE); + + __reject_msg_list_param_reset(vd); + + evas_object_show(priv->lock_reject_with_msg); + + return priv->lock_reject_with_msg; +} + +static void __vcui_view_incoming_lock_draw_screen(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + Evas_Object *eo = priv->contents; + vcui_app_call_data_t *ad = vd->app_data; + + call_data_t *call_data = _vcui_doc_get_recent_mt_call_data(); + if (call_data == NULL) { + CALL_UI_DEBUG("call data is null"); + return; + } + if (_vcui_doc_get_call_type(call_data) != CALL_INCOMING) { + CALL_UI_DEBUG("it is not call_incoming."); + return; + } + + char *file_path = _vcui_doc_get_caller_id_file_path(call_data); + + /* call image */ + _vcui_delete_contact_image(priv->contents); + if (strcmp(file_path, NOIMG_ICON) == 0) { + _vcui_show_wallpaper_image(priv->contents); + } else { + CALL_UI_DEBUG("Caller ID file_path: %s", file_path); + { + _vcui_show_wallpaper_image(priv->contents); + priv->ic = _vcui_show_contact_image(priv->contents, vd->app_data->win_main, file_path); + } + } + _vcui_show_call_bg_img(priv->contents); + + char *call_number = _vcui_doc_get_call_number(call_data); + char *call_name = _vcui_doc_get_call_display_name(call_data); + /* call name (if nothing, call number) */ + if (strlen(call_name) == 0) { + _vcui_show_caller_info_name(vd, call_number, EINA_FALSE); + } else { + _vcui_show_caller_info_name(vd, call_name, EINA_FALSE); + _vcui_show_caller_info_number(vd, call_number, EINA_FALSE); + } + + _vcui_show_caller_info_icon(vd, EINA_FALSE); + _vcui_show_caller_info_status(vd, dgettext("sys_string", "IDS_COM_BODY_VOICE_CALL"), EINA_FALSE); + + __vcui_view_incoming_lock_create_accept_btn(priv->contents); + __vcui_view_incoming_lock_create_reject_btn(priv->contents); + + if (!(_vcui_is_phonelock_status() == EINA_TRUE)) { + if (strlen(call_number) > 0) { + __vcui_view_incoming_lock_create_reject_msg_layout(vd); + } + } + ad->beffect_needed = EINA_TRUE; + + evas_object_show(eo); + +} + +static Evas_Object *__vcui_view_incoming_lock_create_contents(void *data, char *grpname) +{ + if (data == NULL) { + CALL_UI_DEBUG("ERROR"); + return NULL; + } + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + Evas_Object *eo; + + /* load edje */ + eo = _vcui_load_edj(vd->app_data->win_main, EDJ_NAME, grpname); + if (eo == NULL) + return NULL; + + return eo; +} + +static Evas_Object *__vcui_view_incoming_lock_create_layout_main(Evas_Object *parent) +{ + if (parent == NULL) { + CALL_UI_DEBUG("ERROR"); + return NULL; + } + + Evas_Object *ly; + ly = elm_layout_add(parent); + retvm_if(ly == NULL, NULL, "Failed elm_layout_add."); + + elm_layout_theme_set(ly, "standard", "window", "integration"); + evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(parent, ly); + + edje_object_signal_emit(_EDJ(ly), "elm,state,show,indicator", "elm"); + edje_object_signal_emit(_EDJ(ly), "elm,state,show,content", "elm"); + evas_object_show(ly); + + return ly; +} + +static int __vcui_view_incoming_lock_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3) +{ + CALL_UI_DEBUG("mt-lock view create!!"); + + vcui_app_call_data_t *ad = view_data->app_data; + incoming_lock_view_priv_t *priv = view_data->priv; + + evas_object_pointer_mode_set(ad->win_main, EVAS_OBJECT_POINTER_MODE_NOGRAB); + if (!view_data->layout) { + view_data->layout = __vcui_view_incoming_lock_create_layout_main(ad->win_main); + if (view_data->layout == NULL) { + CALL_UI_DEBUG("ERROR"); + return VC_ERROR; + } + priv->contents = __vcui_view_incoming_lock_create_contents(view_data, GRP_MTLOCK); + elm_object_part_content_set(view_data->layout, "elm.swallow.content", priv->contents); + + priv->caller_info = __vcui_view_incoming_lock_create_contents(view_data, GRP_CALLER_INFO); + elm_object_part_content_set(priv->contents, "caller_info", priv->caller_info); + + evas_object_name_set(priv->contents, VIEW_INCOMING_LOCK_LAYOUT_ID); + CALL_UI_DEBUG("[========== INCOMINGLOCKVIEW: priv->contents Addr : [%p] ==========]", priv->contents); + + } + + __vcui_view_incoming_lock_onshow(view_data); + return VC_NO_ERROR; +} + +static int __vcui_view_incoming_lock_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2) +{ + CALL_UI_DEBUG("mt-lock view update!!"); + + __vcui_view_incoming_lock_onshow(view_data); + return VC_NO_ERROR; +} + +static int __vcui_view_incoming_lock_onhide(voice_call_view_data_t *view_data) +{ + CALL_UI_DEBUG("mt-lock view hide!!"); + + evas_object_hide(view_data->layout); + return VC_NO_ERROR; +} + +static int __vcui_view_incoming_lock_onshow(voice_call_view_data_t *view_data) +{ + CALL_UI_DEBUG("mt-lock view show!!"); + vcui_app_call_data_t *ad = _vcui_get_app_data(); + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)view_data->priv; + int result = 0; + + /*change the orientation to normal - 0*/ + elm_win_rotation_with_resize_set(view_data->app_data->win_main, 0); + elm_win_rotation_with_resize_set(view_data->app_data->popup_mw, 0); + + if (ad->root_w == MAIN_WIN_HD_W && ad->root_h == MAIN_WIN_HD_H) { + priv->y_scale_factor = 1; + } else if (ad->root_w == MAIN_WIN_WVGA_W && ad->root_h == MAIN_WIN_WVGA_H) { + priv->y_scale_factor = (double) MAIN_WIN_WVGA_H/MAIN_WIN_HD_H; + } + CALL_UI_DEBUG("y_scale_factor %f", priv->y_scale_factor); + + __vcui_view_incoming_lock_draw_screen(view_data); + + evas_object_hide(view_data->layout); + evas_object_show(view_data->layout); + _vcui_app_win_set_noti_type(EINA_TRUE); + + result = utilx_grab_key(ad->disp, ad->win, KEY_POWER, TOP_POSITION_GRAB); + if (result) + CALL_UI_DEBUG("KEY_VOLUMEUP key grab failed"); + + result = utilx_grab_key(ad->disp, ad->win, KEY_SELECT, TOP_POSITION_GRAB); + if (result) + CALL_UI_DEBUG("KEY_VOLUMEUP key grab failed"); + + return VC_NO_ERROR; +} + +static int __vcui_view_incoming_lock_ondestroy(voice_call_view_data_t *view_data) +{ + CALL_UI_DEBUG("mt-lock view destroy!!"); + + vcui_app_call_data_t *ad = _vcui_get_app_data(); + + voice_call_view_data_t *vd = ad->view_st[VIEW_INCOMING_LOCK_VIEW]; + incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; + + if (_vcui_is_idle_lock() == CALL_LOCK) + _vcui_app_win_set_noti_type(EINA_TRUE); + else + _vcui_app_win_set_noti_type(EINA_FALSE); + + ad->bmute_ringtone = EINA_FALSE; + if (priv != NULL) { + + if (priv->itc_reject_msg) { + elm_genlist_item_class_free(priv->itc_reject_msg); + priv->itc_reject_msg = NULL; + } + if (priv->lock_reject_with_msg) { + evas_object_del(priv->lock_reject_with_msg); + priv->lock_reject_with_msg = NULL; + } + if (priv->caller_info) { + evas_object_del(priv->caller_info); + priv->caller_info = NULL; + } + + if (priv->contents) { + evas_object_del(priv->contents); + priv->contents = NULL; + } + + free(priv); + priv = NULL; + } + + if (vd->layout != NULL) { + evas_object_hide(vd->layout); + evas_object_del(vd->layout); + vd->layout = NULL; + } + + ad->view_st[VIEW_INCOMING_LOCK_VIEW] = NULL; + + _vcui_cache_flush(); + + utilx_ungrab_key(ad->disp, ad->win, KEY_SELECT); + utilx_ungrab_key(ad->disp, ad->win, KEY_POWER); + + return VC_NO_ERROR; +} + +int _vc_ui_view_incoming_lock_check_valid_eo(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + + incoming_lock_view_priv_t *priv = NULL; + int valid = -1; + + VCUI_RETURN_VALUE_IF_FAIL(vd , -1); + priv = (incoming_lock_view_priv_t *) vd->priv; + + valid = _vcui_check_valid_eo(priv->contents, VIEW_INCOMING_LOCK_LAYOUT_ID); + + return valid; +} + +Evas_Object *_vc_ui_view_incoming_lock_get_caller_info(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + incoming_lock_view_priv_t *priv = NULL; + + VCUI_RETURN_NULL_IF_FAIL(vd); + priv = (incoming_lock_view_priv_t *) vd->priv; + + VCUI_RETURN_NULL_IF_FAIL(priv); + return priv->caller_info; +} + +Evas_Object *_vc_ui_view_incoming_lock_get_layout(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + incoming_lock_view_priv_t *priv = NULL; + + VCUI_RETURN_NULL_IF_FAIL(vd); + priv = (incoming_lock_view_priv_t *) vd->priv; + + VCUI_RETURN_NULL_IF_FAIL(priv); + return priv->contents; +} diff --git a/ui/src/vcui-view-keypad.c b/ui/src/vcui-view-keypad.c new file mode 100755 index 0000000..e8d306b --- /dev/null +++ b/ui/src/vcui-view-keypad.c @@ -0,0 +1,342 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#include "vcui-application.h" +#include "vcui-view-keypad.h" +#include "vcui-view-common.h" + +typedef struct _keypad_data_t { + Evas_Object *parent_ly; + Evas_Object *keypad_ly; + Evas_Object *separator_ly; + Evas_Object *entry; + int data_len; + char entry_disp_data[KEYPAD_ENTRY_DISP_DATA_SIZE+1]; + Eina_Bool bkeypad_show; +}keypad_data_t; + +static keypad_data_t *gkeypad_data; + +static void __vcui_keypad_create_separator_layout(void *data); +static void __vcui_keypad_create_entry(void *data); + +static Evas_Object *__vcui_keypad_create_contents(void *data, char *grp_name) +{ + if (data == NULL) { + CALL_UI_DEBUG("ERROR"); + return NULL; + } + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + + Evas_Object *eo; + + /* load edje */ + eo = _vcui_load_edj(vd->app_data->win_main, EDJ_NAME, grp_name); + if (eo == NULL) + return NULL; + + return eo; +} + +static keypad_data_t *__vcui_keypad_memory_alloc() +{ + CALL_UI_DEBUG(".."); + + VCUI_RETURN_VALUE_IF_FAIL(gkeypad_data == NULL, gkeypad_data) + + CALL_UI_DEBUG(".."); + gkeypad_data = (keypad_data_t *) calloc(1, sizeof(keypad_data_t)); + if (gkeypad_data == NULL) { + CALL_UI_DEBUG("keydata structure not allocated"); + return NULL; + } + memset(gkeypad_data, 0x00, sizeof(keypad_data_t)); + gkeypad_data->bkeypad_show = EINA_FALSE; + + return gkeypad_data; +} + +void _vcui_keypad_create_layout(void *data, Evas_Object *parent_ly) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + keypad_data_t *pkeypad_data = NULL; + + pkeypad_data = __vcui_keypad_memory_alloc(); + VCUI_RETURN_IF_FAIL(pkeypad_data != NULL) + + if (!pkeypad_data->keypad_ly) { + CALL_UI_DEBUG(".."); + pkeypad_data->keypad_ly = __vcui_keypad_create_contents(vd, GRP_KEYPAD); + elm_object_part_content_set(parent_ly, "keypad_region", pkeypad_data->keypad_ly); + } + CALL_UI_DEBUG("keypad_ly :%p", pkeypad_data->keypad_ly); + + __vcui_keypad_create_separator_layout(vd); + + __vcui_keypad_create_entry(vd); +} + +static void __vcui_keypad_create_separator_layout(void *data) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + keypad_data_t *pkeypad_data = gkeypad_data; + + VCUI_RETURN_IF_FAIL(pkeypad_data != NULL) + + if (!pkeypad_data->separator_ly) { + CALL_UI_DEBUG(".."); + pkeypad_data->separator_ly = __vcui_keypad_create_contents(vd, GRP_KEYPAD_SEP_LAYOUT); + elm_object_part_content_set(pkeypad_data->keypad_ly, "separator/bg", pkeypad_data->separator_ly); + } +} + +Eina_Bool _vcui_keypad_get_show_status(void) +{ + keypad_data_t *pkeypad_data = gkeypad_data; + + VCUI_RETURN_FALSE_IF_FAIL(pkeypad_data != NULL) + + CALL_UI_DEBUG("Get show status(%d)", pkeypad_data->bkeypad_show); + return pkeypad_data->bkeypad_show; +} + +void _vcui_keypad_set_show_status(Eina_Bool bkeypad_status) +{ + keypad_data_t *pkeypad_data = gkeypad_data; + + VCUI_RETURN_IF_FAIL(pkeypad_data != NULL) + + CALL_UI_DEBUG("Set show status(%d)", bkeypad_status); + pkeypad_data->bkeypad_show = bkeypad_status; +} + +static void __vcui_keypad_on_key_down(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + CALL_UI_DEBUG("source(%s)", source); + + char before_dest[KEYPAD_STR_DEFINE_OPEN_SIZE + KEYPAD_ENTRY_DISP_DATA_SIZE + 1] = { 0, }; + char *sub_buffer_pointer = NULL; + char entry_dest[KEYPAD_ENTRY_SET_DATA_SIZE + 1] = { 0, }; + char *keypad_source; + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + keypad_data_t *pkeypad_data = gkeypad_data; + + VCUI_RETURN_IF_FAIL(pkeypad_data != NULL) + + if (NULL == vd) { + CALL_UI_DEBUG("data is null"); + return; + } + + if (strlen(source) >= KEYPAD_ENTRY_DISP_DATA_SIZE) { + CALL_UI_DEBUG("strlen(source) >= DATA_BUF_SIZE(%d)", KEYPAD_ENTRY_DISP_DATA_SIZE); + return; + } + + if (strcmp(source, "star") == 0) { + keypad_source = "*"; + } else if (strcmp(source, "sharp") == 0) { + keypad_source = "#"; + } else { + keypad_source = (char *)source; + } + + char dtmf_number[2]; + dtmf_number[0] = keypad_source[0]; + dtmf_number[1] = '\0'; + vcall_engine_send_dtmf_number(dtmf_number); + + if (strlen(pkeypad_data->entry_disp_data) == KEYPAD_ENTRY_DISP_DATA_SIZE) { + sub_buffer_pointer = &pkeypad_data->entry_disp_data[1]; + + snprintf(pkeypad_data->entry_disp_data, sizeof(pkeypad_data->entry_disp_data), "%s", sub_buffer_pointer); + CALL_UI_DEBUG("pkeypad_data->entry_disp_data after change [%s]", pkeypad_data->entry_disp_data); + } + + pkeypad_data->entry_disp_data[pkeypad_data->data_len] = keypad_source[0]; + if (pkeypad_data->data_len < (KEYPAD_ENTRY_DISP_DATA_SIZE - 1)) { + pkeypad_data->data_len++; + } + + snprintf(before_dest, sizeof(before_dest), "%s", MAX_DIAL_NUMBER_FONT_SIZE, pkeypad_data->entry_disp_data); + + snprintf(entry_dest, sizeof(entry_dest), "%s", before_dest); + + CALL_UI_DEBUG("entry_dest [%s]", pkeypad_data->entry_disp_data); + elm_entry_entry_set(pkeypad_data->entry, entry_dest); + elm_entry_cursor_end_set(pkeypad_data->entry); +} + +static Evas_Object *__vcui_keypad_create_single_line_scrolled_entry(void *content) +{ + Evas_Object *en; + + if (content == NULL) { + CALL_UI_DEBUG("content is NULL!"); + return NULL; + } + + en = elm_entry_add(content); + elm_entry_scrollable_set(en, EINA_TRUE); + + elm_entry_select_all(en); + elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO); + + elm_entry_bounce_set(en, EINA_FALSE, EINA_FALSE); + elm_entry_line_wrap_set(en, ELM_WRAP_WORD); + elm_entry_input_panel_enabled_set(en, EINA_FALSE); + elm_entry_single_line_set(en, EINA_TRUE); + elm_entry_cursor_end_set(en); + evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL); + + evas_object_show(en); + + return en; +} + +static void __vcui_keypad_create_entry(void *data) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + keypad_data_t *pkeypad_data = gkeypad_data; + + VCUI_RETURN_IF_FAIL(pkeypad_data != NULL) + + if (!pkeypad_data->entry) { + CALL_UI_DEBUG(".."); + pkeypad_data->entry = __vcui_keypad_create_single_line_scrolled_entry(pkeypad_data->keypad_ly); + memset(pkeypad_data->entry_disp_data, 0x0, sizeof(pkeypad_data->entry_disp_data)); + pkeypad_data->data_len = 0; + + edje_object_signal_callback_add(_EDJ(pkeypad_data->keypad_ly), "pad_down", "*", __vcui_keypad_on_key_down, vd); + + edje_object_part_swallow(_EDJ(pkeypad_data->keypad_ly), "textblock/textarea", pkeypad_data->entry); + } +} + +void _vcui_keypad_delete_layout(Evas_Object *parent_ly) +{ + CALL_UI_DEBUG(".."); + keypad_data_t *pkeypad_data = gkeypad_data; + + VCUI_RETURN_IF_FAIL(pkeypad_data != NULL) + + if (pkeypad_data->separator_ly) { + CALL_UI_DEBUG(".."); + edje_object_part_unswallow(_EDJ(pkeypad_data->keypad_ly), pkeypad_data->separator_ly); + evas_object_del(pkeypad_data->separator_ly); + pkeypad_data->separator_ly = NULL; + } + + if (pkeypad_data->entry) { + CALL_UI_DEBUG(".."); + edje_object_part_unswallow(_EDJ(pkeypad_data->keypad_ly), pkeypad_data->entry); + evas_object_del(pkeypad_data->entry); + pkeypad_data->entry = NULL; + } + + if (pkeypad_data->keypad_ly) { + CALL_UI_DEBUG(".."); + edje_object_part_unswallow(_EDJ(parent_ly), pkeypad_data->keypad_ly); + evas_object_del(pkeypad_data->keypad_ly); + pkeypad_data->keypad_ly = NULL; + } + + pkeypad_data->parent_ly = NULL; + + free(pkeypad_data); + pkeypad_data = NULL; + gkeypad_data = NULL; +} + +void _vcui_keypad_delete_separator_layout(void) +{ + CALL_UI_DEBUG(".."); + keypad_data_t *pkeypad_data = gkeypad_data; + + VCUI_RETURN_IF_FAIL(pkeypad_data != NULL) + + if (pkeypad_data->separator_ly) { + edje_object_part_unswallow(_EDJ(pkeypad_data->keypad_ly), pkeypad_data->separator_ly); + evas_object_del(pkeypad_data->separator_ly); + pkeypad_data->separator_ly = NULL; + } +} + +static void __vcui_keypad_hide_btn_effect_done(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *) data; + vcui_app_call_data_t *ad = vd->app_data; + keypad_data_t *pkeypad_data = gkeypad_data; + Evas_Object *parent_ly = NULL; + + VCUI_RETURN_IF_FAIL(pkeypad_data != NULL) + + /*Reset the entry area and text*/ + memset(pkeypad_data->entry_disp_data, '\0', KEYPAD_ENTRY_DISP_DATA_SIZE+1); + pkeypad_data->data_len = 0; + elm_entry_entry_set(pkeypad_data->entry, ""); + elm_entry_cursor_end_set(pkeypad_data->entry); + + parent_ly = pkeypad_data->parent_ly; + VCUI_RETURN_IF_FAIL(parent_ly != NULL) + + /*Hide keypad layout - ON view*/ + edje_object_signal_emit(_EDJ(parent_ly), "HIDE", "KEYPAD_BTN"); + /*Show caller info area*/ + edje_object_signal_emit(_EDJ(parent_ly), "SHOW", "CALL_AREA"); + + + if (ad->badd_call_clicked) { + _vcui_doc_launch_phoneui_ug(NULL, NULL, vd->layout, NULL, NULL, NULL, &(vd->app_data->ugs_array_data)); + ad->badd_call_clicked = EINA_FALSE; + } else if (ad->bcontact_clicked) { + _vcui_doc_launch_contact_list_ug(NULL, NULL, vd->layout, NULL, NULL, NULL, &(vd->app_data->ugs_array_data)); + ad->bcontact_clicked = EINA_FALSE; + } + ad->beffect_show = EINA_FALSE; +} + +void _vcui_keypad_show_hide_effect(void *data, Evas_Object *parent_ly) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *) data; + vcui_app_call_data_t *ad = vd->app_data; + keypad_data_t *pkeypad_data = gkeypad_data; + + VCUI_RETURN_IF_FAIL(pkeypad_data != NULL) + + ad->beffect_show = EINA_TRUE; + + edje_object_signal_emit(_EDJ(pkeypad_data->keypad_ly), "HIDE", "KEYPADBTN"); + pkeypad_data->parent_ly = parent_ly; + edje_object_signal_callback_add(_EDJ(pkeypad_data->keypad_ly), "DONE", "HIDEKEYPAD", __vcui_keypad_hide_btn_effect_done, vd); +} + +void _vcui_keypad_show_layout(void *data) +{ + CALL_UI_DEBUG(".."); + keypad_data_t *pkeypad_data = gkeypad_data; + + VCUI_RETURN_IF_FAIL(pkeypad_data != NULL) + + edje_object_signal_emit(_EDJ(pkeypad_data->keypad_ly), "SHOW", "KEYPADBTN"); +} diff --git a/ui/src/vcui-view-multi-call-conf.c b/ui/src/vcui-view-multi-call-conf.c new file mode 100755 index 0000000..94a1b39 --- /dev/null +++ b/ui/src/vcui-view-multi-call-conf.c @@ -0,0 +1,420 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#include "vcui-application.h" +#include "vcui-document.h" +#include "vcui-view-common.h" +#include "vcui-view-elements.h" +#include "vcui-view-multi-call-conf.h" +#include "vcui-view-keypad.h" + +#define VCUI_VIEW_MULTICALL_CONF_LAYOUT_ID "MULTIVIEWCONF" +typedef struct { + Evas_Object *contents; + Evas_Object *caller_info; + Evas_Object *btn_ly; + Evas_Object *cid_ly; + Evas_Object *ic; + Evas_Object *record_btn; + vcui_app_call_status_t call_status; + int total_members; +} vcui_view_multi_call_conf_priv_t; + +static int __vcui_view_multi_call_conf_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3); +static int __vcui_view_multi_call_conf_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2); +static int __vcui_view_multi_call_conf_onhide(voice_call_view_data_t *view_data); +static int __vcui_view_multi_call_conf_onshow(voice_call_view_data_t *view_data); +static int __vcui_view_multi_call_conf_ondestroy(voice_call_view_data_t *view_data); + +static voice_call_view_data_t s_view = { + .type = VIEW_INCALL_MULTICALL_CONF_VIEW, + .app_data = NULL, + .layout = NULL, + .onCreate = __vcui_view_multi_call_conf_oncreate, + .onUpdate = __vcui_view_multi_call_conf_onupdate, + .onHide = __vcui_view_multi_call_conf_onhide, + .onShow = __vcui_view_multi_call_conf_onshow, + .onDestroy = __vcui_view_multi_call_conf_ondestroy, + .priv = NULL, +}; + +voice_call_view_data_t *_vcui_view_multi_call_conf_new(vcui_app_call_data_t *ad) +{ + s_view.app_data = ad; + s_view.priv = calloc(1, sizeof(vcui_view_multi_call_conf_priv_t)); + + if (!s_view.priv) { + CALL_UI_DEBUG("ERROR!!!!!!!!!!! "); + } + + return &s_view; +} + +static void __vcui_view_multi_call_conf_draw_screen(Evas_Object *eo, void *data) +{ + CALL_UI_DEBUG(".."); + + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + vcui_view_multi_call_conf_priv_t *priv = (vcui_view_multi_call_conf_priv_t *)vd->priv; + vcui_app_call_data_t *ad = vd->app_data; + char buf[DEF_BUF_LEN] = { 0, }; + call_data_t *call_data = NULL; + + priv->call_status = _vcui_doc_get_group_call_status(); + call_data = _vcui_doc_get_call_data_by_call_status(priv->call_status); + if (call_data == NULL) { + CALL_UI_DEBUG("call data is null"); + return; + } + priv->total_members = _vcui_doc_get_hold_call_data_count() + _vcui_doc_get_unhold_call_data_count(); + + elm_win_rotation_with_resize_set(ad->win_main, ad->rotate_angle); + elm_win_rotation_with_resize_set(ad->popup_mw, ad->rotate_angle); + + if (ad->rotate_angle == 0 || ad->rotate_angle == 180) { + CALL_UI_DEBUG("create portrait mode layout items"); + /* call image */ + _vcui_show_wallpaper_image(priv->contents); + priv->ic = _vcui_show_default_image(priv->contents, vd->app_data->win_main, CONF_ICON); + if (priv->call_status == CALL_HOLD) { + if (ad->root_w == MAIN_WIN_HD_W && ad->root_h == MAIN_WIN_HD_H) { + edje_object_signal_emit(_EDJ(priv->contents), "SHOW_DIM_HD", "CID_HD"); + } else if (ad->root_w == MAIN_WIN_WVGA_W && ad->root_h == MAIN_WIN_WVGA_H) { + edje_object_signal_emit(_EDJ(priv->contents), "SHOW_DIM_WVGA", "CID_WVGA"); + } + edje_object_signal_emit(_EDJ(priv->caller_info), "set-hold-state", "call-screen"); + } else { + Evas_Object *txt_status = edje_object_part_swallow_get(_EDJ(priv->caller_info), "txt_status"); + if (txt_status) { + edje_object_part_unswallow(_EDJ(priv->caller_info), txt_status); + evas_object_del(txt_status); + } + edje_object_signal_emit(_EDJ(priv->contents), "HIDE_DIM", "CID"); + edje_object_signal_emit(_EDJ(priv->caller_info), "set-unhold-state", "call-screen"); + } + + _vcui_show_call_bg_img(priv->contents); + _vcui_show_caller_info_status(data, _("IDS_CALL_BODY_ON_HOLD_ABB"), EINA_FALSE); + _vcui_show_caller_info_name(vd, _("IDS_CALL_OPT_CONFERENCE_CALL"), EINA_FALSE); + snprintf(buf, DEF_BUF_LEN, "%d %s", priv->total_members, _("IDS_CALL_BODY_PEOPLE")); + _vcui_show_caller_info_number(vd, buf, EINA_FALSE); + + _vcui_show_caller_info_icon(vd, EINA_FALSE); + + _vcui_view_common_set_each_time(_vcui_doc_get_call_start_time(call_data)); + + { + CALL_UI_DEBUG(".."); + + /*create a small button for Hold/Swap*/ + _vcui_create_hold_swap_button(vd); + + if ((_vcui_is_phonelock_status() == EINA_TRUE) && (_vcui_is_idle_lock() == EINA_TRUE)) { + _vcui_create_top_middle_button_disabled(vd); + } else { + _vcui_create_top_middle_button(vd); + } + _vcui_create_top_right_button(vd); + _vcui_create_bottom_left_button(vd); + _vcui_create_bottom_middle_button(vd); + + { + _vcui_create_top_left_button(vd); + _vcui_create_bottom_right_button(vd); + } + } + + ad->beffect_needed = EINA_FALSE; + } else if (ad->rotate_angle == 90 || ad->rotate_angle == 270) { + CALL_UI_DEBUG("landscape mode not supported"); + } + + _vcui_elements_check_keypad_n_hide(vd); + + evas_object_show(eo); +} + +static Evas_Object *__vcui_view_multi_call_conf_create_contents(void *data, char *group) +{ + if (data == NULL) { + CALL_UI_DEBUG("ERROR"); + return NULL; + } + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + + Evas_Object *eo; + + /* load edje */ + eo = _vcui_load_edj(vd->app_data->win_main, EDJ_NAME, group); + if (eo == NULL) + return NULL; + + return eo; +} + +static Evas_Object *__vcui_view_multi_call_conf_create_layout_main(Evas_Object *parent) +{ + if (parent == NULL) { + CALL_UI_DEBUG("ERROR"); + return NULL; + } + + Evas_Object *ly; + ly = elm_layout_add(parent); + retvm_if(ly == NULL, NULL, "Failed elm_layout_add."); + + elm_layout_theme_set(ly, "standard", "window", "integration"); + evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(parent, ly); + + edje_object_signal_emit(_EDJ(ly), "elm,state,show,indicator", "elm"); + edje_object_signal_emit(_EDJ(ly), "elm,state,show,content", "elm"); + evas_object_show(ly); + + return ly; +} + +static int __vcui_view_multi_call_conf_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3) +{ + voice_call_view_data_t *vd = view_data; + + if (!vd->layout) { + + /* Create Main Layout */ + vd->layout = __vcui_view_multi_call_conf_create_layout_main(vd->app_data->win_main); + if (vd->layout == NULL) { + CALL_UI_DEBUG("ERROR"); + return VC_ERROR; + } + } else { + CALL_UI_DEBUG("[UI]ad->layout_multicallconf==NULL case "); + evas_object_show(vd->layout); + } + + __vcui_view_multi_call_conf_onshow(view_data); + return VC_NO_ERROR; +} + +static int __vcui_view_multi_call_conf_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2) +{ + CALL_UI_DEBUG("multicall-conf view update"); + + __vcui_view_multi_call_conf_onshow(view_data); + + return VC_NO_ERROR; +} + +static int __vcui_view_multi_call_conf_onhide(voice_call_view_data_t *view_data) +{ + CALL_UI_DEBUG("multicall-conf view hide"); + + evas_object_hide(view_data->layout); + return VC_NO_ERROR; +} + +static int __vcui_view_multi_call_conf_onshow(voice_call_view_data_t *view_data) +{ + CALL_UI_DEBUG("multicall-conf view show"); + + vcui_view_multi_call_conf_priv_t *priv = (vcui_view_multi_call_conf_priv_t *)view_data->priv; + Evas_Object *sep_ly = NULL; + + vcui_app_call_data_t *ad = view_data->app_data; + /*if (priv->cid_ly) { + CALL_UI_DEBUG(".."); + evas_object_del(priv->cid_ly); + priv->cid_ly = NULL; + } + if (priv->contents) { + evas_object_del(priv->contents); + priv->contents = NULL; + }*/ + + if (ad->rotate_angle == 0 || ad->rotate_angle == 180) { + CALL_UI_DEBUG("portrait mode layout"); + priv->contents = __vcui_view_multi_call_conf_create_contents(view_data, GRP_MULTICALL_CONF); + priv->caller_info = __vcui_view_multi_call_conf_create_contents(view_data, GRP_CALLER_INFO); + elm_object_part_content_set(priv->contents, "caller_info", priv->caller_info); + sep_ly = __vcui_view_multi_call_conf_create_contents(view_data, GRP_SEPARATOR_LAYOUT); + elm_object_part_content_set(priv->contents, "btn_bg", sep_ly); + priv->btn_ly = __vcui_view_multi_call_conf_create_contents(view_data, GRP_BUTTON_LAYOUT); + elm_object_part_content_set(priv->contents, "btn_region", priv->btn_ly); + } else if (ad->rotate_angle == 90 || ad->rotate_angle == 270) { + CALL_UI_DEBUG("landscape mode not supported"); + } + elm_object_part_content_set(view_data->layout, "elm.swallow.content", priv->contents); + evas_object_name_set(priv->contents, VCUI_VIEW_MULTICALL_CONF_LAYOUT_ID); + CALL_UI_DEBUG("[========== MULTIVIEWCONF: priv->contents Addr : [%p] ==========]", priv->contents); + + __vcui_view_multi_call_conf_draw_screen(priv->contents, view_data); + + evas_object_hide(view_data->layout); + evas_object_show(view_data->layout); + return VC_NO_ERROR; +} + +static int __vcui_view_multi_call_conf_ondestroy(voice_call_view_data_t *view_data) +{ + CALL_UI_DEBUG("multicall-conf view destroy"); + vcui_app_call_data_t *ad = _vcui_get_app_data(); + + voice_call_view_data_t *vd = ad->view_st[VIEW_INCALL_MULTICALL_CONF_VIEW]; + vcui_view_multi_call_conf_priv_t *priv = (vcui_view_multi_call_conf_priv_t *)vd->priv; + + if (priv != NULL) { + if (priv->cid_ly) { + CALL_UI_DEBUG(".."); + evas_object_del(priv->cid_ly); + priv->cid_ly = NULL; + } + if (priv->btn_ly) { + evas_object_del(priv->btn_ly); + priv->btn_ly = NULL; + } + + /*Delete keypad layout*/ + _vcui_keypad_delete_layout(priv->contents); + + if (priv->contents) { + evas_object_del(priv->contents); + priv->contents = NULL; + } + + free(priv); + priv = NULL; + } + + if (vd->layout != NULL) { + evas_object_hide(vd->layout); + evas_object_del(vd->layout); + vd->layout = NULL; + } + + ad->view_st[VIEW_INCALL_MULTICALL_CONF_VIEW] = NULL; + + _vcui_cache_flush(); + CALL_UI_DEBUG("complete destroy multi view conf"); + + return VC_NO_ERROR; +} + +int _vcui_view_multi_call_conf_check_valid_eo(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + + vcui_view_multi_call_conf_priv_t *priv = NULL; + int valid = -1; + + VCUI_RETURN_VALUE_IF_FAIL(vd , -1); + priv = (vcui_view_multi_call_conf_priv_t *) vd->priv; + + valid = _vcui_check_valid_eo(priv->contents, VCUI_VIEW_MULTICALL_CONF_LAYOUT_ID); + + return valid; +} + +Evas_Object *_vcui_view_multi_call_conf_get_main_layout(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + vcui_view_multi_call_conf_priv_t *priv = NULL; + + VCUI_RETURN_NULL_IF_FAIL(vd); + priv = (vcui_view_multi_call_conf_priv_t *) vd->priv; + + VCUI_RETURN_NULL_IF_FAIL(priv); + return priv->contents; +} + +int _vcui_view_multi_call_conf_get_call_status(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + vcui_view_multi_call_conf_priv_t *priv = NULL; + int call_status = 0; + + VCUI_RETURN_INVALID_IF_FAIL(vd); + priv = (vcui_view_multi_call_conf_priv_t *) vd->priv; + + VCUI_RETURN_INVALID_IF_FAIL(priv); + if (priv->call_status == CALL_HOLD) { + call_status = CALL_HOLD; + } else { + call_status = CALL_UNHOLD; + } + + return call_status; +} + +void _vcui_view_multi_call_conf_set_call_timer(voice_call_view_data_t *vd, char *pcall_dur) +{ + vcui_view_multi_call_conf_priv_t *priv = NULL; + + VCUI_RETURN_IF_FAIL(vd); + priv = (vcui_view_multi_call_conf_priv_t *) vd->priv; + + VCUI_RETURN_IF_FAIL(priv); + edje_object_part_text_set(_EDJ(priv->caller_info), "txt_timer", _(pcall_dur)); +} + +Evas_Object *_vcui_view_multi_call_conf_get_button_layout(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + vcui_view_multi_call_conf_priv_t *priv = NULL; + + VCUI_RETURN_NULL_IF_FAIL(vd); + priv = (vcui_view_multi_call_conf_priv_t *) vd->priv; + + VCUI_RETURN_NULL_IF_FAIL(priv); + return priv->btn_ly; +} + +Evas_Object *_vcui_view_multi_call_conf_get_cid_layout(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + vcui_view_multi_call_conf_priv_t *priv = NULL; + + VCUI_RETURN_NULL_IF_FAIL(vd); + priv = (vcui_view_multi_call_conf_priv_t *) vd->priv; + + VCUI_RETURN_NULL_IF_FAIL(priv); + return priv->cid_ly; +} + +int _vcui_view_multi_call_conf_get_total_members(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + vcui_view_multi_call_conf_priv_t *priv = NULL; + + VCUI_RETURN_INVALID_IF_FAIL(vd); + priv = (vcui_view_multi_call_conf_priv_t *) vd->priv; + + VCUI_RETURN_INVALID_IF_FAIL(priv); + + return priv->total_members; +} + +Evas_Object *_vc_ui_view_multi_call_conf_get_caller_info(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + vcui_view_multi_call_conf_priv_t *priv = NULL; + + VCUI_RETURN_NULL_IF_FAIL(vd); + priv = (vcui_view_multi_call_conf_priv_t *) vd->priv; + + VCUI_RETURN_NULL_IF_FAIL(priv); + return priv->caller_info; +} + diff --git a/ui/vcui-view-multi-call-list.c b/ui/src/vcui-view-multi-call-list.c similarity index 56% rename from ui/vcui-view-multi-call-list.c rename to ui/src/vcui-view-multi-call-list.c index f0a5485..1e90bcb 100755 --- a/ui/vcui-view-multi-call-list.c +++ b/ui/src/vcui-view-multi-call-list.c @@ -21,6 +21,18 @@ static Elm_Genlist_Item_Class *itc_call; +#define VCUI_VIEW_MULTICALL_LIST_LAYOUT_ID "MULTIVIEWLIST" +typedef struct { + Evas_Object *nf; + Evas_Object *contents; + Evas_Object *cid_ly; + Evas_Object *ic; + Evas_Object *record_btn; + vcui_app_call_status_t call_status; + Evas_Object *multibox_gl; + int total_members; +} vcui_view_multi_call_list_priv_t; + static int __vcui_view_multi_call_list_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3); static int __vcui_view_multi_call_list_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2); static int __vcui_view_multi_call_list_onhide(voice_call_view_data_t *view_data); @@ -54,9 +66,11 @@ voice_call_view_data_t *_vcui_view_multi_call_list_new(vcui_app_call_data_t *ad) static void __vcui_view_multi_call_list_small_end_call_cb(void *data, Evas_Object *obj, void *event_info) { CALL_UI_DEBUG(".."); + vcui_app_call_data_t *ad = _vcui_get_app_data(); call_data_t *call_data = data; - _vcui_engine_end_call_by_handle(call_data->call_handle); - call_data->bno_end_show = EINA_TRUE; + int handle = _vcui_doc_get_call_handle(call_data); + vcall_engine_release_call_by_handle(handle); + ad->call_end_type = CALL_END_TYPE_NONE; _vcui_view_popup_load_endcall_time(call_data); } @@ -65,14 +79,15 @@ static void __vcui_view_multi_call_list_split_call_cb(void *data, Evas_Object *o { CALL_UI_DEBUG(".."); call_data_t *call_data = data; - _vcui_engine_split_call(call_data->call_handle); + int handle = _vcui_doc_get_call_handle(call_data); + vcall_engine_split_call(handle); } static void __vcui_view_multi_call_list_gl_sel_call(void *data, Evas_Object *obj, void *event_info) { CALL_UI_DEBUG(".."); - Elm_Object_Item *item = (Elm_Object_Item *)event_info; + Elm_Object_Item *item = (Elm_Object_Item *) event_info; elm_object_item_data_get(item); elm_genlist_item_selected_set(item, 0); @@ -90,7 +105,7 @@ static Eina_Bool __vcui_view_multi_call_list_gl_state_get_call(void *data, Evas_ return EINA_FALSE; } -static Evas_Object *__vcui_view_multi_call_list_gl_content_get_call(void *data, Evas_Object *obj, const char *part) +static Evas_Object *__vcui_view_multi_call_list_gl_icon_get_call(void *data, Evas_Object *obj, const char *part) { call_data_t *call_data = (call_data_t *)data; @@ -99,28 +114,28 @@ static Evas_Object *__vcui_view_multi_call_list_gl_content_get_call(void *data, if (strcmp(part, "elm.swallow.end") == 0) { btn = elm_button_add(obj); - elm_object_style_set(btn, "style_call_smallbtn_red"); - icon = elm_icon_add(obj); - elm_icon_file_set(icon, CONF_CALL_END_ICON, NULL); + elm_object_style_set(btn, "style_call_icon_only_end"); + icon = elm_image_add(obj); + elm_image_file_set(icon, CONF_CALL_END_ICON, NULL); evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); - elm_icon_resizable_set(icon, 1, 1); - elm_object_part_content_set(btn, "icon", icon); + elm_image_resizable_set(icon, 1, 1); + elm_object_content_set(btn, icon); evas_object_smart_callback_add(btn, "clicked", __vcui_view_multi_call_list_small_end_call_cb, call_data); evas_object_propagate_events_set(btn, EINA_FALSE); return btn; } else if (strcmp(part, "elm.swallow.private") == 0) { - if (_vcui_doc_get_count_hold() > 0) { + if (_vcui_doc_get_hold_call_data_count() > 0) { return NULL; } btn = elm_button_add(obj); - icon = elm_icon_add(obj); - elm_icon_file_set(icon, PRIVATE_ICON, NULL); - elm_object_style_set(btn, "icon_only/style_call_icon_only_private"); + icon = elm_image_add(obj); + elm_image_file_set(icon, PRIVATE_ICON, NULL); + elm_object_style_set(btn, "style_call_icon_only_private"); - elm_icon_resizable_set(icon, 1, 1); - elm_object_part_content_set(btn, "icon", icon); + elm_image_resizable_set(icon, 1, 1); + elm_object_content_set(btn, icon); evas_object_smart_callback_add(btn, "clicked", __vcui_view_multi_call_list_split_call_cb, call_data); evas_object_propagate_events_set(btn, EINA_FALSE); @@ -131,16 +146,19 @@ static Evas_Object *__vcui_view_multi_call_list_gl_content_get_call(void *data, return NULL; } -static char *__vcui_view_multi_call_list_gl_text_get_call(void *data, Evas_Object *obj, const char *part) +static char *__vcui_view_multi_call_list_gl_label_get_call(void *data, Evas_Object *obj, const char *part) { char buf[DEF_BUF_LEN] = { 0, }; call_data_t *call_data = (call_data_t *)data; + char *call_number = _vcui_doc_get_call_number(call_data); + char *call_name = _vcui_doc_get_call_display_name(call_data); if (strcmp(part, "elm.text") == 0) { - if (strlen((char *)call_data->call_display) == 0) - snprintf(buf, sizeof(buf), "%s", call_data->call_num); - else - snprintf(buf, sizeof(buf), "%s", call_data->call_display); + if (strlen(call_name) == 0) { + snprintf(buf, sizeof(buf), "%s", call_number); + } else { + snprintf(buf, sizeof(buf), "%s", call_name); + } } return strdup(buf); @@ -148,9 +166,11 @@ static char *__vcui_view_multi_call_list_gl_text_get_call(void *data, Evas_Objec static void __vcui_view_multi_call_list_genlist_init(void *data) { + itc_call = elm_genlist_item_class_new(); + itc_call->item_style = "multicall_list"; - itc_call->func.text_get = __vcui_view_multi_call_list_gl_text_get_call; - itc_call->func.content_get = __vcui_view_multi_call_list_gl_content_get_call; + itc_call->func.text_get = __vcui_view_multi_call_list_gl_label_get_call; + itc_call->func.content_get = __vcui_view_multi_call_list_gl_icon_get_call; itc_call->func.state_get = __vcui_view_multi_call_list_gl_state_get_call; itc_call->func.del = __vcui_view_multi_call_list_gl_del_call; } @@ -181,17 +201,17 @@ void __vcui_view_multi_call_list_genlist_item_append(void *data) } if (priv->call_status == CALL_UNHOLD) { - list = _vcui_doc_get_unhold_caller(); + list = _vcui_doc_get_caller_list_with_unhold_status(); } else { - list = _vcui_doc_get_hold_caller(); + list = _vcui_doc_get_caller_list_with_hold_status(); } if (list == NULL) { CALL_UI_DEBUG("error"); return; } - Eina_List *l; - call_data_t *call_data; + Eina_List *l = NULL; + call_data_t *call_data = NULL; EINA_LIST_FOREACH(list, l, call_data) { elm_genlist_item_append(priv->multibox_gl, itc_call, (void *)call_data, NULL, ELM_GENLIST_ITEM_NONE, __vcui_view_multi_call_list_gl_sel_call, data); } @@ -211,76 +231,64 @@ static void __vcui_view_multi_call_list_draw_screen(void *data) voice_call_view_data_t *vd = (voice_call_view_data_t *)data; vcui_app_call_data_t *ad = vd->app_data; vcui_view_multi_call_list_priv_t *priv = (vcui_view_multi_call_list_priv_t *)vd->priv; - call_data_t *call_data; + call_data_t *call_data = NULL; - priv->total_members = _vcui_doc_get_count_hold()+_vcui_doc_get_count_unhold(); - priv->call_status = _vcui_doc_get_show_callstatus(); - call_data = _vcui_doc_get_last_status(priv->call_status); + priv->total_members = _vcui_doc_get_hold_call_data_count() + _vcui_doc_get_unhold_call_data_count(); + priv->call_status = _vcui_doc_get_group_call_status(); + call_data = _vcui_doc_get_call_data_by_call_status(priv->call_status); if (call_data == NULL) { CALL_UI_DEBUG("call data is null"); return; } - _vcui_view_common_set_each_time(call_data->start_time); + _vcui_view_common_set_each_time(_vcui_doc_get_call_start_time(call_data)); + + elm_win_rotation_with_resize_set(ad->win_main, ad->rotate_angle); + elm_win_rotation_with_resize_set(ad->popup_mw, ad->rotate_angle); - _vcui_show_wallpaper_image(priv->contents); + if (ad->rotate_angle == 0 || ad->rotate_angle == 180) { + CALL_UI_DEBUG("create portrait mode layout items"); __vcui_view_multi_call_list_genlist_item_append(vd); _vcui_create_conf_list_button_hold(vd); _vcui_create_button_bigend(vd); + } else if (ad->rotate_angle == 90 || ad->rotate_angle == 270) { + CALL_UI_DEBUG("landscape mode not supported"); + } evas_object_show(priv->contents); } -static Evas_Object *__vcui_view_multi_call_list_create_contents(void *data, char *group) +static Evas_Object *__vcui_view_multi_call_list_create_naviframe(Evas_Object *parent) { - voice_call_view_data_t *vd = (voice_call_view_data_t *)data; - Evas_Object *eo; - - if (data == NULL) { + if (parent == NULL) { CALL_UI_DEBUG("ERROR"); return NULL; } - /* load edje */ - eo = _vcui_load_edj(vd->layout, EDJ_NAME, group); - if (eo == NULL) - return NULL; - - return eo; -} - -static void __vcui_view_multi_call_list_create_navigationframe_layout(voice_call_view_data_t *vd) -{ - Evas_Object *navi_ly; - Evas_Object *btn1; - vcui_view_multi_call_list_priv_t *priv = (vcui_view_multi_call_list_priv_t *)vd->priv; - - navi_ly = _vcui_load_edj(priv->navi_frame, EDJ_NAME, "navigation_view"); - if (navi_ly == NULL) - return; - CALL_UI_DEBUG("navi_layout created..."); + Evas_Object *nf = elm_naviframe_add(parent); + retvm_if(nf == NULL, NULL, "Failed elm_naviframe_add."); - /* Load default button */ - btn1 = elm_button_add(priv->navi_frame); - elm_object_style_set(btn1, "vcui_naviframe_new_backbutton/default"); - evas_object_smart_callback_add(btn1, "clicked", __vcui_view_multi_call_list_back_cb, vd); + elm_object_part_content_set(parent, "elm.swallow.content", nf); + evas_object_show(nf); - elm_naviframe_item_push(priv->navi_frame, _("IDS_CALL_OPT_CONFERENCE_CALL"), btn1, NULL, navi_ly, "vcui_naviframe_new_item_1line"); + return nf; } -static Evas_Object *__vcui_view_multi_call_list_create_navigation_layout(Evas_Object *parent) +static Evas_Object *__vcui_view_multi_call_list_create_contents(Evas_Object *parent, char *group) { - Evas_Object *navi_frame; + Evas_Object *eo; if (parent == NULL) { CALL_UI_DEBUG("ERROR"); return NULL; } - navi_frame = elm_naviframe_add(parent); - elm_object_style_set(navi_frame, "vcui_naviframe_new/default"); + /* load edje */ + eo = _vcui_load_edj(parent, EDJ_NAME, group); + if (eo == NULL) + return NULL; - return navi_frame; + return eo; } static Evas_Object *__vcui_view_multi_call_list_create_layout_main(Evas_Object *parent) @@ -294,12 +302,11 @@ static Evas_Object *__vcui_view_multi_call_list_create_layout_main(Evas_Object * ly = elm_layout_add(parent); retvm_if(ly == NULL, NULL, "Failed elm_layout_add."); - elm_layout_theme_set(ly, "standard", "window", "integration"); + elm_layout_theme_set(ly, "layout", "application", "default"); evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(parent, ly); - edje_object_signal_emit(_EDJ(ly), "elm,state,show,indicator", "elm"); - edje_object_signal_emit(_EDJ(ly), "elm,state,show,content", "elm"); + elm_win_indicator_mode_set(ly, ELM_WIN_INDICATOR_SHOW); evas_object_show(ly); return ly; @@ -310,9 +317,6 @@ static int __vcui_view_multi_call_list_oncreate(voice_call_view_data_t *view_dat CALL_UI_DEBUG("multicall-list view create"); voice_call_view_data_t *vd = view_data; - vcui_view_multi_call_list_priv_t *priv = (vcui_view_multi_call_list_priv_t *)vd->priv; - - itc_call = elm_genlist_item_class_new(); if (!vd->layout) { vd->layout = __vcui_view_multi_call_list_create_layout_main(vd->app_data->win_main); @@ -320,19 +324,6 @@ static int __vcui_view_multi_call_list_oncreate(voice_call_view_data_t *view_dat CALL_UI_DEBUG("ERROR"); return VC_ERROR; } - priv->contents = __vcui_view_multi_call_list_create_contents(vd, GRP_MULTICALL); - elm_object_part_content_set(vd->layout, "elm.swallow.content", priv->contents); - - priv->navi_frame = __vcui_view_multi_call_list_create_navigation_layout(vd->layout); - elm_object_part_content_set(priv->contents, "navigation_bar", priv->navi_frame); - - __vcui_view_multi_call_list_create_navigationframe_layout(vd); - - evas_object_name_set(priv->contents, "MULTIVIEWLIST"); - CALL_UI_DEBUG("[========== MULTIVIEWLIST: priv->contents Addr : [%p] ==========]", priv->contents); - - __vcui_view_multi_call_list_genlist_add(vd); - __vcui_view_multi_call_list_genlist_init(vd); } else { CALL_UI_DEBUG("[UI]ad->layout_multicall != NULL case "); evas_object_show(vd->layout); @@ -363,6 +354,50 @@ static int __vcui_view_multi_call_list_onshow(voice_call_view_data_t *view_data) { CALL_UI_DEBUG("multicall-list view show"); + vcui_app_call_data_t *ad = view_data->app_data; + vcui_view_multi_call_list_priv_t *priv = (vcui_view_multi_call_list_priv_t *)view_data->priv; + Evas_Object *back_btn = NULL; + Elm_Object_Item *item = NULL; + + if (priv->cid_ly) { + CALL_UI_DEBUG(".."); + evas_object_del(priv->cid_ly); + priv->cid_ly = NULL; + } + + if (priv->contents) { + evas_object_del(priv->contents); + priv->contents = NULL; + } + + if (priv->nf) { + evas_object_del(priv->nf); + priv->nf = NULL; + } + + /* Create naviframe layout */ + priv->nf = __vcui_view_multi_call_list_create_naviframe(view_data->layout); + + if (ad->rotate_angle == 0 || ad->rotate_angle == 180) { + CALL_UI_DEBUG("portrait mode layout"); + priv->contents = __vcui_view_multi_call_list_create_contents(priv->nf, GRP_MULTICALL); + + __vcui_view_multi_call_list_genlist_add(view_data); + __vcui_view_multi_call_list_genlist_init(view_data); + + } else if (ad->rotate_angle == 90 || ad->rotate_angle == 270) { + CALL_UI_DEBUG("landscape mode not supported"); + } + + back_btn = elm_button_add(priv->nf); + elm_object_style_set(back_btn, "naviframe/end_btn/default"); + evas_object_smart_callback_add(back_btn, "clicked", __vcui_view_multi_call_list_back_cb, view_data); + + item = elm_naviframe_item_push(priv->nf, _("IDS_CALL_OPT_CONFERENCE_CALL"), back_btn, NULL, priv->contents, NULL); + + evas_object_name_set(priv->contents, VCUI_VIEW_MULTICALL_LIST_LAYOUT_ID); + CALL_UI_DEBUG("[========== MULTIVIEWLIST: priv->contents Addr : [%p] ==========]", priv->contents); + __vcui_view_multi_call_list_draw_screen(view_data); evas_object_hide(view_data->layout); @@ -388,12 +423,22 @@ static int __vcui_view_multi_call_list_ondestroy(voice_call_view_data_t *view_da evas_object_del(priv->multibox_gl); priv->multibox_gl = NULL; } + if (priv->cid_ly) { + CALL_UI_DEBUG(".."); + evas_object_del(priv->cid_ly); + priv->cid_ly = NULL; + } if (priv->contents) { evas_object_del(priv->contents); priv->contents = NULL; } + if (priv->nf) { + evas_object_del(priv->nf); + priv->nf = NULL; + } + free(priv); priv = NULL; } @@ -410,3 +455,87 @@ static int __vcui_view_multi_call_list_ondestroy(voice_call_view_data_t *view_da CALL_UI_DEBUG("complete destroy multi view list"); return VC_NO_ERROR; } + +int _vcui_view_multi_call_list_check_valid_eo(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + + vcui_view_multi_call_list_priv_t *priv = NULL; + int valid = -1; + + VCUI_RETURN_VALUE_IF_FAIL(vd , -1); + priv = (vcui_view_multi_call_list_priv_t *) vd->priv; + + valid = _vcui_check_valid_eo(priv->contents, VCUI_VIEW_MULTICALL_LIST_LAYOUT_ID); + + return valid; +} + +Evas_Object *_vcui_view_multi_call_list_get_main_layout(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + vcui_view_multi_call_list_priv_t *priv = NULL; + + VCUI_RETURN_NULL_IF_FAIL(vd); + priv = (vcui_view_multi_call_list_priv_t *) vd->priv; + + VCUI_RETURN_NULL_IF_FAIL(priv); + return priv->contents; +} + +int _vcui_view_multi_call_list_get_call_status(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + vcui_view_multi_call_list_priv_t *priv = NULL; + int call_status = 0; + + VCUI_RETURN_INVALID_IF_FAIL(vd); + priv = (vcui_view_multi_call_list_priv_t *) vd->priv; + + VCUI_RETURN_INVALID_IF_FAIL(priv); + if (priv->call_status == CALL_HOLD) { + call_status = CALL_HOLD; + } else { + call_status = CALL_UNHOLD; + } + + return call_status; +} + +void _vcui_view_multi_call_list_set_call_timer(voice_call_view_data_t *vd, char *pcall_dur) +{ + vcui_view_multi_call_list_priv_t *priv = NULL; + + VCUI_RETURN_IF_FAIL(vd); + priv = (vcui_view_multi_call_list_priv_t *) vd->priv; + + VCUI_RETURN_IF_FAIL(priv); + edje_object_part_text_set(_EDJ(priv->contents), "txt_timer", _(pcall_dur)); +} + +Evas_Object *_vcui_view_multi_call_list_get_cid_layout(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + vcui_view_multi_call_list_priv_t *priv = NULL; + + VCUI_RETURN_NULL_IF_FAIL(vd); + priv = (vcui_view_multi_call_list_priv_t *) vd->priv; + + VCUI_RETURN_NULL_IF_FAIL(priv); + return priv->cid_ly; +} + +int _vcui_view_multi_call_list_get_total_members(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + vcui_view_multi_call_list_priv_t *priv = NULL; + + VCUI_RETURN_INVALID_IF_FAIL(vd); + priv = (vcui_view_multi_call_list_priv_t *) vd->priv; + + VCUI_RETURN_INVALID_IF_FAIL(priv); + + return priv->total_members; +} + + diff --git a/ui/src/vcui-view-multi-call-split.c b/ui/src/vcui-view-multi-call-split.c new file mode 100755 index 0000000..2506163 --- /dev/null +++ b/ui/src/vcui-view-multi-call-split.c @@ -0,0 +1,453 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#include "vcui-application.h" +#include "vcui-document.h" +#include "vcui-view-elements.h" +#include "vcui-view-multi-call-split.h" +#include "vcui-view-keypad.h" + +#define VCUI_VIEW_MULTICALL_SPLIT_LAYOUT_ID "MULTIVIEWSPLIT" +typedef struct { + Evas_Object *contents; + Evas_Object *caller_info_unhold; + Evas_Object *caller_info_hold; + Evas_Object *btn_ly; + + Evas_Object *record_btn; + +} incall_multi_view_split_priv_t; + +static int __vcui_view_multi_call_split_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3); +static int __vcui_view_multi_call_split_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2); +static int __vcui_view_multi_call_split_onhide(voice_call_view_data_t *view_data); +static int __vcui_view_multi_call_split_onshow(voice_call_view_data_t *view_data); +static int __vcui_view_multi_call_split_ondestroy(voice_call_view_data_t *view_data); +static void __vcui_multi_view_split_rotation_with_resize(); + +static voice_call_view_data_t s_view = { + .type = VIEW_INCALL_MULTICALL_SPLIT_VIEW, + .app_data = NULL, + .layout = NULL, + .onCreate = __vcui_view_multi_call_split_oncreate, + .onUpdate = __vcui_view_multi_call_split_onupdate, + .onHide = __vcui_view_multi_call_split_onhide, + .onShow = __vcui_view_multi_call_split_onshow, + .onDestroy = __vcui_view_multi_call_split_ondestroy, + .priv = NULL, +}; + +voice_call_view_data_t *_vcui_view_multi_call_split_new(vcui_app_call_data_t *ad) +{ + s_view.app_data = ad; + s_view.priv = calloc(1, sizeof(incall_multi_view_split_priv_t)); + + if (!s_view.priv) { + CALL_UI_DEBUG("ERROR!!!!!!!!!!!"); + } + + return &s_view; +} + +static void __vcui_view_multi_call_split_draw_screen(Evas_Object *eo, void *data) +{ + CALL_UI_DEBUG(".."); + + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + incall_multi_view_split_priv_t *priv = (incall_multi_view_split_priv_t *)vd->priv; + + vcui_app_call_data_t *ad = vd->app_data; + + call_data_t *hold_call_data = NULL; + call_data_t *unhold_call_data = NULL; + + char buf[DEF_BUF_LEN] = { 0, }; + + hold_call_data = _vcui_doc_get_call_data_by_call_status(CALL_HOLD); + unhold_call_data = _vcui_doc_get_call_data_by_call_status(CALL_UNHOLD); + + if ((hold_call_data == NULL) || (unhold_call_data == NULL)) { + CALL_UI_DEBUG("call data is null"); + return; + } + + char *hold_file_path = _vcui_doc_get_caller_id_file_path(hold_call_data); + char *hold_full_file_path = _vcui_doc_get_caller_id_full_file_path(hold_call_data); + char *unhold_file_path = _vcui_doc_get_caller_id_file_path(unhold_call_data); + char *unhold_full_file_path = _vcui_doc_get_caller_id_full_file_path(unhold_call_data); + char *hold_call_number = _vcui_doc_get_call_number(hold_call_data); + char *hold_call_name = _vcui_doc_get_call_display_name(hold_call_data); + char *unhold_call_number = _vcui_doc_get_call_number(unhold_call_data); + char *unhold_call_name = _vcui_doc_get_call_display_name(unhold_call_data); + + if (_vcui_doc_get_unhold_call_data_count() == 1 && _vcui_doc_get_hold_call_data_count() == 1) { + /* in call */ + _vcui_show_contact_image_split(eo, unhold_file_path, unhold_full_file_path, EINA_FALSE); + + if (strlen(unhold_call_name) == 0) { + _vcui_show_caller_info_name(vd, unhold_call_number, EINA_FALSE); + _vcui_show_caller_info_number(vd, NULL, EINA_FALSE); + } else { + _vcui_show_caller_info_name(vd, unhold_call_name, EINA_FALSE); + _vcui_show_caller_info_number(vd, unhold_call_number, EINA_FALSE); + } + + /* on hold */ + _vcui_show_contact_image_split(eo, hold_file_path, hold_full_file_path, EINA_TRUE); + if (strlen(hold_call_name) == 0) { + _vcui_show_caller_info_name(vd, hold_call_number, EINA_TRUE); + _vcui_show_caller_info_number(vd, NULL, EINA_TRUE); + } else { + _vcui_show_caller_info_name(vd, hold_call_name, EINA_TRUE); + _vcui_show_caller_info_number(vd, hold_call_number, EINA_TRUE); + } + + } else if (_vcui_doc_get_unhold_call_data_count() == 1 && _vcui_doc_get_hold_call_data_count() > 1) { + /* in call */ + _vcui_show_contact_image_split(eo, hold_file_path, hold_full_file_path, EINA_FALSE); + + if (strlen(unhold_call_name) == 0) { + _vcui_show_caller_info_name(vd, unhold_call_number, EINA_FALSE); + _vcui_show_caller_info_number(vd, NULL, EINA_FALSE); + } else { + _vcui_show_caller_info_name(vd, unhold_call_name, EINA_FALSE); + _vcui_show_caller_info_number(vd, unhold_call_number, EINA_FALSE); + } + + /* on hold */ + _vcui_show_contact_image_split(eo, CONF_SPLIT_ICON, CONF_SPLIT_ICON, EINA_TRUE); + _vcui_show_caller_info_name(vd, _("IDS_CALL_OPT_CONFERENCE_CALL"), EINA_TRUE); + snprintf(buf, DEF_BUF_LEN, "%d %s", _vcui_doc_get_hold_call_data_count(), _("IDS_CALL_BODY_PEOPLE")); + _vcui_show_caller_info_number(vd, buf, EINA_TRUE); + + } else if (_vcui_doc_get_unhold_call_data_count() > 1 && _vcui_doc_get_hold_call_data_count() == 1) { + /* in call */ + _vcui_show_contact_image_split(eo, CONF_SPLIT_ICON, CONF_SPLIT_ICON, EINA_FALSE); + _vcui_show_caller_info_name(vd, _("IDS_CALL_OPT_CONFERENCE_CALL"), EINA_FALSE); + snprintf(buf, DEF_BUF_LEN, "%d %s", _vcui_doc_get_unhold_call_data_count(), _("IDS_CALL_BODY_PEOPLE")); + _vcui_show_caller_info_number(vd, buf, EINA_FALSE); + + /* on hold */ + _vcui_show_contact_image_split(eo, hold_file_path, hold_full_file_path, EINA_TRUE); + if (strlen(hold_call_name) == 0) { + _vcui_show_caller_info_name(vd, hold_call_number, EINA_TRUE); + _vcui_show_caller_info_number(vd, NULL, EINA_TRUE); + } else { + _vcui_show_caller_info_name(vd, hold_call_name, EINA_TRUE); + _vcui_show_caller_info_number(vd, hold_call_number, EINA_TRUE); + } + + /* enter conf list view */ + } else { + CALL_UI_DEBUG("[=========== ERROR : Invalid Status!!! ============]"); + return; + } + + _vcui_show_call_bg_img(priv->contents); + _vcui_show_caller_info_status(vd, _("IDS_CALL_BODY_ON_HOLD_ABB"), EINA_TRUE); + + _vcui_show_caller_info_icon(vd, EINA_FALSE); + + _vcui_view_common_set_each_time(_vcui_doc_get_call_start_time(unhold_call_data)); + + /*create a small button for Hold/Swap*/ + _vcui_create_hold_swap_button(vd); + + if ((_vcui_is_phonelock_status() == EINA_TRUE) && (_vcui_is_idle_lock() == EINA_TRUE)) { + _vcui_create_top_middle_button_disabled(vd); + } else { + _vcui_create_top_middle_button(vd); + } + + _vcui_create_top_right_button(vd); + _vcui_create_bottom_left_button(vd); + _vcui_create_bottom_middle_button(vd); + + { + if ((_vcui_doc_get_unhold_call_data_count() == 5 && _vcui_doc_get_hold_call_data_count() == 1) + || (_vcui_doc_get_unhold_call_data_count() == 1 && _vcui_doc_get_hold_call_data_count() == 5)) { + _vcui_create_top_left_button_disabled(vd); + } else { + _vcui_create_top_left_button(vd); + } + + _vcui_create_bottom_right_button(vd); + } + + ad->beffect_needed = EINA_FALSE; + + __vcui_multi_view_split_rotation_with_resize(); + + _vcui_elements_check_keypad_n_hide(vd); + + evas_object_show(eo); +} + +static Evas_Object *__vcui_view_multi_call_split_create_contents(void *data, char *group) +{ + if (data == NULL) { + CALL_UI_DEBUG("ERROR"); + return NULL; + } + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + + Evas_Object *eo = NULL; + + /* load edje */ + eo = _vcui_load_edj(vd->app_data->win_main, EDJ_NAME, group); + if (eo == NULL) + return NULL; + + return eo; +} + +static Evas_Object *__vcui_view_multi_call_split_create_layout_main(Evas_Object *parent) +{ + if (parent == NULL) { + CALL_UI_DEBUG("ERROR"); + return NULL; + } + + Evas_Object *ly; + ly = elm_layout_add(parent); + retvm_if(ly == NULL, NULL, "Failed elm_layout_add."); + + elm_layout_theme_set(ly, "standard", "window", "integration"); + evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(parent, ly); + + edje_object_signal_emit(_EDJ(ly), "elm,state,show,indicator", "elm"); + edje_object_signal_emit(_EDJ(ly), "elm,state,show,content", "elm"); + evas_object_show(ly); + + return ly; +} + +static int __vcui_view_multi_call_split_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3) +{ + CALL_UI_DEBUG("multi-split view create"); + + voice_call_view_data_t *vd = view_data; + incall_multi_view_split_priv_t *priv = (incall_multi_view_split_priv_t *)view_data->priv; + + if (!vd->layout) { + Evas_Object * sep_ly = NULL; + vd->layout = __vcui_view_multi_call_split_create_layout_main(vd->app_data->win_main); + if (vd->layout == NULL) { + CALL_UI_DEBUG("ERROR"); + return VC_ERROR; + } + + priv->contents = __vcui_view_multi_call_split_create_contents(view_data, GRP_MULTICALL_SPLIT); + elm_object_part_content_set(view_data->layout, "elm.swallow.content", priv->contents); + + sep_ly = __vcui_view_multi_call_split_create_contents(view_data, GRP_SEPARATOR_LAYOUT); + elm_object_part_content_set(priv->contents, "btn_bg", sep_ly); + + priv->btn_ly = __vcui_view_multi_call_split_create_contents(view_data, GRP_BUTTON_LAYOUT); + elm_object_part_content_set(priv->contents, "btn_region", priv->btn_ly); + + priv->caller_info_unhold = __vcui_view_multi_call_split_create_contents(view_data, GRP_CALLER_INFO); + elm_object_part_content_set(priv->contents, "caller_info_unhold", priv->caller_info_unhold); + + priv->caller_info_hold = __vcui_view_multi_call_split_create_contents(view_data, GRP_CALLER_INFO); + elm_object_part_content_set(priv->contents, "caller_info_hold", priv->caller_info_hold); + edje_object_signal_emit(_EDJ(priv->caller_info_hold), "set-hold-caller_ifno", "call-screen"); + + evas_object_name_set(priv->contents, VCUI_VIEW_MULTICALL_SPLIT_LAYOUT_ID); + CALL_UI_DEBUG("[========== MULTIVIEWSPLIT: priv->contents Addr : [%p] ==========]", priv->contents); + + } else { + CALL_UI_DEBUG("[UI]ad->layout_incall==NULL case "); + evas_object_show(vd->layout); + } + + __vcui_view_multi_call_split_onshow(view_data); + return VC_NO_ERROR; +} + +static int __vcui_view_multi_call_split_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2) +{ + CALL_UI_DEBUG("multi-split view update"); + + __vcui_view_multi_call_split_onshow(view_data); + return VC_NO_ERROR; +} + +static int __vcui_view_multi_call_split_onhide(voice_call_view_data_t *view_data) +{ + CALL_UI_DEBUG("multi-split view hide"); + + evas_object_hide(view_data->layout); + return VC_NO_ERROR; +} + +static int __vcui_view_multi_call_split_onshow(voice_call_view_data_t *view_data) +{ + CALL_UI_DEBUG("multi-split view show"); + + incall_multi_view_split_priv_t *priv = (incall_multi_view_split_priv_t *)view_data->priv; + + __vcui_view_multi_call_split_draw_screen(priv->contents, view_data); + + evas_object_hide(view_data->layout); + evas_object_show(view_data->layout); + return VC_NO_ERROR; +} + +static int __vcui_view_multi_call_split_ondestroy(voice_call_view_data_t *view_data) +{ + CALL_UI_DEBUG("multi-split view destroy"); + + vcui_app_call_data_t *ad = _vcui_get_app_data(); + voice_call_view_data_t *vd = ad->view_st[VIEW_INCALL_MULTICALL_SPLIT_VIEW]; + + incall_multi_view_split_priv_t *priv = (incall_multi_view_split_priv_t *)vd->priv; + if (priv != NULL) { + if (priv->btn_ly) { + evas_object_del(priv->btn_ly); + priv->btn_ly = NULL; + } + + if (priv->caller_info_hold) { + evas_object_del(priv->caller_info_hold); + priv->caller_info_hold = NULL; + } + + if (priv->caller_info_unhold) { + evas_object_del(priv->caller_info_unhold); + priv->caller_info_unhold = NULL; + } + + /*Delete keypad layout*/ + _vcui_keypad_delete_layout(priv->contents); + + if (priv->contents) { + evas_object_del(priv->contents); + priv->contents = NULL; + } + free(priv); + priv = NULL; + } + + if (vd->layout != NULL) { + evas_object_hide(vd->layout); + evas_object_del(vd->layout); + vd->layout = NULL; + } + ad->view_st[VIEW_INCALL_MULTICALL_SPLIT_VIEW] = NULL; + + _vcui_cache_flush(); + + return VC_NO_ERROR; +} + +static void __vcui_multi_view_split_rotation_with_resize() +{ + CALL_UI_DEBUG(".."); + vcui_app_call_data_t *ad = _vcui_get_app_data(); + voice_call_view_data_t *vd = ad->view_st[VIEW_INCALL_MULTICALL_SPLIT_VIEW]; + incall_multi_view_split_priv_t *priv = (incall_multi_view_split_priv_t *)vd->priv; + + elm_win_rotation_with_resize_set(ad->win_main, ad->rotate_angle); + elm_win_rotation_with_resize_set(ad->popup_mw, ad->rotate_angle); + + if (ad->rotate_angle == 0 || ad->rotate_angle == 180) { + CALL_UI_DEBUG("portrait mode signal emit"); + edje_object_signal_emit(_EDJ(priv->contents), "set-portrait", "incall-split-view"); + } else if (ad->rotate_angle == 90 || ad->rotate_angle == 270) { + CALL_UI_DEBUG("landscape mode not supported"); + } + + evas_object_show(vd->layout); +} + +int _vcui_view_multi_call_split_check_valid_eo(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + + incall_multi_view_split_priv_t *priv = NULL; + int valid = -1; + + VCUI_RETURN_VALUE_IF_FAIL(vd , -1); + priv = (incall_multi_view_split_priv_t *) vd->priv; + + valid = _vcui_check_valid_eo(priv->contents, VCUI_VIEW_MULTICALL_SPLIT_LAYOUT_ID); + + return valid; +} + +Evas_Object *_vcui_view_multi_call_split_get_layout(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + incall_multi_view_split_priv_t *priv = NULL; + + VCUI_RETURN_NULL_IF_FAIL(vd); + priv = (incall_multi_view_split_priv_t *) vd->priv; + + VCUI_RETURN_NULL_IF_FAIL(priv); + return priv->contents; +} + +Evas_Object *_vcui_view_multi_call_split_get_button_layout(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + incall_multi_view_split_priv_t *priv = NULL; + + VCUI_RETURN_NULL_IF_FAIL(vd); + priv = (incall_multi_view_split_priv_t *) vd->priv; + + VCUI_RETURN_NULL_IF_FAIL(priv); + return priv->btn_ly; +} + +void _vcui_view_multi_call_split_set_call_timer(voice_call_view_data_t *vd, char *pcall_dur) +{ + incall_multi_view_split_priv_t *priv = NULL; + + VCUI_RETURN_IF_FAIL(vd); + priv = (incall_multi_view_split_priv_t *) vd->priv; + + VCUI_RETURN_IF_FAIL(priv); + edje_object_part_text_set(_EDJ(priv->caller_info_unhold), "txt_timer", _(pcall_dur)); +} + +Evas_Object *_vc_ui_view_multi_call_split_get_caller_info_hold(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + incall_multi_view_split_priv_t *priv = NULL; + + VCUI_RETURN_NULL_IF_FAIL(vd); + priv = (incall_multi_view_split_priv_t *) vd->priv; + + VCUI_RETURN_NULL_IF_FAIL(priv); + return priv->caller_info_hold; +} + +Evas_Object *_vc_ui_view_multi_call_split_get_caller_info_unhold(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + incall_multi_view_split_priv_t *priv = NULL; + + VCUI_RETURN_NULL_IF_FAIL(vd); + priv = (incall_multi_view_split_priv_t *) vd->priv; + + VCUI_RETURN_NULL_IF_FAIL(priv); + return priv->caller_info_unhold; +} + + diff --git a/ui/vcui-view-popup.c b/ui/src/vcui-view-popup.c similarity index 55% rename from ui/vcui-view-popup.c rename to ui/src/vcui-view-popup.c index fe663b9..decca5d 100755 --- a/ui/vcui-view-popup.c +++ b/ui/src/vcui-view-popup.c @@ -16,17 +16,33 @@ #include "vcui-application.h" -#include "vcui-engine-interface.h" +#include "vcui-document.h" #include "vcui-view-popup.h" #include "vcui-view-multi-call-split.h" #include "vcui-view-multi-call-conf.h" #include "vcui-view-multi-call-list.h" #include "vcui-view-single-call.h" #include "vcui-view-common.h" - #define VCONFKEY_BT_HEADSET_NAME "memory/bluetooth/sco_headset_name" +#define VCONFKEY_BT_HEADSET_NAME "memory/bluetooth/sco_headset_name" #define TICKER_TIMEOUT 2 + +#define POPUP_LIST_HD_W 610 +#define POPUP_LIST_ITEM_HD_H 113 + +typedef struct { + Evas_Object *glist; + Evas_Object *btn; + + Elm_Genlist_Item_Class *itc_option_list; + char *text_buffer[3]; +}_second_mtcall_popup_data_t; + +static _second_mtcall_popup_data_t *g_popup_data; + static void __vcui_view_popup_response_cb_vol_voice(void *data, Evas_Object *obj, void *event_info); +static void __vcui_view_popup_response_cb_vol_ringtone(void *data, Evas_Object *obj, void *event_info); +static void __vcui_view_popup_response_cb_vol_bt(void *data, Evas_Object *obj, void *event_info); static void __vcui_view_popup_win_del(void *data) { @@ -118,6 +134,7 @@ static Evas_Object *__vcui_view_popup_create_win(vcui_app_call_data_t *ad, const ecore_x_netwm_window_type_set(xwin, ECORE_X_WINDOW_TYPE_NOTIFICATION); utilx_set_system_notification_level(ecore_x_display_get(), xwin, UTILX_NOTIFICATION_LEVEL_HIGH); + elm_win_rotation_with_resize_set(eo, ad->rotate_angle); evas_object_show(eo); } @@ -128,6 +145,7 @@ void _vcui_view_popup_load(char *popup_msg, double time_out, int bterminate) { CALL_UI_DEBUG("msg:[%s], bterminate:[%d]", popup_msg, bterminate); vcui_app_call_data_t *ad = _vcui_get_app_data(); + char *markup_text = NULL; if (popup_msg == NULL) { return; @@ -146,21 +164,33 @@ void _vcui_view_popup_load(char *popup_msg, double time_out, int bterminate) ad->popup_mw = __vcui_view_popup_create_win(ad, "base"); ad->popup_eo = elm_popup_add(ad->popup_mw); } - evas_object_size_hint_weight_set(ad->popup_eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_object_text_set(ad->popup_eo, popup_msg); - elm_popup_timeout_set(ad->popup_eo, time_out); - if (bterminate == 0) { - evas_object_smart_callback_add(ad->popup_eo, "timeout", __vcui_view_popup_response_cb, ad); + + markup_text = evas_textblock_text_utf8_to_markup(NULL, popup_msg); + if (markup_text) { + evas_object_size_hint_weight_set(ad->popup_eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_object_text_set(ad->popup_eo, markup_text); + elm_popup_timeout_set(ad->popup_eo, time_out); + if (bterminate == 0) { + evas_object_smart_callback_add(ad->popup_eo, "timeout", __vcui_view_popup_response_cb, ad); + } else { + evas_object_smart_callback_add(ad->popup_eo, "timeout", __vcui_view_popup_response_cb_terminate, ad); + } + evas_object_show(ad->popup_eo); + free(markup_text); + markup_text = NULL; } else { - evas_object_smart_callback_add(ad->popup_eo, "timeout", __vcui_view_popup_response_cb_terminate, ad); + evas_object_del(ad->popup_eo); + ad->popup_eo = NULL; + __vcui_view_popup_win_del(ad); + return; } - evas_object_show(ad->popup_eo); } void _vcui_view_popup_replace(char *popup_msg, double time_out, int bterminate) { CALL_UI_DEBUG("msg:[%s], bterminate:[%d]", popup_msg, bterminate); vcui_app_call_data_t *ad = _vcui_get_app_data(); + char *markup_text = NULL; if (ad->popup_eo == NULL) { _vcui_view_popup_load(popup_msg, time_out, bterminate); @@ -178,14 +208,24 @@ void _vcui_view_popup_replace(char *popup_msg, double time_out, int bterminate) #endif } - elm_object_text_set(ad->popup_eo, popup_msg); - elm_popup_timeout_set(ad->popup_eo, time_out); - if (bterminate == 0) { - evas_object_smart_callback_add(ad->popup_eo, "timeout", __vcui_view_popup_response_cb, ad); + markup_text = evas_textblock_text_utf8_to_markup(NULL, popup_msg); + if (markup_text) { + elm_object_text_set(ad->popup_eo, markup_text); + elm_popup_timeout_set(ad->popup_eo, time_out); + if (bterminate == 0) { + evas_object_smart_callback_add(ad->popup_eo, "timeout", __vcui_view_popup_response_cb, ad); + } else { + evas_object_smart_callback_add(ad->popup_eo, "timeout", __vcui_view_popup_response_cb_terminate, ad); + } + evas_object_show(ad->popup_eo); + free(markup_text); + markup_text = NULL; } else { - evas_object_smart_callback_add(ad->popup_eo, "timeout", __vcui_view_popup_response_cb_terminate, ad); + evas_object_del(ad->popup_eo); + ad->popup_eo = NULL; + __vcui_view_popup_win_del(ad); + return; } - evas_object_show(ad->popup_eo); } } @@ -195,11 +235,11 @@ void _vcui_view_popup_load_reject_call(char *name, char *number, int end_app) char msg[DEF_BUF_LEN_LONG] = { 0, }; if (strlen(name) == 0) { - snprintf(msg, sizeof(msg), "%s
%s", number, _("IDS_CALL_POP_REJECTED")); + snprintf(msg, sizeof(msg), "%s\n%s", number, _("IDS_CALL_POP_REJECTED")); } else if (strlen(number) == 0) { - snprintf(msg, sizeof(msg), "%s
%s", name, _("IDS_CALL_POP_REJECTED")); + snprintf(msg, sizeof(msg), "%s\n%s", name, _("IDS_CALL_POP_REJECTED")); } else { - snprintf(msg, sizeof(msg), "%s
%s
%s", name, number, _("IDS_CALL_POP_REJECTED")); + snprintf(msg, sizeof(msg), "%s\n%s\n%s", name, number, _("IDS_CALL_POP_REJECTED")); } _vcui_view_popup_load(msg, POPUP_TIMEOUT_LONG, end_app); @@ -211,7 +251,7 @@ void _vcui_view_popup_load_endcall_time(call_data_t *cd) unsigned long sec = 0; unsigned long min = 0; unsigned long hr = 0; - unsigned long call_duration_in_sec = _vcui_get_diff_now(cd->start_time); + unsigned long call_duration_in_sec = _vcui_get_diff_now(_vcui_doc_get_call_start_time(cd)); char buf[DEF_BUF_LEN] = { 0, }; char msg[DEF_BUF_LEN_LONG] = { 0, }; @@ -220,7 +260,7 @@ void _vcui_view_popup_load_endcall_time(call_data_t *cd) hr = call_duration_in_sec / 3600; snprintf(buf, sizeof(buf), "%c%c:%c%c:%c%c", (int)((hr / 10) + '0'), (int)((hr % 10) + '0'), (int)((min / 10) + '0'), (int)((min % 10) + '0'), (int)((sec / 10) + '0'), (int)((sec % 10) + '0')); - snprintf(msg, sizeof(msg), "%s
%s
%s", cd->call_display, cd->call_num, buf); + snprintf(msg, sizeof(msg), "%s\n%s\n%s", _vcui_doc_get_call_display_name(cd), _vcui_doc_get_call_number(cd), buf); _vcui_view_popup_load(msg, POPUP_TIMEOUT_SHORT, EINA_FALSE); } @@ -234,7 +274,8 @@ static Eina_Bool __vcui_view_popup_timer_cb_vol_ringtone(void *data) { vcui_app_call_data_t *ad = (vcui_app_call_data_t *)data; - ad->vol_ringtone_popup_del_timer = NULL; + __vcui_view_popup_response_cb_vol_ringtone(ad, ad->vol_ringtone_popup_eo, NULL); + return ECORE_CALLBACK_CANCEL; } @@ -250,14 +291,14 @@ static void __vcui_view_popup_vol_update_icon(int volume_level) evas_object_del(icon); } - icon = elm_icon_add(ad->popup_vol_ly); + icon = elm_image_add(ad->popup_vol_ly); evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); - elm_icon_resizable_set(icon, 0, 0); + elm_image_resizable_set(icon, 0, 0); elm_object_part_content_set(ad->popup_vol_ly, "volume_icon", icon); if (volume_level == 0) - elm_icon_file_set(icon, VOLUME_MUTE_ICON, NULL); + elm_image_file_set(icon, VOLUME_MUTE_ICON, NULL); else - elm_icon_file_set(icon, VOLUME_ICON, NULL); + elm_image_file_set(icon, VOLUME_ICON, NULL); } static void __vcui_view_popup_vol_ringtone_changed_cb(void *data, Evas_Object *obj, void *event_info) @@ -273,7 +314,7 @@ static void __vcui_view_popup_vol_ringtone_changed_cb(void *data, Evas_Object *o ad->ringtone_val = (int)value; - _vcui_engine_set_volume_level(VCUI_VOL_RING, ad->ringtone_val); + vcall_engine_set_volume_level(VCALL_ENGINE_VOL_TYPE_RINGTONE, ad->ringtone_val); elm_slider_value_set(obj, ad->ringtone_val); if (ad->vol_ringtone_popup_del_timer) { @@ -309,6 +350,11 @@ static void __vcui_view_popup_response_cb_vol_ringtone(void *data, Evas_Object * ad->voldown_key_longpress_timer = NULL; } + if (ad->vol_ringtone_popup_del_timer) { + ecore_timer_del(ad->vol_ringtone_popup_del_timer); + ad->vol_ringtone_popup_del_timer = NULL; + } + _vcui_cache_flush(); __vcui_view_popup_win_del(ad); return; @@ -320,7 +366,6 @@ void _vcui_view_popup_vol_ringtone(int vol_level) vcui_app_call_data_t *ad = _vcui_get_app_data(); Evas_Object *popup = NULL; Evas_Object *slider = NULL; - Evas_Object *icon = NULL; if (ad->vol_ringtone_popup_eo) { __vcui_view_popup_vol_update_icon(vol_level); @@ -362,7 +407,7 @@ void _vcui_view_popup_vol_ringtone(int vol_level) elm_slider_value_set(slider, vol_level); evas_object_smart_callback_add(slider, "changed", __vcui_view_popup_vol_ringtone_changed_cb, ad); ad->vol_ringtone_popup_del_timer = ecore_timer_add(POPUP_TIMEOUT_SHORT, __vcui_view_popup_timer_cb_vol_ringtone, ad); - evas_object_smart_callback_add(popup, "timeout", __vcui_view_popup_response_cb_vol_ringtone, ad); + evas_object_smart_callback_add(popup, "block,clicked", __vcui_view_popup_response_cb_vol_ringtone, ad); ad->vol_ringtone_slider_eo = slider; evas_object_show(popup); @@ -375,7 +420,7 @@ static Eina_Bool __vcui_view_popup_timer_cb_vol_voice(void *data) vcui_app_call_data_t *ad = (vcui_app_call_data_t *)data; __vcui_view_popup_response_cb_vol_voice(ad, ad->vol_voice_popup_eo, NULL); - ad->vol_voice_popup_del_timer = NULL; + return ECORE_CALLBACK_CANCEL; } @@ -391,7 +436,7 @@ static void __vcui_view_popup_vol_voice_changed_cb(void *data, Evas_Object *obj, value = VOICE_VOL_MIN; ad->voice_vol_val = (int)value; - _vcui_engine_set_volume_level(VCUI_VOL_VOICE, ad->voice_vol_val); + vcall_engine_set_volume_level(VCALL_ENGINE_VOL_TYPE_VOICE, ad->voice_vol_val); elm_slider_value_set(obj, ad->voice_vol_val); if (ad->vol_voice_popup_del_timer) { @@ -424,6 +469,11 @@ static void __vcui_view_popup_response_cb_vol_voice(void *data, Evas_Object *obj ad->voldown_key_longpress_timer = NULL; } + if (ad->vol_voice_popup_del_timer) { + ecore_timer_del(ad->vol_voice_popup_del_timer); + ad->vol_voice_popup_del_timer = NULL; + } + _vcui_cache_flush(); __vcui_view_popup_win_del(ad); return; @@ -434,7 +484,6 @@ void _vcui_view_popup_vol_voice(int vol_level) vcui_app_call_data_t *ad = _vcui_get_app_data(); Evas_Object *popup = NULL; Evas_Object *slider = NULL; - Evas_Object *icon = NULL; if (ad->vol_voice_popup_eo) { elm_slider_value_set(ad->vol_voice_slider_eo, vol_level); @@ -487,7 +536,8 @@ static Eina_Bool __vcui_view_popup_timer_cb_vol_bt(void *data) { vcui_app_call_data_t *ad = (vcui_app_call_data_t *)data; - ad->vol_bt_popup_del_timer = NULL; + __vcui_view_popup_response_cb_vol_bt(ad, ad->vol_bt_popup_eo, NULL); + return ECORE_CALLBACK_CANCEL; } @@ -504,7 +554,7 @@ static void __vcui_view_popup_vol_bt_changed_cb(void *data, Evas_Object *obj, vo ad->bt_vol_val = (int)value; - _vcui_engine_set_volume_level(VCUI_VOL_HEADSET, ad->bt_vol_val); + vcall_engine_set_volume_level(VCALL_ENGINE_VOL_TYPE_HEADSET, ad->bt_vol_val); elm_slider_value_set(obj, ad->bt_vol_val); if (ad->vol_bt_popup_del_timer) { @@ -538,7 +588,13 @@ static void __vcui_view_popup_response_cb_vol_bt(void *data, Evas_Object *obj, v ad->voldown_key_longpress_timer = NULL; } + if (ad->vol_bt_popup_del_timer) { + ecore_timer_del(ad->vol_bt_popup_del_timer); + ad->vol_bt_popup_del_timer = NULL; + } + _vcui_cache_flush(); + __vcui_view_popup_win_del(ad); return; } @@ -547,7 +603,6 @@ void _vcui_view_popup_vol_bt(int vol_level) vcui_app_call_data_t *ad = _vcui_get_app_data(); Evas_Object *popup = NULL; Evas_Object *slider = NULL; - Evas_Object *icon = NULL; if (ad->vol_bt_popup_eo) { elm_slider_value_set(ad->vol_bt_slider_eo, vol_level); @@ -588,7 +643,7 @@ void _vcui_view_popup_vol_bt(int vol_level) elm_slider_value_set(slider, vol_level); evas_object_smart_callback_add(slider, "changed", __vcui_view_popup_vol_bt_changed_cb, ad); ad->vol_bt_popup_del_timer = ecore_timer_add(POPUP_TIMEOUT_SHORT, __vcui_view_popup_timer_cb_vol_bt, ad); - evas_object_smart_callback_add(popup, "timeout", __vcui_view_popup_response_cb_vol_bt, ad); + evas_object_smart_callback_add(popup, "block,clicked", __vcui_view_popup_response_cb_vol_bt, ad); ad->vol_bt_slider_eo = slider; ad->vol_bt_popup_eo = popup; @@ -641,7 +696,7 @@ static void __vcui_view_popup_progressbar_set_label(char *status_string) CALL_UI_DEBUG(".."); Evas_Object *label; vcui_app_call_data_t *ad = _vcui_get_app_data(); - CALL_UI_DEBUG("popup_progress_set_label ...\n"); + CALL_UI_DEBUG("popup_progress_set_label ..."); label = (Evas_Object *)evas_object_data_get(ad->popup_progress_eo, "progress_label"); elm_object_text_set(label, status_string); @@ -650,7 +705,7 @@ static void __vcui_view_popup_progressbar_set_label(char *status_string) static void __vcui_view_popup_progressbar_response_cb(void *data, Evas_Object *obj, void *event_info) { vcui_app_call_data_t *ad = _vcui_get_app_data(); - CALL_UI_DEBUG("__vcui_view_popup_progressbar_response_cb callback=%d\n", (int)event_info); + CALL_UI_DEBUG("__vcui_view_popup_progressbar_response_cb callback=%d", (int)event_info); if (ad->popup_progress_eo) { evas_object_del(ad->popup_progress_eo); @@ -705,7 +760,7 @@ void _vcui_view_popup_load_sending_dtmf(char *status_string, char *dtmf_num) CALL_UI_DEBUG(".."); char msg[DEF_BUF_LEN_LONG] = { 0, }; - snprintf(msg, DEF_BUF_LEN_LONG, "%s
%s", status_string, dtmf_num); + snprintf(msg, DEF_BUF_LEN_LONG, "%s\n%s", status_string, dtmf_num); _vcui_view_popup_load_progress(msg); } @@ -717,7 +772,7 @@ static void __vcui_view_popup_snd_path_bt_cb(void *data, Evas_Object *obj, void elm_radio_value_set(ad->ctxpopup_radio_group_eo, VCUI_SND_PATH_HEADSET); - _vcui_engine_change_sound_path(VCUI_AUDIO_HEADSET); + vcall_engine_change_sound_path(VCALL_ENGINE_AUDIO_HEADSET); ad->speaker_status = EINA_FALSE; ad->headset_status = EINA_TRUE; @@ -728,9 +783,9 @@ static void __vcui_view_popup_snd_path_earjack_cb(void *data, Evas_Object *obj, CALL_UI_DEBUG(".."); vcui_app_call_data_t *ad = (vcui_app_call_data_t *)data; - elm_radio_value_set(ad->ctxpopup_radio_group_eo, VCUI_SND_PATH_EARJACK); + elm_radio_value_set(ad->ctxpopup_radio_group_eo, VCUI_SND_PATH_RECEIVER_EARJACK); - _vcui_engine_change_sound_path(VCUI_AUDIO_EARJACK); + vcall_engine_change_sound_path(VCALL_ENGINE_AUDIO_RECEIVER_EARJACK); ad->speaker_status = EINA_FALSE; ad->headset_status = EINA_FALSE; @@ -743,7 +798,7 @@ static void __vcui_view_popup_snd_path_speaker_cb(void *data, Evas_Object *obj, elm_radio_value_set(ad->ctxpopup_radio_group_eo, VCUI_SND_PATH_SPEAKER); - _vcui_engine_change_sound_path(VCUI_AUDIO_SPEAKER); + vcall_engine_change_sound_path(VCALL_ENGINE_AUDIO_SPEAKER); ad->speaker_status = EINA_TRUE; ad->headset_status = EINA_FALSE; @@ -760,15 +815,16 @@ static void __vcui_view_popup_hide_snd_path_cb(void *data, Evas_Object *obj, voi } } -static void __vcui_view_popup_move_snd_path(Evas_Object *ctxpopup, Evas_Object *win, Evas_Coord touch_x, Evas_Coord touch_y) +static void __vcui_view_popup_move_snd_path(Evas_Object *ctxpopup, Evas_Object *layout, Evas_Coord touch_x, Evas_Coord touch_y) { evas_object_move(ctxpopup, touch_x, touch_y); } -void _vcui_view_popup_load_snd_path() +void _vcui_view_popup_load_snd_path(void *data) { CALL_UI_DEBUG(".."); vcui_app_call_data_t *ad = _vcui_get_app_data(); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; int bearjack_status = EINA_FALSE; Evas_Object *ctxpopup = NULL; @@ -797,11 +853,11 @@ void _vcui_view_popup_load_snd_path() ad->ctxpopup_eo = NULL; } - ctxpopup = elm_ctxpopup_add(ad->win_main); + ctxpopup = elm_ctxpopup_add(vd->layout); evas_object_smart_callback_add(ctxpopup, "dismissed", __vcui_view_popup_hide_snd_path_cb, ad); - __vcui_view_popup_move_snd_path(ctxpopup, ad->win_main, ad->touch_x, ad->touch_y); + __vcui_view_popup_move_snd_path(ctxpopup, vd->layout, ad->touch_x, ad->touch_y); /* bt headset */ group = radio = elm_radio_add(ctxpopup); @@ -812,9 +868,9 @@ void _vcui_view_popup_load_snd_path() /* earjack or receiver */ radio = elm_radio_add(ctxpopup); - elm_radio_state_value_set(radio, VCUI_SND_PATH_EARJACK); + elm_radio_state_value_set(radio, VCUI_SND_PATH_RECEIVER_EARJACK); elm_radio_group_add(radio, group); - evas_object_data_set(radio, "idx", (void *)(VCUI_SND_PATH_EARJACK)); + evas_object_data_set(radio, "idx", (void *)(VCUI_SND_PATH_RECEIVER_EARJACK)); evas_object_show(radio); if (bearjack_status) { elm_ctxpopup_item_append(ctxpopup, _("IDS_CALL_BUTTON_HEADPHONES"), radio, __vcui_view_popup_snd_path_earjack_cb, ad); @@ -830,22 +886,21 @@ void _vcui_view_popup_load_snd_path() evas_object_show(radio); elm_ctxpopup_item_append(ctxpopup, _("IDS_CALL_BUTTON_SPEAKER"), radio, __vcui_view_popup_snd_path_speaker_cb, ad); /* current sound path set */ - snd_path = _vcui_engine_get_sound_path(); + vcall_engine_get_sound_path(&snd_path); switch (snd_path) { - case VCUI_AUDIO_SPEAKER: + case VCALL_ENGINE_AUDIO_SPEAKER: { elm_radio_value_set(group, VCUI_SND_PATH_SPEAKER); } break; - case VCUI_AUDIO_HEADSET: + case VCALL_ENGINE_AUDIO_HEADSET: { elm_radio_value_set(group, VCUI_SND_PATH_HEADSET); } break; - case VCUI_AUDIO_EARJACK: - case VCUI_AUDIO_RECEIVER: + case VCALL_ENGINE_AUDIO_RECEIVER_EARJACK: { - elm_radio_value_set(group, VCUI_SND_PATH_EARJACK); + elm_radio_value_set(group, VCUI_SND_PATH_RECEIVER_EARJACK); } break; default: @@ -863,7 +918,7 @@ void _vcui_view_popup_load_snd_path() #if 0 static Eina_Bool __vcui_view_ticker_response_cb(void *data) { - vcui_app_call_data_t *ad = (vcui_app_call_data_t *) data; + vcui_app_call_data_t *ad = (vcui_app_call_data_t *)data; CALL_UI_DEBUG(".."); if (ad->ticker_tm) { @@ -881,12 +936,13 @@ void _vcui_view_create_ticker_noti(char *ticker_msg) Evas_Object *ticker_noti = NULL; vcui_app_call_data_t *ad = _vcui_get_app_data(); - CALL_UI_DEBUG("load_ticker_noti_at_bottom enter \n"); + CALL_UI_DEBUG("load_ticker_noti_at_bottom enter"); - ticker_noti = elm_tickernoti_add (NULL); + ticker_noti = elm_tickernoti_add(NULL); elm_object_style_set(ticker_noti, "info"); elm_object_text_set(ticker_noti, ticker_msg); elm_tickernoti_orient_set(ticker_noti, ELM_TICKERNOTI_ORIENT_BOTTOM); + elm_tickernoti_rotation_set(ticker_noti, ad->rotate_angle); if (ad->ticker_tm) { ecore_timer_del(ad->ticker_tm); ad->ticker_tm = NULL; @@ -894,6 +950,411 @@ void _vcui_view_create_ticker_noti(char *ticker_msg) ad->ticker_tm = ecore_timer_add(TICKER_TIMEOUT, __vcui_view_ticker_response_cb, ad); evas_object_show(ticker_noti); - CALL_UI_DEBUG("load_ticker_noti_at_bottom over \n"); + CALL_UI_DEBUG("load_ticker_noti_at_bottom over"); } #endif + +static Eina_Bool __vcui_view_send_dtmf_idler_cb(void *data) +{ + CALL_UI_DEBUG(".."); + gboolean bsuccess = TRUE; + + if (strncmp(elm_object_text_get((Evas_Object *)data), "Send", 4) == 0) { + bsuccess = TRUE; + } else if (strncmp(elm_object_text_get((Evas_Object *)data), "Cancel", 6) == 0) { + bsuccess = FALSE; + } + CALL_UI_DEBUG("bsuccess %d", bsuccess); + vcall_engine_send_dtmf(bsuccess); + + return EINA_FALSE; +} + +static void __vcui_view_dtmf_popup_response_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG(".."); + vcui_app_call_data_t *ad = (vcui_app_call_data_t *)data; + + ecore_idler_add((Ecore_Task_Cb) __vcui_view_send_dtmf_idler_cb, obj); + if (ad->popup_eo) { + CALL_UI_DEBUG("popup eo delete."); + evas_object_hide(ad->popup_eo); + evas_object_del(ad->popup_eo); + ad->popup_eo = NULL; + } + _vcui_cache_flush(); + __vcui_view_popup_win_del(ad); + return; +} + +void _vcui_view_load_send_dtmf_popup_with_buttons(char *status_string, char *dtmf_num) +{ + vcui_app_call_data_t *ad = _vcui_get_app_data(); + char popup_msg[DEF_BUF_LEN_LONG] = { 0, }; + Evas_Object *btn1 = NULL; + Evas_Object *btn2 = NULL; + + snprintf(popup_msg, DEF_BUF_LEN_LONG, "%s\n%s", status_string, dtmf_num); + CALL_UI_DEBUG("msg:[%s]", popup_msg); + + _vcui_view_popup_unload_progress(ad); + _vcui_view_popup_unload(ad->popup_eo); + + ad->popup_mw = __vcui_view_popup_create_win(ad, "base"); + ad->popup_eo = elm_popup_add(ad->popup_mw); + evas_object_size_hint_weight_set(ad->popup_eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_object_text_set(ad->popup_eo, popup_msg); + btn1 = elm_button_add(ad->popup_eo); + elm_object_text_set(btn1, "Send"); + elm_object_part_content_set(ad->popup_eo, "button1", btn1); + evas_object_smart_callback_add(btn1, "clicked", __vcui_view_dtmf_popup_response_cb, ad); + btn2 = elm_button_add(ad->popup_eo); + elm_object_text_set(btn2, "Cancel"); + elm_object_part_content_set(ad->popup_eo, "button2", btn2); + evas_object_smart_callback_add(btn2, "clicked", __vcui_view_dtmf_popup_response_cb, ad); + evas_object_show(ad->popup_eo); +} + +void _vcui_view_popup_second_mtcall_unload(void *data) +{ + CALL_UI_DEBUG(".."); + vcui_app_call_data_t *ad = _vcui_get_app_data(); + _second_mtcall_popup_data_t *p_popup_data = (_second_mtcall_popup_data_t *) data; + int iter = 0; + + if (p_popup_data != NULL) { + + while (iter < 3) { + if (p_popup_data->text_buffer[iter] != NULL) { + CALL_UI_DEBUG("Free the string %d buffer", iter); + free(p_popup_data->text_buffer[iter]); + p_popup_data->text_buffer[iter] = NULL; + } + iter++; + } + + if (p_popup_data->itc_option_list != NULL) { + elm_genlist_item_class_free(p_popup_data->itc_option_list); + p_popup_data->itc_option_list = NULL; + } + + free(p_popup_data); + p_popup_data = NULL; + + _vcui_view_set_second_mtcall_popup_data(NULL); + } + + _vcui_view_popup_unload(ad->popup_eo); +} + +static char *__second_mtcall_option_list_gl_label_get_option(void *data, Evas_Object *obj, const char *part) +{ + VCUI_RETURN_NULL_IF_FAIL(part != NULL); + CALL_UI_DEBUG(".."); + _second_mtcall_popup_data_t *p_popup_data = (_second_mtcall_popup_data_t *) _vcui_view_get_second_mtcall_popup_data(); + char *list_text = NULL; + + list_text = p_popup_data->text_buffer[(int) data]; + CALL_UI_DEBUG("list_text: %s", list_text); + + if (strcmp(part, "elm.text") == 0) { + CALL_UI_DEBUG(".."); + if (list_text != NULL) { + return strdup(list_text); + } else { + return NULL; + } + } + + return NULL; +} + +static void __second_mtcall_option_list_gl_sel_option(void *data, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG(".."); + Elm_Object_Item *item = (Elm_Object_Item *) event_info; + int index = -1; + int unhold_call_count = 0; + int hold_call_count = 0; + + if (item != NULL) { + + index = (int) elm_object_item_data_get(item); + CALL_UI_DEBUG("index: %d", index); + + unhold_call_count = _vcui_doc_get_unhold_call_data_count(); + hold_call_count = _vcui_doc_get_hold_call_data_count(); + + if ((unhold_call_count >= 1) && (hold_call_count == 0)) { + CALL_UI_DEBUG("1 active call OR 1 active conference call"); + if (index == 0) { + vcall_engine_answer_call_by_type(VCALL_ENGINE_ANSWER_HOLD_ACTIVE_AND_ACCEPT); + } else if (index == 1) { + vcall_engine_answer_call_by_type(VCALL_ENGINE_ANSWER_RELEASE_ACTIVE_AND_ACCEPT); + } else { + CALL_UI_DEBUG("Wrong index.. Should never get here"); + } + } else if ((unhold_call_count == 1 && hold_call_count == 1) || (unhold_call_count > 1 && hold_call_count == 1) || \ + (unhold_call_count == 1 && hold_call_count > 1)) { + CALL_UI_DEBUG("1 active call + 1 held call OR 1 active conf call + 1 held call OR 1 active call + 1 held conf call"); + if (index == 0) { + vcall_engine_answer_call_by_type(VCALL_ENGINE_ANSWER_RELEASE_ACTIVE_AND_ACCEPT); + } else if (index == 1) { + vcall_engine_answer_call_by_type(VCALL_ENGINE_ANSWER_RELEASE_HOLD_AND_ACCEPT); + } else if (index == 2) { + vcall_engine_answer_call_by_type(VCALL_ENGINE_ANSWER_RELEASE_ALL_AND_ACCEPT); + } else { + CALL_UI_DEBUG("Wrong index.. Should never get here"); + } + } + } +} + +static void __second_mtcall_cancel_btn_response_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG(".."); + + _vcui_view_popup_second_mtcall_unload(data); + + _vcui_view_change(VIEW_INCOMING_LOCK_VIEW, -1, NULL, NULL); + + return; +} + +void _vcui_view_popup_second_mtcall_load(char *title_text, int unhold_call_count, int hold_call_count) +{ + CALL_UI_DEBUG(".."); + vcui_app_call_data_t *ad = _vcui_get_app_data(); + _second_mtcall_popup_data_t *popup_data = NULL; + Evas_Object *box = NULL; + + call_data_t *hold_call_data = NULL; + call_data_t *unhold_call_data = NULL; + char *hold_call_number = NULL; + char *hold_call_name = NULL; + char *unhold_call_number = NULL; + char *unhold_call_name = NULL; + char *temp_str = NULL; + + int iter = 0; + + hold_call_data = _vcui_doc_get_call_data_by_call_status(CALL_HOLD); + unhold_call_data = _vcui_doc_get_call_data_by_call_status(CALL_UNHOLD); + + if (unhold_call_data == NULL) { + CALL_UI_DEBUG("call data is null"); + return; + } + + _vcui_view_popup_second_mtcall_unload(NULL); + + ad->popup_eo = elm_popup_add(ad->win_main); + evas_object_size_hint_weight_set(ad->popup_eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_object_style_set(ad->popup_eo, "min_menustyle"); + elm_object_part_text_set(ad->popup_eo, "title,text", title_text); + + popup_data = (_second_mtcall_popup_data_t *) calloc(1, sizeof(_second_mtcall_popup_data_t)); + if (popup_data == NULL) { + CALL_UI_DEBUG("memory allocation failed for popup data.. return"); + return; + } + _vcui_view_set_second_mtcall_popup_data(popup_data); + + popup_data->itc_option_list = elm_genlist_item_class_new(); + + popup_data->itc_option_list->item_style = "1text"; + popup_data->itc_option_list->func.text_get = __second_mtcall_option_list_gl_label_get_option; + popup_data->itc_option_list->func.content_get = NULL; + popup_data->itc_option_list->func.state_get = NULL; + popup_data->itc_option_list->func.del = NULL; + + box = elm_box_add(ad->popup_eo); + + popup_data->glist = elm_genlist_add(box); + evas_object_size_hint_weight_set(popup_data->glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(popup_data->glist, EVAS_HINT_FILL, EVAS_HINT_FILL); + + for (iter = 0; iter < 3; iter++) { + popup_data->text_buffer[iter] = (char *) calloc(1, DEF_BUF_LEN); + memset(popup_data->text_buffer[iter], 0x00, DEF_BUF_LEN); + } + + CALL_UI_DEBUG(".."); + if (hold_call_data != NULL) { + hold_call_number = _vcui_doc_get_call_number(hold_call_data); + hold_call_name = _vcui_doc_get_call_display_name(hold_call_data); + if (strlen(hold_call_name) == 0) + hold_call_name = hold_call_number; + } + + if (unhold_call_data != NULL) { + unhold_call_number = _vcui_doc_get_call_number(unhold_call_data); + unhold_call_name = _vcui_doc_get_call_display_name(unhold_call_data); + if (strlen(unhold_call_name) == 0) + unhold_call_name = unhold_call_number; + } + + if ((unhold_call_count == 1) && (hold_call_count == 0)) { + CALL_UI_DEBUG("1 active call"); + + iter = 0; + temp_str = _("IDS_CALL_BODY_PUTTING_PS_ON_HOLD"); + snprintf(popup_data->text_buffer[iter], DEF_BUF_LEN, temp_str, unhold_call_name); + elm_genlist_item_append(popup_data->glist, popup_data->itc_option_list, (void *)iter, NULL, ELM_GENLIST_ITEM_NONE, __second_mtcall_option_list_gl_sel_option, popup_data); + + iter++; + temp_str = _("IDS_CALL_BODY_ENDING_CALL_WITH_PS"); + snprintf(popup_data->text_buffer[iter], DEF_BUF_LEN, temp_str, unhold_call_name); + elm_genlist_item_append(popup_data->glist, popup_data->itc_option_list, (void *)iter, NULL, ELM_GENLIST_ITEM_NONE, __second_mtcall_option_list_gl_sel_option, popup_data); + + } else if ((unhold_call_count > 1) && (hold_call_count == 0)) { + CALL_UI_DEBUG("1 active conference call"); + + iter = 0; + snprintf(popup_data->text_buffer[iter], DEF_BUF_LEN, "%s (%d)", _("IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"), unhold_call_count); + elm_genlist_item_append(popup_data->glist, popup_data->itc_option_list, (void *)iter, NULL, ELM_GENLIST_ITEM_NONE, __second_mtcall_option_list_gl_sel_option, popup_data); + + iter++; + temp_str = _("IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"); + snprintf(popup_data->text_buffer[iter], DEF_BUF_LEN, temp_str, unhold_call_count); + elm_genlist_item_append(popup_data->glist, popup_data->itc_option_list, (void *)iter, NULL, ELM_GENLIST_ITEM_NONE, __second_mtcall_option_list_gl_sel_option, popup_data); + + } else if ((unhold_call_count == 1) && (hold_call_count == 1)) { + CALL_UI_DEBUG("1 active call + 1 held call"); + + iter = 0; + temp_str = _("IDS_CALL_BODY_ENDING_CALL_WITH_PS"); + snprintf(popup_data->text_buffer[iter], DEF_BUF_LEN, temp_str, unhold_call_name); + elm_genlist_item_append(popup_data->glist, popup_data->itc_option_list, (void *)iter, NULL, ELM_GENLIST_ITEM_NONE, __second_mtcall_option_list_gl_sel_option, popup_data); + + iter++; + temp_str = _("IDS_CALL_BODY_ENDING_CALL_WITH_PS"); + snprintf(popup_data->text_buffer[iter], DEF_BUF_LEN, temp_str, hold_call_name); + elm_genlist_item_append(popup_data->glist, popup_data->itc_option_list, (void *)iter, NULL, ELM_GENLIST_ITEM_NONE, __second_mtcall_option_list_gl_sel_option, popup_data); + + iter++; + strncpy(popup_data->text_buffer[iter], _("IDS_CALL_OPT_END_ALL_CALLS"), DEF_BUF_LEN - 1); + elm_genlist_item_append(popup_data->glist, popup_data->itc_option_list, (void *)iter, NULL, ELM_GENLIST_ITEM_NONE, __second_mtcall_option_list_gl_sel_option, popup_data); + + } else if ((unhold_call_count > 1) && (hold_call_count == 1)) { + CALL_UI_DEBUG("1 active conf call + 1 held call"); + + iter = 0; + temp_str = _("IDS_CALL_BODY_END_ACTIVE_CALLS_HPD"); + snprintf(popup_data->text_buffer[iter], DEF_BUF_LEN, temp_str, unhold_call_count); + elm_genlist_item_append(popup_data->glist, popup_data->itc_option_list, (void *)iter, NULL, ELM_GENLIST_ITEM_NONE, __second_mtcall_option_list_gl_sel_option, popup_data); + + iter++; + temp_str = _("IDS_CALL_BODY_ENDING_CALL_WITH_PS"); + snprintf(popup_data->text_buffer[iter], DEF_BUF_LEN, temp_str, hold_call_name); + elm_genlist_item_append(popup_data->glist, popup_data->itc_option_list, (void *)iter, NULL, ELM_GENLIST_ITEM_NONE, __second_mtcall_option_list_gl_sel_option, popup_data); + + iter++; + strncpy(popup_data->text_buffer[iter], _("IDS_CALL_OPT_END_ALL_CALLS"), DEF_BUF_LEN - 1); + elm_genlist_item_append(popup_data->glist, popup_data->itc_option_list, (void *)iter, NULL, ELM_GENLIST_ITEM_NONE, __second_mtcall_option_list_gl_sel_option, popup_data); + + } else if ((unhold_call_count == 1) && (hold_call_count > 1)) { + CALL_UI_DEBUG("1 active call + 1 held conf call"); + + iter = 0; + temp_str = _("IDS_CALL_BODY_ENDING_CALL_WITH_PS"); + snprintf(popup_data->text_buffer[iter], DEF_BUF_LEN, temp_str, unhold_call_name); + elm_genlist_item_append(popup_data->glist, popup_data->itc_option_list, (void *)iter, NULL, ELM_GENLIST_ITEM_NONE, __second_mtcall_option_list_gl_sel_option, popup_data); + + iter++; + temp_str = _("IDS_CALL_BODY_END_HELD_CALLS_HPD"); + snprintf(popup_data->text_buffer[iter], DEF_BUF_LEN, temp_str, hold_call_count); + elm_genlist_item_append(popup_data->glist, popup_data->itc_option_list, (void *)iter, NULL, ELM_GENLIST_ITEM_NONE, __second_mtcall_option_list_gl_sel_option, popup_data); + + iter++; + strncpy(popup_data->text_buffer[iter], _("IDS_CALL_OPT_END_ALL_CALLS"), DEF_BUF_LEN - 1); + elm_genlist_item_append(popup_data->glist, popup_data->itc_option_list, (void *)iter, NULL, ELM_GENLIST_ITEM_NONE, __second_mtcall_option_list_gl_sel_option, popup_data); + } + + popup_data->btn = elm_button_add(ad->popup_eo); + elm_object_text_set(popup_data->btn, dgettext("sys_string", "IDS_COM_POP_CANCEL")); + elm_object_part_content_set(ad->popup_eo, "button1", popup_data->btn); + evas_object_smart_callback_add(popup_data->btn, "clicked", __second_mtcall_cancel_btn_response_cb, popup_data); + + evas_object_size_hint_min_set(box, POPUP_LIST_HD_W * ad->scale_factor, ((POPUP_LIST_ITEM_HD_H * (iter + 1))) * ad->scale_factor); + evas_object_show(popup_data->glist); + elm_box_pack_end(box, popup_data->glist); + elm_object_content_set(ad->popup_eo, box); + evas_object_show(ad->popup_eo); + +} + +void _vcui_view_set_second_mtcall_popup_data(void *p_popup_data) +{ + g_popup_data = (_second_mtcall_popup_data_t *) p_popup_data; +} + +void *_vcui_view_get_second_mtcall_popup_data(void) +{ + return ((void *) g_popup_data); +} + +static void __vcui_view_popup_hide_more_option(void *data, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG(".."); + vcui_app_call_data_t *ad = (vcui_app_call_data_t *)data; + + if (ad->ctxpopup_eo) { + evas_object_del(ad->ctxpopup_eo); + ad->ctxpopup_eo = NULL; + } +} + +static void __vcui_view_popup_move_more_option(Evas_Object *ctxpopup, Evas_Object *layout, Evas_Coord touch_x, Evas_Coord touch_y) +{ + evas_object_move(ctxpopup, touch_x, touch_y); +} + +static void __vcui_view_popup_manage_conf_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG(".."); + vcui_app_call_data_t *ad = (vcui_app_call_data_t *)data; + if (ad->ctxpopup_eo) { + evas_object_del(ad->ctxpopup_eo); + ad->ctxpopup_eo = NULL; + } + + _vcui_view_change(VIEW_INCALL_MULTICALL_LIST_VIEW, 0, 0, 0); +} + +void _vcui_view_popup_load_more_option(void *data) +{ + CALL_UI_DEBUG(".."); + vcui_app_call_data_t *ad = _vcui_get_app_data(); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + + Evas_Object *ctxpopup = NULL; + int hold_calls = _vcui_doc_get_hold_call_data_count(); + int active_calls = _vcui_doc_get_unhold_call_data_count(); + Evas_Object* icon = NULL; + + if (ad->ctxpopup_eo) { + evas_object_del(ad->ctxpopup_eo); + ad->ctxpopup_eo = NULL; + } + + ctxpopup = elm_ctxpopup_add(vd->layout); + elm_object_style_set(ctxpopup, "more_ctxpopup"); + + evas_object_smart_callback_add(ctxpopup, "dismissed", __vcui_view_popup_hide_more_option, ad); + + if ((active_calls > 1) + || ((active_calls == 0) && (hold_calls > 1))) { + CALL_UI_DEBUG("Manage conference (active:%d, hold:%d)", active_calls, hold_calls); + icon = elm_image_add(ctxpopup); + elm_image_file_set(icon, MORE_MANAGE_CONF_ICON, NULL); + elm_ctxpopup_item_append(ctxpopup, _("IDS_CALL_HEADER_MANAGE_CONFERENCE_CALL"), icon, __vcui_view_popup_manage_conf_cb, ad); + } + + elm_ctxpopup_direction_priority_set(ctxpopup, ELM_CTXPOPUP_DIRECTION_DOWN, ELM_CTXPOPUP_DIRECTION_LEFT, + ELM_CTXPOPUP_DIRECTION_RIGHT, ELM_CTXPOPUP_DIRECTION_UP); + __vcui_view_popup_move_more_option(ctxpopup, vd->layout, MORE_MENU_CTXPOPUP_X, MORE_MENU_CTXPOPUP_Y); + evas_object_show(ctxpopup); + ad->ctxpopup_eo = ctxpopup; +} + diff --git a/ui/src/vcui-view-quickpanel.c b/ui/src/vcui-view-quickpanel.c new file mode 100755 index 0000000..e68bdcf --- /dev/null +++ b/ui/src/vcui-view-quickpanel.c @@ -0,0 +1,472 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#include "vcui-application.h" +#include "vcui-view-elements.h" +#include "vcui-view-quickpanel.h" +#include + +#define VIEW_QUICKPANEL_LAYOUT_ID "QUICKPANELVIEW" +typedef struct { + Evas_Object *caller_id; + int rotate_angle; + Ecore_Event_Handler *client_msg_handler; +} vcui_view_qp_priv_t; + +static int __vcui_view_qp_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3); +static int __vcui_view_qp_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2); +static int __vcui_view_qp_onhide(voice_call_view_data_t *view_data); +static int __vcui_view_qp_onshow(voice_call_view_data_t *view_data); +static int __vcui_view_qp_ondestroy(voice_call_view_data_t *view_data); +static void __vcui_view_qp_caller_id_cb(void *data, Evas_Object *obj, void *event_info); +static Eina_Bool __vcui_qp_client_message_cb(void *data, int type, void *event); + +static voice_call_view_data_t s_view = { + .type = VIEW_QUICKPANEL_VIEW, + .app_data = NULL, + .layout = NULL, + .onCreate = __vcui_view_qp_oncreate, + .onUpdate = __vcui_view_qp_onupdate, + .onHide = __vcui_view_qp_onhide, + .onShow = __vcui_view_qp_onshow, + .onDestroy = __vcui_view_qp_ondestroy, + .priv = NULL, +}; + +static Eina_Bool __vcui_qp_client_message_cb(void *data, int type, void *event) +{ + CALL_UI_DEBUG(".."); + int new_angle = 0; + Ecore_X_Event_Client_Message *ev = (Ecore_X_Event_Client_Message *) event; + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + vcui_app_call_data_t *ad = vd->app_data; + vcui_view_qp_priv_t *priv = (vcui_view_qp_priv_t *)vd->priv; + + CALL_UI_DEBUG("message_type: %d", ev->message_type); + if ((ev->message_type == ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE) + || (ev->message_type == ECORE_X_ATOM_E_ILLUME_ROTATE_ROOT_ANGLE)) { + new_angle = ev->data.l[0]; + CALL_UI_DEBUG("ROTATION: %d", new_angle); + priv->rotate_angle = new_angle; + elm_win_rotation_with_resize_set(ad->win_quickpanel, new_angle); + __vcui_view_qp_onshow(vd); + } + + return ECORE_CALLBACK_RENEW; +} + +static void __vcui_view_qp_caller_id_cb(void *data, Evas_Object *obj, void *event_info) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + vcui_app_call_data_t *ad = vd->app_data; + + elm_win_raise(ad->win_main); +} + +voice_call_view_data_t *_vcui_view_qp_new(vcui_app_call_data_t *ad) +{ + s_view.app_data = ad; + s_view.priv = calloc(1, sizeof(vcui_view_qp_priv_t)); + + if (!s_view.priv) { + CALL_UI_DEBUG("ERROR!!!!!!!!!!! "); + } + + return &s_view; +} + +static void __vcui_view_qp_draw_contact_image(Evas_Object *eo, call_data_t *pcall_data) +{ + CALL_UI_DEBUG(".."); + vcui_app_call_data_t *ad = _vcui_get_app_data(); + voice_call_view_data_t *vd = ad->view_st[VIEW_QUICKPANEL_VIEW]; + + vcui_view_qp_priv_t *priv = (vcui_view_qp_priv_t *)vd->priv; + + if (pcall_data == NULL) + return; + + _vcui_delete_contact_image(eo); + char *file_path = _vcui_doc_get_caller_id_file_path(pcall_data); + if (strcmp(file_path, NOIMG_ICON) == 0) { + priv->caller_id = _vcui_show_default_image(eo, ad->win_quickpanel, QP_NOIMG_ICON); + } else { + priv->caller_id = _vcui_show_default_image(eo, ad->win_quickpanel, file_path); + } +} + +static void __vcui_view_qp_update_caller(Evas_Object *eo, call_data_t *pcall_data) +{ + CALL_UI_DEBUG(".."); + + if (pcall_data == NULL) + return; + + char *call_number = _vcui_doc_get_call_number(pcall_data); + char *call_name = _vcui_doc_get_call_display_name(pcall_data); + if (strlen(call_name) == 0) { + edje_object_part_text_set(_EDJ(eo), "txt_call_name", call_number); + } else { + edje_object_part_text_set(_EDJ(eo), "txt_call_name", call_name); + } +} + +static void __vcui_view_qp_draw_screen(Evas_Object *eo, void *data) +{ + CALL_UI_DEBUG(".."); + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + vcui_app_call_data_t *ad = vd->app_data; + vcui_view_qp_priv_t *priv = (vcui_view_qp_priv_t *)vd->priv; + call_data_t *call_data = NULL; + char buf[DEF_BUF_LEN] = {0, }; + + int grp_count = 0; + + vcall_engine_get_group_count(&grp_count); + CALL_UI_DEBUG("No. of groups - %d", grp_count); + if (grp_count > 1) { + CALL_UI_DEBUG("multi-party call - show active call"); + int active_calls = 0; + + active_calls = _vcui_doc_get_unhold_call_data_count(); + CALL_UI_DEBUG("active_calls[%d]", active_calls); + if (active_calls > 1) { + char *temp = _("IDS_QP_BODY_GROUP_CALL_HPD_ABB"); + call_data = _vcui_doc_get_first_call_data_by_unhold_status(); + snprintf(buf, DEF_BUF_LEN, temp, active_calls); + edje_object_part_text_set(_EDJ(eo), "txt_call_name", buf); + priv->caller_id = _vcui_show_default_image(eo, ad->win_quickpanel, QP_CONF_ICON); + } else if (active_calls == 1) { + call_data = _vcui_doc_get_first_call_data_by_unhold_status(); + __vcui_view_qp_update_caller(eo, call_data); + __vcui_view_qp_draw_contact_image(eo, call_data); + } else { + CALL_UI_DEBUG("invalid case"); + } + _vcui_create_quickpanel_mute_button(vd); + _vcui_create_quickpanel_end_button(vd); + } else if (grp_count == 1) { + CALL_UI_DEBUG("single-party call"); + int all_calls = 0; + + all_calls = _vcui_doc_get_all_call_data_count(); + CALL_UI_DEBUG("all_calls[%d]", all_calls); + + if (all_calls > 1) { + char *temp = _("IDS_QP_BODY_GROUP_CALL_HPD_ABB"); + call_data = _vcui_doc_get_first_call_data_from_list(); + snprintf(buf, DEF_BUF_LEN, temp, all_calls); + edje_object_part_text_set(_EDJ(eo), "txt_call_name", buf); + priv->caller_id = _vcui_show_default_image(eo, ad->win_quickpanel, QP_CONF_ICON); + } else if (all_calls == 1) { + call_data = _vcui_doc_get_first_call_data_from_list(); + __vcui_view_qp_update_caller(eo, call_data); + __vcui_view_qp_draw_contact_image(eo, call_data); + } else { + CALL_UI_DEBUG("invalid case"); + } + + int caller_status = _vcui_doc_get_call_status(call_data); + if (caller_status == CALL_HOLD) { + CALL_UI_DEBUG("Hold call status"); + _vcui_create_quickpanel_unhold_button(vd); + } else { + _vcui_create_quickpanel_mute_button(vd); + } + + } else { + CALL_UI_DEBUG("dialing/connecting view"); + call_data = _vcui_doc_get_call_data_mo_type(); + __vcui_view_qp_update_caller(eo, call_data); + __vcui_view_qp_draw_contact_image(eo, call_data); + } + _vcui_create_quickpanel_end_button(vd); + + evas_object_smart_callback_add(priv->caller_id, "clicked", __vcui_view_qp_caller_id_cb, vd); + + if (!_vcui_doc_get_no_status_call_data_count()) { + CALL_UI_DEBUG("no calls with NO_STATUS - update the timer"); + if (call_data != NULL) + _vcui_view_common_set_each_time(_vcui_doc_get_call_start_time(call_data)); + } else { + _vcui_view_qp_update_text_status(vd, _("IDS_CALL_POP_CALLING")); + } +} + +static Evas_Object *__vcui_view_qp_create_window(void) +{ + Evas_Object *win; + double scale = elm_config_scale_get(); + + win = minicontrol_win_add("voicecall-quickpanel"); + evas_object_resize(win, QUICKPANEL_WIDTH * scale, QUICKPANEL_HEIGHT * scale); + + return win; +} + +static Evas_Object *__vcui_view_qp_create_layout_main(Evas_Object *parent) +{ + if (parent == NULL) { + CALL_UI_DEBUG("ERROR"); + return NULL; + } + + Evas_Object *ly; + ly = elm_layout_add(parent); + retvm_if(ly == NULL, NULL, "Failed elm_layout_add."); + + elm_layout_theme_set(ly, "standard", "window", "integration"); + evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(parent, ly); + + edje_object_signal_emit(_EDJ(ly), "elm,state,show,indicator", "elm"); + edje_object_signal_emit(_EDJ(ly), "elm,state,show,content", "elm"); + + return ly; +} + +static Evas_Object *__vcui_view_qp_create_contents(void *data, char *group) +{ + if (data == NULL) { + CALL_UI_DEBUG("ERROR"); + return NULL; + } + voice_call_view_data_t *vd = (voice_call_view_data_t *)data; + vcui_app_call_data_t *ad = vd->app_data; + Evas_Object *eo = NULL; + + /* load edje */ + eo = _vcui_load_edj(ad->win_quickpanel, EDJ_NAME, group); + + if (eo == NULL) + return NULL; + + return eo; +} + +static int __vcui_view_qp_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3) +{ + CALL_UI_DEBUG("quickpanel view create!!"); + + voice_call_view_data_t *vd = view_data; + vcui_app_call_data_t *ad = vd->app_data; + vcui_view_qp_priv_t *priv = (vcui_view_qp_priv_t *)vd->priv; + + if (!vd->layout) { + ad->win_quickpanel = __vcui_view_qp_create_window(); + if (ad->win_quickpanel == NULL) { + CALL_UI_DEBUG("ERROR"); + return VC_ERROR; + } + priv->rotate_angle = elm_win_rotation_get(ad->win_quickpanel); + CALL_UI_DEBUG("current rotate angle(%d)", priv->rotate_angle); + + vd->layout = __vcui_view_qp_create_layout_main(ad->win_quickpanel); + if (vd->layout == NULL) { + CALL_UI_DEBUG("ERROR"); + return VC_ERROR; + } + } + + if (priv->client_msg_handler == NULL) + priv->client_msg_handler = ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, __vcui_qp_client_message_cb, vd); + + __vcui_view_qp_onshow(view_data); + return VC_NO_ERROR; +} + +static int __vcui_view_qp_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2) +{ + CALL_UI_DEBUG("quickpanel view update!!"); + + __vcui_view_qp_onshow(view_data); + return VC_NO_ERROR; +} + +static int __vcui_view_qp_onhide(voice_call_view_data_t *view_data) +{ + CALL_UI_DEBUG("quickpanel view hide!!"); + + evas_object_hide(view_data->layout); + return VC_NO_ERROR; +} + +static int __vcui_view_qp_onshow(voice_call_view_data_t *view_data) +{ + CALL_UI_DEBUG("quickpanel view show!!"); + vcui_app_call_data_t *ad = view_data->app_data; + vcui_view_qp_priv_t *priv = (vcui_view_qp_priv_t *)view_data->priv; + + if (ad->quickpanel_layout) { + evas_object_del(ad->quickpanel_layout); + ad->quickpanel_layout = NULL; + } + + if (priv->rotate_angle == 0 || priv->rotate_angle == 180) { + CALL_UI_DEBUG("portrait mode layout"); + evas_object_resize(ad->win_quickpanel, QUICKPANEL_WIDTH * ad->scale_factor, QUICKPANEL_HEIGHT * ad->scale_factor); + ad->quickpanel_layout = __vcui_view_qp_create_contents(view_data, GRP_QUICKPANEL); + } else if (priv->rotate_angle == 90 || priv->rotate_angle == 270) { + CALL_UI_DEBUG("landscape mode layout"); + evas_object_resize(ad->win_quickpanel, LSCAPE_QUICKPANEL_WIDTH * ad->scale_factor, QUICKPANEL_HEIGHT * ad->scale_factor); + ad->quickpanel_layout = __vcui_view_qp_create_contents(view_data, GRP_QUICKPANEL_LSCAPE); + } + + elm_object_part_content_set(view_data->layout, "elm.swallow.content", ad->quickpanel_layout); + evas_object_name_set(ad->quickpanel_layout, VIEW_QUICKPANEL_LAYOUT_ID); + CALL_UI_DEBUG("[========== QUICKPANEL:ad->quickpanel_layout Addr : [%p] ==========]", ad->quickpanel_layout); + + __vcui_view_qp_draw_screen(ad->quickpanel_layout, view_data); + + return VC_NO_ERROR; +} + +static int __vcui_view_qp_ondestroy(voice_call_view_data_t *view_data) +{ + CALL_UI_DEBUG("quickpanel view destroy!!"); + + vcui_app_call_data_t *ad = _vcui_get_app_data(); + voice_call_view_data_t *vd = ad->view_st[VIEW_QUICKPANEL_VIEW]; + + vcui_view_qp_priv_t *priv = (vcui_view_qp_priv_t *)vd->priv; + + if (priv != NULL) { + if (priv->caller_id) { + evas_object_del(priv->caller_id); + priv->caller_id = NULL; + } + + if (priv->client_msg_handler != NULL) + ecore_event_handler_del(priv->client_msg_handler); + + free(priv); + priv = NULL; + } + + if (ad->quickpanel_layout) { + evas_object_del(ad->quickpanel_layout); + ad->quickpanel_layout = NULL; + } + + if (vd->layout != NULL) { + evas_object_hide(vd->layout); + evas_object_del(vd->layout); + vd->layout = NULL; + } + + ad->view_st[VIEW_QUICKPANEL_VIEW] = NULL; + + if (ad->win_quickpanel) { + evas_object_del(ad->win_quickpanel); + ad->win_quickpanel = NULL; + } + + _vcui_cache_flush(); + return VC_NO_ERROR; +} + +void _vcui_view_qp_update_text_status(voice_call_view_data_t *vd, char *txt_status) +{ + CALL_UI_DEBUG(".."); + vcui_app_call_data_t *ad = NULL; + int valid = 0; + + if (vd == NULL) { + CALL_UI_DEBUG("View Data is NULL"); + return; + } + ad = vd->app_data; + + if (ad->win_quickpanel && ad->quickpanel_layout) { + valid = _vcui_check_valid_eo(ad->quickpanel_layout, VIEW_QUICKPANEL_LAYOUT_ID); + if (valid == -1) { + CALL_UI_DEBUG("[========== QUICKPANELVIEW : Invalid Evas Object, ad->quickpanel_layout : %p ==========]", ad->quickpanel_layout); + return; + } + edje_object_part_text_set(_EDJ(ad->quickpanel_layout), "txt_timer", txt_status); + } + +} + +void _vc_ui_view_qp_set_call_timer(Evas_Object *qp_layout, char *pcall_timer) +{ + int valid = -1; + + VCUI_RETURN_IF_FAIL(qp_layout); + valid = _vcui_check_valid_eo(qp_layout, VIEW_QUICKPANEL_LAYOUT_ID); + if (valid == -1) { + CALL_UI_DEBUG("[========== QUICKPANELVIEW : Invalid Evas Object, ad->quickpanel_layout : %p ==========]", qp_layout); + return; + } + if (!_vcui_doc_get_no_status_call_data_count()) + edje_object_part_text_set(_EDJ(qp_layout), "txt_timer", _(pcall_timer)); +} + +void _vcui_view_qp_install_window(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + Evas_Object *win; + vcui_app_call_data_t *ad = NULL; + + if (vd == NULL) { + CALL_UI_DEBUG("View Data is NULL"); + return; + } + + ad = vd->app_data; + if (ad == NULL) { + CALL_UI_DEBUG("app Data is NULL"); + return; + } + + win = ad->win_quickpanel; + if (ad->win_quickpanel == NULL) { + CALL_UI_DEBUG("QP win is NULL"); + return; + } + evas_object_show(win); + evas_object_show(vd->layout); +} + +void _vcui_view_qp_uninstall_window(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + Evas_Object *win; + vcui_app_call_data_t *ad = NULL; + + if (vd == NULL) { + CALL_UI_DEBUG("View Data is NULL"); + return; + } + + ad = vd->app_data; + if (ad == NULL) { + CALL_UI_DEBUG("app Data is NULL"); + return; + } + + win = ad->win_quickpanel; + if (ad->win_quickpanel == NULL) { + CALL_UI_DEBUG("QP win is NULL"); + return; + } + elm_win_quickpanel_set(win, 0); + + evas_object_hide(ad->win_quickpanel); + evas_object_hide(vd->layout); +} diff --git a/ui/vcui-view-single-call.c b/ui/src/vcui-view-single-call.c similarity index 54% rename from ui/vcui-view-single-call.c rename to ui/src/vcui-view-single-call.c index f9c7e23..f7c7127 100755 --- a/ui/vcui-view-single-call.c +++ b/ui/src/vcui-view-single-call.c @@ -18,13 +18,24 @@ #include "vcui-application.h" #include "vcui-view-common.h" #include "vcui-view-single-call.h" +#include "vcui-view-keypad.h" #include "vcui-view-elements.h" - + +#define VIEW_SINGLE_CALL_LAYOUT_ID "ONEVIEW" +typedef struct { + Evas_Object *contents; + Evas_Object *caller_info; + Evas_Object *btn_ly; + Evas_Object *ic; + Evas_Object *record_btn; +} incall_one_view_priv_t; + static int __vc_ui_view_single_call_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3); static int __vc_ui_view_single_call_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2); static int __vc_ui_view_single_call_onhide(voice_call_view_data_t *view_data); static int __vc_ui_view_single_call_onshow(voice_call_view_data_t *view_data); static int __vc_ui_view_single_call_ondestroy(voice_call_view_data_t *view_data); +static Evas_Object *__vc_ui_view_single_call_create_contents(void *data, char *grpname); static voice_call_view_data_t s_view = { .type = VIEW_INCALL_ONECALL_VIEW, @@ -57,16 +68,17 @@ static void __vc_ui_view_single_call_draw_screen(Evas_Object *eo, void *data) voice_call_view_data_t *vd = (voice_call_view_data_t *)data; incall_one_view_priv_t *priv = (incall_one_view_priv_t *)vd->priv; vcui_app_call_data_t *ad = vd->app_data; + call_data_t *call_data = _vcui_doc_get_first_call_data_from_list(); - if (priv->now_data == NULL) { - CALL_UI_DEBUG("Now Data is NULL"); + if (call_data == NULL) { + CALL_UI_DEBUG("call Data is NULL"); return; } /* ============ Check valid Evas Object ============= */ int valid = 0; CALL_UI_KPI("_vcui_check_valid_eo ONEVIEW start"); - valid = _vcui_check_valid_eo(priv->contents, "ONEVIEW"); + valid = _vcui_check_valid_eo(priv->contents, VIEW_SINGLE_CALL_LAYOUT_ID); CALL_UI_KPI("_vcui_check_valid_eo ONEVIEW done"); if (valid == -1) { CALL_UI_DEBUG("[========== ONEVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents); @@ -74,78 +86,84 @@ static void __vc_ui_view_single_call_draw_screen(Evas_Object *eo, void *data) } /* ============ Check valid Evas Object ============= */ + char *file_path = _vcui_doc_get_caller_id_file_path(call_data); + int caller_status = _vcui_doc_get_call_status(call_data); + /* call image */ - if (strcmp((char *)priv->now_data->call_file_path, NOIMG_ICON) == 0) { + _vcui_delete_contact_image(priv->contents); + if (strcmp(file_path, NOIMG_ICON) == 0) { _vcui_show_wallpaper_image(priv->contents); } else { - CALL_UI_DEBUG("some image case!!"); - _vcui_show_wallpaper_image(priv->contents); - priv->ic = _vcui_show_contact_image(priv->contents, vd->app_data->win_main, priv->now_data->call_file_path); - if (priv->now_data->caller_status == CALL_HOLD) { - double scale_factor = 0.0; - scale_factor = elm_config_scale_get(); - CALL_UI_DEBUG("scale_factor %f", scale_factor); - - if (scale_factor == 1.0) { - edje_object_signal_emit(_EDJ(priv->contents), "SHOW_DIM_HD", "CID_HD"); - } else { - edje_object_signal_emit(_EDJ(priv->contents), "SHOW_DIM_WVGA", "CID_WVGA"); - } - } else { - edje_object_signal_emit(_EDJ(priv->contents), "HIDE_DIM", "CID"); + CALL_UI_DEBUG("Caller ID file_path: %s", file_path); + { + _vcui_show_wallpaper_image(priv->contents); + priv->ic = _vcui_show_contact_image(priv->contents, vd->app_data->win_main, file_path); } } + _vcui_show_call_bg_img(priv->contents); + _vcui_show_caller_info_status(data, _("IDS_CALL_BODY_ON_HOLD_ABB"), EINA_FALSE); + if (caller_status == CALL_HOLD) { + CALL_UI_DEBUG("=================HOLD====================== "); + edje_object_signal_emit(_EDJ(priv->caller_info), "set-hold-state", "call-screen"); + } else { + CALL_UI_DEBUG("=================UNHOLD====================== "); + + edje_object_signal_emit(_EDJ(priv->caller_info), "set-unhold-state", "call-screen"); + } + + char *call_number = _vcui_doc_get_call_number(call_data); + char *call_name = _vcui_doc_get_call_display_name(call_data); /* call name (if nothing, call number) */ CALL_UI_KPI("edje_object_part_text_set start"); - if (strlen((char *)priv->now_data->call_display) == 0) { - edje_object_part_text_set(_EDJ(eo), "txt_call_name", (char *)priv->now_data->call_num); + if (strlen(call_name) == 0) { + _vcui_show_caller_info_name(vd, call_number, EINA_FALSE); } else { - edje_object_part_text_set(_EDJ(eo), "txt_call_name", (char *)priv->now_data->call_display); - edje_object_part_text_set(_EDJ(eo), "txt_contact_phone_type", (char *)priv->now_data->call_num); + _vcui_show_caller_info_name(vd, call_name, EINA_FALSE); + _vcui_show_caller_info_number(vd, call_number, EINA_FALSE); } CALL_UI_KPI("edje_object_part_text_set done"); + _vcui_show_caller_info_icon(vd, EINA_FALSE); + CALL_UI_KPI("_vcui_view_common_set_each_time start"); - _vcui_view_common_set_each_time(priv->now_data->start_time); + _vcui_view_common_set_each_time(_vcui_doc_get_call_start_time(call_data)); CALL_UI_KPI("_vcui_view_common_set_each_time done"); - CALL_UI_KPI("_vcui_create_top_left_button start"); - _vcui_create_top_left_button(vd); - CALL_UI_KPI("_vcui_create_top_left_button done"); - - CALL_UI_KPI("_vcui_create_top_right_button start"); - _vcui_create_top_right_button(vd); - CALL_UI_KPI("_vcui_create_top_right_button done"); + { + CALL_UI_DEBUG(".."); - CALL_UI_KPI("_vcui_create_bottom_left_button start"); - _vcui_create_bottom_left_button(vd); - CALL_UI_KPI("_vcui_create_bottom_left_button done"); + /*create a small button for Hold/Swap*/ + _vcui_create_hold_swap_button(vd); - CALL_UI_KPI("_vcui_create_bottom_middle_button start"); - _vcui_create_bottom_middle_button(vd); - CALL_UI_KPI("_vcui_create_bottom_middle_button done"); + if ((_vcui_is_phonelock_status() == EINA_TRUE) && (_vcui_is_idle_lock() == EINA_TRUE)) { + CALL_UI_KPI("_vcui_create_top_middle_button start"); + _vcui_create_top_middle_button_disabled(vd); + CALL_UI_KPI("_vcui_create_top_middle_button done"); - if ((_vcui_is_phonelock_status() == EINA_TRUE)&&(_vcui_is_idle_lock() == EINA_TRUE)) { - CALL_UI_KPI("_vcui_create_top_middle_button start"); - _vcui_create_top_middle_button_disabled(vd); - CALL_UI_KPI("_vcui_create_top_middle_button done"); + } else { + CALL_UI_KPI("_vcui_create_top_middle_button start"); + _vcui_create_top_middle_button(vd); + CALL_UI_KPI("_vcui_create_top_middle_button done"); - CALL_UI_KPI("_vcui_create_bottom_right_button start"); - _vcui_create_bottom_right_button_disabled(vd); - CALL_UI_KPI("_vcui_create_bottom_right_button done"); - } else { - CALL_UI_KPI("_vcui_create_top_middle_button start"); - _vcui_create_top_middle_button(vd); - CALL_UI_KPI("_vcui_create_top_middle_button done"); + } - _vcui_create_bottom_right_button(vd); - } + CALL_UI_KPI("_vcui_create_top_right_button start"); + _vcui_create_top_right_button(vd); + CALL_UI_KPI("_vcui_create_top_right_button done"); - CALL_UI_KPI("_vcui_create_button_bigend start"); - _vcui_create_button_bigend(vd); - CALL_UI_KPI("_vcui_create_button_bigend done"); + CALL_UI_KPI("_vcui_create_bottom_left_button start"); + _vcui_create_bottom_left_button(vd); + CALL_UI_KPI("_vcui_create_bottom_left_button done"); + CALL_UI_KPI("_vcui_create_bottom_middle_button start"); + _vcui_create_bottom_middle_button(vd); + CALL_UI_KPI("_vcui_create_bottom_middle_button done"); + { + _vcui_create_top_left_button(vd); + _vcui_create_bottom_right_button(vd); + } + } CALL_UI_KPI("edje_object_signal_emit effect start"); if (ad->beffect_needed == EINA_TRUE) { edje_object_signal_emit(_EDJ(priv->contents), "SHOW_EFFECT", "ALLBTN"); @@ -155,12 +173,14 @@ static void __vc_ui_view_single_call_draw_screen(Evas_Object *eo, void *data) } CALL_UI_KPI("edje_object_signal_emit effect done"); + _vcui_elements_check_keypad_n_hide(vd); + CALL_UI_KPI("evas_object_show start"); evas_object_show(eo); CALL_UI_KPI("evas_object_show done"); } -static Evas_Object *__vc_ui_view_single_call_create_contents(void *data) +static Evas_Object *__vc_ui_view_single_call_create_contents(void *data, char *grpname) { if (data == NULL) { CALL_UI_DEBUG("ERROR"); @@ -170,7 +190,7 @@ static Evas_Object *__vc_ui_view_single_call_create_contents(void *data) Evas_Object *eo = NULL; /* load edje */ - eo = _vcui_load_edj(vd->app_data->win_main, EDJ_NAME, GRP_INCALL); + eo = _vcui_load_edj(vd->app_data->win_main, EDJ_NAME, grpname); if (eo == NULL) return NULL; @@ -204,9 +224,10 @@ static int __vc_ui_view_single_call_oncreate(voice_call_view_data_t *view_data, CALL_UI_DEBUG("incall view create"); voice_call_view_data_t *vd = view_data; incall_one_view_priv_t *priv = (incall_one_view_priv_t *)vd->priv; + call_data_t *call_data = _vcui_doc_get_first_call_data_from_list(); + Evas_Object *sep_ly = NULL; - priv->now_data = _vcui_doc_get_first(); - if (priv->now_data == NULL) { + if (call_data == NULL) { CALL_UI_DEBUG("call data is null"); return VC_ERROR; } @@ -222,12 +243,21 @@ static int __vc_ui_view_single_call_oncreate(voice_call_view_data_t *view_data, } CALL_UI_KPI("__vc_ui_view_single_call_create_contents start"); - priv->contents = __vc_ui_view_single_call_create_contents(vd); + priv->contents = __vc_ui_view_single_call_create_contents(vd, GRP_INCALL); elm_object_part_content_set(vd->layout, "elm.swallow.content", priv->contents); CALL_UI_KPI("__vc_ui_view_single_call_create_contents done"); + sep_ly = __vc_ui_view_single_call_create_contents(vd, "separator-layout"); + elm_object_part_content_set(priv->contents, "btn_bg", sep_ly); + + priv->btn_ly = __vc_ui_view_single_call_create_contents(vd, GRP_BUTTON_LAYOUT); + elm_object_part_content_set(priv->contents, "btn_region", priv->btn_ly); + + priv->caller_info = __vc_ui_view_single_call_create_contents(vd, GRP_CALLER_INFO); + elm_object_part_content_set(priv->contents, "caller_info", priv->caller_info); + CALL_UI_KPI("evas_object_name_set start"); - evas_object_name_set(priv->contents, "ONEVIEW"); + evas_object_name_set(priv->contents, VIEW_SINGLE_CALL_LAYOUT_ID); CALL_UI_KPI("evas_object_name_set done"); CALL_UI_DEBUG("[========== ONEVIEW: priv->contents Addr : [%p] ==========]", priv->contents); @@ -262,9 +292,13 @@ static int __vc_ui_view_single_call_onshow(voice_call_view_data_t *view_data) CALL_UI_DEBUG("incall view show"); CALL_UI_KPI("__vc_ui_view_single_call_onshow start"); incall_one_view_priv_t *priv = (incall_one_view_priv_t *)view_data->priv; + call_data_t *call_data = _vcui_doc_get_first_call_data_from_list(); + + /*change the orientation to normal - 0 */ + elm_win_rotation_with_resize_set(view_data->app_data->win_main, 0); + elm_win_rotation_with_resize_set(view_data->app_data->popup_mw, 0); - priv->now_data = _vcui_doc_get_first(); - if (priv->now_data == NULL) { + if (call_data == NULL) { CALL_UI_DEBUG("call data is null"); return VC_ERROR; } @@ -272,7 +306,6 @@ static int __vc_ui_view_single_call_onshow(voice_call_view_data_t *view_data) __vc_ui_view_single_call_draw_screen(priv->contents, view_data); CALL_UI_KPI("__vc_ui_view_single_call_draw_screen done"); - CALL_UI_KPI("incall-one-view hide start"); evas_object_hide(view_data->layout); CALL_UI_KPI("incall-one-view hide done"); @@ -293,6 +326,19 @@ static int __vc_ui_view_single_call_ondestroy(voice_call_view_data_t *view_data) incall_one_view_priv_t *priv = (incall_one_view_priv_t *)vd->priv; if (priv != NULL) { + if (priv->btn_ly) { + evas_object_del(priv->btn_ly); + priv->btn_ly = NULL; + } + + if (priv->caller_info) { + evas_object_del(priv->caller_info); + priv->caller_info = NULL; + } + + /*Delete keypad layout*/ + _vcui_keypad_delete_layout(priv->contents); + if (priv->contents) { evas_object_del(priv->contents); priv->contents = NULL; @@ -314,3 +360,81 @@ static int __vc_ui_view_single_call_ondestroy(voice_call_view_data_t *view_data) CALL_UI_DEBUG("complete destroy one view"); return VC_NO_ERROR; } + +int _vc_ui_view_single_call_check_valid_eo(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + + incall_one_view_priv_t *priv = NULL; + int valid = -1; + + VCUI_RETURN_VALUE_IF_FAIL(vd , -1); + priv = (incall_one_view_priv_t *) vd->priv; + + valid = _vcui_check_valid_eo(priv->contents, VIEW_SINGLE_CALL_LAYOUT_ID); + + return valid; +} + +Evas_Object *_vc_ui_view_single_call_get_layout(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + incall_one_view_priv_t *priv = NULL; + + VCUI_RETURN_NULL_IF_FAIL(vd); + priv = (incall_one_view_priv_t *) vd->priv; + + VCUI_RETURN_NULL_IF_FAIL(priv); + return priv->contents; +} + +Evas_Object *_vc_ui_view_single_call_get_button_layout(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + incall_one_view_priv_t *priv = NULL; + + VCUI_RETURN_NULL_IF_FAIL(vd); + priv = (incall_one_view_priv_t *) vd->priv; + + VCUI_RETURN_NULL_IF_FAIL(priv); + return priv->btn_ly; +} + +int _vc_ui_view_single_call_get_call_status(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + incall_one_view_priv_t *priv = NULL; + call_data_t *call_data = _vcui_doc_get_first_call_data_from_list(); + int call_status = 0; + + VCUI_RETURN_INVALID_IF_FAIL(vd); + priv = (incall_one_view_priv_t *) vd->priv; + + VCUI_RETURN_INVALID_IF_FAIL(call_data); + call_status = _vcui_doc_get_call_status(call_data); + return call_status; +} + +void _vc_ui_view_single_call_set_call_timer(voice_call_view_data_t *vd, char *pcall_dur) +{ + incall_one_view_priv_t *priv = NULL; + + VCUI_RETURN_IF_FAIL(vd); + priv = (incall_one_view_priv_t *) vd->priv; + + VCUI_RETURN_IF_FAIL(priv); + edje_object_part_text_set(_EDJ(priv->caller_info), "txt_timer", _(pcall_dur)); +} + +Evas_Object *_vc_ui_view_single_call_get_caller_info(voice_call_view_data_t *vd) +{ + CALL_UI_DEBUG(".."); + incall_one_view_priv_t *priv = NULL; + + VCUI_RETURN_NULL_IF_FAIL(vd); + priv = (incall_one_view_priv_t *) vd->priv; + + VCUI_RETURN_NULL_IF_FAIL(priv); + return priv->caller_info; +} + diff --git a/ui/themes/bg/vc_button_callend_press.png b/ui/themes/bg/vc_button_callend_press.png new file mode 100644 index 0000000..b68bd66 Binary files /dev/null and b/ui/themes/bg/vc_button_callend_press.png differ diff --git a/ui/themes/bg/vc_button_conflist_hold_normal.png b/ui/themes/bg/vc_button_conflist_hold_normal.png new file mode 100644 index 0000000..1d31a30 Binary files /dev/null and b/ui/themes/bg/vc_button_conflist_hold_normal.png differ diff --git a/ui/themes/bg/vc_button_conflist_hold_press.png b/ui/themes/bg/vc_button_conflist_hold_press.png new file mode 100644 index 0000000..a118dca Binary files /dev/null and b/ui/themes/bg/vc_button_conflist_hold_press.png differ diff --git a/ui/themes/bg/vc_button_hold_swap_normal.png b/ui/themes/bg/vc_button_hold_swap_normal.png new file mode 100644 index 0000000..c95ea48 Binary files /dev/null and b/ui/themes/bg/vc_button_hold_swap_normal.png differ diff --git a/ui/themes/bg/vc_button_hold_swap_press.png b/ui/themes/bg/vc_button_hold_swap_press.png new file mode 100644 index 0000000..c0250f6 Binary files /dev/null and b/ui/themes/bg/vc_button_hold_swap_press.png differ diff --git a/ui/themes/vc_button_press.png b/ui/themes/bg/vc_button_press.png similarity index 100% rename from ui/themes/vc_button_press.png rename to ui/themes/bg/vc_button_press.png diff --git a/ui/themes/bg/vc_button_qp_end_normal.png b/ui/themes/bg/vc_button_qp_end_normal.png new file mode 100644 index 0000000..3322575 Binary files /dev/null and b/ui/themes/bg/vc_button_qp_end_normal.png differ diff --git a/ui/themes/bg/vc_button_qp_end_press.png b/ui/themes/bg/vc_button_qp_end_press.png new file mode 100644 index 0000000..5974217 Binary files /dev/null and b/ui/themes/bg/vc_button_qp_end_press.png differ diff --git a/ui/themes/vc_conference_call_btn_normal.png b/ui/themes/bg/vc_button_qp_normal.png similarity index 86% rename from ui/themes/vc_conference_call_btn_normal.png rename to ui/themes/bg/vc_button_qp_normal.png index 35d2203..30b6d41 100644 Binary files a/ui/themes/vc_conference_call_btn_normal.png and b/ui/themes/bg/vc_button_qp_normal.png differ diff --git a/ui/themes/bg/vc_button_qp_press.png b/ui/themes/bg/vc_button_qp_press.png new file mode 100644 index 0000000..4945248 Binary files /dev/null and b/ui/themes/bg/vc_button_qp_press.png differ diff --git a/ui/themes/vc_button_red_normal.png b/ui/themes/bg/vc_button_red_normal.png similarity index 100% rename from ui/themes/vc_button_red_normal.png rename to ui/themes/bg/vc_button_red_normal.png diff --git a/ui/themes/vc_reject_with_msg_option_header_bt_press.png b/ui/themes/bg/vc_conf_button_bigend_call.png similarity index 94% rename from ui/themes/vc_reject_with_msg_option_header_bt_press.png rename to ui/themes/bg/vc_conf_button_bigend_call.png index f21ad02..eebae2b 100755 Binary files a/ui/themes/vc_reject_with_msg_option_header_bt_press.png and b/ui/themes/bg/vc_conf_button_bigend_call.png differ diff --git a/ui/themes/bg/vc_conf_button_bigend_call_press.png b/ui/themes/bg/vc_conf_button_bigend_call_press.png new file mode 100644 index 0000000..530d0eb Binary files /dev/null and b/ui/themes/bg/vc_conf_button_bigend_call_press.png differ diff --git a/ui/themes/vc_conf_call_list_bg.png b/ui/themes/bg/vc_conf_call_list_bg.png similarity index 100% rename from ui/themes/vc_conf_call_list_bg.png rename to ui/themes/bg/vc_conf_call_list_bg.png diff --git a/ui/themes/bg/vc_conf_end_normal.png b/ui/themes/bg/vc_conf_end_normal.png new file mode 100644 index 0000000..fccdf65 Binary files /dev/null and b/ui/themes/bg/vc_conf_end_normal.png differ diff --git a/ui/themes/bg/vc_conf_end_press.png b/ui/themes/bg/vc_conf_end_press.png new file mode 100644 index 0000000..09a990f Binary files /dev/null and b/ui/themes/bg/vc_conf_end_press.png differ diff --git a/ui/themes/bg/vc_conf_split_normal.png b/ui/themes/bg/vc_conf_split_normal.png new file mode 100644 index 0000000..d320be9 Binary files /dev/null and b/ui/themes/bg/vc_conf_split_normal.png differ diff --git a/ui/themes/bg/vc_conf_split_press.png b/ui/themes/bg/vc_conf_split_press.png new file mode 100644 index 0000000..e61325d Binary files /dev/null and b/ui/themes/bg/vc_conf_split_press.png differ diff --git a/ui/themes/bg/vc_contact_btn.png b/ui/themes/bg/vc_contact_btn.png new file mode 100644 index 0000000..c605990 Binary files /dev/null and b/ui/themes/bg/vc_contact_btn.png differ diff --git a/ui/themes/bg/vc_contact_btn_press.png b/ui/themes/bg/vc_contact_btn_press.png new file mode 100644 index 0000000..e1e8409 Binary files /dev/null and b/ui/themes/bg/vc_contact_btn_press.png differ diff --git a/ui/themes/bg/vc_more_button_normal.png b/ui/themes/bg/vc_more_button_normal.png new file mode 100644 index 0000000..bc3170d Binary files /dev/null and b/ui/themes/bg/vc_more_button_normal.png differ diff --git a/ui/themes/bg/vc_more_button_press.png b/ui/themes/bg/vc_more_button_press.png new file mode 100644 index 0000000..9e30260 Binary files /dev/null and b/ui/themes/bg/vc_more_button_press.png differ diff --git a/ui/themes/vc_six_btn_layout_normal.png b/ui/themes/bg/vc_six_btn_layout_normal.png similarity index 100% rename from ui/themes/vc_six_btn_layout_normal.png rename to ui/themes/bg/vc_six_btn_layout_normal.png diff --git a/ui/themes/vc_six_btn_layout_press.png b/ui/themes/bg/vc_six_btn_layout_press.png similarity index 100% rename from ui/themes/vc_six_btn_layout_press.png rename to ui/themes/bg/vc_six_btn_layout_press.png diff --git a/ui/themes/call_theme.edc b/ui/themes/call_theme.edc old mode 100755 new mode 100644 index dd63238..1038dc6 --- a/ui/themes/call_theme.edc +++ b/ui/themes/call_theme.edc @@ -1,3485 +1,1532 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.tizenopensource.org/license - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "../vcui-view-layout-hd.h" - -#define FONT_SLP_Bold "SLP:style=Bold" -#define FONT_SLP_Medium "SLP:style=Medium" -#define FONT_SLP_Roman "SLP:style=Roman" +#include "../src/include/vcui-view-layout-hd.h" #define BUTTON_STATE_ENABLED 0 #define BUTTON_STATE_DISABLED 1 -#define SCREEN_TYPE "./hd" +#define BG_IMG_PATH "./bg" +#define ICON_IMG_PATH "./icon" + +#define STYLE_CALL_SIX_BUTTON(grp_name, img1, img2, value, vis_value, op, r1, g1, b1, op1, r3, g3, b3, op3) \ + group { name: "elm/button/base/"grp_name; \ + images { \ + image: img1 COMP; \ + image: img2 COMP; \ + } \ + parts { \ + part { name: "button_image"; \ + type: RECT; \ + mouse_events: value; \ + scale: 1; \ + description {state: "default" 0.0; \ + color: COLOR_BG_ALPHA; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + } \ + } \ + part { name: "elm.swallow.content"; \ + description { state: "default" 0.0; \ + visible: vis_value; \ + image { \ + normal: img1; \ + } \ + align: 0.5 0.5; \ + aspect: 0.5 1.0; \ + rel1.relative: 0.0 (22/168); \ + rel2.relative: 1.0 (102/168); \ + aspect_preference: VERTICAL; \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + fixed: 1 0; \ + visible: 1; \ + aspect: 1.0 1.0; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + fixed: 1 0; \ + visible: 1; \ + aspect: 1.0 1.0; \ + image { \ + normal: img2; \ + } \ + } \ + description { state: "icononly" 0.0; \ + inherit: "default" 0.0; \ + fixed: 0 0; \ + visible: 1; \ + align: 0.5 0.5; \ + aspect: 1.0 1.0; \ + rel2.relative: 1.0 (146/168); \ + } \ + } \ + part { name: "elm.text"; \ + type: TEXT; \ + effect: SOFT_SHADOW; \ + mouse_events: 0; \ + scale: 1; \ + description { state: "default" 0.0; \ + visible: 0; \ + fixed: 1 1; \ + rel1.to_y: "elm.swallow.content"; \ + rel1.relative: 0.5 (108/168); \ + rel2.relative: 0.5 (146/168); \ + color: 255 255 255 op; \ + color2: 0 0 0 102; \ + color3: 0 0 0 255; \ + text { \ + font: FONT_SLP_Roman; \ + text_class: TEXT_CLASS_SLP_ROMAN; \ + size: 36; \ + min: 1 1; \ + align: 0.5 0.5; \ + } \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + min: 1 1; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + color: r1 g1 b1 op1; \ + color3: r3 g3 b3 op3; \ + } \ + description { state: "disabled_visible" 0.0; \ + inherit: "default" 0.0; \ + color: r1 g1 b1 op1; \ + color3: r3 g3 b3 op3; \ + visible: 1; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + min: 1 1; \ + } \ + } \ + part { name: "over2"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + rel1 { relative: 0.25 0.1; } \ + rel2 { relative: 0.75 0.9; } \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + part { name: "over3"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + rel1 { relative: 0.25 0.1; } \ + rel2 { relative: 0.75 0.9; } \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + part { name: "disabler"; \ + type: RECT; \ + description { state: "default" 0.0; \ + visible: 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + } \ + programs { \ + program { name: "button_click"; \ + signal: "mouse,down,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,press" ""; \ + after: "button_click_anim"; \ + } \ + program { name: "button_click_anim"; \ + action: STATE_SET "clicked" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + target: "elm.swallow.content"; \ + } \ + program { name: "button_unclick"; \ + signal: "mouse,up,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,unpress" ""; \ + after: "button_unclick_anim"; \ + } \ + program { name: "button_unclick_anim"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + target: "elm.swallow.content"; \ + action: STATE_SET "visible" 0.0; \ + target: "elm.text"; \ + } \ + program { name: "button_mouseout_clicked"; \ + signal: "mouse,out"; \ + source: "over2"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.text", st, 30, vl); \ + if (!strcmp(st, "clicked")) \ + { \ + set_state(PART:"elm.text", "visible", 0.0); \ + set_state(PART:"button_image", "visible", 0.0); \ + } \ + } \ + } \ + program { name: "button_click2"; \ + signal: "mouse,down,1"; \ + source: "over3"; \ + action: STATE_SET "clicked" 0.0; \ + target: "over3"; \ + } \ + program { name: "button_unclick2"; \ + signal: "mouse,up,1"; \ + source: "over3"; \ + action: STATE_SET "default" 0.0; \ + target: "over3"; \ + } \ + program { name: "button_unclick3"; \ + signal: "mouse,up,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,click" ""; \ + } \ + program { name: "text_show"; \ + signal: "elm,state,text,visible"; \ + source: "elm"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.swallow.content", st, 30, vl); \ + if (!strcmp(st, "icononly")) \ + set_state(PART:"elm.swallow.content", "visible", 0.0); \ + set_state(PART:"elm.text", "visible", 0.0); \ + } \ + } \ + program { name: "text_hide"; \ + signal: "elm,state,text,hidden"; \ + source: "elm"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.swallow.content", st, 30, vl); \ + if (!strcmp(st, "visible")) \ + set_state(PART:"elm.swallow.content", "icononly", 0.0); \ + set_state(PART:"elm.text", "default", 0.0); \ + } \ + } \ + program { name: "icon_show"; \ + signal: "elm,state,icon,visible"; \ + source: "elm"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.text", st, 30, vl); \ + if (!strcmp(st, "visible")) \ + set_state(PART:"elm.swallow.content", "visible", 0.0); \ + else \ + set_state(PART:"elm.swallow.content", "icononly", 0.0); \ + } \ + } \ + program { name: "icon_hide"; \ + signal: "elm,state,icon,hidden"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "elm.swallow.content"; \ + } \ + program { name: "disable"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "button_image"; \ + target: "over2"; \ + target: "disabler"; \ + after: "disable_text"; \ + } \ + program { name: "disable_text"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.text", st, 30, vl); \ + if (!strcmp(st, "visible")) \ + set_state(PART:"elm.text", "disabled_visible", 0.0); \ + else \ + set_state(PART:"elm.text", "disabled", 0.0); \ + } \ + } \ + program { name: "enable"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + target: "over2"; \ + target: "disabler"; \ + after: "enable_text"; \ + } \ + program { name: "enable_text"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.text", st, 30, vl); \ + if (!strcmp(st, "disabled_visible")) \ + set_state(PART:"elm.text", "visible", 0.0); \ + else \ + set_state(PART:"elm.text", "default", 0.0); \ + } \ + } \ + program { name: "focused"; \ + signal: "elm,action,focus"; \ + source: "elm"; \ + action: STATE_SET "focused" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + } \ + program { name: "unfocused"; \ + signal: "elm,action,unfocus"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + action: STATE_SET "visible" 0.0; \ + target: "elm.text"; \ + } \ + } \ + } -collections { -////////////// elm/button/base/default -disabled ////////////////////////////////////////////// - group { name: "elm/button/base/style_call_sixbtn_disabled"; - images { - image: "vc_six_btn_layout_normal.png" COMP; - } - parts { - part { name: "button_image"; - mouse_events: 1; - scale: 1; - description { state: "default" 0.0; - image { - normal: "vc_six_btn_layout_normal.png"; - border: 9 9 0 0; - border_scale: 1; - } - color: 255 255 255 102; /*40%*/ - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - } - } - part { name: "elm.swallow.content"; - type: SWALLOW; - description { state: "default" 0.0; - visible: 0; - align: 0.5 0.5; - aspect: 0.5 1.0; - rel1.relative: 0.0 0.0; - rel2.relative: 1.0 0.66; - aspect_preference: VERTICAL; - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - fixed: 1 0; - visible: 1; - aspect: 1.0 1.0; - } - description { state: "icononly" 0.0; - inherit: "default" 0.0; - fixed: 0 0; - visible: 1; - align: 0.5 0.5; - aspect: 1.0 1.0; - rel2.relative: 1.0 1.0; - } - } - part { name: "elm.text"; - type: TEXT; - effect: SOFT_SHADOW; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - visible: 0; - fixed: 1 1; - rel1.to_y: "elm.swallow.content"; - rel1.relative: 0.5 1.0; - rel2.relative: 0.5 1.0; - color: 255 255 255 51; /*opacity : 20%*/ - color2: 0 0 0 102; - color3: 0 0 0 255; - text { - font: FONT_SLP_Roman; - size: 36; - min: 1 1; - align: 0.5 0.5; - } - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - visible: 1; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - } - description { state: "disabled_visible" 0.0; - inherit: "default" 0.0; - visible: 1; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; - } - } - part { name: "over2"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - color: 0 0 0 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part { name: "over3"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 0 0 0 0; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "disabler"; - type: RECT; - description { state: "default" 0.0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - } - programs { - program { name: "button_click"; - signal: "mouse,down,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,press" ""; - after: "button_click_anim"; - } - program { name: "button_click_anim"; - action: STATE_SET "clicked" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "button_unclick"; - signal: "mouse,up,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,unpress" ""; - after: "button_unclick_anim"; - } - program { name: "button_unclick_anim"; - action: STATE_SET "default" 0.0; - target: "button_image"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - program { name: "button_mouseout_clicked"; - signal: "mouse,out"; - source: "over2"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "clicked")) - { - set_state(PART:"elm.text", "visible", 0.0); - set_state(PART:"button_image", "visible", 0.0); - } - } - } - program { name: "button_click2"; - signal: "mouse,down,1"; - source: "over3"; - action: STATE_SET "clicked" 0.0; - target: "over3"; - } - program { name: "button_unclick2"; - signal: "mouse,up,1"; - source: "over3"; - action: STATE_SET "default" 0.0; - target: "over3"; - } - program { name: "button_unclick3"; - signal: "mouse,up,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,click" ""; - } - program { name: "text_show"; - signal: "elm,state,text,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "icononly")) - set_state(PART:"elm.swallow.content", "visible", 0.0); - set_state(PART:"elm.text", "visible", 0.0); - } - } - program { name: "text_hide"; - signal: "elm,state,text,hidden"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.swallow.content", "icononly", 0.0); - set_state(PART:"elm.text", "default", 0.0); - } - } - program { name: "icon_show"; - signal: "elm,state,icon,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.swallow.content", "visible", 0.0); - else - set_state(PART:"elm.swallow.content", "icononly", 0.0); - } - } - program { name: "icon_hide"; - signal: "elm,state,icon,hidden"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "elm.swallow.content"; - } - program { name: "disable"; - signal: "elm,state,disabled"; - source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "button_image"; - target: "over2"; - target: "disabler"; - after: "disable_text"; - } - program { name: "disable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.text", "disabled_visible", 0.0); - else - set_state(PART:"elm.text", "disabled", 0.0); - } - } - program { name: "enable"; - signal: "elm,state,enabled"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - target: "over2"; - target: "disabler"; - after: "enable_text"; - } - program { name: "enable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "disabled_visible")) - set_state(PART:"elm.text", "visible", 0.0); - else - set_state(PART:"elm.text", "default", 0.0); - } - } - program { name: "focused"; - signal: "elm,action,focus"; - source: "elm"; - action: STATE_SET "focused" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "unfocused"; - signal: "elm,action,unfocus"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - } - } - -////////////// elm/button/base/default - pressed ////////////////////////////////////////////// - group { name: "elm/button/base/style_call_sixbtn_pressed"; - images { - image: "vc_six_btn_layout_press.png" COMP; - image: "vc_six_btn_layout_normal.png" COMP; - } - parts { - part { name: "button_image"; - mouse_events: 1; - scale: 1; - description { state: "default" 0.0; - image { - normal: "vc_six_btn_layout_press.png"; - border: 9 9 0 0; - border_scale: 1; - } - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - image.normal: "vc_six_btn_layout_normal.png"; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - } - } - part { name: "elm.swallow.content"; - type: SWALLOW; - description { state: "default" 0.0; - visible: 1; - align: 0.5 0.5; - aspect: 0.5 1.0; - rel1.relative: 0.0 0.0; - rel2.relative: 1.0 0.66; - aspect_preference: VERTICAL; - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - fixed: 1 0; - visible: 1; - aspect: 1.0 1.0; - } - description { state: "icononly" 0.0; - inherit: "default" 0.0; - fixed: 0 0; - visible: 1; - align: 0.5 0.5; - aspect: 1.0 1.0; - rel2.relative: 1.0 1.0; - } - } - part { name: "elm.text"; - type: TEXT; - effect: SOFT_SHADOW; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - visible: 0; - fixed: 1 1; - rel1.to_y: "elm.swallow.content"; - rel1.relative: 0.5 1.0; - rel2.relative: 0.5 1.0; - color: 255 255 255 255; - color2: 0 0 0 102; - color3: 0 0 0 255; - text { - font: FONT_SLP_Roman; - size: 36; - min: 1 1; - align: 0.5 0.5; - } - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - visible: 1; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; - color: 255 255 255 255; - color2: 0 0 0 102; - color3: 0 0 0 255; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - color: 0 0 0 128; - color3: 0 0 0 0; - } - description { state: "disabled_visible" 0.0; - inherit: "default" 0.0; - color: 0 0 0 128; - color3: 0 0 0 0; - visible: 1; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; - color: 255 255 255 255; - color2: 0 0 0 102; - color3: 0 0 0 255; - } - } - part { name: "over2"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - color: 0 0 0 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part { name: "over3"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 0 0 0 0; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "disabler"; - type: RECT; - description { state: "default" 0.0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - } - programs { - program { name: "button_click"; - signal: "mouse,down,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,press" ""; - after: "button_click_anim"; - } - program { name: "button_click_anim"; - action: STATE_SET "clicked" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "button_unclick"; - signal: "mouse,up,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,unpress" ""; - after: "button_unclick_anim"; - } - program { name: "button_unclick_anim"; - action: STATE_SET "default" 0.0; - target: "button_image"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - program { name: "button_mouseout_clicked"; - signal: "mouse,out"; - source: "over2"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "clicked")) - { - set_state(PART:"elm.text", "visible", 0.0); - set_state(PART:"button_image", "visible", 0.0); - } - } - } - program { name: "button_click2"; - signal: "mouse,down,1"; - source: "over3"; - action: STATE_SET "clicked" 0.0; - target: "over3"; - } - program { name: "button_unclick2"; - signal: "mouse,up,1"; - source: "over3"; - action: STATE_SET "default" 0.0; - target: "over3"; - } - program { name: "button_unclick3"; - signal: "mouse,up,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,click" ""; - } - program { name: "text_show"; - signal: "elm,state,text,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "icononly")) - set_state(PART:"elm.swallow.content", "visible", 0.0); - set_state(PART:"elm.text", "visible", 0.0); - } - } - program { name: "text_hide"; - signal: "elm,state,text,hidden"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.swallow.content", "icononly", 0.0); - set_state(PART:"elm.text", "default", 0.0); - } - } - program { name: "icon_show"; - signal: "elm,state,icon,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.swallow.content", "visible", 0.0); - else - set_state(PART:"elm.swallow.content", "icononly", 0.0); - } - } - program { name: "icon_hide"; - signal: "elm,state,icon,hidden"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "elm.swallow.content"; - } - program { name: "disable"; - signal: "elm,state,disabled"; - source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "button_image"; - target: "over2"; - target: "disabler"; - after: "disable_text"; - } - program { name: "disable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.text", "disabled_visible", 0.0); - else - set_state(PART:"elm.text", "disabled", 0.0); - } - } - program { name: "enable"; - signal: "elm,state,enabled"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - target: "over2"; - target: "disabler"; - after: "enable_text"; - } - program { name: "enable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "disabled_visible")) - set_state(PART:"elm.text", "visible", 0.0); - else - set_state(PART:"elm.text", "default", 0.0); - } - } - program { name: "focused"; - signal: "elm,action,focus"; - source: "elm"; - action: STATE_SET "focused" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "unfocused"; - signal: "elm,action,unfocus"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - } - } - -////////////// elm/button/base/default ////////////////////////////////////////////// - group { name: "elm/button/base/style_call_sixbtn"; - images { - image: "vc_six_btn_layout_normal.png" COMP; - image: "vc_six_btn_layout_press.png" COMP; - } - parts { - part { name: "button_image"; - mouse_events: 1; - scale: 1; - description { state: "default" 0.0; - image { - normal: "vc_six_btn_layout_normal.png"; - border: 9 9 0 0; - border_scale: 1; - } - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - image.normal: "vc_six_btn_layout_press.png"; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - } - } - part { name: "elm.swallow.content"; - type: SWALLOW; - description { state: "default" 0.0; - visible: 1; - align: 0.5 0.5; - aspect: 0.5 1.0; - rel1.relative: 0.0 0.0; - rel2.relative: 1.0 0.66; - aspect_preference: VERTICAL; - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - fixed: 1 0; - visible: 1; - aspect: 1.0 1.0; - } - description { state: "icononly" 0.0; - inherit: "default" 0.0; - fixed: 0 0; - visible: 1; - align: 0.5 0.5; - aspect: 1.0 1.0; - rel2.relative: 1.0 1.0; - } - } - part { name: "elm.text"; - type: TEXT; - effect: SOFT_SHADOW; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - visible: 0; - fixed: 1 1; - rel1.to_y: "elm.swallow.content"; - rel1.relative: 0.5 1.0; - rel2.relative: 0.5 1.0; - color: 255 255 255 255; - color2: 0 0 0 102; - color3: 0 0 0 255; - text { - font: FONT_SLP_Roman; - size: 36; - min: 1 1; - align: 0.5 0.5; - } - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - visible: 1; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; - color: 255 255 255 255; - color2: 0 0 0 102; - color3: 0 0 0 255; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - color: 0 0 0 128; - color3: 0 0 0 0; - } - description { state: "disabled_visible" 0.0; - inherit: "default" 0.0; - color: 0 0 0 128; - color3: 0 0 0 0; - visible: 1; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; - color: 255 255 255 255; - color2: 0 0 0 102; - color3: 0 0 0 255; - } - } - part { name: "over2"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - color: 0 0 0 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part { name: "over3"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 0 0 0 0; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "disabler"; - type: RECT; - description { state: "default" 0.0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - } - programs { - program { name: "button_click"; - signal: "mouse,down,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,press" ""; - after: "button_click_anim"; - } - program { name: "button_click_anim"; - action: STATE_SET "clicked" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "button_unclick"; - signal: "mouse,up,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,unpress" ""; - after: "button_unclick_anim"; - } - program { name: "button_unclick_anim"; - action: STATE_SET "default" 0.0; - target: "button_image"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - program { name: "button_mouseout_clicked"; - signal: "mouse,out"; - source: "over2"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "clicked")) - { - set_state(PART:"elm.text", "visible", 0.0); - set_state(PART:"button_image", "visible", 0.0); - } - } - } - program { name: "button_click2"; - signal: "mouse,down,1"; - source: "over3"; - action: STATE_SET "clicked" 0.0; - target: "over3"; - } - program { name: "button_unclick2"; - signal: "mouse,up,1"; - source: "over3"; - action: STATE_SET "default" 0.0; - target: "over3"; - } - program { name: "button_unclick3"; - signal: "mouse,up,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,click" ""; - } - program { name: "text_show"; - signal: "elm,state,text,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "icononly")) - set_state(PART:"elm.swallow.content", "visible", 0.0); - set_state(PART:"elm.text", "visible", 0.0); - } - } - program { name: "text_hide"; - signal: "elm,state,text,hidden"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.swallow.content", "icononly", 0.0); - set_state(PART:"elm.text", "default", 0.0); - } - } - program { name: "icon_show"; - signal: "elm,state,icon,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.swallow.content", "visible", 0.0); - else - set_state(PART:"elm.swallow.content", "icononly", 0.0); - } - } - program { name: "icon_hide"; - signal: "elm,state,icon,hidden"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "elm.swallow.content"; - } - program { name: "disable"; - signal: "elm,state,disabled"; - source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "button_image"; - target: "over2"; - target: "disabler"; - after: "disable_text"; - } - program { name: "disable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.text", "disabled_visible", 0.0); - else - set_state(PART:"elm.text", "disabled", 0.0); - } - } - program { name: "enable"; - signal: "elm,state,enabled"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - target: "over2"; - target: "disabler"; - after: "enable_text"; - } - program { name: "enable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "disabled_visible")) - set_state(PART:"elm.text", "visible", 0.0); - else - set_state(PART:"elm.text", "default", 0.0); - } - } - program { name: "focused"; - signal: "elm,action,focus"; - source: "elm"; - action: STATE_SET "focused" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "unfocused"; - signal: "elm,action,unfocus"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - } - } - -////////////// elm/button/base/icon_only/default ////////////////////////////////////////////// - group { name: "elm/button/base/style_call_smallbtn"; - images { - image: "vc_six_btn_layout_normal.png" COMP; - image: "vc_six_btn_layout_press.png" COMP; - } - parts { - part { name: "button_image"; - mouse_events: 1; - scale: 1; - description { state: "default" 0.0; - image { - normal: "vc_six_btn_layout_normal.png"; - border: 9 9 0 0; - border_scale: 1; - } - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - image.normal: "vc_six_btn_layout_press.png"; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - } - } - part { name: "elm.swallow.content"; - type: SWALLOW; - description { state: "default" 0.0; - visible: 1; - align: 0.5 0.5; - aspect: 0.5 1.0; - rel1.relative: 0.0 0.0; - rel2.relative: 1.0 1.0; - aspect_preference: VERTICAL; - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - fixed: 1 0; - visible: 1; - aspect: 1.0 1.0; - } - description { state: "icononly" 0.0; - inherit: "default" 0.0; - fixed: 0 0; - visible: 1; - align: 0.5 0.5; - aspect: 1.0 1.0; - rel2.relative: 1.0 1.0; - } - } - part { name: "over2"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - color: 0 0 0 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part { name: "over3"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 0 0 0 0; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "disabler"; - type: RECT; - description { state: "default" 0.0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - } - programs { - program { name: "button_click"; - signal: "mouse,down,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,press" ""; - after: "button_click_anim"; - } - program { name: "button_click_anim"; - action: STATE_SET "clicked" 0.0; - target: "button_image"; - } - program { name: "button_unclick"; - signal: "mouse,up,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,unpress" ""; - after: "button_unclick_anim"; - } - program { name: "button_unclick_anim"; - action: STATE_SET "default" 0.0; - target: "button_image"; - } - program { name: "button_mouseout_clicked"; - signal: "mouse,out"; - source: "over2"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "clicked")) - { - set_state(PART:"button_image", "visible", 0.0); - } - } - } - program { name: "button_click2"; - signal: "mouse,down,1"; - source: "over3"; - action: STATE_SET "clicked" 0.0; - target: "over3"; - } - program { name: "button_unclick2"; - signal: "mouse,up,1"; - source: "over3"; - action: STATE_SET "default" 0.0; - target: "over3"; - } - program { name: "button_unclick3"; - signal: "mouse,up,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,click" ""; - } - program { name: "text_show"; - signal: "elm,state,text,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "icononly")) - set_state(PART:"elm.swallow.content", "visible", 0.0); - } - } - program { name: "text_hide"; - signal: "elm,state,text,hidden"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.swallow.content", "icononly", 0.0); - } - } - program { name: "icon_show"; - signal: "elm,state,icon,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.swallow.content", "visible", 0.0); - else - set_state(PART:"elm.swallow.content", "icononly", 0.0); - } - } - program { name: "icon_hide"; - signal: "elm,state,icon,hidden"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "elm.swallow.content"; - } - program { name: "disable"; - signal: "elm,state,disabled"; - source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "button_image"; - target: "over2"; - target: "disabler"; - } - program { name: "enable"; - signal: "elm,state,enabled"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - target: "over2"; - target: "disabler"; - } - program { name: "focused"; - signal: "elm,action,focus"; - source: "elm"; - action: STATE_SET "focused" 0.0; - target: "button_image"; - } - program { name: "unfocused"; - signal: "elm,action,unfocus"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - } - } - } - -////////////// elm/button/base/icon_only/default ////////////////////////////////////////////// - group { name: "elm/button/base/style_call_smallbtn_pressed"; - images { - image: "vc_conference_call_btn_normal.png" COMP; - image: "vc_conference_call_btn_press.png" COMP; - } - parts { - part { name: "button_image"; - mouse_events: 1; - scale: 1; - description { state: "default" 0.0; - image { - normal: "vc_conference_call_btn_press.png"; - border: 5 5 0 0; - border_scale: 1; - } - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - image.normal: "vc_conference_call_btn_normal.png"; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - } - } - part { name: "elm.swallow.content"; - type: SWALLOW; - description { state: "default" 0.0; - visible: 1; - align: 0.5 0.5; - aspect: 0.5 1.0; - rel1.relative: 0.0 0.0; - rel2.relative: 1.0 0.52; - aspect_preference: VERTICAL; - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - fixed: 1 0; - visible: 1; - aspect: 1.0 1.0; - } - description { state: "icononly" 0.0; - inherit: "default" 0.0; - fixed: 0 0; - visible: 1; - align: 0.5 0.5; - aspect: 1.0 1.0; - rel2.relative: 1.0 0.52; - } - } - part { name: "elm.text"; - type: TEXT; - effect: SOFT_SHADOW; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - visible: 0; - fixed: 1 1; - rel1.to_y: "elm.swallow.content"; - rel1.relative: 0.5 1.0; - rel2.relative: 0.5 1.0; - color: 255 255 255 255; - color2: 0 0 0 102; - color3: 0 0 0 255; - text { - font: FONT_SLP_Roman; - size: 20; - min: 1 1; - align: 0.5 0.5; - } - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - visible: 1; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; - color: 255 255 255 255; - color2: 0 0 0 102; - color3: 0 0 0 255; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - color: 0 0 0 128; - color3: 0 0 0 0; - } - description { state: "disabled_visible" 0.0; - inherit: "default" 0.0; - color: 0 0 0 128; - color3: 0 0 0 0; - visible: 1; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; - color: 255 255 255 255; - color2: 0 0 0 102; - color3: 0 0 0 255; - } - } - part { name: "over2"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - color: 0 0 0 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part { name: "over3"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 0 0 0 0; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "disabler"; - type: RECT; - description { state: "default" 0.0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - } - programs { - program { name: "button_click"; - signal: "mouse,down,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,press" ""; - after: "button_click_anim"; - } - program { name: "button_click_anim"; - action: STATE_SET "clicked" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "button_unclick"; - signal: "mouse,up,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,unpress" ""; - after: "button_unclick_anim"; - } - program { name: "button_unclick_anim"; - action: STATE_SET "default" 0.0; - target: "button_image"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - program { name: "button_mouseout_clicked"; - signal: "mouse,out"; - source: "over2"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "clicked")) - { - set_state(PART:"elm.text", "visible", 0.0); - set_state(PART:"button_image", "visible", 0.0); - } - } - } - program { name: "button_click2"; - signal: "mouse,down,1"; - source: "over3"; - action: STATE_SET "clicked" 0.0; - target: "over3"; - } - program { name: "button_unclick2"; - signal: "mouse,up,1"; - source: "over3"; - action: STATE_SET "default" 0.0; - target: "over3"; - } - program { name: "button_unclick3"; - signal: "mouse,up,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,click" ""; - } - program { name: "text_show"; - signal: "elm,state,text,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "icononly")) - set_state(PART:"elm.swallow.content", "visible", 0.0); - set_state(PART:"elm.text", "visible", 0.0); - } - } - program { name: "text_hide"; - signal: "elm,state,text,hidden"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.swallow.content", "icononly", 0.0); - set_state(PART:"elm.text", "default", 0.0); - } - } - program { name: "icon_show"; - signal: "elm,state,icon,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.swallow.content", "visible", 0.0); - else - set_state(PART:"elm.swallow.content", "icononly", 0.0); - } - } - program { name: "icon_hide"; - signal: "elm,state,icon,hidden"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "elm.swallow.content"; - } - program { name: "disable"; - signal: "elm,state,disabled"; - source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "button_image"; - target: "over2"; - target: "disabler"; - after: "disable_text"; - } - program { name: "disable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.text", "disabled_visible", 0.0); - else - set_state(PART:"elm.text", "disabled", 0.0); - } - } - program { name: "enable"; - signal: "elm,state,enabled"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - target: "over2"; - target: "disabler"; - after: "enable_text"; - } - program { name: "enable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "disabled_visible")) - set_state(PART:"elm.text", "visible", 0.0); - else - set_state(PART:"elm.text", "default", 0.0); - } - } - program { name: "focused"; - signal: "elm,action,focus"; - source: "elm"; - action: STATE_SET "focused" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "unfocused"; - signal: "elm,action,unfocus"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - } - } - -////////////// elm/button/base/icon_only/default ////////////////////////////////////////////// - group { name: "elm/button/base/icon_only/style_call_icon_only_private"; - images { - image: "vc_conference_call_btn_normal.png" COMP; - image: "vc_conference_call_btn_press.png" COMP; - } - parts { - part { name: "button_image"; - mouse_events: 1; - scale: 1; - description { state: "default" 0.0; - min: 120 72; - max: 120 72; - image { - normal: "vc_conference_call_btn_normal.png"; - border: 5 5 0 0; - border_scale: 1; - } - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - image { - normal: "vc_conference_call_btn_press.png"; - border: 5 5 0 0; - border_scale: 1; - } - } - description { state: "disabled" 0.0; - inherit: "clicked" 0.0; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - } - } - part { name: "elm.swallow.content"; - type: SWALLOW; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - min: 120 72; - max: 120 72; - fixed: 1 1; - visible: 0; - rel1 { to: "button_image"; } - rel2 { to: "button_image"; } - align: 0.5 0.5; - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - visible: 1; - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - } - } - part { name: "over1"; - mouse_events: 1; - repeat_events: 1; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - rel1.to: "button_image"; - rel2.to: "button_image"; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part { name: "over2"; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 255 255 255 0; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - color: 255 255 255 0; - } - } - part { name: "disabler"; - type: RECT; - description { state: "default" 0.0; - rel1.to: "button_image"; - rel2.to: "button_image"; - color: 0 0 0 0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - } - programs { - program { name: "button_click"; - signal: "mouse,down,1"; - source: "over1"; - action: SIGNAL_EMIT "elm,action,press" ""; - after: "button_click_anim"; - } - program { name: "button_click_anim"; - action: STATE_SET "clicked" 0.0; - target: "button_image"; - } - program { name: "button_unclick"; - signal: "mouse,up,1"; - source: "over1"; - action: SIGNAL_EMIT "elm,action,unpress" ""; - after: "button_unclick_anim"; - } - program { name: "button_unclick_anim"; - action: STATE_SET "default" 0.0; - target: "button_image"; - } - program { name: "button_mouseout_clicked"; - signal: "mouse,out"; - source: "over1"; - action: STATE_SET "default" 0.0; - target: "button_image"; - } - program { name: "button_click2"; - signal: "mouse,down,1"; - source: "over2"; - action: STATE_SET "clicked" 0.0; - target: "over2"; - } - program { name: "button_unclick2"; - signal: "mouse,up,1"; - source: "over2"; - action: STATE_SET "default" 0.0; - target: "over2"; - after: "button_unclick3"; - } - program { name: "button_unclick3"; - action: SIGNAL_EMIT "elm,action,click" ""; - } - program { name: "disable"; - signal: "elm,state,disabled"; - source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "button_image"; - target: "over1"; - target: "disabler"; - } - program { name: "enable"; - signal: "elm,state,enabled"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - target: "over1"; - target: "disabler"; - } - program { name: "icon_show"; - signal: "elm,state,icon,visible"; - source: "elm"; - action: STATE_SET "visible" 0.0; - target: "elm.swallow.content"; - } - program { name: "icon_hide"; - signal: "elm,state,icon,hidden"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "elm.swallow.content"; - } - program { name: "focused"; - signal: "elm,action,focus"; - source: "elm"; - action: STATE_SET "focused" 0.0; - target: "button_image"; - } - program { name: "unfocused"; - signal: "elm,action,unfocus"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - } - } - } - -////////////// elm/button/base/text_only/style_call_small_text_only_red ////////////////////////////////////////////// - group { name: "elm/button/base/text_only/style_call_small_text_only_red"; - images { - image: "vc_button_red_normal.png" COMP; - image: "vc_button_press.png" COMP; - } - parts { - part { name: "button_image"; - mouse_events: 1; - scale: 1; - effect: SOFT_SHADOW; - description { state: "default" 0.0; - min: 100 50; - image { - normal: "vc_button_red_normal.png"; - border: 16 16 0 0; - border_scale: 1; - } - } - description { state: "clicked" 0.0; - min: 100 50; - image { - normal: "vc_button_press.png"; - border: 16 16 0 0; - border_scale: 1; - } - } - description { state: "disabled" 0.0; - inherit: "clicked" 0.0; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - } - } - part { name: "elm.text"; - type: TEXT; - effect: SHADOW; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - visible: 0; - fixed: 1 1; - align: 0.5 0.5; - color: 255 255 255 255; - color2: 0 0 0 102; - color3: 0 0 0 255; - text { - font: FONT_SLP_Medium; - size: 36; - min: 0 0; - align: 0.5 0.5; - } - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; - color: 255 255 255 255; - color2: 0 0 0 102; - color3: 0 0 0 255; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - color: 0 0 0 128; - color3: 0 0 0 0; - } - description { state: "disabled_visible" 0.0; - inherit: "default" 0.0; - color: 0 0 0 128; - color3: 0 0 0 0; - visible: 1; - min: 1 1; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; - color: 255 255 255 255; - } - } - part { name: "over1"; - mouse_events: 0; - description { state: "default" 0.0; - rel2.relative: 1.0 0.5; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - } - } - part { name: "over2"; - mouse_events: 1; - repeat_events: 1; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part { name: "over3"; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 255 255 255 0; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - color: 255 255 255 0; - } - } - part { name: "disabler"; - type: RECT; - description { state: "default" 0.0; - color: 0 0 0 0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - } - programs { - program { name: "button_click"; - signal: "mouse,down,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,press" ""; - after: "button_click_anim"; - } - program { name: "button_click_anim"; - action: STATE_SET "clicked" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "button_unclick"; - signal: "mouse,up,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,unpress" ""; - after: "button_unclick_anim"; - } - program { name: "button_unclick_anim"; - action: STATE_SET "default" 0.0; - target: "button_image"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - program { name: "button_mouseout_clicked"; - signal: "mouse,out"; - source: "over2"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "clicked")) - { - set_state(PART:"elm.text", "visible", 0.0); - set_state(PART:"button_image", "visible", 0.0); - } - } - } - program { name: "button_click2"; - signal: "mouse,down,1"; - source: "over3"; - action: STATE_SET "clicked" 0.0; - target: "over3"; - } - program { name: "button_unclick2"; - signal: "mouse,up,1"; - source: "over3"; - action: STATE_SET "default" 0.0; - target: "over3"; - } - program { name: "button_unclick3"; - signal: "mouse,up,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,click" ""; - } - program { name: "text_show"; - signal: "elm,state,text,visible"; - source: "elm"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - program { name: "text_hide"; - signal: "elm,state,text,hidden"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "elm.text"; - } - - program { name: "disable"; - signal: "elm,state,disabled"; - source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "button_image"; - target: "over1"; - target: "over2"; - target: "disabler"; - after: "disable_text"; - } - program { name: "disable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.text", "disabled_visible", 0.0); - else - set_state(PART:"elm.text", "disabled", 0.0); - } - } - program { name: "enable"; - signal: "elm,state,enabled"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - target: "over1"; - target: "over2"; - target: "disabler"; - after: "enable_text"; - } - program { name: "enable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "disabled_visible")) - set_state(PART:"elm.text", "visible", 0.0); - else - set_state(PART:"elm.text", "default", 0.0); - } - } - program { name: "focused"; - signal: "elm,action,focus"; - source: "elm"; - action: STATE_SET "focused" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "unfocused"; - signal: "elm,action,unfocus"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - } - } - -////////////// elm/button/base/text_only/style_call_text_only_red ////////////////////////////////////////////// - group { name: "elm/button/base/text_only/style_call_text_only_red"; - images { - image: "vc_button_red_normal.png" COMP; - image: "vc_button_press.png" COMP; - } - parts { - part { name: "button_image"; - mouse_events: 1; - scale: 1; - effect: SOFT_SHADOW; - description { state: "default" 0.0; - min: 100 50; - image { - normal: "vc_button_red_normal.png"; - border: 16 16 0 0; - border_scale: 1; - } - } - description { state: "clicked" 0.0; - min: 100 50; - image { - normal: "vc_button_press.png"; - border: 16 16 0 0; - border_scale: 1; - } - } - description { state: "disabled" 0.0; - inherit: "clicked" 0.0; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - } - } - part { name: "elm.text"; - type: TEXT; - effect: SHADOW; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - visible: 0; - fixed: 1 1; - align: 0.5 0.5; - color: 255 255 255 255; - color2: 0 0 0 102; - color3: 0 0 0 255; - text { - font: FONT_SLP_Medium; - size: 48; - min: 0 0; - align: 0.5 0.5; - } - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; - color: 255 255 255 255; - color2: 0 0 0 102; - color3: 0 0 0 255; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - color: 0 0 0 128; - color3: 0 0 0 0; - } - description { state: "disabled_visible" 0.0; - inherit: "default" 0.0; - color: 0 0 0 128; - color3: 0 0 0 0; - visible: 1; - min: 1 1; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; - color: 255 255 255 255; - } - } - part { name: "over1"; - mouse_events: 0; - description { state: "default" 0.0; - rel2.relative: 1.0 0.5; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - } - } - part { name: "over2"; - mouse_events: 1; - repeat_events: 1; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part { name: "over3"; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 255 255 255 0; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - color: 255 255 255 0; - } - } - part { name: "disabler"; - type: RECT; - description { state: "default" 0.0; - color: 0 0 0 0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - } - programs { - program { name: "button_click"; - signal: "mouse,down,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,press" ""; - after: "button_click_anim"; - } - program { name: "button_click_anim"; - action: STATE_SET "clicked" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "button_unclick"; - signal: "mouse,up,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,unpress" ""; - after: "button_unclick_anim"; - } - program { name: "button_unclick_anim"; - action: STATE_SET "default" 0.0; - target: "button_image"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - program { name: "button_mouseout_clicked"; - signal: "mouse,out"; - source: "over2"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "clicked")) - { - set_state(PART:"elm.text", "visible", 0.0); - set_state(PART:"button_image", "visible", 0.0); - } - } - } - program { name: "button_click2"; - signal: "mouse,down,1"; - source: "over3"; - action: STATE_SET "clicked" 0.0; - target: "over3"; - } - program { name: "button_unclick2"; - signal: "mouse,up,1"; - source: "over3"; - action: STATE_SET "default" 0.0; - target: "over3"; - } - program { name: "button_unclick3"; - signal: "mouse,up,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,click" ""; - } - program { name: "text_show"; - signal: "elm,state,text,visible"; - source: "elm"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - program { name: "text_hide"; - signal: "elm,state,text,hidden"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "elm.text"; - } - - program { name: "disable"; - signal: "elm,state,disabled"; - source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "button_image"; - target: "over1"; - target: "over2"; - target: "disabler"; - after: "disable_text"; - } - program { name: "disable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.text", "disabled_visible", 0.0); - else - set_state(PART:"elm.text", "disabled", 0.0); - } - } - program { name: "enable"; - signal: "elm,state,enabled"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - target: "over1"; - target: "over2"; - target: "disabler"; - after: "enable_text"; - } - program { name: "enable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "disabled_visible")) - set_state(PART:"elm.text", "visible", 0.0); - else - set_state(PART:"elm.text", "default", 0.0); - } - } - program { name: "focused"; - signal: "elm,action,focus"; - source: "elm"; - action: STATE_SET "focused" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "unfocused"; - signal: "elm,action,unfocus"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - } - } - - - /////////////////////////////////////////////////////////////////////////////////////// - group { name: "elm/button/base/multiline_text_black"; - images { - image: "vc_second_mt_btn_normal.png" COMP; - image: "vc_button_press.png" COMP; - } - script { - public button_state = BUTTON_STATE_ENABLED; - } - styles{ - style { name: "btn_multiline_navigationbar_controlbar_style"; - base: "font=SLP:style=Medium font_size="48" align=center color=#ffffff wrap=mixed"; - tag: "br" "\n"; - tag: "ps" "ps"; - tag: "tab" "\t"; - } - } - parts { - part { name: "button_image"; - type: IMAGE; - mouse_events: 1; - scale: 1; - description { state: "default" 0.0; - min: 22 46; - rel1.offset: 0 0; - rel2.offset: -1 -1; - image.normal: "vc_second_mt_btn_normal.png"; - image.border: 16 16 0 0; - color: 255 255 255 255; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - image.normal: "vc_button_press.png"; - } - } - part { - name: "padding_left_top"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 0.0 0.0; - rel1.relative: 0.0 0.0; - rel2.relative: 0.0 0.0; - min: 10 2; - fixed: 1 1; - visible: 0; - } - } - part { - name: "padding_right_bottom"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 1.0 1.0; - rel1.relative: 1.0 1.0; - rel2.relative: 1.0 1.0; - min: 10 2; - fixed: 1 1; - visible: 0; - } - } - part { - name: "icon_rect"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - visible: 0; - min: 0 0; - fixed: 1 0; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - align: 0.0 0.5; - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - min: 22 22; - } - description { state: "icononly" 0.0; - inherit: "default" 0.0; - } - } - part { - name: "padding_after_icon"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - visible: 0; - align: 0.0 0.0; - rel1 { relative: 1.0 0.0; to: "icon_rect"; } - rel2 { relative: 1.0 1.0; to: "icon_rect"; } - fixed: 1 0; - min: 0 0; - color: 0 0 0 0; - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - min: 6 0; - } - description { state: "icononly" 0.0; - inherit: "default" 0.0; - } - } - part { - name: "padding_before_text"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 1.0 0.5; - visible: 0; - rel1 { relative: 0.0 1.0; to_x: "elm.text"; to_y: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to_x: "elm.text"; to_y: "padding_right_bottom"; } - fixed: 1 0; - min: 6 0; - } - } - part { name: "elm.swallow.content"; - type: SWALLOW; - scale: 1; - clip_to: "clipper"; - description { state: "default" 0.0; - visible: 0; - align: 0.0 0.5; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - fixed: 1 0; - } - description { state: "visible" 0.0; - fixed: 1 0; - visible: 1; - min: 22 22; - max: 22 22; - align: 1.0 0.5; - rel1 { relative: 0.0 1.0; to_x: "padding_before_text"; to_y: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to_x: "padding_before_text"; to_y: "padding_right_bottom"; } - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - } - description { state: "icononly" 0.0; - visible: 1; - min: 30 30; - max: 30 30; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to: "padding_right_bottom"; } - align: 0.5 0.5; - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - } - } - part { name: "elm.text"; - type: TEXTBLOCK; - mouse_events: 0; - scale: 1; - clip_to: "clipper"; - description { state: "default" 0.0; - visible: 0; - rel1 { relative: 1.0 1.0; to_x: "padding_after_icon"; to_y: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to: "padding_right_bottom"; } - align: 0.5 0.5; - color: 255 255 255 255; - text { - style: "btn_multiline_navigationbar_controlbar_style"; - min: 0 0; - max: 0 1; - } - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 80 0; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 0 0; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 0 0; - color: 255 255 255 255; - } - } - part { name: "over2"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - color: 0 0 0 0; - } - } - part { name: "over3"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 0 0 0 0; - } - } - part { name: "clipper"; - type: RECT; - description { state: "default" 0.0; - color: 255 255 255 255; - } - description { state: "disabled" 0.0; - color: 255 255 255 127; - } - } - part { name: "disabler"; - type: RECT; - description { state: "default" 0.0; - color: 0 0 0 0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - } - programs { - program { name: "button_click"; - signal: "mouse,down,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,press" ""; - after: "button_click_anim"; - } - program { name: "button_click_anim"; - action: STATE_SET "clicked" 0.0; - target: "button_image"; - after: "text_clicked"; - } - program { name: "text_clicked"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.text", "clicked", 0.0); - } - } - program { name: "button_unpress"; - action: SIGNAL_EMIT "elm,action,unpress" ""; - } - program { name: "button_mouseout_clicked"; - signal: "mouse,up,1"; - source: "over3"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (strcmp(st, "icononly")) { - emit("elm,action,default,text,set", ""); - set_state(PART:"elm.text", "visible", 0.0); - } - if(get_int(button_state) != BUTTON_STATE_DISABLED) - set_state(PART:"button_image", "default", 0.0); - } - after: button_unpress; - } - program { name: "button_unclick3"; - signal: "mouse,clicked,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,click" ""; - } - program { name: "text_show"; - signal: "elm,state,text,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "icononly")) { - set_state(PART:"elm.swallow.content", "visible", 0.0); - set_state(PART:"icon_rect", "visible", 0.0); - set_state(PART:"padding_after_icon", "visible", 0.0); - } - set_state(PART:"elm.text", "visible", 0.0); - } - } - program { name: "text_hide"; - signal: "elm,state,text,hidden"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "visible")) { - set_state(PART:"elm.swallow.content", "icononly", 0.0); - set_state(PART:"icon_rect", "icononly", 0.0); - set_state(PART:"padding_after_icon", "icononly", 0.0); - } - set_state(PART:"elm.text", "default", 0.0); - } - } - program { name: "icon_show"; - signal: "elm,state,icon,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) { - set_state(PART:"elm.swallow.content", "visible", 0.0); - set_state(PART:"icon_rect", "visible", 0.0); - set_state(PART:"padding_after_icon", "visible", 0.0); - } - else - { - set_state(PART:"elm.swallow.content", "icononly", 0.0); - set_state(PART:"icon_rect", "icononly", 0.0); - set_state(PART:"padding_after_icon", "icononly", 0.0); - } - } - } - program { name: "icon_hide"; - signal: "elm,state,icon,hidden"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "elm.swallow.content"; - } - program { name: "disable"; - signal: "elm,state,disabled"; - source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "button_image"; - target: "clipper"; - target: "disabler"; - after: "disable_text"; - } - program { name: "disable_text"; - script { - set_int(button_state, BUTTON_STATE_DISABLED); - set_state(PART:"elm.text", "visible", 0.0); - } - } - program { name: "enable"; - signal: "elm,state,enabled"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - target: "clipper"; - target: "disabler"; - after: "enable_text"; - } - program { name: "enable_text"; - script { - set_int(button_state, BUTTON_STATE_ENABLED); - set_state(PART:"elm.text", "visible", 0.0); - } - } - program { name: "focused"; - action: STATE_SET "focused" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "unfocused"; - action: STATE_SET "default" 0.0; - target: "button_image"; - after: "unfocus_text"; - } - program { name: "unfocus_text"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - } - } - - /////////////////////////////////////////////////////////////////////////////////////// - group { name: "elm/button/base/multiline_text_red"; - images { - image: "vc_button_red_normal.png" COMP; - image: "vc_button_press.png" COMP; - } - script { - public button_state = BUTTON_STATE_ENABLED; - } - styles{ - style { name: "btn_multiline_navigationbar_controlbar_style2"; - base: "font=SLP:style=Medium font_size="48" align=center color=#ffffff wrap=mixed"; - tag: "br" "\n"; - tag: "ps" "ps"; - tag: "tab" "\t"; - } - } - parts { - part { name: "button_image"; - type: IMAGE; - mouse_events: 1; - scale: 1; - description { state: "default" 0.0; - min: 22 46; - rel1.offset: 0 0; - rel2.offset: -1 -1; - image.normal: "vc_button_red_normal.png"; - image.border: 16 16 0 0; - color: 255 255 255 255; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - image.normal: "vc_button_press.png"; - } - } - part { - name: "padding_left_top"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 0.0 0.0; - rel1.relative: 0.0 0.0; - rel2.relative: 0.0 0.0; - min: 10 2; - fixed: 1 1; - visible: 0; - } - } - part { - name: "padding_right_bottom"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 1.0 1.0; - rel1.relative: 1.0 1.0; - rel2.relative: 1.0 1.0; - min: 10 2; - fixed: 1 1; - visible: 0; - } - } - part { - name: "icon_rect"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - visible: 0; - min: 0 0; - fixed: 1 0; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - align: 0.0 0.5; - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - min: 22 22; - } - description { state: "icononly" 0.0; - inherit: "default" 0.0; - } - } - part { - name: "padding_after_icon"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - visible: 0; - align: 0.0 0.0; - rel1 { relative: 1.0 0.0; to: "icon_rect"; } - rel2 { relative: 1.0 1.0; to: "icon_rect"; } - fixed: 1 0; - min: 0 0; - color: 0 0 0 0; - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - min: 6 0; - } - description { state: "icononly" 0.0; - inherit: "default" 0.0; - } - } - part { - name: "padding_before_text"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 1.0 0.5; - visible: 0; - rel1 { relative: 0.0 1.0; to_x: "elm.text"; to_y: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to_x: "elm.text"; to_y: "padding_right_bottom"; } - fixed: 1 0; - min: 6 0; - } - } - part { name: "elm.swallow.content"; - type: SWALLOW; - scale: 1; - clip_to: "clipper"; - description { state: "default" 0.0; - visible: 0; - align: 0.0 0.5; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - fixed: 1 0; - } - description { state: "visible" 0.0; - fixed: 1 0; - visible: 1; - min: 22 22; - max: 22 22; - align: 1.0 0.5; - rel1 { relative: 0.0 1.0; to_x: "padding_before_text"; to_y: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to_x: "padding_before_text"; to_y: "padding_right_bottom"; } - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - } - description { state: "icononly" 0.0; - visible: 1; - min: 30 30; - max: 30 30; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to: "padding_right_bottom"; } - align: 0.5 0.5; - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - } - } - part { name: "elm.text"; - type: TEXTBLOCK; - mouse_events: 0; - scale: 1; - clip_to: "clipper"; - description { state: "default" 0.0; - visible: 0; - rel1 { relative: 1.0 1.0; to_x: "padding_after_icon"; to_y: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to: "padding_right_bottom"; } - //max: 150 46; - align: 0.5 0.5; - color: 255 255 255 255; - text { - style: "btn_multiline_navigationbar_controlbar_style2"; - min: 0 0; - max: 0 1; - } - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 80 0; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 0 0; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 0 0; - color: 255 255 255 255; - } - } - part { name: "over2"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - color: 0 0 0 0; - } - } - part { name: "over3"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 0 0 0 0; - } - } - part { name: "clipper"; - type: RECT; - description { state: "default" 0.0; - color: 255 255 255 255; - } - description { state: "disabled" 0.0; - color: 255 255 255 127; - } - } - part { name: "disabler"; - type: RECT; - description { state: "default" 0.0; - color: 0 0 0 0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - } - programs { - program { name: "button_click"; - signal: "mouse,down,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,press" ""; - after: "button_click_anim"; - } - program { name: "button_click_anim"; - action: STATE_SET "clicked" 0.0; - target: "button_image"; - after: "text_clicked"; - } - program { name: "text_clicked"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.text", "clicked", 0.0); - } - } - program { name: "button_unpress"; - action: SIGNAL_EMIT "elm,action,unpress" ""; - } - program { name: "button_mouseout_clicked"; - signal: "mouse,up,1"; - source: "over3"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (strcmp(st, "icononly")) { - emit("elm,action,default,text,set", ""); - set_state(PART:"elm.text", "visible", 0.0); - } - if(get_int(button_state) != BUTTON_STATE_DISABLED) - set_state(PART:"button_image", "default", 0.0); - } - after: button_unpress; - } - program { name: "button_unclick3"; - signal: "mouse,clicked,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,click" ""; - } - program { name: "text_show"; - signal: "elm,state,text,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "icononly")) { - set_state(PART:"elm.swallow.content", "visible", 0.0); - set_state(PART:"icon_rect", "visible", 0.0); - set_state(PART:"padding_after_icon", "visible", 0.0); - } - set_state(PART:"elm.text", "visible", 0.0); - } - } - program { name: "text_hide"; - signal: "elm,state,text,hidden"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "visible")) { - set_state(PART:"elm.swallow.content", "icononly", 0.0); - set_state(PART:"icon_rect", "icononly", 0.0); - set_state(PART:"padding_after_icon", "icononly", 0.0); - } - set_state(PART:"elm.text", "default", 0.0); - } - } - program { name: "icon_show"; - signal: "elm,state,icon,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) { - set_state(PART:"elm.swallow.content", "visible", 0.0); - set_state(PART:"icon_rect", "visible", 0.0); - set_state(PART:"padding_after_icon", "visible", 0.0); - } - else - { - set_state(PART:"elm.swallow.content", "icononly", 0.0); - set_state(PART:"icon_rect", "icononly", 0.0); - set_state(PART:"padding_after_icon", "icononly", 0.0); - } - } - } - program { name: "icon_hide"; - signal: "elm,state,icon,hidden"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "elm.swallow.content"; - } - program { name: "disable"; - signal: "elm,state,disabled"; - source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "button_image"; - target: "clipper"; - target: "disabler"; - after: "disable_text"; - } - program { name: "disable_text"; - script { - set_int(button_state, BUTTON_STATE_DISABLED); - set_state(PART:"elm.text", "visible", 0.0); - } - } - program { name: "enable"; - signal: "elm,state,enabled"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - target: "clipper"; - target: "disabler"; - after: "enable_text"; - } - program { name: "enable_text"; - script { - set_int(button_state, BUTTON_STATE_ENABLED); - set_state(PART:"elm.text", "visible", 0.0); - } - } - program { name: "focused"; - action: STATE_SET "focused" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "unfocused"; - action: STATE_SET "default" 0.0; - target: "button_image"; - after: "unfocus_text"; - } - program { name: "unfocus_text"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - } - } - -////////////// elm/button/base/text_only/title ////////////////////////////////////////////// - group { name: "elm/button/base/text_only/style_call_text_only_green"; - images { - image: "vc_btn_green.png" COMP; - image: "vc_button_press.png" COMP; - } - parts { - part { name: "button_image"; - mouse_events: 1; - scale: 1; - effect: SOFT_SHADOW; - description { state: "default" 0.0; - min: 100 50; - image { - normal: "vc_btn_green.png"; - border: 16 16 0 0; - border_scale: 1; - } - } - description { state: "clicked" 0.0; - min: 100 50; - image { - normal: "vc_button_press.png"; - border: 16 16 0 0; - border_scale: 1; - } - } - description { state: "disabled" 0.0; - inherit: "clicked" 0.0; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - } - } - part { name: "elm.text"; - type: TEXT; - effect: SHADOW; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - visible: 0; - fixed: 1 1; - align: 0.5 0.5; - color: 255 255 255 255; - color2: 0 0 0 102; - color3: 0 0 0 255; - text { - font: FONT_SLP_Medium; - size: 54; - min: 0 0; - align: 0.5 0.5; - } - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; - color: 255 255 255 255; - color2: 0 0 0 102; - color3: 0 0 0 255; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - color: 0 0 0 128; - color3: 0 0 0 0; - } - description { state: "disabled_visible" 0.0; - inherit: "default" 0.0; - color: 0 0 0 128; - color3: 0 0 0 0; - visible: 1; - min: 1 1; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; - color: 255 255 255 255; - } - } - part { name: "over1"; - mouse_events: 0; - description { state: "default" 0.0; - rel2.relative: 1.0 0.5; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - } - } - part { name: "over2"; - mouse_events: 1; - repeat_events: 1; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part { name: "over3"; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 255 255 255 0; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - color: 255 255 255 0; - } - } - part { name: "disabler"; - type: RECT; - description { state: "default" 0.0; - color: 0 0 0 0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - } - programs { - program { name: "button_click"; - signal: "mouse,down,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,press" ""; - after: "button_click_anim"; - } - program { name: "button_click_anim"; - action: STATE_SET "clicked" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "button_unclick"; - signal: "mouse,up,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,unpress" ""; - after: "button_unclick_anim"; - } - program { name: "button_unclick_anim"; - action: STATE_SET "default" 0.0; - target: "button_image"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - program { name: "button_mouseout_clicked"; - signal: "mouse,out"; - source: "over2"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "clicked")) - { - set_state(PART:"elm.text", "visible", 0.0); - set_state(PART:"button_image", "visible", 0.0); - } - } - } - program { name: "button_click2"; - signal: "mouse,down,1"; - source: "over3"; - action: STATE_SET "clicked" 0.0; - target: "over3"; - } - program { name: "button_unclick2"; - signal: "mouse,up,1"; - source: "over3"; - action: STATE_SET "default" 0.0; - target: "over3"; - } - program { name: "button_unclick3"; - signal: "mouse,up,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,click" ""; - } - program { name: "text_show"; - signal: "elm,state,text,visible"; - source: "elm"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - program { name: "text_hide"; - signal: "elm,state,text,hidden"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "elm.text"; - } - - program { name: "disable"; - signal: "elm,state,disabled"; - source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "button_image"; - target: "over1"; - target: "over2"; - target: "disabler"; - after: "disable_text"; - } - program { name: "disable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.text", "disabled_visible", 0.0); - else - set_state(PART:"elm.text", "disabled", 0.0); - } - } - program { name: "enable"; - signal: "elm,state,enabled"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - target: "over1"; - target: "over2"; - target: "disabler"; - after: "enable_text"; - } - program { name: "enable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "disabled_visible")) - set_state(PART:"elm.text", "visible", 0.0); - else - set_state(PART:"elm.text", "default", 0.0); - } - } - program { name: "focused"; - signal: "elm,action,focus"; - source: "elm"; - action: STATE_SET "focused" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "unfocused"; - signal: "elm,action,unfocus"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - } +#define STYLE_CALL_END_BUTTON(grp_name, img1, img2) \ + group { name: "elm/button/base/"grp_name; \ + images { \ + image: BG_IMG_PATH"/vc_button_callend_press.png" COMP; \ + image: img1 COMP; \ + image: img2 COMP; \ + } \ + parts { \ + part { name: "button_image"; \ + mouse_events: 0; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + } \ + description { state: "clicked" 0.0; \ + visible: 1; \ + image { \ + normal: BG_IMG_PATH"/vc_button_callend_press.png"; \ + border: 9 9 69 69; \ + border_scale: 1; \ + } \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + } \ + } \ + part { name: "elm.swallow.content"; \ + description { state: "default" 0.0; \ + visible: 1; \ + align: 0.5 0.5; \ + aspect: 0.5 1.0; \ + rel1.relative: 0.0 0.24; \ + rel2.relative: 1.0 0.60; \ + aspect_preference: VERTICAL; \ + image { \ + normal: img1; \ + } \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + fixed: 1 0; \ + visible: 1; \ + aspect: 1.0 1.0; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + fixed: 1 0; \ + visible: 1; \ + aspect: 1.0 1.0; \ + image { \ + normal: img2; \ + } \ + } \ + description { state: "icononly" 0.0; \ + inherit: "default" 0.0; \ + fixed: 0 0; \ + visible: 1; \ + align: 0.5 0.5; \ + aspect: 1.0 1.0; \ + rel2.relative: 1.0 1.0; \ + } \ + } \ + part { name: "elm.text"; \ + type: TEXT; \ + effect: SOFT_SHADOW; \ + mouse_events: 0; \ + scale: 1; \ + description { state: "default" 0.0; \ + visible: 0; \ + fixed: 1 1; \ + rel1.relative: 0.5 0.63; \ + rel2.relative: 0.5 0.81; \ + color: 255 255 255 255; \ + color2: 0 0 0 102; \ + color3: 0 0 0 255; \ + text { \ + font: FONT_SLP_Roman; \ + text_class: TEXT_CLASS_SLP_ROMAN; \ + size: 36; \ + min: 1 1; \ + align: 0.5 0.5; \ + } \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + min: 1 1; \ + color: 255 255 255 255; \ + color2: 0 0 0 102; \ + color3: 0 0 0 255; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + color: 0 0 0 128; \ + color3: 0 0 0 0; \ + } \ + description { state: "disabled_visible" 0.0; \ + inherit: "default" 0.0; \ + color: 0 0 0 128; \ + color3: 0 0 0 0; \ + visible: 1; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + min: 1 1; \ + color: 255 255 255 255; \ + color2: 0 0 0 102; \ + color3: 0 0 0 255; \ + } \ + } \ + part { name: "over2"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + rel1 { relative: 0.25 0.1; } \ + rel2 { relative: 0.75 0.9; } \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + part { name: "over3"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + rel1 { relative: 0.25 0.1; } \ + rel2 { relative: 0.75 0.9; } \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + part { name: "disabler"; \ + type: RECT; \ + description { state: "default" 0.0; \ + visible: 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + } \ + programs { \ + program { name: "button_click"; \ + signal: "mouse,down,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,press" ""; \ + after: "button_click_anim"; \ + } \ + program { name: "button_click_anim"; \ + action: STATE_SET "clicked" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + target: "elm.swallow.content"; \ + } \ + program { name: "button_unclick"; \ + signal: "mouse,up,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,unpress" ""; \ + script { \ + emit ( "animation", "over2"); \ + } \ + } \ + program { \ + name: "button_animation"; \ + signal: "animation"; \ + source: "over2"; \ + action: STATE_SET "default" 0.0; \ + transition: SINUSOIDAL 0.1; \ + target: "button_image"; \ + after: "button_unclick_anim"; \ + } \ + program { \ + name: "button_unclick_anim"; \ + action: STATE_SET "default" 0.0; \ + target: "elm.swallow.content"; \ + action: STATE_SET "visible" 0.0; \ + target: "elm.text"; \ + } \ + program { name: "button_mouseout_clicked"; \ + signal: "mouse,out"; \ + source: "over2"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.text", st, 30, vl); \ + if (!strcmp(st, "clicked")) \ + { \ + set_state(PART:"elm.text", "visible", 0.0); \ + set_state(PART:"button_image", "visible", 0.0); \ + } \ + } \ + } \ + program { name: "button_click2"; \ + signal: "mouse,down,1"; \ + source: "over3"; \ + action: STATE_SET "clicked" 0.0; \ + target: "over3"; \ + } \ + program { name: "button_unclick2"; \ + signal: "mouse,up,1"; \ + source: "over3"; \ + action: STATE_SET "default" 0.0; \ + target: "over3"; \ + } \ + program { name: "button_unclick3"; \ + signal: "mouse,up,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,click" ""; \ + } \ + program { name: "text_show"; \ + signal: "elm,state,text,visible"; \ + source: "elm"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.swallow.content", st, 30, vl); \ + if (!strcmp(st, "icononly")) \ + set_state(PART:"elm.swallow.content", "visible", 0.0); \ + set_state(PART:"elm.text", "visible", 0.0); \ + } \ + } \ + program { name: "text_hide"; \ + signal: "elm,state,text,hidden"; \ + source: "elm"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.swallow.content", st, 30, vl); \ + if (!strcmp(st, "visible")) \ + set_state(PART:"elm.swallow.content", "icononly", 0.0); \ + set_state(PART:"elm.text", "default", 0.0); \ + } \ + } \ + program { name: "icon_show"; \ + signal: "elm,state,icon,visible"; \ + source: "elm"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.text", st, 30, vl); \ + if (!strcmp(st, "visible")) \ + set_state(PART:"elm.swallow.content", "visible", 0.0); \ + else \ + set_state(PART:"elm.swallow.content", "icononly", 0.0); \ + } \ + } \ + program { name: "icon_hide"; \ + signal: "elm,state,icon,hidden"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "elm.swallow.content"; \ + } \ + program { name: "disable"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "button_image"; \ + target: "over2"; \ + target: "disabler"; \ + after: "disable_text"; \ + } \ + program { name: "disable_text"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.text", st, 30, vl); \ + if (!strcmp(st, "visible")) \ + set_state(PART:"elm.text", "disabled_visible", 0.0); \ + else \ + set_state(PART:"elm.text", "disabled", 0.0); \ + } \ + } \ + program { name: "enable"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + target: "over2"; \ + target: "disabler"; \ + after: "enable_text"; \ + } \ + program { name: "enable_text"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.text", st, 30, vl); \ + if (!strcmp(st, "disabled_visible")) \ + set_state(PART:"elm.text", "visible", 0.0); \ + else \ + set_state(PART:"elm.text", "default", 0.0); \ + } \ + } \ + program { name: "focused"; \ + signal: "elm,action,focus"; \ + source: "elm"; \ + action: STATE_SET "focused" 0.0; \ + target: "elm.text"; \ + action: STATE_SET "focused" 0.0; \ + transition: SINUSOIDAL 0.1; \ + target: "button_image"; \ + } \ + program { name: "unfocused"; \ + signal: "elm,action,unfocus"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + action: STATE_SET "visible" 0.0; \ + target: "elm.text"; \ + } \ + } \ + } + +#define STYLE_HOLD_SWAP_BUTTON(grp_name, img1, img2, rel1x, rel1y, rel2x, rel2y) \ + group { name: "elm/button/base/"grp_name; \ + images { \ + image: img1 COMP; \ + image: img2 COMP; \ + } \ + parts { \ + part { name: "button_image"; \ + mouse_events: 1; \ + scale: 1;\ + description { \ + state: "default" 0.0; \ + image.normal: img1; \ + } \ + description { \ + state: "clicked" 0.0; \ + image.normal: img2; \ + } \ + } \ + part { name: "elm.swallow.content"; \ + type: SWALLOW; \ + description { state: "default" 0.0; \ + visible: 1; \ + align: 0.5 0.5; \ + aspect: 0.5 1.0; \ + rel1.relative: rel1x rel1y; \ + rel2.relative: rel2x rel2y; \ + aspect_preference: VERTICAL; \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + fixed: 1 0; \ + visible: 1; \ + aspect: 1.0 1.0; \ + } \ + description { state: "icononly" 0.0; \ + inherit: "default" 0.0; \ + fixed: 0 0; \ + visible: 1; \ + align: 0.5 0.5; \ + aspect: 1.0 1.0; \ + } \ + } \ + part { name: "over2"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + part { name: "over3"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + part { name: "disabler"; \ + type: RECT; \ + description { state: "default" 0.0; \ + visible: 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + } \ + programs { \ + program { name: "button_click"; \ + signal: "mouse,down,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,press" ""; \ + after: "button_click_anim"; \ + } \ + program { name: "button_click_anim"; \ + action: STATE_SET "clicked" 0.0; \ + target: "button_image"; \ + } \ + program { name: "button_unclick"; \ + signal: "mouse,up,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,unpress" ""; \ + after: "button_unclick_anim"; \ + } \ + program { name: "button_unclick_anim"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + } \ + program { name: "button_mouseout_clicked"; \ + signal: "mouse,out"; \ + source: "over2"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.swallow.content", st, 30, vl); \ + if (!strcmp(st, "clicked")) \ + { \ + set_state(PART:"button_image", "visible", 0.0); \ + } \ + } \ + } \ + program { name: "button_click2"; \ + signal: "mouse,down,1"; \ + source: "over3"; \ + action: STATE_SET "clicked" 0.0; \ + target: "over3"; \ + } \ + program { name: "button_unclick2"; \ + signal: "mouse,up,1"; \ + source: "over3"; \ + action: STATE_SET "default" 0.0; \ + target: "over3"; \ + } \ + program { name: "button_unclick3"; \ + signal: "mouse,up,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,click" ""; \ + } \ + program { name: "text_show"; \ + signal: "elm,state,text,visible"; \ + source: "elm"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.swallow.content", st, 30, vl); \ + if (!strcmp(st, "icononly")) \ + set_state(PART:"elm.swallow.content", "visible", 0.0); \ + } \ + } \ + program { name: "text_hide"; \ + signal: "elm,state,text,hidden"; \ + source: "elm"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.swallow.content", st, 30, vl); \ + if (!strcmp(st, "visible")) \ + set_state(PART:"elm.swallow.content", "icononly", 0.0); \ + } \ + } \ + program { name: "icon_show"; \ + signal: "elm,state,icon,visible"; \ + source: "elm"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.swallow.content", st, 30, vl); \ + if (!strcmp(st, "visible")) \ + set_state(PART:"elm.swallow.content", "visible", 0.0); \ + else \ + set_state(PART:"elm.swallow.content", "icononly", 0.0); \ + } \ + } \ + program { name: "icon_hide"; \ + signal: "elm,state,icon,hidden"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "elm.swallow.content"; \ + } \ + program { name: "disable"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "button_image"; \ + target: "over2"; \ + target: "disabler"; \ + } \ + program { name: "enable"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + target: "over2"; \ + target: "disabler"; \ + } \ + program { name: "focused"; \ + signal: "elm,action,focus"; \ + source: "elm"; \ + action: STATE_SET "focused" 0.0; \ + target: "button_image"; \ + } \ + program { name: "unfocused"; \ + signal: "elm,action,unfocus"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + } \ + } \ + } + +#define STYLE_CALL_TEXT(grp_name, img1, img2, min_x, min_y, border_L, border_T, g1, b1, sz) \ + group { name: "elm/button/base/"grp_name; \ + images { \ + image: img1 COMP; \ + image: img2 COMP; \ + } \ + parts { \ + part { name: "button_image"; \ + mouse_events: 1; \ + scale: 1; \ + effect: SOFT_SHADOW; \ + description { state: "default" 0.0; \ + min: min_x min_y; \ + image { \ + normal: img1; \ + border: border_L border_T 0 0; \ + border_scale: 1; \ + } \ + } \ + description { state: "clicked" 0.0; \ + min: min_x min_y; \ + image { \ + normal: img2; \ + border: border_L border_T 0 0; \ + border_scale: 1; \ + } \ + } \ + description { state: "disabled" 0.0; \ + inherit: "clicked" 0.0; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + } \ + } \ + part { name: "elm.text"; \ + type: TEXT; \ + effect: SHADOW; \ + mouse_events: 0; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + fixed: 1 1; \ + align: 0.5 0.5; \ + color: 255 g1 b1 255; \ + color2: 0 0 0 102; \ + color3: 0 0 0 255; \ + text { \ + font: FONT_SLP_Regular; \ + text_class: TEXT_CLASS_SLP_REGULAR; \ + size: sz; \ + min: 0 0; \ + align: 0.5 0.5; \ + } \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + min: 1 1; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + min: 1 1; \ + color: 255 255 255 255; \ + color2: 0 0 0 102; \ + color3: 0 0 0 255; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + color: 0 0 0 128; \ + color3: 0 0 0 0; \ + } \ + description { state: "disabled_visible" 0.0; \ + inherit: "default" 0.0; \ + color: 0 0 0 128; \ + color3: 0 0 0 0; \ + visible: 1; \ + min: 1 1; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + min: 1 1; \ + color: 255 255 255 255; \ + } \ + } \ + part { name: "over1"; \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + rel2.relative: 1.0 0.5; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + } \ + } \ + part { name: "over2"; \ + mouse_events: 1; \ + repeat_events: 1; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + part { name: "over3"; \ + mouse_events: 1; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + color: 255 255 255 0; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 0; \ + } \ + } \ + part { name: "disabler"; \ + type: RECT; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + visible: 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + } \ + programs { \ + program { name: "button_click"; \ + signal: "mouse,down,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,press" ""; \ + after: "button_click_anim"; \ + } \ + program { name: "button_click_anim"; \ + action: STATE_SET "clicked" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + } \ + program { name: "button_unclick"; \ + signal: "mouse,up,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,unpress" ""; \ + after: "button_unclick_anim"; \ + } \ + program { name: "button_unclick_anim"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + action: STATE_SET "visible" 0.0; \ + target: "elm.text"; \ + } \ + program { name: "button_mouseout_clicked"; \ + signal: "mouse,out"; \ + source: "over2"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.text", st, 30, vl); \ + if (!strcmp(st, "clicked")) \ + { \ + set_state(PART:"elm.text", "visible", 0.0); \ + set_state(PART:"button_image", "visible", 0.0); \ + } \ + } \ + } \ + program { name: "button_click2"; \ + signal: "mouse,down,1"; \ + source: "over3"; \ + action: STATE_SET "clicked" 0.0; \ + target: "over3"; \ + } \ + program { name: "button_unclick2"; \ + signal: "mouse,up,1"; \ + source: "over3"; \ + action: STATE_SET "default" 0.0; \ + target: "over3"; \ + } \ + program { name: "button_unclick3"; \ + signal: "mouse,up,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,click" ""; \ + } \ + program { name: "text_show"; \ + signal: "elm,state,text,visible"; \ + source: "elm"; \ + action: STATE_SET "visible" 0.0; \ + target: "elm.text"; \ + } \ + program { name: "text_hide"; \ + signal: "elm,state,text,hidden"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "elm.text"; \ + } \ + program { name: "disable"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "button_image"; \ + target: "over1"; \ + target: "over2"; \ + target: "disabler"; \ + after: "disable_text"; \ + } \ + program { name: "disable_text"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.text", st, 30, vl); \ + if (!strcmp(st, "visible")) \ + set_state(PART:"elm.text", "disabled_visible", 0.0); \ + else \ + set_state(PART:"elm.text", "disabled", 0.0); \ + } \ + } \ + program { name: "enable"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + target: "over1"; \ + target: "over2"; \ + target: "disabler"; \ + after: "enable_text"; \ + } \ + program { name: "enable_text"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.text", st, 30, vl); \ + if (!strcmp(st, "disabled_visible")) \ + set_state(PART:"elm.text", "visible", 0.0); \ + else \ + set_state(PART:"elm.text", "default", 0.0); \ + } \ + } \ + program { name: "focused"; \ + signal: "elm,action,focus"; \ + source: "elm"; \ + action: STATE_SET "focused" 0.0; \ + target: "button_image"; \ + target: "elm.text"; \ + } \ + program { name: "unfocused"; \ + signal: "elm,action,unfocus"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + action: STATE_SET "visible" 0.0; \ + target: "elm.text"; \ + } \ + } \ } -////////////// HIDE_BUTTON (text_only/title) ////////////////////////////////////////////// - group { name: "elm/button/base/text_only/style_keypad_hide_button"; - images { - image: "vc_button_hide_keypad_normal.png" COMP; - image: "vc_button_press.png" COMP; - } - parts { - part { name: "button_image"; - mouse_events: 1; - scale: 1; - effect: SOFT_SHADOW; - description { state: "default" 0.0; - image { - normal: "vc_button_hide_keypad_normal.png"; - border: 10 10 0 0; - border_scale: 1; - } - } - description { state: "clicked" 0.0; - image { - normal: "vc_button_press.png"; - border: 10 10 0 0; - border_scale: 1; - } - } - description { state: "disabled" 0.0; - inherit: "clicked" 0.0; - } - description { state: "focused" 0.0; - inherit: "clicked" 0.0; - } - } - part { name: "elm.text"; - type: TEXT; - effect: SHADOW; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - visible: 0; - fixed: 1 1; - align: 0.5 0.5; - color: 255 255 255 255; - color2: 0 0 0 102; - color3: 0 0 0 255; - text { - font: FONT_SLP_Medium; - size: 48; - min: 0 0; - align: 0.5 0.5; - } - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; - color: 255 255 255 255; - color2: 0 0 0 102; - color3: 0 0 0 255; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - color: 0 0 0 128; - color3: 0 0 0 0; - } - description { state: "disabled_visible" 0.0; - inherit: "default" 0.0; - color: 0 0 0 128; - color3: 0 0 0 0; - visible: 1; - min: 1 1; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; - color: 255 255 255 255; - } - } - part { name: "over1"; - mouse_events: 0; - description { state: "default" 0.0; - rel2.relative: 1.0 0.5; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - } - } - part { name: "over2"; - mouse_events: 1; - repeat_events: 1; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part { name: "over3"; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 255 255 255 0; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - color: 255 255 255 0; - } - } - part { name: "disabler"; - type: RECT; - description { state: "default" 0.0; - color: 0 0 0 0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - } - programs { - program { name: "button_click"; - signal: "mouse,down,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,press" ""; - after: "button_click_anim"; - } - program { name: "button_click_anim"; - action: STATE_SET "clicked" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "button_unclick"; - signal: "mouse,up,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,unpress" ""; - after: "button_unclick_anim"; - } - program { name: "button_unclick_anim"; - action: STATE_SET "default" 0.0; - target: "button_image"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - program { name: "button_mouseout_clicked"; - signal: "mouse,out"; - source: "over2"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "clicked")) - { - set_state(PART:"elm.text", "visible", 0.0); - set_state(PART:"button_image", "visible", 0.0); - } - } - } - program { name: "button_click2"; - signal: "mouse,down,1"; - source: "over3"; - action: STATE_SET "clicked" 0.0; - target: "over3"; - } - program { name: "button_unclick2"; - signal: "mouse,up,1"; - source: "over3"; - action: STATE_SET "default" 0.0; - target: "over3"; - } - program { name: "button_unclick3"; - signal: "mouse,up,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,click" ""; - } - program { name: "text_show"; - signal: "elm,state,text,visible"; - source: "elm"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - program { name: "text_hide"; - signal: "elm,state,text,hidden"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "elm.text"; - } - - program { name: "disable"; - signal: "elm,state,disabled"; - source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "button_image"; - target: "over1"; - target: "over2"; - target: "disabler"; - after: "disable_text"; - } - program { name: "disable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.text", "disabled_visible", 0.0); - else - set_state(PART:"elm.text", "disabled", 0.0); - } - } - program { name: "enable"; - signal: "elm,state,enabled"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - target: "over1"; - target: "over2"; - target: "disabler"; - after: "enable_text"; - } - program { name: "enable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "disabled_visible")) - set_state(PART:"elm.text", "visible", 0.0); - else - set_state(PART:"elm.text", "default", 0.0); - } - } - program { name: "focused"; - signal: "elm,action,focus"; - source: "elm"; - action: STATE_SET "focused" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "unfocused"; - signal: "elm,action,unfocus"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - } +#define GENLIST_PROGRAMS \ + program { name: "go_active"; \ + signal: "elm,state,selected"; \ + source: "elm"; \ + action: STATE_SET "selected" 0.0; \ + target: "bg_image"; \ + target: "elm.text"; \ + } \ + program { name: "go_passive"; \ + signal: "elm,state,unselected"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "bg_image"; \ + target: "elm.text"; \ + transition: LINEAR 0.1; \ + } \ + program { name: "go_disabled"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "disclip"; \ + } \ + program { name: "go_enabled"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "disclip"; \ + } + +#define STYLE_CALL_MULTILIST_BUTTON(grp_name, img1, img2, min_x, min_y, max_x, max_y) \ + group { name: "elm/button/base/"grp_name; \ + images { \ + image: img1 COMP; \ + image: img2 COMP; \ + } \ + parts { \ + part { name: "button_image"; \ + mouse_events: 1; \ + scale: 1; \ + description { state: "default" 0.0; \ + min: min_x min_y; \ + max: max_x max_y; \ + image { \ + normal: img1; \ + border: 5 5 0 0; \ + border_scale: 1; \ + } \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + image { \ + normal: img2; \ + border: 5 5 0 0; \ + border_scale: 1; \ + } \ + } \ + description { state: "disabled" 0.0; \ + inherit: "clicked" 0.0; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + } \ + } \ + part { name: "elm.swallow.content"; \ + type: SWALLOW; \ + mouse_events: 0; \ + scale: 1; \ + description { state: "default" 0.0; \ + min: min_x min_y; \ + max: max_x max_y; \ + fixed: 1 1; \ + visible: 0; \ + rel1 { to: "button_image"; } \ + rel2 { to: "button_image"; } \ + align: 0.5 0.5; \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + aspect: 1.0 1.0; \ + aspect_preference: VERTICAL; \ + } \ + } \ + part { name: "over1"; \ + mouse_events: 1; \ + repeat_events: 1; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + rel1.to: "button_image"; \ + rel2.to: "button_image"; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + part { name: "over2"; \ + mouse_events: 1; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + color: 255 255 255 0; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 0; \ + } \ + } \ + part { name: "disabler"; \ + type: RECT; \ + description { state: "default" 0.0; \ + rel1.to: "button_image"; \ + rel2.to: "button_image"; \ + color: 0 0 0 0; \ + visible: 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + } \ + programs { \ + program { name: "button_click"; \ + signal: "mouse,down,1"; \ + source: "over1"; \ + action: SIGNAL_EMIT "elm,action,press" ""; \ + after: "button_click_anim"; \ + } \ + program { name: "button_click_anim"; \ + action: STATE_SET "clicked" 0.0; \ + target: "button_image"; \ + } \ + program { name: "button_unclick"; \ + signal: "mouse,up,1"; \ + source: "over1"; \ + action: SIGNAL_EMIT "elm,action,unpress" ""; \ + after: "button_unclick_anim"; \ + } \ + program { name: "button_unclick_anim"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + } \ + program { name: "button_mouseout_clicked"; \ + signal: "mouse,out"; \ + source: "over1"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + } \ + program { name: "button_click2"; \ + signal: "mouse,down,1"; \ + source: "over2"; \ + action: STATE_SET "clicked" 0.0; \ + target: "over2"; \ + } \ + program { name: "button_unclick2"; \ + signal: "mouse,up,1"; \ + source: "over2"; \ + action: STATE_SET "default" 0.0; \ + target: "over2"; \ + after: "button_unclick3"; \ + } \ + program { name: "button_unclick3"; \ + action: SIGNAL_EMIT "elm,action,click" ""; \ + } \ + program { name: "disable"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "button_image"; \ + target: "over1"; \ + target: "disabler"; \ + } \ + program { name: "enable"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + target: "over1"; \ + target: "disabler"; \ + } \ + program { name: "icon_show"; \ + signal: "elm,state,icon,visible"; \ + source: "elm"; \ + action: STATE_SET "visible" 0.0; \ + target: "elm.swallow.content"; \ + } \ + program { name: "icon_hide"; \ + signal: "elm,state,icon,hidden"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "elm.swallow.content"; \ + } \ + program { name: "focused"; \ + signal: "elm,action,focus"; \ + source: "elm"; \ + action: STATE_SET "focused" 0.0; \ + target: "button_image"; \ + } \ + program { name: "unfocused"; \ + signal: "elm,action,unfocus"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + } \ + } \ } -////////////// HIDE_BUTTON (text_only/title) ////////////////////////////////////////////// - group { name: "elm/button/base/text_only/style_keypad_end_button"; +#define BEAT_GENLIST_PART_BASE( param_item_height ) \ + part { name: "base"; \ + type: RECT; \ + repeat_events: 1; \ + scale: 1; \ + description { state: "default" 0.0; \ + min: 0 param_item_height; \ + color: 0 0 0 24; \ + } \ + } + +#define BEAT_GENLIST_PART_BG \ + part { name: "bg"; \ + type: RECT; \ + clip_to: "disclip"; \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + color: 0 0 0 255;\ + } \ + } + +#define GENLIST_PART_BG_IMAGE \ + part { name: "bg_image"; \ + type: RECT; \ + clip_to: "disclip"; \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + color: 0 0 0 255; \ + } \ + description { state: "selected" 0.0; \ + inherit: "default" 0.0; \ + color: 0 140 210 255; \ + } \ + } + +#define GENLIST_PART_BG_IMAGE_NO_SELECT \ + part { name: "bg_image"; \ + type: RECT; \ + clip_to: "disclip"; \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + color: 199 185 164 0; \ + } \ + description { state: "selected" 0.0; \ + inherit: "default" 0.0; \ + } \ + } + +#define BEAT_GENLIST_PART_BOTTOM_LINE \ + part { name: "bottom_line"; \ + type: RECT; \ + clip_to: "disclip"; \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + min: 0 1; \ + fixed: 0 1; \ + visible: 1; \ + color: 255 255 255 255; \ + rel1 { \ + relative: 0.0 1.0; \ + offset: 0 -1; \ + } \ + } \ + } + +#define BEAT_GENLIST_PART_PADDING_LEFT( param_padding_size ) \ + part { name: "elm.padding.left"; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: param_padding_size 0; \ + fixed: 1 0; \ + visible: 0; \ + rel2.relative: 0.0 1.0; \ + align: 0.0 0.0; \ + } \ + } + +#define BEAT_GENLIST_PART_PADDING_RIGHT( param_padding_size ) \ + part { name: "elm.padding.right"; \ + type: RECT; \ + scale: 1; \ + description { state: "default" 0.0; \ + min: param_padding_size 0; \ + fixed: 1 0; \ + visible: 0; \ + rel1.relative: 1.0 0.0; \ + align: 1.0 0.0; \ + } \ + } + +#define BEAT_GENLIST_PART_DISCLIP \ + part { name: "disclip"; \ + type: RECT; \ + description { state: "default" 0.0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + color: 255 255 255 64; \ + } \ + } + +#define GENLIST_PADDING_10_INC 16 +#define GENLIST_HEIGHT_31_INC 49 +#define GENLIST_SIZE_30_INC 48 +#define GENLIST_FONT_20_INC 32 +#define GENLIST_GROUP_BG_COLOR_DEFAULT_INC 0 0 0 120 +#define GENLIST_GROUP_BG_COLOR_ALPHA_OFF_INC 15 15 15 255 +#define GENLIST_GROUP_PART_BASE_IMAGE_INC +#define GENLIST_GROUP_PART_TEXT_COLOR_INC 255 255 255 255 + +collections { + +////////////// elm/button/base/default -disabled ////////////////////////////////////////////// +//////This is disabled effect for buttons of Six buttons layout and disabled effect is when making MO call//// + STYLE_CALL_SIX_BUTTON("style_call_sixbtn_disabled_add", ICON_IMG_PATH"/vc_add_icon_dim.png", ICON_IMG_PATH"/vc_add_icon_dim.png", 1, 1, 51, 255, 255, 255, 51, 0, 0, 0, 255) + STYLE_CALL_SIX_BUTTON("style_call_sixbtn_disabled_join", ICON_IMG_PATH"/vc_join_icon_dim.png", ICON_IMG_PATH"/vc_join_icon_dim.png", 1, 1, 51, 255, 255, 255, 51, 0, 0, 0, 255) + STYLE_CALL_SIX_BUTTON("style_call_sixbtn_disabled_keypad", ICON_IMG_PATH"/vc_keypad_icon_dim.png", ICON_IMG_PATH"/vc_keypad_icon_dim.png", 1, 1, 51, 255, 255, 255, 51, 0, 0, 0, 255) + STYLE_CALL_SIX_BUTTON("style_call_sixbtn_disabled_end", ICON_IMG_PATH"/vc_end_call_icon_dim.png", ICON_IMG_PATH"/vc_end_call_icon_dim.png", 1, 1, 51, 255, 255, 255, 51, 0, 0, 0, 255) + STYLE_CALL_SIX_BUTTON("style_call_sixbtn_disabled_speaker", ICON_IMG_PATH"/vc_speaker_icon_dim.png", ICON_IMG_PATH"/vc_speaker_icon_dim.png", 1, 1, 51, 255, 255, 255, 51, 0, 0, 0, 255) + STYLE_CALL_SIX_BUTTON("style_call_sixbtn_disabled_mute", ICON_IMG_PATH"/vc_mute_icon_dim.png", ICON_IMG_PATH"/vc_mute_icon_dim.png", 1, 1, 51, 255, 255, 255, 51, 0, 0, 0, 255) + STYLE_CALL_SIX_BUTTON("style_call_sixbtn_disabled_share", ICON_IMG_PATH"/vc_rcs_share_icon_dim.png", ICON_IMG_PATH"/vc_rcs_share_icon_dim.png", 1, 1, 51, 255, 255, 255, 51, 0, 0, 0, 255) + STYLE_CALL_SIX_BUTTON("style_call_sixbtn_disabled_contacts", ICON_IMG_PATH"/vc_contacts_icon_dim.png", ICON_IMG_PATH"/vc_contacts_icon_dim.png", 1, 1, 51, 255, 255, 255, 51, 0, 0, 0, 255) + STYLE_CALL_SIX_BUTTON("style_call_sixbtn_disabled_live_video", ICON_IMG_PATH"/vc_live_video_icon_dim.png", ICON_IMG_PATH"/vc_live_video_icon_dim.png", 1, 1, 51, 255, 255, 255, 51, 0, 0, 0, 255) + +////////////// elm/button/base/default ////////////////////////////////////////////// +//////This effect is for buttons of Six buttons layout when they are enabled////// + STYLE_CALL_SIX_BUTTON("style_call_sixbtn_add", ICON_IMG_PATH"/vc_add_icon.png", ICON_IMG_PATH"/vc_add_icon_press.png", 0, 1, 255, 0, 0, 0, 128, 0, 0, 0, 0) + STYLE_CALL_SIX_BUTTON("style_call_sixbtn_join", ICON_IMG_PATH"/vc_join_icon.png", ICON_IMG_PATH"/vc_join_icon_press.png", 0, 1, 255, 0, 0, 0, 128, 0, 0, 0, 0) + STYLE_CALL_SIX_BUTTON("style_call_sixbtn_keypad", ICON_IMG_PATH"/vc_keypad_icon.png", ICON_IMG_PATH"/vc_keypad_icon_press.png", 0, 1, 255, 0, 0, 0, 128, 0, 0, 0, 0) + STYLE_CALL_SIX_BUTTON("style_call_sixbtn_end", ICON_IMG_PATH"/vc_end_call_icon.png", ICON_IMG_PATH"/vc_end_call_icon_press.png", 0, 1, 255, 0, 0, 0, 128, 0, 0, 0, 0) + STYLE_CALL_SIX_BUTTON("style_call_sixbtn_speaker", ICON_IMG_PATH"/vc_speaker_icon.png", ICON_IMG_PATH"/vc_speaker_icon_press.png", 0, 1, 255, 0, 0, 0, 128, 0, 0, 0, 0) + STYLE_CALL_SIX_BUTTON("style_call_sixbtn_speaker_on", ICON_IMG_PATH"/vc_speaker_on_icon.png", ICON_IMG_PATH"/vc_speaker_on_icon_press.png", 0, 1, 255, 0, 0, 0, 128, 0, 0, 0, 0) + STYLE_CALL_SIX_BUTTON("style_call_sixbtn_mute", ICON_IMG_PATH"/vc_mute_icon.png", ICON_IMG_PATH"/vc_mute_icon_press.png", 0, 1, 255, 0, 0, 0, 128, 0, 0, 0, 0) + STYLE_CALL_SIX_BUTTON("style_call_sixbtn_mute_on", ICON_IMG_PATH"/vc_mute_on_icon.png", ICON_IMG_PATH"/vc_mute_on_icon_press.png", 0, 1, 255, 0, 0, 0, 128, 0, 0, 0, 0) + STYLE_CALL_SIX_BUTTON("style_call_sixbtn_share", ICON_IMG_PATH"/vc_rcs_share_icon.png", ICON_IMG_PATH"/vc_speaker_icon_press.png", 0, 1, 255, 0, 0, 0, 128, 0, 0, 0, 0) + STYLE_CALL_SIX_BUTTON("style_call_sixbtn_contacts", ICON_IMG_PATH"/vc_contacts_icon.png", ICON_IMG_PATH"/vc_contacts_icon_press.png", 0, 1, 255, 0, 0, 0, 128, 0, 0, 0, 0) + STYLE_CALL_SIX_BUTTON("style_call_sixbtn_live_video", ICON_IMG_PATH"/vc_live_video_icon.png", ICON_IMG_PATH"/vc_live_video_icon_press.png", 0, 1, 255, 0, 0, 0, 128, 0, 0, 0, 0) + +////////////// elm/button/base/default ////////////////////////////////////////////// +///////////// This style is for Three buttons style in endcall view////////////////// + STYLE_CALL_END_BUTTON(style_call_end_voice_call_button, ICON_IMG_PATH"/vc_voice_call_icon.png", ICON_IMG_PATH"/vc_voice_call_icon_press.png"); + STYLE_CALL_END_BUTTON(style_call_end_video_call_button, ICON_IMG_PATH"/vc_video_call_icon.png", ICON_IMG_PATH"/vc_video_call_icon_press.png"); + STYLE_CALL_END_BUTTON(style_call_end_message_button, ICON_IMG_PATH"/vc_msg_icon.png", ICON_IMG_PATH"/vc_msg_icon_press.png"); + +////////////// elm/button/base/icon_only/default ////////////////////////////////////////////// +////This style is for hold button in single call/////////////////////////////////////////////// + STYLE_HOLD_SWAP_BUTTON("style_normal_holdbtn", BG_IMG_PATH"/vc_button_hold_swap_normal.png", BG_IMG_PATH"/vc_button_hold_swap_press.png", 0.3, 0.3, 0.7, 0.7) + +////////////// elm/button/base/icon_only/default ////////////////////////////////////////////// +///////This style is for hold button in conference call in list//////////////////////////////// + STYLE_HOLD_SWAP_BUTTON("style_list_holdbtn", BG_IMG_PATH"/vc_button_conflist_hold_normal.png", BG_IMG_PATH"/vc_button_conflist_hold_press.png", 0.3, 0.3, 0.7, 0.7) + +////////////// elm/button/base/icon_only/default ////////////////////////////////////////////// +////This style is for swap button /////////////////////////////////////////////// + STYLE_HOLD_SWAP_BUTTON("style_normal_swapbtn", BG_IMG_PATH"/vc_button_hold_swap_normal.png", BG_IMG_PATH"/vc_button_hold_swap_press.png", 0, 0, 1, 1) + +////////////// elm/button/base/icon_only/default ////////////////////////////////////////////// +/////This style is for private(split) icon in genlist view in multi call list view//////////////////// + STYLE_CALL_MULTILIST_BUTTON("style_call_icon_only_private", BG_IMG_PATH"/vc_conf_split_normal.png", BG_IMG_PATH"/vc_conf_split_press.png", 68, 66, 68, 66) + +////////////// elm/button/base/icon_only/default ////////////////////////////////////////////// +///////////// This style is for small end call red button in each item in list in multi-call list view/// + STYLE_CALL_MULTILIST_BUTTON("style_call_icon_only_end", BG_IMG_PATH"/vc_conf_end_normal.png", BG_IMG_PATH"/vc_conf_end_press.png", 80, 74, 80, 74) + +////////////// elm/button/base/style_call_qp_text_only_end ////////////////////////////////////////////// +/////////////This style is for End button in quickpanel view////////////////////////////////////////////////////////// + STYLE_CALL_TEXT("style_call_qp_text_only_end", BG_IMG_PATH"/vc_button_qp_end_normal.png", BG_IMG_PATH"/vc_button_qp_end_press.png", 179, 74, 4, 4, 255, 255, 32) + +////////////// elm/button/base/style_call_qp_text_only_normal ////////////////////////////////////////////// +/////////////This style is for mute/unhold button in quickpanel view////////////////////////////////////////////////////////// + STYLE_CALL_TEXT("style_call_qp_text_only_normal", BG_IMG_PATH"/vc_button_qp_normal.png", BG_IMG_PATH"/vc_button_qp_press.png", 179, 74, 4, 4, 255, 255, 32) + +////////////// elm/button/base/text_only/style_call_text_only_red ////////////////////////////////////////////// +/////////////This style is for Big End button used in multi-call list view////////////////////////////////////// + STYLE_CALL_TEXT("style_call_text_only_red", BG_IMG_PATH"/vc_conf_button_bigend_call.png", BG_IMG_PATH"/vc_conf_button_bigend_call_press.png", 100, 50, 4, 4, 255, 255, 48) + +////////////// elm/button/base/text_only/call_end_grey ////////////////////////////////////////////// +///////////// This style is for add to contacts button in end call view////////////////////////////// + STYLE_CALL_TEXT("style_call_text_only_grey", BG_IMG_PATH"/vc_contact_btn.png", BG_IMG_PATH"/vc_contact_btn_press.png", 194, 92, 16, 16, 255, 255, 38) + +////////////// elm/button/base/style_caller_info_morebtn ////////////////////////////////////////////// +///////////This style is for more button in caller info part//////////////////// + group { name: "elm/button/base/style_caller_info_morebtn"; images { - image: "vc_button_red_normal.png" COMP; - image: "vc_button_press.png" COMP; + image: BG_IMG_PATH"/vc_more_button_normal.png" COMP; + image: BG_IMG_PATH"/vc_more_button_press.png" COMP; } parts { part { name: "button_image"; mouse_events: 1; scale: 1; - effect: SOFT_SHADOW; description { state: "default" 0.0; + min: 70 70; image { - normal: "vc_button_red_normal.png"; - border: 16 16 0 0; + normal: BG_IMG_PATH"/vc_more_button_normal.png"; + border: 0 0 0 0; border_scale: 1; } } description { state: "clicked" 0.0; - image { - normal: "vc_button_press.png"; - border: 16 16 0 0; - border_scale: 1; - } - } - description { state: "disabled" 0.0; - inherit: "clicked" 0.0; - } - description { state: "focused" 0.0; - inherit: "clicked" 0.0; - } - } - part { name: "elm.text"; - type: TEXT; - effect: SHADOW; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - visible: 0; - fixed: 1 1; - align: 0.5 0.5; - color: 255 255 255 255; - color2: 0 0 0 102; - color3: 0 0 0 255; - text { - font: FONT_SLP_Medium; - size: 48; - min: 0 0; - align: 0.5 0.5; - } - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; - color: 255 255 255 255; - color2: 0 0 0 102; - color3: 0 0 0 255; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - color: 0 0 0 128; - color3: 0 0 0 0; - } - description { state: "disabled_visible" 0.0; - inherit: "default" 0.0; - color: 0 0 0 128; - color3: 0 0 0 0; - visible: 1; - min: 1 1; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; - color: 255 255 255 255; - } - } - part { name: "over1"; - mouse_events: 0; - description { state: "default" 0.0; - rel2.relative: 1.0 0.5; - } - description { state: "disabled" 0.0; inherit: "default" 0.0; + image.normal: BG_IMG_PATH"/vc_more_button_press.png"; } } part { name: "over2"; + type: RECT; mouse_events: 1; repeat_events: 1; ignore_flags: ON_HOLD; description { state: "default" 0.0; + color: 0 0 0 0; } description { state: "disabled" 0.0; inherit: "default" 0.0; @@ -3487,26 +1534,25 @@ collections { } } part { name: "over3"; + type: RECT; mouse_events: 1; repeat_events: 1; description { state: "default" 0.0; - color: 255 255 255 0; + color: 0 0 0 0; } description { state: "clicked" 0.0; inherit: "default" 0.0; visible: 1; - color: 255 255 255 0; } } part { name: "disabler"; type: RECT; - description { state: "default" 0.0; - color: 0 0 0 0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; + description { state: "default" 0.0; + visible: 0; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + visible: 1; } } } @@ -3520,7 +1566,6 @@ collections { program { name: "button_click_anim"; action: STATE_SET "clicked" 0.0; target: "button_image"; - target: "elm.text"; } program { name: "button_unclick"; signal: "mouse,up,1"; @@ -3531,22 +1576,12 @@ collections { program { name: "button_unclick_anim"; action: STATE_SET "default" 0.0; target: "button_image"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; } program { name: "button_mouseout_clicked"; signal: "mouse,out"; source: "over2"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "clicked")) - { - set_state(PART:"elm.text", "visible", 0.0); - set_state(PART:"button_image", "visible", 0.0); - } - } + action: STATE_SET "visible" 0.0; + target: "button_image"; } program { name: "button_click2"; signal: "mouse,down,1"; @@ -3556,138 +1591,158 @@ collections { } program { name: "button_unclick2"; signal: "mouse,up,1"; - source: "over3"; - action: STATE_SET "default" 0.0; - target: "over3"; - } - program { name: "button_unclick3"; - signal: "mouse,up,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,click" ""; - } - program { name: "text_show"; - signal: "elm,state,text,visible"; - source: "elm"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - program { name: "text_hide"; - signal: "elm,state,text,hidden"; - source: "elm"; + source: "over3"; action: STATE_SET "default" 0.0; - target: "elm.text"; + target: "over3"; + } + program { name: "button_unclick3"; + signal: "mouse,up,1"; + source: "over2"; + action: SIGNAL_EMIT "elm,action,click" ""; } - program { name: "disable"; signal: "elm,state,disabled"; source: "elm"; action: STATE_SET "disabled" 0.0; target: "button_image"; - target: "over1"; target: "over2"; target: "disabler"; - after: "disable_text"; - } - program { name: "disable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.text", "disabled_visible", 0.0); - else - set_state(PART:"elm.text", "disabled", 0.0); - } } program { name: "enable"; signal: "elm,state,enabled"; source: "elm"; action: STATE_SET "default" 0.0; target: "button_image"; - target: "over1"; target: "over2"; target: "disabler"; - after: "enable_text"; - } - program { name: "enable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "disabled_visible")) - set_state(PART:"elm.text", "visible", 0.0); - else - set_state(PART:"elm.text", "default", 0.0); - } } program { name: "focused"; signal: "elm,action,focus"; source: "elm"; action: STATE_SET "focused" 0.0; target: "button_image"; - target: "elm.text"; } program { name: "unfocused"; signal: "elm,action,unfocus"; source: "elm"; action: STATE_SET "default" 0.0; target: "button_image"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; } } } -////////////// elm/button/base/icon_only/default ////////////////////////////////////////////// - group { name: "elm/button/base/style_call_smallbtn_red"; +////////////// elm/button/base/style_call_small_text_with_icon ////////////////////////////////////////////// +///////////This style is for mute button in quickpanel if mute-status is enabled///////////////////////////// + group { name: "elm/button/base/style_call_small_text_with_icon"; images { - image: "vc_conference_call_btn_red.png" COMP; - image: "vc_conference_call_btn_press.png" COMP; + image: BG_IMG_PATH"/vc_button_qp_normal.png" COMP; + image: BG_IMG_PATH/"vc_button_qp_press.png" COMP; } parts { part { name: "button_image"; mouse_events: 1; scale: 1; description { state: "default" 0.0; - min: 120 72; - max: 120 72; + min: 1 1; image { - normal: "vc_conference_call_btn_red.png"; - border: 5 5 0 0; - border_scale: 1; + normal: BG_IMG_PATH"/vc_button_qp_normal.png"; + border: 4 4 0 0; + } + image.middle: SOLID; + } + description { state: "clicked" 0.0; + inherit: "default" 0.0; + image.normal: BG_IMG_PATH/"vc_button_qp_press.png"; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + } + description { state: "focused" 0.0; + inherit: "default" 0.0; + } + } + + part { name: "elm.text"; + type: TEXT; + mouse_events: 0; + effect: SHADOW; + scale: 1; + description { state: "default" 0.0; + visible: 0; + rel1.relative: 0.5 0; + rel2.relative: 0.5 1; + color: 7 180 211 255; + color2: 0 0 0 102; + color3: 0 0 0 255; + max: 200 74; + text { + font: FONT_SLP_Regular; + size: 32; + align: 0.5 0.5; + min: 1 0; + text_class: TEXT_CLASS_SLP_REGULAR; } } + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } description { state: "clicked" 0.0; inherit: "default" 0.0; - image.normal: "vc_conference_call_btn_press.png"; + visible: 1; + min: 1 1; + color: 255 255 255 255; + color2: 0 0 0 102; + color3: 0 0 0 255; } description { state: "disabled" 0.0; inherit: "default" 0.0; + color: 0 0 0 128; + color3: 0 0 0 0; + } + description { state: "disabled_visible" 0.0; + inherit: "default" 0.0; + color: 0 0 0 128; + color3: 0 0 0 0; + visible: 1; } description { state: "focused" 0.0; inherit: "default" 0.0; + visible: 1; + min: 1 1; + color: 255 255 255 255; + color2: 0 0 0 102; + color3: 0 0 0 255; } } + part { name: "elm.swallow.content"; type: SWALLOW; - mouse_events: 0; - scale: 1; description { state: "default" 0.0; - min: 120 72; - max: 120 72; fixed: 1 1; - visible: 1; - rel1 { to: "button_image"; } - rel2 { to: "button_image"; } - align: 0.5 0.5; + visible: 0; + rel1.to_x: "elm.text"; + rel1.relative: 1.0 0.0; + rel1.offset: 0 4; + rel2.offset: -5 -5; + max: 30 30; } description { state: "visible" 0.0; inherit: "default" 0.0; + fixed: 1 1; visible: 1; aspect: 1.0 1.0; - aspect_preference: VERTICAL; + } + description { state: "icononly" 0.0; + inherit: "default" 0.0; + fixed: 0 0; + visible: 1; + align: 0.5 0.5; + rel2.offset: -5 -5; + rel2.relative: 1.0 1.0; } } + part { name: "over2"; type: RECT; mouse_events: 1; @@ -3697,7 +1752,7 @@ collections { color: 0 0 0 0; } description { state: "disabled" 0.0; - inherit: "default" 0.0; + inherit: "default" 0.0; visible: 0; } } @@ -3709,7 +1764,7 @@ collections { color: 0 0 0 0; } description { state: "clicked" 0.0; - inherit: "default" 0.0; + inherit: "default" 0.0; visible: 1; } } @@ -3724,6 +1779,7 @@ collections { } } } + programs { program { name: "button_click"; signal: "mouse,down,1"; @@ -3734,28 +1790,34 @@ collections { program { name: "button_click_anim"; action: STATE_SET "clicked" 0.0; target: "button_image"; + after: "text_clicked"; } - program { name: "button_unclick"; - signal: "mouse,up,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,unpress" ""; - after: "button_unclick_anim"; + program { name: "text_clicked"; + script { + new st[31]; + new Float:vl; + get_state(PART:"elm.text", st, 30, vl); + if (!strcmp(st, "visible")) + set_state(PART:"elm.text", "clicked", 0.0); + } } - program { name: "button_unclick_anim"; - action: STATE_SET "default" 0.0; - target: "button_image"; + program { name: "button_unpress"; + action: SIGNAL_EMIT "elm,action,unpress" ""; } program { name: "button_mouseout_clicked"; - signal: "mouse,out"; - source: "over2"; + signal: "mouse,up,1"; + source: "over3"; script { new st[31]; new Float:vl; get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "clicked")) { - set_state(PART:"button_image", "visible", 0.0); + if (strcmp(st, "icononly")) { + emit("elm,action,default,text,set", ""); + set_state(PART:"elm.text", "visible", 0.0); } + set_state(PART:"button_image", "default", 0.0); } + after: button_unpress; } program { name: "button_click2"; signal: "mouse,down,1"; @@ -3764,13 +1826,13 @@ collections { target: "over3"; } program { name: "button_unclick2"; - signal: "mouse,up,1"; + signal: "mouse,clicked,1"; source: "over3"; action: STATE_SET "default" 0.0; target: "over3"; } program { name: "button_unclick3"; - signal: "mouse,up,1"; + signal: "mouse,clicked,1"; source: "over2"; action: SIGNAL_EMIT "elm,action,click" ""; } @@ -3778,22 +1840,28 @@ collections { signal: "elm,state,text,visible"; source: "elm"; script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "icononly")) - set_state(PART:"elm.swallow.content", "visible", 0.0); + new st[31]; + new Float:vl; + get_state(PART:"elm.swallow.content", st, 30, vl); + if (!strcmp(st, "icononly")) + { + set_state(PART:"elm.swallow.content", "visible", 0.0); + } + set_state(PART:"elm.text", "visible", 0.0); } } program { name: "text_hide"; signal: "elm,state,text,hidden"; source: "elm"; script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.swallow.content", "icononly", 0.0); + new st[31]; + new Float:vl; + get_state(PART:"elm.swallow.content", st, 30, vl); + if (!strcmp(st, "visible")) + { + set_state(PART:"elm.swallow.content", "icononly", 0.0); + } + set_state(PART:"elm.text", "default", 0.0); } } program { name: "icon_show"; @@ -3802,17 +1870,18 @@ collections { script { new st[31]; new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "visible")) + get_state(PART:"elm.text", st, 30, vl); + if (!strcmp(st, "visible")) { set_state(PART:"elm.swallow.content", "visible", 0.0); - else + } else { set_state(PART:"elm.swallow.content", "icononly", 0.0); + } } } program { name: "icon_hide"; signal: "elm,state,icon,hidden"; source: "elm"; - action: STATE_SET "default" 0.0; + action: STATE_SET "default" 0.0; target: "elm.swallow.content"; } program { name: "disable"; @@ -3822,6 +1891,18 @@ collections { target: "button_image"; target: "over2"; target: "disabler"; + after: "disable_text"; + } + program { name: "disable_text"; + script { + new st[31]; + new Float:vl; + get_state(PART:"elm.text", st, 30, vl); + if (!strcmp(st, "visible")) + set_state(PART:"elm.text", "disabled_visible", 0.0); + else + set_state(PART:"elm.text", "disabled", 0.0); + } } program { name: "enable"; signal: "elm,state,enabled"; @@ -3830,4241 +1911,999 @@ collections { target: "button_image"; target: "over2"; target: "disabler"; + after: "enable_text"; } - program { name: "focused"; - signal: "elm,action,focus"; - source: "elm"; - action: STATE_SET "focused" 0.0; - target: "button_image"; + program { name: "enable_text"; + script { + new st[31]; + new Float:vl; + get_state(PART:"elm.text", st, 30, vl); + if (!strcmp(st, "disabled_visible")) + set_state(PART:"elm.text", "visible", 0.0); + else + set_state(PART:"elm.text", "default", 0.0); + } } - program { name: "unfocused"; - signal: "elm,action,unfocus"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; + program { name: "unfocus_text"; + action: STATE_SET "visible" 0.0; + target: "elm.text"; } } } -//////////////////////////////////////////////////// -///////// multicall-list genlist /////////// -#define BEAT_GENLIST_PART_BASE( param_item_height ) \ - part { name: "base"; \ - type: RECT; \ - repeat_events: 1; \ - scale: 1; \ - description { state: "default" 0.0; \ - min: 0 param_item_height; \ - color: 0 0 0 24; \ - } \ - } - -#define BEAT_GENLIST_PART_BG \ - part { name: "bg"; \ - type: RECT; \ - clip_to: "disclip"; \ - mouse_events: 0; \ - description { state: "default" 0.0; \ - color: 0 0 0 24; \ - } \ - } - -#define BEAT_GENLIST_PART_BG_IMAGE \ - part { name: "bg_image"; \ - clip_to: "disclip"; \ - mouse_events: 0; \ - description { state: "default" 0.0; \ - visible: 0; \ - image.normal: "vc_conf_call_list_bg.png"; \ - } \ - description { state: "selected" 0.0; \ - inherit: "default" 0.0; \ - visible: 1; \ - } \ - } - -#define GENLIST_PART_BG_IMAGE \ - part { name: "bg_image"; \ - type: RECT; \ - clip_to: "disclip"; \ - mouse_events: 0; \ - description { state: "default" 0.0; \ - color: 199 185 164 0; \ - } \ - description { state: "selected" 0.0; \ - inherit: "default" 0.0; \ - color: 199 185 164 255; \ - } \ - } - -#define GENLIST_PART_BG_IMAGE_NO_SELECT \ - part { name: "bg_image"; \ - type: RECT; \ - clip_to: "disclip"; \ - mouse_events: 0; \ - description { state: "default" 0.0; \ - color: 199 185 164 0; \ - } \ - description { state: "selected" 0.0; \ - inherit: "default" 0.0; \ - } \ - } - -#define BEAT_GENLIST_PART_BOTTOM_LINE \ - part { name: "bottom_line"; \ - type: RECT; \ - clip_to: "disclip"; \ - mouse_events: 0; \ - description { state: "default" 0.0; \ - min: 0 1; \ - fixed: 0 1; \ - visible: 1; \ - color: 0 0 0 24; \ - rel1 { \ - relative: 0.0 1.0; \ - offset: 0 -1; \ - } \ - } \ - } - -#define BEAT_GENLIST_PART_PADDING_LEFT( param_padding_size ) \ - part { name: "elm.padding.left"; \ - type: RECT; \ - scale: 1; \ - description { \ - state: "default" 0.0; \ - min: param_padding_size 0; \ - fixed: 1 0; \ - visible: 0; \ - rel2.relative: 0.0 1.0; \ - align: 0.0 0.0; \ - } \ - } - -#define BEAT_GENLIST_PART_PADDING_RIGHT( param_padding_size ) \ - part { name: "elm.padding.right"; \ - type: RECT; \ - scale: 1; \ - description { state: "default" 0.0; \ - min: param_padding_size 0; \ - fixed: 1 0; \ - visible: 0; \ - rel1.relative: 1.0 0.0; \ - align: 1.0 0.0; \ - } \ - } +////////////// multicall-list genlist /////////////////////////////////////////// +//////////////This style is for item in genlist in multi call list view///////// + group { name: "elm/genlist/item/multicall_list/default"; + alias: "elm/genlist/item_odd/multicall_list/default"; + alias: "elm/genlist/item_compress/multicall_list/default"; + alias: "elm/genlist/item_compress_odd/multicall_list/default"; -#define BEAT_GENLIST_PART_DISCLIP \ - part { name: "disclip"; \ - type: RECT; \ - description { state: "default" 0.0; \ - } \ - description { state: "disabled" 0.0; \ - inherit: "default" 0.0; \ - color: 255 255 255 64; \ - } \ - } + data.item: "stacking" "above"; + data.item: "selectraise" "on"; + data.item: "texts" "elm.text"; + data.item: "contents" "elm.swallow.end elm.swallow.private"; + data.item: "treesize" "20"; -#define BEAT_GENLIST_PART_DIALOGUE_ITEM \ - part { name: "elm.rect.dialogue"; \ - type: RECT; \ - scale: 1; \ - description { state: "default" 0.0; \ - min: 16 0; \ - fixed: 1 0; \ - color: 199 199 199 255; \ - rel2.relative: 0.0 1.0; \ - align: 0.0 0.0; \ - } \ + images { + image: BG_IMG_PATH"/vc_conf_call_list_bg.png" COMP; } -#define GENLIST_GROUP_PART_BASE_EVENT_INC \ - part { name: "base_event";\ - type: RECT;\ - repeat_events: 0;\ - description { state: "default" 0.0;\ - color: 0 0 0 0;\ - }\ - } + parts { + BEAT_GENLIST_PART_BASE(112) + BEAT_GENLIST_PART_BG + GENLIST_PART_BG_IMAGE_NO_SELECT + BEAT_GENLIST_PART_BOTTOM_LINE + BEAT_GENLIST_PART_PADDING_LEFT(16) + BEAT_GENLIST_PART_PADDING_RIGHT(16) + + part { name: "elm.swallow.end"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + fixed: 1 0; + align: 1.0 0.5; + rel1.to_x: "elm.padding.right"; + rel2 { relative: 0.0 1.0; to_x: "elm.padding.right"; } + } + } -#define GENLIST_PADDING_10_INC 16 -#define GENLIST_HEIGHT_31_INC 49 -#define GENLIST_SIZE_30_INC 48 -#define GENLIST_FONT_20_INC 32 -#define GENLIST_GROUP_BG_COLOR_DEFAULT_INC 0 0 0 120 -#define GENLIST_GROUP_BG_COLOR_ALPHA_OFF_INC 15 15 15 255 -#define GENLIST_GROUP_PART_BASE_IMAGE_INC -#define GENLIST_GROUP_PART_TEXT_COLOR_INC 255 255 255 255 + part { name: "elm.padding.end.left"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + min: 16 0; + fixed: 1 0; + visible: 0; + rel1.to_x: "elm.swallow.end"; + rel2 { relative: 0.0 1.0; to_x: "elm.swallow.end"; } + align: 1.0 0.0; + } + } - group { - name: "elm/genlist/item/call/grouptitle/default"; - alias: "elm/genlist/item_odd/call/grouptitle/default"; - alias: "elm/genlist/item_compress/call/grouptitle/default"; - alias: "elm/genlist/item_compress_odd/call/grouptitle/default"; + part { name: "elm.swallow.private"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + fixed: 1 0; + align: 0.0 0.5; + rel1 { relative: 1.0 0.0; to: "elm.padding.left"; } + rel2 { relative: 1.0 1.0; to: "elm.padding.left"; } + } + } - data.item: "stacking" "above"; - data.item: "selectraise" "on"; - data.item: "texts" "elm.text"; - data.item: "treesize" "GENLIST_TREESIZE_20_INC"; - parts { - GENLIST_GROUP_PART_BASE_EVENT_INC - BEAT_GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_10_INC ) - BEAT_GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_10_INC ) - part { name: "rect"; + part { name: "elm.padding.private.left"; type: RECT; - repeat_events: 1; scale: 1; description { state: "default" 0.0; - min: 0 GENLIST_HEIGHT_31_INC; - color: GENLIST_GROUP_BG_COLOR_DEFAULT_INC; - } - description { state: "alpha_off" 0.0; - min: 0 GENLIST_SIZE_30_INC; - color: GENLIST_GROUP_BG_COLOR_ALPHA_OFF_INC; + min: 16 0; + fixed: 1 0; + visible: 0; + rel1 { relative: 1.0 0.0; to: "elm.swallow.private"; } + rel2 { relative: 1.0 1.0; to: "elm.swallow.private"; } + align: 0.0 0.5; } } - GENLIST_GROUP_PART_BASE_IMAGE_INC part { name: "elm.text"; + clip_to: "disclip"; type: TEXT; + mouse_events: 0; scale: 1; description { state: "default" 0.0; - align: 0.0 0.5; - rel1 { - relative: 1.0 0.0; - to_x: "elm.padding.left"; - } - rel2 { - relative: 0.0 1.0; - offset: 0 0; - to_x: "elm.padding.right"; - } - color: GENLIST_GROUP_PART_TEXT_COLOR_INC; + rel1 { relative: 1.0 0.0; offset: 0 0; to: "elm.padding.private.left"; } + rel2 { relative: 0.0 1.0; to: "elm.padding.end.left"; } + color: 255 255 255 255; text { - font: "SLP:style=Medium"; - size: GENLIST_FONT_20_INC; - min: 1 1; + font: FONT_SLP_Roman; + text_class: TEXT_CLASS_SLP_ROMAN; + size: 44; + min: 0 1; align: 0.0 0.5; } } + description { state: "selected" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + } } + + BEAT_GENLIST_PART_DISCLIP } - program { - name: "enable_alpha"; - signal: "elm,state,alpha,enable"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "rect"; - } - program { - name: "disable_alpha"; - signal: "elm,state,alpha,disable"; - source: "elm"; - action: STATE_SET "alpha_off" 0.0; - target: "rect"; - } - program { - name: "selected"; - source: "rect"; - signal: "mouse,clicked,1"; - action: SIGNAL_EMIT "elm,title_action,item,click" "elm"; + + programs { + GENLIST_PROGRAMS } } - group { name: "elm/genlist/item/multicall_list/default"; - alias: "elm/genlist/item_odd/multicall_list/default"; - alias: "elm/genlist/item_compress/multicall_list/default"; - alias: "elm/genlist/item_compress_odd/multicall_list/default"; - - data.item: "stacking" "above"; - data.item: "selectraise" "on"; - data.item: "texts" "elm.text"; - data.item: "contents" "elm.swallow.end elm.swallow.private"; - data.item: "treesize" "20"; - - images { - image: "vc_conf_call_list_bg.png" COMP; - } - - parts { - BEAT_GENLIST_PART_BASE( 112 ) - BEAT_GENLIST_PART_BG - GENLIST_PART_BG_IMAGE_NO_SELECT - BEAT_GENLIST_PART_BOTTOM_LINE - BEAT_GENLIST_PART_PADDING_LEFT( 32 ) - BEAT_GENLIST_PART_PADDING_RIGHT( 16 ) - BEAT_GENLIST_PART_DIALOGUE_ITEM - - part { name: "elm.swallow.end"; - type: SWALLOW; - scale: 1; - description { state: "default" 0.0; - fixed: 1 0; - align: 1.0 0.5; - rel1.to_x: "elm.padding.right"; - rel2 { - relative: 0.0 1.0; - to_x: "elm.padding.right"; - } - } - } - - part { name: "elm.padding.end.left"; - type: RECT; - scale: 1; - description { state: "default" 0.0; - min: 16 0; - fixed: 1 0; - visible: 0; - rel1.to_x: "elm.swallow.end"; - rel2 { - relative: 0.0 1.0; - to_x: "elm.swallow.end"; - } - align: 1.0 0.0; - } - } - - part { name: "elm.swallow.private"; - type: SWALLOW; - scale: 1; - description { state: "default" 0.0; - fixed: 1 0; - align: 1.0 0.5; - rel1.to_x: "elm.padding.end.left"; - rel2 { - relative: 0.0 1.0; - to_x: "elm.padding.end.left"; - } - } - } +////////////// reject with msg-list genlist /////////////////////////////////////////// +/////////////This style is for items in list to reject incoming call with msg /////////// + group { name: "elm/genlist/item/call/reject_msg/default"; + alias: "elm/genlist/item_odd/call/reject_msg/default"; + alias: "elm/genlist/item_compress/call/reject_msg/default"; + alias: "elm/genlist/item_compress_odd/call/reject_msg/default"; - part { name: "elm.padding.private.left"; - type: RECT; - scale: 1; - description { state: "default" 0.0; - min: 16 0; - fixed: 1 0; - visible: 0; - rel1.to_x: "elm.swallow.private"; - rel2 { - relative: 0.0 1.0; - to_x: "elm.swallow.private"; - } - align: 1.0 0.0; - } + data.item: "stacking" "above"; + data.item: "selectraise" "on"; + data.item: "texts" "elm.text"; + data.item: "contents" "elm.swallow.end"; + data.item: "treesize" "20"; + + images { + image: BG_IMG_PATH"/vc_conf_call_list_bg.png" COMP; + } + + parts { + BEAT_GENLIST_PART_BASE(112) + BEAT_GENLIST_PART_BG + GENLIST_PART_BG_IMAGE + BEAT_GENLIST_PART_BOTTOM_LINE + BEAT_GENLIST_PART_PADDING_LEFT(32) + BEAT_GENLIST_PART_PADDING_RIGHT(32) + + part { name: "elm.swallow.end"; + clip_to: "disclip"; + type: SWALLOW; + scale: 1; + description { state: "defualt" 0.0; + min: 190 0; + fixed: 1 0; + align: 1.0 0.5; + aspect: 1.0 1.0; + aspect_preference: VERTICAL; + rel1 { relative: 0.0 0.5; to_x: "elm.padding.right"; to_y: "base"; } + rel2 { relative: 0.0 0.5; to_x: "elm.padding.right"; to_y: "base"; } } + } - part { name: "elm.text"; + part { name: "elm.text"; clip_to: "disclip"; type: TEXT; mouse_events: 0; scale: 1; - description { state: "default" 0.0; - rel1 { - relative: 1.0 0.0; - offset: 0 0; - to_x: "elm.padding.left"; - } - rel2 { - relative: 0.0 1.0; - to_x: "elm.padding.private.left"; - } + description { state: "default" 0.0; + rel1 { relative: 1.0 0.0; offset: 0 0; to_x: "elm.padding.left"; } + rel2 { to_x: "elm.swallow.end"; relative: 0.0 1.0; } color: 255 255 255 255; - text { + text { font: FONT_SLP_Roman; + text_class: TEXT_CLASS_SLP_ROMAN; size: 44; min: 0 1; align: 0.0 0.5; - } + } } - description { state: "selected" 0.0; + description { state: "selected" 0.0; inherit: "default" 0.0; - color: 255 255 255 255; //225 225 225 255; - } + color: 255 255 255 255; + } } BEAT_GENLIST_PART_DISCLIP - } - programs { - program { name: "go_active"; - signal: "elm,state,selected"; - source: "elm"; - action: STATE_SET "selected" 0.0; - target: "bg_image"; - target: "elm.text"; - } - program { name: "go_passive"; - signal: "elm,state,unselected"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "bg_image"; - target: "elm.text"; - transition: LINEAR 0.1; - } - program { name: "go_disabled"; - signal: "elm,state,disabled"; - source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "disclip"; - } - program { name: "go_enabled"; - signal: "elm,state,enabled"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "disclip"; - } + } + programs { + GENLIST_PROGRAMS } } -#define BEAT_GENLIST_PART_PADDING_TOP( param_padding_size ) \ - part { name: "elm.padding.top"; \ - type: RECT; \ - scale: 1; \ - description { \ - state: "default" 0.0; \ - min: 0 param_padding_size; \ - fixed: 0 1; \ - visible: 0; \ - rel2.relative: 1.0 0.0; \ - align: 0.0 0.0; \ - } \ - } - -#define BEAT_GENLIST_PART_PADDING_BOTTOM( param_padding_size ) \ - part { name: "elm.padding.bottom"; \ - type: RECT; \ - scale: 1; \ - description { \ - state: "default" 0.0; \ - min: 0 param_padding_size; \ - fixed: 0 1; \ - visible: 0; \ - rel1.relative: 0.0 1.0; \ - align: 0.0 1.0; \ - } \ - } - - ////////////// elm/button/base/text_only/title ////////////////////////////////////////////// - group { name: "elm/button/base/text_only/style_call_text_only_red_disabled"; - images { - image: "vc_button_red_normal.png" COMP; - } +/* More ctxpopup*/ +/////////////////////////////////////////////////////////////////////////////// + group { + name: "elm/ctxpopup/icon_text_style_item/more_ctxpopup"; parts { - part { name: "button_image"; + part { + name: "event_blocker"; mouse_events: 1; - scale: 1; - effect: SOFT_SHADOW; - description { state: "default" 0.0; - min: 100 50; - image { - normal: "vc_button_red_normal.png"; - border: 16 16 0 0; - border_scale: 1; - } - color: 255 255 255 102; + description { + state: "default" 0.0; } - description { state: "clicked" 0.0; - min: 100 50; - inherit: "default" 0.0; + } + part { + name: "bg"; + mouse_events: 0; + type: RECT; + description { + state: "default" 0.0; + color: 0 0 0 0; + visible: 1; } - description { state: "disabled" 0.0; - inherit: "clicked" 0.0; + description { + state: "clicked" 0.0; + color: 0 140 210 255; + visible: 1; } - description { state: "focused" 0.0; - inherit: "clicked" 0.0; + } + part { + name: "icon_left_padding"; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + min: MORE_MENU_CTXPOPUP_ROW_ICON_PAD MORE_MENU_CTXPOPUP_ROW_H; + max: MORE_MENU_CTXPOPUP_ROW_ICON_PAD MORE_MENU_CTXPOPUP_ROW_H; + align: 0 0; + fixed: 1 1; + visible: 0; } } - part { name: "elm.text"; - type: TEXT; - effect: SHADOW; + part { + name: "separator"; mouse_events: 0; + type: RECT; scale: 1; description { state: "default" 0.0; + color: 255 255 255 102; + align: 0.5 0; + min: MORE_MENU_CTXPOPUP_SEPARATOR_W MORE_MENU_CTXPOPUP_SEPARATOR_H; + max: MORE_MENU_CTXPOPUP_SEPARATOR_W MORE_MENU_CTXPOPUP_SEPARATOR_H; visible: 0; - fixed: 1 1; - align: 0.5 0.5; - color: 255 255 255 51; /*20%*/ - color2: 0 0 0 102; - color3: 0 0 0 255; - text { - font: FONT_SLP_Medium; - size: 48; - min: 0 0; - align: 0.5 0.5; - } - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; } - description { state: "clicked" 0.0; - inherit: "default" 0.0; + description { + state: "horizontal" 0.0; + color: 255 255 255 102; + align: 0 0.5; + min: MORE_MENU_CTXPOPUP_SEPARATOR_W MORE_MENU_CTXPOPUP_SEPARATOR_H; + max: MORE_MENU_CTXPOPUP_SEPARATOR_W MORE_MENU_CTXPOPUP_SEPARATOR_H; visible: 1; - min: 1 1; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; } - description { state: "disabled_visible" 0.0; - inherit: "default" 0.0; + description { + state: "vertical" 0.0; + color: 255 255 255 102; + align: 0.5 0; + min: MORE_MENU_CTXPOPUP_SEPARATOR_W MORE_MENU_CTXPOPUP_SEPARATOR_H; + max: MORE_MENU_CTXPOPUP_SEPARATOR_W MORE_MENU_CTXPOPUP_SEPARATOR_H; visible: 1; - min: 1 1; } - description { state: "focused" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; + } + part { + name: "elm.swallow.icon"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + min: MORE_MENU_CTXPOPUP_ROW_ICON_W MORE_MENU_CTXPOPUP_ROW_ICON_H; + max: MORE_MENU_CTXPOPUP_ROW_ICON_W MORE_MENU_CTXPOPUP_ROW_ICON_H; + align: 0 0.5; + aspect: 1.0 1.0; + rel1 { to:"icon_left_padding"; relative: 1 0; } } } - part { name: "over1"; + part { + name: "icon_right_padding"; + scale: 1; mouse_events: 0; - description { state: "default" 0.0; - rel2.relative: 1.0 0.5; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; + description { + state: "default" 0.0; + min: MORE_MENU_CTXPOPUP_ROW_ICON_PAD MORE_MENU_CTXPOPUP_ROW_H; + max: MORE_MENU_CTXPOPUP_ROW_ICON_PAD MORE_MENU_CTXPOPUP_ROW_H; + align: 0 0.5; + fixed: 1 1; + visible: 0; + rel1 { to:"elm.swallow.icon"; relative: 1 1; } } } - part { name: "over2"; - mouse_events: 1; - repeat_events: 1; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; + part { + name: "elm.text"; + type: TEXT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + min: MORE_MENU_CTXPOPUP_SEPARATOR_H MORE_MENU_CTXPOPUP_ROW_H; + max: (MORE_MENU_CTXPOPUP_SEPARATOR_W - (3 * MORE_MENU_CTXPOPUP_ROW_ICON_PAD) - MORE_MENU_CTXPOPUP_ROW_ICON_W) MORE_MENU_CTXPOPUP_ROW_H; + fixed: 0 1; + align: 0.5 0.5; + rel1 {relative: 1.0 0.0; to_x: "icon_right_padding";} + rel2 {relative: 0.0 1.0; to_x: "text_right_padding";} + color: 253 253 253 255; + text { + font: FONT_SLP_Roman; + text_class: TEXT_CLASS_SLP_ROMAN; + size: 33; + align: 0.0 0.5; + min: 1 1; + } } - description { state: "disabled" 0.0; + description { + state: "compress" 0.0; inherit: "default" 0.0; - visible: 0; - } - } - part { name: "over3"; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 255 255 255 0; + max: -1 -1; + text { + min: 0 1; + } } - description { state: "clicked" 0.0; + description { + state: "clicked" 0.0; inherit: "default" 0.0; - visible: 1; - color: 255 255 255 0; + color: 249 249 249 255; } } - part { name: "disabler"; + part { + name: "text_right_padding"; type: RECT; - description { state: "default" 0.0; - color: 0 0 0 0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.1100; + visible: 0; + min: MORE_MENU_CTXPOPUP_ROW_ICON_PAD MORE_MENU_CTXPOPUP_ROW_H; + max: MORE_MENU_CTXPOPUP_ROW_ICON_PAD MORE_MENU_CTXPOPUP_ROW_H; + fixed: 1 0; + align: 1.0 0.5; } } - } - programs { - program { name: "button_click"; - signal: "mouse,down,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,press" ""; - after: "button_click_anim"; - } - program { name: "button_click_anim"; - action: STATE_SET "clicked" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "button_unclick"; - signal: "mouse,up,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,unpress" ""; - after: "button_unclick_anim"; - } - program { name: "button_unclick_anim"; - action: STATE_SET "default" 0.0; - target: "button_image"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; + part { + name: "over1"; + mouse_events: 1; + repeat_events: 1; + ignore_flags: ON_HOLD; + description { + state: "default" 0.0; + } } - program { name: "button_mouseout_clicked"; - signal: "mouse,out"; - source: "over2"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "clicked")) - { - set_state(PART:"elm.text", "visible", 0.0); - set_state(PART:"button_image", "visible", 0.0); - } + part { + name: "over2"; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; } } - program { name: "button_click2"; - signal: "mouse,down,1"; - source: "over3"; - action: STATE_SET "clicked" 0.0; - target: "over3"; - } - program { name: "button_unclick2"; - signal: "mouse,up,1"; - source: "over3"; - action: STATE_SET "default" 0.0; - target: "over3"; + part { + name: "disclip"; + type: RECT; + description { + state: "default" 0.0; + visible: 0; + } + description { + state: "disabled" 0.0; + visible: 1; + color: 200 200 200 102; + } } - program { name: "button_unclick3"; + } + programs { + program { + name: "item_unclick"; signal: "mouse,up,1"; - source: "over2"; + source: "over1"; action: SIGNAL_EMIT "elm,action,click" ""; } - program { name: "text_show"; - signal: "elm,state,text,visible"; + program { + name: "disable"; + signal: "elm,state,disabled"; source: "elm"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; + action: STATE_SET "disabled" 0.0; + target: "disclip"; } - program { name: "text_hide"; - signal: "elm,state,text,hidden"; + program { + name: "enable"; + signal: "elm,state,enabled"; source: "elm"; action: STATE_SET "default" 0.0; - target: "elm.text"; + target: "disclip"; } - - program { name: "disable"; - signal: "elm,state,disabled"; + program { + name: "default"; + signal: "elm,state,default"; source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "button_image"; - target: "over1"; - target: "over2"; - target: "disabler"; - after: "disable_text"; + script { + set_state(PART:"separator", "default", 0.0); + } } - program { name: "disable_text"; + program { + name: "compress"; + signal: "elm,state,compress"; + source: "elm"; + action: STATE_SET "compress" 0.0; + target: "elm.text"; + } + program { + name: "vertical"; + signal: "elm,state,vertical"; + source: "elm"; script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.text", "disabled_visible", 0.0); - else - set_state(PART:"elm.text", "disabled", 0.0); + set_state(PART:"separator", "vertical", 0.0); } } - program { name: "enable"; - signal: "elm,state,enabled"; + program { + name: "horizontal"; + signal: "elm,state,horizontal"; source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - target: "over1"; - target: "over2"; - target: "disabler"; - after: "enable_text"; + script { + set_state(PART:"separator", "horizontal", 0.0); + } } - program { name: "enable_text"; + program { + name: "item_click2"; + signal: "mouse,down,1"; + source: "over2"; script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "disabled_visible")) - set_state(PART:"elm.text", "visible", 0.0); - else - set_state(PART:"elm.text", "default", 0.0); + set_state(PART:"elm.text", "clicked", 0.0); + set_state(PART:"bg", "clicked", 0.0); } } - program { name: "focused"; - signal: "elm,action,focus"; + program { + name: "item_unclick2"; + signal: "mouse,up,1"; + source: "over2"; + script { + set_state(PART:"elm.text", "compress", 0.0); + set_state(PART:"bg", "default", 0.0); + } + } + } + } +/////////////////////////////////////////////////////////////////////////////// + group { + images { + image: ICON_IMG_PATH"/vc_popup_arrow.png" COMP; + } + + name: "elm/ctxpopup/arrow/more_ctxpopup"; + parts { + part { + name: "ctxpopup_arrow"; + type: IMAGE; + scale: 1; + description { + state: "default" 0.0; + min: MORE_MENU_CTXPOPUP_ARROW_W MORE_MENU_CTXPOPUP_ARROW_H; + max: MORE_MENU_CTXPOPUP_ARROW_W MORE_MENU_CTXPOPUP_ARROW_H; + fixed: 1 1; + visible: 0; + align: 0.5 0.5; + } + description { + state: "left" 0.0; + min: MORE_MENU_CTXPOPUP_ARROW_W MORE_MENU_CTXPOPUP_ARROW_H; + max: MORE_MENU_CTXPOPUP_ARROW_W MORE_MENU_CTXPOPUP_ARROW_H; + fixed: 1 1; + align: 1.0 0.5; + image { + normal: ICON_IMG_PATH"/vc_popup_arrow.png"; + } + } + description { + state: "right" 0.0; + min: MORE_MENU_CTXPOPUP_ARROW_W MORE_MENU_CTXPOPUP_ARROW_H; + max: MORE_MENU_CTXPOPUP_ARROW_W MORE_MENU_CTXPOPUP_ARROW_H; + fixed: 1 1; + align: 0.0 0.5; + image { + normal: ICON_IMG_PATH"/vc_popup_arrow.png"; + } + } + description { + state: "top" 0.0; + min: MORE_MENU_CTXPOPUP_ARROW_W MORE_MENU_CTXPOPUP_ARROW_H; + max: MORE_MENU_CTXPOPUP_ARROW_W MORE_MENU_CTXPOPUP_ARROW_H; + fixed: 1 1; + align: 0.5 1.0; + image { + normal: ICON_IMG_PATH"/vc_popup_arrow.png"; + } + } + description { + state: "bottom" 0.0; + min: MORE_MENU_CTXPOPUP_ARROW_W MORE_MENU_CTXPOPUP_ARROW_H; + max: MORE_MENU_CTXPOPUP_ARROW_W MORE_MENU_CTXPOPUP_ARROW_H; + fixed: 1 1; + align: 0.5 0.0; + image { + normal: ICON_IMG_PATH"/vc_popup_arrow.png"; + } + } + } + } + programs { + program { + name: "enable_left_arrow"; + signal: "elm,state,left"; source: "elm"; - action: STATE_SET "focused" 0.0; - target: "button_image"; - target: "elm.text"; + action: STATE_SET "left" 0.0; + target: "ctxpopup_arrow"; } - program { name: "unfocused"; - signal: "elm,action,unfocus"; + program { + name: "enable_right_arrow"; + signal: "elm,state,right"; source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; + action: STATE_SET "right" 0.0; + target: "ctxpopup_arrow"; + } + program { + name: "enable_top_arrow"; + signal: "elm,state,top"; + source: "elm"; + action: STATE_SET "top" 0.0; + target: "ctxpopup_arrow"; + } + program { + name: "enable_bottom_arrow"; + signal: "elm,state,bottom"; + source: "elm"; + action: STATE_SET "bottom" 0.0; + target: "ctxpopup_arrow"; } } } - /////navigation frame///// -#define VC_NAVIFRAME_TITLE_H_INC 100 -#define VC_NAVIFRAME_OH_CLOSED_H_INC 8 -#define VC_NAVIFRAME_OH_OPENED_H_INC 106 -#define VC_NAVIFRAME_OH_CONTENT_H_INC 74 -#define VC_NAVIFRAME_OH_PADDING_INC 16 -#define VC_NAVIFRAME_OH_OPENED_DOUBLE_H_INC 196 -#define VC_NAVIFRAME_INDICATOR_W_INC 128 -#define VC_NAVIFRAME_PADDING_EXPANDED_INC 141 -#define VC_NAVIFRAME_TITLE_FONT_SIZE_INC 36 -#define VC_NAVIFRAME_ICON_SIZE_INC 32 32 -#define VC_NAVIFRAME_ICON_PADDING_INC 16 0 -#define VC_NAVIFRAME_OH_ARROW_SIZE_INC 19 14 -#define VC_NAVIFRAME_TITLE_TEXT_COLOR_INC 255 255 255 255 -#define VC_NAVIFRAME_TITLE_BG_COLOR_INC 0 0 0 0 -#define VC_NAVIFRAME_TITLE_LEFT_SEPARATOR_COLOR_INC 0 0 0 0 -#define VC_NAVIFRAME_TITLE_RIGHT_SEPARATOR_COLOR_INC 0 0 0 255 - -#define VC_NAVIFRAME_NEW_TITLE_BG_COLOR_INC 0 0 0 102 -#define VC_NAVIFRAME_BOTTOM_H_INC 114 -#define VC_NAVIFRAME_PREV_BTN_LPAD 44 -#define VC_NAVIFRAME_NEW_ICON_SIZE_INC 56 56 - -#define BUTTON_STATE_ENABLED 0 -#define BUTTON_STATE_DISABLED 1 - - group { name: "elm/naviframe/item/basic/vcui_naviframe/default"; - alias:"elm/naviframe/item/vcui_naviframe_item_1line/default"; - images { - image: "vc_reject_with_msg_control_top_arrow.png" COMP; - image: "vc_reject_with_msg_control_top_bg.png" COMP; - } - script { - public oh_show = 0; - public oh_close = 0; - } - parts { - part { name: "title_clip"; - type: RECT; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - min: 1 VC_NAVIFRAME_TITLE_H_INC; - align: 0.0 0.0; - fixed: 0 1; - rel1 { relative: 0.0 0.0; } - rel2 { relative: 1.0 0.0; } - } - description { state: "hide" 0.0; - inherit: "default" 0.0; - min: 0 0; - max: 0 0; - fixed: 1 1; - } - } - part { name: "optionheader_clip"; - type: RECT; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - min: 1 VC_NAVIFRAME_OH_CLOSED_H_INC; - align: 0.5 0; - fixed: 0 1; - rel1.to_x: "elm.swallow.content"; - rel1.to_y: "title_clip"; - rel1.relative: 0 1; - rel2.to_x: "elm.swallow.content"; - rel2.to_y: "title_clip"; - } - description { state: "show" 0.0; - inherit: "default" 0.0; - min: 1 VC_NAVIFRAME_OH_OPENED_H_INC; - } - } - part { name: "optionheader_bg"; - type: IMAGE; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - rel1 { to: "optionheader_clip"; } - rel2 { to: "optionheader_clip"; } - image { normal: "vc_reject_with_msg_control_top_bg.png"; - border: 0 0 1 0; - } - } - } - part { name: "elm.swallow.optionheader.top.padding"; - type: SWALLOW; - scale: 1; - clip_to: "optionheader_clip"; - description { state: "default" 0.0; - min: 1 VC_NAVIFRAME_OH_PADDING_INC; - rel1 { relative: 0.0 0.0; to: "optionheader_bg"; } - rel2 { relative: 1.0 0.0; to: "optionheader_bg"; } - fixed: 0 1; - align: 0.0 0.0; - visible: 0; - } - } - part { name: "elm.swallow.optionheader"; - type: SWALLOW; - scale: 1; - clip_to: "optionheader_clip"; - description { state: "default" 0.0; - min: 1 VC_NAVIFRAME_OH_CONTENT_H_INC; - rel1 { relative: 0.0 1.0; to: "elm.swallow.optionheader.top.padding"; } - rel2 { relative: 1.0 1.0; to: "elm.swallow.optionheader.top.padding"; } - fixed: 0 1; - align: 0.0 0.0; - visible: 0; - } - description { state: "show" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "elm.swallow.optionheader.bottom.padding"; - type: SWALLOW; - scale: 1; - clip_to: "optionheader_clip"; - description { state: "default" 0.0; - min: 1 VC_NAVIFRAME_OH_PADDING_INC; - rel1 { relative: 0.0 1.0; to: "elm.swallow.optionheader"; } - fixed: 0 1; - align: 0.0 0.0; - visible: 0; - } - } - part { name: "content_clip"; - type: RECT; - mouse_events: 0; - description { state: "default" 0.0; - rel1.to_y: "optionheader_bg"; - rel1.relative: 0 1; - } - } - part { name: "elm.swallow.content"; - type: SWALLOW; - scale: 1; - repeat_events: 0; - clip_to: "content_clip"; - description { state: "default" 0.0; - align: 0.0 0.0; - rel1.relative: 0.0 1.0; - rel1.to_y: "optionheader_bg"; - rel2.relative: 1.0 1.0; - } - description { state: "left" 0.0; - inherit: "default" 0.0; - rel1.relative: -1.0 1.0; - rel2.relative: 0.0 1.0; - } - description { state: "right" 0.0; - inherit: "default" 0.0; - rel1.relative: 1.0 1.0; - rel2.relative: 2.0 1.0; - } - } - part { name: "title_base"; - type: RECT; - clip_to: "title_clip"; - scale: 1; - description { state: "default" 0.0; - min: 1 VC_NAVIFRAME_TITLE_H_INC; - align: 0.5 0.0; - fixed: 0 1; - rel1 { relative: 0.0 0.0; } - rel2 { relative: 1.0 0.0; } - color: VC_NAVIFRAME_TITLE_BG_COLOR_INC; - } - } - part { name: "elm.rect.pada"; - type: RECT; - mouse_events: 0; - scale: 1; - clip_to: "title_clip"; - description { state: "default" 0.0; - min: VC_NAVIFRAME_INDICATOR_W_INC 0; - fixed: 1 0; - align: 0.0 0.5; - rel1 { relative: 0.0 0.0; to: "title_base"; } - rel2 { relative: 0.0 1.0; to: "title_base"; } - visible: 0; - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - min: VC_NAVIFRAME_PADDING_EXPANDED_INC 0; - } - } - part { name: "separator_1"; - type: RECT; - mouse_events: 0; - scale: 1; - clip_to: "title_clip"; - description { state: "default" 0.0; - align: 1.0 0; - min: 1 0; - rel1 { relative: 0.0 0.2; to:"elm.rect.padb"; to: "title_base"; } - rel2 { relative: 0.0 0.8; to:"elm.rect.padb"; to: "title_base"; } - fixed: 1 0; - color: VC_NAVIFRAME_TITLE_RIGHT_SEPARATOR_COLOR_INC; - } - } - part { name: "separator_2"; - type: RECT; - mouse_events: 0; - scale: 1; - clip_to: "title_clip"; - description { state: "default" 0.0; - align: 1.0 0; - min: 1 0; - rel1 { relative: 0.0 0.0; to: "separator_1"; to: "title_base"; } - rel2 { relative: 0.0 1.0; to: "separator_1"; to: "title_base"; } - fixed: 1 0; - color: VC_NAVIFRAME_TITLE_LEFT_SEPARATOR_COLOR_INC; - } - } - part { name: "elm.rect.padb"; - type: RECT; - mouse_events: 0; - scale: 1; - clip_to: "title_clip"; - description { state: "default" 0.0; - min: VC_NAVIFRAME_INDICATOR_W_INC 0; - fixed: 1 0; - align: 1.0 0.5; - rel1 { relative: 1.0 0.0; to: "title_base"; } - rel2 { relative: 1.0 1.0; to: "title_base"; } - visible: 0; - } - } - part { name: "elm.text.title"; - type: TEXT; - scale: 1; - clip_to: "title_clip"; - description { state: "default" 0.0; - text { font: "SLP:style=Medium"; - size: VC_NAVIFRAME_TITLE_FONT_SIZE_INC; - min: 0 0; - max: 1 0; - align: 0.5 0.5; - } - color: VC_NAVIFRAME_TITLE_TEXT_COLOR_INC; - align: 0.5 0.5; - rel1.to: "title_base"; - rel2.to: "title_base"; - } - } - part { name: "click_event_area"; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - rel1 { to: "title_base"; } - rel2 { to: "elm.rect.padb"; relative: 0.0 1.0; } - } - } - part { name: "elm.swallow.prev_btn"; - type: SWALLOW; - scale: 1; - clip_to: "title_clip"; - description { state: "default" 0.0; - align: 0 0.5; - fixed: 1 1; - rel1 { relative: 0.0 0.0; to: "title_base"; } - rel2 { relative: 0.0 1.0; to: "title_base"; } - } - } - part { name: "elm.swallow.icon"; - type: SWALLOW; - scale: 1; - clip_to: "title_clip"; - description { state: "default" 0.0; - max: VC_NAVIFRAME_ICON_SIZE_INC; - rel1 { relative: 0.0 0.0; to_x: "padding_before_text"; } - rel2 { relative: 0.0 1.0; to_x: "padding_before_text"; } - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - align: 1.0 0.5; - } - } - part { name: "padding_before_text"; - type: RECT; - scale: 1; - mouse_events: 0; - clip_to: "title_clip"; - description { state: "default" 0.0; - align: 1.0 0.5; - rel1 { relative: 0.0 0.0; to_x: "elm.text.title"; } - rel2 { relative: 0.0 1.0; to_x: "elm.text.title"; } - fixed: 1 0; - min: VC_NAVIFRAME_ICON_PADDING_INC; - visible: 0; - } - } - part { name: "optionheader_arrow"; - type: IMAGE; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - min: VC_NAVIFRAME_OH_ARROW_SIZE_INC; - max: VC_NAVIFRAME_OH_ARROW_SIZE_INC; - fixed: 1 1; - align: 0.5 1; - visible: 0; - rel1.to_y: "optionheader_bg"; - rel1.offset: 0 1; - rel2.relative: 1 0; - rel2.to_y: "optionheader_bg"; - rel2.offset: -1 0; - image { - normal: "vc_reject_with_msg_control_top_arrow.png"; - } - } - description { state: "show" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - } - programs { - program { name: "content_new_pusehd"; - signal: "elm,state,new,pushed,internal"; - source: ""; - action: STATE_SET "default" 0.0; - target: "elm.swallow.content"; - transition: DECELERATE 0.5; - after: "show_finished"; - } - program { name: "content_cur_pusehd"; - signal: "elm,state,cur,pushed,internal"; - source: ""; - action: STATE_SET "left" 0.0; - target: "elm.swallow.content"; - transition: DECELERATE 0.5; - after: "pushed_finished"; - } - program { name: "content_prev_popped"; - signal: "elm,state,prev,popped,internal"; - source: ""; - action: STATE_SET "default" 0.0; - target: "elm.swallow.content"; - transition: DECELERATE 0.5; - after: "show_finished"; - } - program { name: "content_cur_popped"; - signal: "elm,state,cur,popped,internal"; - source: ""; - action: STATE_SET "right" 0.0; - target: "elm.swallow.content"; - transition: DECELERATE 0.5; - after: "popped_finished"; - } - program { name: "cur_pushed"; - signal: "elm,state,cur,pushed"; - source: "elm"; - script { - set_state(PART:"elm.swallow.content", "default", 0.0); - emit("elm,state,cur,pushed,internal", ""); - } - } - program { name: "new_pushed"; - signal: "elm,state,new,pushed"; - source: "elm"; - script { - set_state(PART:"elm.swallow.content", "right", 0.0); - emit("elm,state,new,pushed,internal", ""); - } - } - program { name: "prev_popped"; - signal: "elm,state,prev,popped"; - source: "elm"; - script { - set_state(PART:"elm.swallow.content", "left", 0.0); - emit("elm,state,prev,popped,internal", ""); - } - } - program { name: "cur_popped"; - signal: "elm,state,cur,popped"; - source: "elm"; - script { - set_state(PART:"elm.swallow.content", "default", 0.0); - emit("elm,state,cur,popped,internal", ""); - } - } - program { name: "visible"; - signal: "elm,state,visible"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "elm.swallow.content"; - } - program { name: "title_show"; - signal: "elm,state,title,show"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "title_clip"; - } - program { name: "title_hide"; - signal: "elm,state,title,hide"; - source: "elm"; - action: STATE_SET "hide" 0.0; - target: "title_clip"; - } - program { name: "optionheader_show"; - signal: "elm,state,elm.swallow.optionheader,show"; - source: "elm"; - script { - set_state(PART:"optionheader_clip", "show", 0.0); - set_state(PART:"optionheader_arrow", "show", 0.0); - set_state(PART:"elm.swallow.optionheader", "show", 0.0); - set_int(oh_show, 1); - emit("elm,state,optionheader_arrow,show", ""); - } - } - program { name: "optionheader_hide"; - signal: "elm,state,elm.swallow.optionheader,hide"; - source: "elm"; - script { - set_state(PART:"optionheader_clip", "default", 0.0); - set_state(PART:"optionheader_arrow", "default", 0.0); - set_state(PART:"elm.swallow.optionheader", "default", 0.0); - set_int(oh_show, 0); - } - } - program { name: "optionheader_open"; - signal: "elm,state,optionheader,open"; - source: ""; - action: STATE_SET "show" 0.0; - target: "optionheader_clip"; - target: "elm.swallow.optionheader"; - transition: LINEAR 0.2; - after: "optionheader_open_set"; - } - program { name: "optionheader_close"; - signal: "elm,state,optionheader,close"; - source: ""; - action: STATE_SET "default" 0.0; - target: "optionheader_clip"; - target: "elm.swallow.optionheader"; - transition: LINEAR 0.2; - after: "optionheader_close_set"; - } - program { name: "optionheader_instant_open"; - signal: "elm,state,optionheader,instant_open"; - source: ""; - action: STATE_SET "show" 0.0; - target: "optionheader_clip"; - target: "elm.swallow.optionheader"; - after: "optionheader_open_set"; - } - program { name: "optionheader_instant_close"; - signal: "elm,state,optionheader,instant_close"; - source: ""; - action: STATE_SET "default" 0.0; - target: "optionheader_clip"; - target: "elm.swallow.optionheader"; - after: "optionheader_close_set"; - } - program { name: "optionheader_close_set"; - signal: "elm,state,optionheader,close_set"; - source: ""; - script { - set_int(oh_close, 1); - } - } - program { name: "optionheader_open_set"; - signal: "elm,state,optionheader,open_set"; - source: ""; - script { - set_int(oh_close, 0); - } - } - program { name: "show_finished"; - action: SIGNAL_EMIT "elm,action,show,finished" ""; - } - program { name: "pushed_finished"; - action: SIGNAL_EMIT "elm,action,pushed,finished" ""; - } - program { name: "popped_finished"; - action: SIGNAL_EMIT "elm,action,popped,finished" ""; - } - program { name: "title_clicked_signal"; - action: SIGNAL_EMIT "elm,action,title,clicked" ""; - } - program { - name: "title_clicked"; - signal: "mouse,clicked,1"; - source: "click_event_area"; - script { - if (get_int(oh_show) == 1) { - if (get_int(oh_close) == 1) { - emit("elm,state,optionheader,open", ""); - }else { - emit("elm,state,optionheader,close", ""); - } - } - } - after: "title_clicked_signal"; - } - } - } - - group { name: "elm/naviframe/item/basic/vcui_naviframe_new/default"; - alias:"elm/naviframe/item/vcui_naviframe_new_item_1line/default"; - parts { - part { name: "title_clip"; - type: RECT; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - min: 1 VC_NAVIFRAME_TITLE_H_INC; - align: 0.0 0.0; - fixed: 0 1; - rel1 { relative: 0.0 0.0; } - rel2 { relative: 1.0 0.0; } - } - description { state: "hide" 0.0; - inherit: "default" 0.0; - min: 0 0; - max: 0 0; - fixed: 1 1; - } - } - part { name: "title_base"; - type: RECT; - clip_to: "title_clip"; - scale: 1; - description { state: "default" 0.0; - min: 1 VC_NAVIFRAME_TITLE_H_INC; - align: 0.5 0.0; - fixed: 0 1; - rel1 { relative: 0.0 0.0; } - rel2 { relative: 1.0 0.0; } - color: VC_NAVIFRAME_NEW_TITLE_BG_COLOR_INC; - } - } - part { name: "elm.text.title"; - type: TEXT; - scale: 1; - clip_to: "title_clip"; - description { state: "default" 0.0; - text { font: "SLP:style=Medium"; - size: VC_NAVIFRAME_TITLE_FONT_SIZE_INC; - min: 0 0; - max: 1 0; - align: 0.5 0.5; - } - color: VC_NAVIFRAME_TITLE_TEXT_COLOR_INC; - align: 0.5 0.5; - rel1.to: "title_base"; - rel2.to: "title_base"; - } - } - part { name: "click_event_area"; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - rel1 { to: "title_base"; } - rel2 { to: "title_base"; } - } - } - part { name: "bottom_clip"; - type: RECT; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - min: 1 VC_NAVIFRAME_BOTTOM_H_INC; - align: 0.0 0.0; - fixed: 0 1; - rel1 { relative: 0.0 (1166/1280); } - rel2 { relative: 1.0 1.0; } - } - description { state: "hide" 0.0; - inherit: "default" 0.0; - min: 0 0; - max: 0 0; - fixed: 1 1; - } - } - part { name: "bottom_base"; - type: RECT; - clip_to: "bottom_clip"; - scale: 1; - description { state: "default" 0.0; - min: 1 VC_NAVIFRAME_BOTTOM_H_INC; - align: 0.5 0.0; - fixed: 0 1; - rel1 { relative: 0.0 0.0; to: "bottom_clip"; } - rel2 { relative: 1.0 1.0; to: "bottom_clip"; } - color: VC_NAVIFRAME_NEW_TITLE_BG_COLOR_INC; - } - } - part { name: "elm.swallow.prev_btn"; - type: SWALLOW; - scale: 1; - clip_to: "bottom_clip"; - description { state: "default" 0.0; - align: 0.0 0.5; - fixed: 1 1; - rel1 { relative: 0.0 0.0; to: "bottom_base"; } - rel2 { relative: 0.0 1.0; to: "bottom_base"; } - } - } - part { name: "elm.swallow.icon"; - type: SWALLOW; - scale: 1; - clip_to: "bottom_clip"; - description { state: "default" 0.0; - max: VC_NAVIFRAME_NEW_ICON_SIZE_INC; - rel1 { relative: 0.0 0.0; to_x: "padding_before_prevbtn"; } - rel2 { relative: 0.0 1.0; to_x: "padding_before_prevbtn"; } - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - align: 1.0 0.5; - } - } - part { name: "padding_before_prevbtn"; - type: RECT; - scale: 1; - mouse_events: 0; - clip_to: "bottom_clip"; - description { state: "default" 0.0; - min: VC_NAVIFRAME_PREV_BTN_LPAD 0; - align: 1.0 0.5; - rel1 { relative: 0.0 0.0; to_x: "bottom_clip"; } - rel2 { relative: 0.0 1.0; to_x: "bottom_clip"; } - fixed: 1 0; - visible: 0; - } - } - } - programs { - program { name: "title_show"; - signal: "elm,state,title,show"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "title_clip"; - target: "bottom_clip"; - } - program { name: "title_hide"; - signal: "elm,state,title,hide"; - source: "elm"; - action: STATE_SET "hide" 0.0; - target: "title_clip"; - target: "bottom_clip"; - } - program { name: "show_finished"; - action: SIGNAL_EMIT "elm,action,show,finished" ""; - } - program { name: "pushed_finished"; - action: SIGNAL_EMIT "elm,action,pushed,finished" ""; - } - program { name: "popped_finished"; - action: SIGNAL_EMIT "elm,action,popped,finished" ""; - } - program { name: "title_clicked_signal"; - action: SIGNAL_EMIT "elm,action,title,clicked" ""; - } - program { - name: "title_clicked"; - signal: "mouse,clicked,1"; - source: "click_event_area"; - after: "title_clicked_signal"; - } - } - } - - group { name: "elm/button/base/vcui_naviframe_control/left"; - script { - public button_state = BUTTON_STATE_ENABLED; - } - images.image: "vc_reject_with_msg_option_header_bt_press.png" COMP; - parts { - part { name: "button_image"; - type: IMAGE; - mouse_events: 1; - scale: 1; - description { state: "default" 0.0; - min: 20 20; - color: 0 0 0 0; - rel1.offset: 0 0; - rel2.offset: -1 -1; - color: 255 255 255 255; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - image.normal: "vc_reject_with_msg_option_header_bt_press.png"; - } - } - part { - name: "padding_left_top"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 0.0 0.0; - rel1.relative: 0.0 0.0; - rel2.relative: 0.0 0.0; - min: 10 5; - fixed: 1 1; - visible: 0; - } - } - part { - name: "padding_right_bottom"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 1.0 1.0; - rel1.relative: 1.0 1.0; - rel2.relative: 1.0 1.0; - min: 10 5; - fixed: 1 1; - visible: 0; - } - } - part { - name: "icon_rect"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - visible: 1; - min: 0 0; - fixed: 1 0; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - align: 0.0 0.5; - color: 0 0 0 0; - } - description { state: "visible" 0.0; - visible: 1; - min: 22 22; - fixed: 1 0; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - align: 0.0 0.5; - color: 0 0 0 0; - } - description { state: "icononly" 0.0; - inherit: "default" 0.0; - } - } - part { - name: "padding_after_icon"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 0.0 0.0; - rel1 { relative: 1.0 0.0; to: "icon_rect"; } - rel2 { relative: 1.0 1.0; to: "icon_rect"; } - fixed: 1 0; - min: 0 0; - color: 0 0 0 0; - } - description { state: "visible" 0.0; - visible: 1; - align: 0.0 0.0; - rel1 { relative: 1.0 0.0; to: "icon_rect"; } - rel2 { relative: 1.0 1.0; to: "icon_rect"; } - fixed: 1 0; - min: 6 0; - color: 0 0 0 0; - } - description { state: "icononly" 0.0; - inherit: "default" 0.0; - } - } - part { - name: "padding_before_text"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 1.0 0.5; - rel1 { relative: 0.0 1.0; to_x: "elm.text"; to_y: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to_x: "elm.text"; to_y: "padding_right_bottom"; } - fixed: 1 0; - min: 6 0; - color: 0 0 0 0; - } - } - part { name: "elm.swallow.content"; - type: SWALLOW; - scale: 1; - clip_to: "disabler"; - description { state: "default" 0.0; - visible: 0; - align: 0.0 0.5; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - fixed: 1 0; - } - description { state: "visible" 0.0; - fixed: 1 0; - visible: 1; - min: 22 22; - max: 22 22; - align: 1.0 0.5; - rel1 { relative: 0.0 1.0; to_x: "padding_before_text"; to_y: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to_x: "padding_before_text"; to_y: "padding_right_bottom"; } - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - } - description { state: "icononly" 0.0; - visible: 1; - min: 30 30; - max: 30 30; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to: "padding_right_bottom"; } - align: 0.5 0.5; - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - } - } - part { name: "elm.text"; - type: TEXT; - mouse_events: 0; - scale: 1; - clip_to: "disabler"; - description { state: "default" 0.0; - visible: 0; - rel1 { relative: 1.0 1.0; to_x: "padding_after_icon"; to_y: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to: "padding_right_bottom"; } - align: 0.0 0.5; - color: 255 255 255 255; - text { - font: FONT_SLP_Medium; - size: 32; - min: 0 0; - align: 0.0 0.5; - max: 1 0; - } - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - visible: 1; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 0 0; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 0 0; - color: 255 255 255 255; - } - } - part { name: "over2"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - color: 0 0 0 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part { name: "over3"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 0 0 0 0; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "disabler"; - type: RECT; - description { state: "default" 0.0; - color: 255 255 255 255; - } - description { state: "disabled" 0.0; - color: 255 255 255 127; - } - } - } - programs { - program { name: "button_click"; - signal: "mouse,down,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,press" ""; - after: "button_click_anim"; - } - program { name: "button_click_anim"; - action: STATE_SET "clicked" 0.0; - target: "button_image"; - after: "text_clicked"; - } - program { name: "text_clicked"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.text", "clicked", 0.0); - } - } - program { name: "button_unpress"; - action: SIGNAL_EMIT "elm,action,unpress" ""; - } - program { name: "button_mouseout_clicked"; - signal: "mouse,up,1"; - source: "over3"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (strcmp(st, "icononly")) - { - emit("elm,action,default,text,set", ""); - set_state(PART:"elm.text", "visible", 0.0); - } - if(get_int(button_state) != BUTTON_STATE_DISABLED) - set_state(PART:"button_image", "default", 0.0); - } - after: button_unpress; - } - program { name: "button_click2"; - signal: "mouse,down,1"; - source: "over3"; - action: STATE_SET "clicked" 0.0; - target: "over3"; - } - program { name: "button_unclick2"; - signal: "mouse,clicked,1"; - source: "over3"; - action: STATE_SET "default" 0.0; - target: "over3"; - } - program { name: "button_unclick3"; - signal: "mouse,clicked,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,click" ""; - } - program { name: "text_show"; - signal: "elm,state,text,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "icononly")) - { - set_state(PART:"elm.swallow.content", "visible", 0.0); - set_state(PART:"icon_rect", "visible", 0.0); - set_state(PART:"padding_after_icon", "visible", 0.0); - } - set_state(PART:"elm.text", "visible", 0.0); - } - } - program { name: "text_hide"; - signal: "elm,state,text,hidden"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "visible")) - { - set_state(PART:"elm.swallow.content", "icononly", 0.0); - set_state(PART:"icon_rect", "icononly", 0.0); - set_state(PART:"padding_after_icon", "icononly", 0.0); - } - set_state(PART:"elm.text", "default", 0.0); - } - } - program { name: "icon_show"; - signal: "elm,state,icon,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - { - set_state(PART:"elm.swallow.content", "visible", 0.0); - set_state(PART:"icon_rect", "visible", 0.0); - set_state(PART:"padding_after_icon", "visible", 0.0); - } - else - { - set_state(PART:"elm.swallow.content", "icononly", 0.0); - set_state(PART:"icon_rect", "icononly", 0.0); - set_state(PART:"padding_after_icon", "icononly", 0.0); - } - } - } - program { name: "icon_hide"; - signal: "elm,state,icon,hidden"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "elm.swallow.content"; - } - program { name: "disable"; - signal: "elm,state,disabled"; - source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "button_image"; - target: "over2"; - target: "disabler"; - after: "disable_text"; - } - program { name: "disable_text"; - script { - set_int(button_state, BUTTON_STATE_DISABLED); - set_state(PART:"elm.text", "visible", 0.0); - } - } - program { name: "enable"; - signal: "elm,state,enabled"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - target: "over2"; - target: "disabler"; - after: "enable_text"; - } - program { name: "enable_text"; - script { - set_int(button_state, BUTTON_STATE_ENABLED); - set_state(PART:"elm.text", "visible", 0.0); - } - } - program { name: "focused"; - action: STATE_SET "focused" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "unfocused"; - action: STATE_SET "default" 0.0; - target: "button_image"; - after: "unfocus_text"; - } - program { name: "unfocus_text"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - } - } - - group { name: "elm/button/base/vcui_naviframe_backbutton/default"; - //TODO: Remove this alias later - alias: "elm/button/base/vcui_naviframe_backbutton/default"; - images { - image: "vc_control_btn_prev.png" COMP; - } - parts { - part { name: "button_image"; - type: RECT; - mouse_events: 1; - scale: 1; - description { state: "default" 0.0; - min: 106 40; - color: 0 0 0 0; - } - description { - state: "clicked" 0.0; - inherit: "default" 0.0; - } - description { - state: "disabled" 0.0; - inherit: "default" 0.0; - } - } - part {name: "padding_right"; - type: RECT; - mouse_events: 0; - description { state: "default" 0.0; - align: 1 0; - min: 1 0; - rel1 { relative: 1 0.2; } - rel2 { relative: 1 0.8; } - fixed: 1 0; - color: VC_NAVIFRAME_TITLE_RIGHT_SEPARATOR_COLOR_INC; - } - } - part {name: "padding_before_right"; - type: RECT; - mouse_events: 0; - description { state: "default" 0.0; - align: 1 0; - min: 1 0; - rel1 { relative: 0 0; to: "padding_right"; } - rel2 { relative: 0 1; to: "padding_right"; } - fixed: 1 0; - color: VC_NAVIFRAME_TITLE_LEFT_SEPARATOR_COLOR_INC; - } - } - part { name: "button_center_part"; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - min: 36 32; - max: 36 32; - align: 0.5 0.5; - rel2 { relative: 0 1; to_x: "padding_before_right"; } - image { - normal: "vc_control_btn_prev.png"; - } - } - description { - state: "clicked" 0.0; - inherit: "default" 0.0; - } - } - part { name: "over1"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - color: 0 0 0 0; - } - } - part { name: "over2"; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 0 0 0 0; - } - } - part { name: "disabler"; - type: RECT; - description { state: "default" 0.0; - color: 0 0 0 0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - } - programs { - program { name: "button_click"; - signal: "mouse,down,1"; - source: "over1"; - action: SIGNAL_EMIT "elm,action,press" ""; - after: "button_click_anim"; - } - program { name: "button_click_anim"; - action: STATE_SET "clicked" 0.0; - target: "button_image"; - target: "button_center_part"; - } - program { name: "button_unclick"; - signal: "mouse,up,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,unpress" ""; - after: "button_unclick_anim"; - } - program { name: "button_unclick_anim"; - action: STATE_SET "default" 0.0; - target: "button_image"; - target: "button_center_part"; - } - program { name: "button_unclick2"; - signal: "mouse,clicked,1"; - source: "over1"; - action: SIGNAL_EMIT "elm,action,click" ""; - } - program { name: "disable"; - signal: "elm,state,disabled"; - source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "disabler"; - target: "button_image"; - } - program { name: "enable"; - signal: "elm,state,enabled"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "disabler"; - target: "button_image"; - } - } - } - - group { name: "elm/button/base/vcui_naviframe_new_backbutton/default"; - //TODO: Remove this alias later - alias: "elm/button/base/vcui_naviframe_new_backbutton/default"; - images { - image: "vc_control_btn_new_prev.png" COMP; - } - parts { - part { name: "button_image"; - type: RECT; - mouse_events: 1; - scale: 1; - description { state: "default" 0.0; - min: 100 114; - color: 0 0 0 0; - } - description { - state: "clicked" 0.0; - inherit: "default" 0.0; - } - description { - state: "disabled" 0.0; - inherit: "default" 0.0; - } - } - part {name: "padding_right"; - type: RECT; - mouse_events: 0; - description { state: "default" 0.0; - align: 1 0; - min: 1 0; - rel1 { relative: 1 0.2; } - rel2 { relative: 1 0.8; } - fixed: 1 0; - color: VC_NAVIFRAME_TITLE_RIGHT_SEPARATOR_COLOR_INC; - } - } - part {name: "padding_before_right"; - type: RECT; - mouse_events: 0; - description { state: "default" 0.0; - align: 1 0; - min: 1 0; - rel1 { relative: 0 0; to: "padding_right"; } - rel2 { relative: 0 1; to: "padding_right"; } - fixed: 1 0; - color: VC_NAVIFRAME_TITLE_LEFT_SEPARATOR_COLOR_INC; - } - } - part { name: "button_center_part"; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - min: VC_NAVIFRAME_NEW_ICON_SIZE_INC; - max: VC_NAVIFRAME_NEW_ICON_SIZE_INC; - align: 0.5 0.5; - rel2 { relative: 0 1; to_x: "padding_before_right"; } - image { - normal: "vc_control_btn_new_prev.png"; - } - } - description { - state: "clicked" 0.0; - inherit: "default" 0.0; - } - } - part { name: "over1"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - color: 0 0 0 0; - } - } - part { name: "over2"; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 0 0 0 0; - } - } - part { name: "disabler"; - type: RECT; - description { state: "default" 0.0; - color: 0 0 0 0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - } - programs { - program { name: "button_click"; - signal: "mouse,down,1"; - source: "over1"; - action: SIGNAL_EMIT "elm,action,press" ""; - after: "button_click_anim"; - } - program { name: "button_click_anim"; - action: STATE_SET "clicked" 0.0; - target: "button_image"; - target: "button_center_part"; - } - program { name: "button_unclick"; - signal: "mouse,up,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,unpress" ""; - after: "button_unclick_anim"; - } - program { name: "button_unclick_anim"; - action: STATE_SET "default" 0.0; - target: "button_image"; - target: "button_center_part"; - } - program { name: "button_unclick2"; - signal: "mouse,clicked,1"; - source: "over1"; - action: SIGNAL_EMIT "elm,action,click" ""; - } - program { name: "disable"; - signal: "elm,state,disabled"; - source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "disabler"; - target: "button_image"; - } - program { name: "enable"; - signal: "elm,state,enabled"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "disabler"; - target: "button_image"; - } - } - } - -/////////////////////////////////////////////////////////////////////////////////////// - group { name: "elm/button/base/style_call_lscape_join"; - images { - image: "vc_six_btn_layout_normal.png" COMP; - image: "vc_six_btn_layout_press.png" COMP; - } - script { - public button_state = BUTTON_STATE_ENABLED; - } - parts { - part { name: "button_image"; - mouse_events: 1; - scale: 1; - description { state: "default" 0.0; - min: 20 46; - image { - normal: "vc_six_btn_layout_normal.png"; - border: 9 9 0 0; - border_scale: 1; - } - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - image.normal: "vc_six_btn_layout_press.png"; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - } - } - part { - name: "padding_left_top"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 0.0 0.0; - rel1.relative: 0.0 0.0; - rel2.relative: 0.0 0.0; - min: 10 5; - fixed: 1 1; - visible: 0; - } - } - part { - name: "padding_right_bottom"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 1.0 1.0; - rel1.relative: 1.0 1.0; - rel2.relative: 1.0 1.0; - min: 10 5; - fixed: 1 1; - visible: 0; - } - } - part { - name: "icon_rect"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - visible: 1; - min: 0 0; - fixed: 1 0; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - align: 0.0 0.5; - color: 0 0 0 0; - } - description { state: "visible" 0.0; - visible: 1; - min: 26 28; - max: 26 28; - fixed: 1 0; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - align: 0.0 0.5; - color: 0 0 0 0; - } - description { state: "icononly" 0.0; - inherit: "default" 0.0; - } - } - part { - name: "padding_after_icon"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; //when only icon or no icon is there - align: 0.0 0.0; - rel1 { relative: 1.0 0.0; to: "icon_rect"; } - rel2 { relative: 1.0 1.0; to: "icon_rect"; } - fixed: 1 0; - min: 0 0; - color: 0 255 0 100; - } - description { state: "visible" 0.0; - visible: 1; - align: 0.0 0.0; - rel1 { relative: 1.0 0.0; to: "icon_rect"; } - rel2 { relative: 1.0 1.0; to: "icon_rect"; } - fixed: 1 0; - min: 10 0; - color: 0 0 0 0; - } - description { state: "icononly" 0.0; - inherit: "default" 0.0; - } - } - part { - name: "padding_before_text"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; //when only icon or no icon is there - align: 1.0 0.5; - rel1 { relative: 0.0 1.0; to_x: "elm.text"; to_y: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to_x: "elm.text"; to_y: "padding_right_bottom"; } - fixed: 1 0; - min: 10 0; - color: 0 0 0 0; - } - } - part { name: "elm.swallow.content"; - type: SWALLOW; - scale: 1; - description { state: "default" 0.0; - visible: 0; - align: 0.0 0.5; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - fixed: 1 0; - } - description { state: "visible" 0.0; - fixed: 1 0; - visible: 1; - min: 26 28; - max: 26 28; - align: 1.0 0.5; - rel1 { relative: 0.0 1.0; to_x: "padding_before_text"; to_y: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to_x: "padding_before_text"; to_y: "padding_right_bottom"; } - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - } - description { state: "icononly" 0.0; - visible: 1; - min: 26 28; - max: 26 28; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - align: 0.5 0.5; - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - } - } - part { name: "elm.text"; - type: TEXT; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - visible: 0; - rel1 { relative: 1.0 1.0; to_x: "padding_after_icon"; to_y: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to: "padding_right_bottom"; } - align: 0.5 0.5; - text { - font: "SLP:style=Medium"; - size: 32; - min: 0 0; - align: 0.5 0.5; - max: 1 0; - } - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 90 28; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 0 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - color: 0 0 0 128; - } - description { state: "disabled_visible" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 90 28; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 0 0; - } - } - part { name: "over2"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - color: 0 0 0 0; - } - } - part { name: "over3"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 0 0 0 0; - } - } - part { name: "disabler"; - type: RECT; - description { state: "default" 0.0; - color: 0 0 0 0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - } - programs { - program { name: "button_click"; - signal: "mouse,down,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,press" ""; - after: "button_click_anim"; - } - program { name: "button_click_anim"; - action: STATE_SET "clicked" 0.0; - target: "button_image"; - after: "text_clicked"; - } - program { name: "text_clicked"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.text", "clicked", 0.0); - } - } - program { name: "button_unpress"; - action: SIGNAL_EMIT "elm,action,unpress" ""; - } - program { name: "button_mouseout_clicked"; - signal: "mouse,up,1"; - source: "over3"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (strcmp(st, "icononly")) - { - emit("elm,action,default,text,set", ""); - set_state(PART:"elm.text", "visible", 0.0); - } - if(get_int(button_state) != BUTTON_STATE_DISABLED) - set_state(PART:"button_image", "default", 0.0); - } - after: button_unpress; - } - program { name: "button_unclick3"; - signal: "mouse,clicked,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,click" ""; - } - program { name: "text_show"; - signal: "elm,state,text,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "icononly")) - { - set_state(PART:"elm.swallow.content", "visible", 0.0); - set_state(PART:"icon_rect", "visible", 0.0); - set_state(PART:"padding_after_icon", "visible", 0.0); - } - if(get_int(button_state) != BUTTON_STATE_DISABLED) - set_state(PART:"elm.text", "visible", 0.0); - else - set_state(PART:"elm.text", "disabled_visible", 0.0); - } - } - program { name: "text_hide"; - signal: "elm,state,text,hidden"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "visible")) - { - set_state(PART:"elm.swallow.content", "icononly", 0.0); - set_state(PART:"icon_rect", "icononly", 0.0); - set_state(PART:"padding_after_icon", "icononly", 0.0); - } - set_state(PART:"elm.text", "default", 0.0); - } - } - program { name: "icon_show"; - signal: "elm,state,icon,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - { - set_state(PART:"elm.swallow.content", "visible", 0.0); - set_state(PART:"icon_rect", "visible", 0.0); - set_state(PART:"padding_after_icon", "visible", 0.0); - } - else - { - set_state(PART:"elm.swallow.content", "icononly", 0.0); - set_state(PART:"icon_rect", "icononly", 0.0); - set_state(PART:"padding_after_icon", "icononly", 0.0); - } - } - } - program { name: "icon_hide"; - signal: "elm,state,icon,hidden"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "elm.swallow.content"; - } - program { name: "disable"; - signal: "elm,state,disabled"; - source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "button_image"; - target: "disabler"; - after: "disable_text"; - } - program { name: "disable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.text", "disabled_visible", 0.0); - else - set_state(PART:"elm.text", "disabled", 0.0); - set_int(button_state, BUTTON_STATE_DISABLED); - } - } - program { name: "enable"; - signal: "elm,state,enabled"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - target: "disabler"; - after: "enable_text"; - } - program { name: "enable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "disabled_visible")) - set_state(PART:"elm.text", "visible", 0.0); - else - set_state(PART:"elm.text", "default", 0.0); - set_int(button_state, BUTTON_STATE_ENABLED); - } - } - program { name: "focused"; - action: STATE_SET "focused" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "unfocused"; - action: STATE_SET "default" 0.0; - target: "button_image"; - after: "unfocus_text"; - } - program { name: "unfocus_text"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - } - } - -/////////////////////////////////////////////////////////////////////////////////////// - group { name: "elm/button/base/style_call_lscape_join_disabled"; - images { - image: "vc_six_btn_layout_normal.png" COMP; - } - script { - public button_state = BUTTON_STATE_ENABLED; - } - parts { - part { name: "button_image"; - mouse_events: 1; - scale: 1; - description { state: "default" 0.0; - min: 20 46; - image { - normal: "vc_six_btn_layout_normal.png"; - border: 9 9 0 0; - border_scale: 1; - } - color: 255 255 255 102; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - } - } - part { - name: "padding_left_top"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 0.0 0.0; - rel1.relative: 0.0 0.0; - rel2.relative: 0.0 0.0; - min: 10 5; - fixed: 1 1; - visible: 0; - } - } - part { - name: "padding_right_bottom"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 1.0 1.0; - rel1.relative: 1.0 1.0; - rel2.relative: 1.0 1.0; - min: 10 5; - fixed: 1 1; - visible: 0; - } - } - part { - name: "icon_rect"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - visible: 1; - min: 0 0; - fixed: 1 0; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - align: 0.0 0.5; - color: 0 0 0 0; - } - description { state: "visible" 0.0; - visible: 1; - min: 26 28; - max: 26 28; - fixed: 1 0; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - align: 0.0 0.5; - color: 0 0 0 0; - } - description { state: "icononly" 0.0; - inherit: "default" 0.0; - } - } - part { - name: "padding_after_icon"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 0.0 0.0; - rel1 { relative: 1.0 0.0; to: "icon_rect"; } - rel2 { relative: 1.0 1.0; to: "icon_rect"; } - fixed: 1 0; - min: 0 0; - color: 0 255 0 100; - } - description { state: "visible" 0.0; - visible: 1; - align: 0.0 0.0; - rel1 { relative: 1.0 0.0; to: "icon_rect"; } - rel2 { relative: 1.0 1.0; to: "icon_rect"; } - fixed: 1 0; - min: 10 0; - color: 0 0 0 0; - } - description { state: "icononly" 0.0; - inherit: "default" 0.0; - } - } - part { - name: "padding_before_text"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 1.0 0.5; - rel1 { relative: 0.0 1.0; to_x: "elm.text"; to_y: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to_x: "elm.text"; to_y: "padding_right_bottom"; } - fixed: 1 0; - min: 10 0; - color: 0 0 0 0; - } - } - part { name: "elm.swallow.content"; - type: SWALLOW; - scale: 1; - description { state: "default" 0.0; - visible: 0; - align: 0.0 0.5; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - fixed: 1 0; - } - description { state: "visible" 0.0; - fixed: 1 0; - visible: 1; - min: 26 28; - max: 26 28; - align: 1.0 0.5; - rel1 { relative: 0.0 1.0; to_x: "padding_before_text"; to_y: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to_x: "padding_before_text"; to_y: "padding_right_bottom"; } - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - } - description { state: "icononly" 0.0; - visible: 1; - min: 26 28; - max: 26 28; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - align: 0.5 0.5; - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - } - } - part { name: "elm.text"; - type: TEXT; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - visible: 0; - rel1 { relative: 1.0 1.0; to_x: "padding_after_icon"; to_y: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to: "padding_right_bottom"; } - align: 0.5 0.5; - color: 255 255 255 51; /*20%*/ - text { - font: "SLP:style=Medium"; - size: 32; - min: 0 0; - align: 0.5 0.5; - max: 1 0; - } - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 90 28; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 0 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - color: 0 0 0 128; - } - description { state: "disabled_visible" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 90 28; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 0 0; - } - } - part { name: "over2"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - color: 0 0 0 0; - } - } - part { name: "over3"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 0 0 0 0; - } - } - part { name: "disabler"; - type: RECT; - description { state: "default" 0.0; - color: 0 0 0 0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - } - programs { - program { name: "button_click"; - signal: "mouse,down,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,press" ""; - after: "button_click_anim"; - } - program { name: "button_click_anim"; - action: STATE_SET "clicked" 0.0; - target: "button_image"; - after: "text_clicked"; - } - program { name: "text_clicked"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.text", "clicked", 0.0); - } - } - program { name: "button_unpress"; - action: SIGNAL_EMIT "elm,action,unpress" ""; - } - program { name: "button_mouseout_clicked"; - signal: "mouse,up,1"; - source: "over3"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (strcmp(st, "icononly")) - { - emit("elm,action,default,text,set", ""); - set_state(PART:"elm.text", "visible", 0.0); - } - if(get_int(button_state) != BUTTON_STATE_DISABLED) - set_state(PART:"button_image", "default", 0.0); - } - after: button_unpress; - } - program { name: "button_unclick3"; - signal: "mouse,clicked,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,click" ""; - } - program { name: "text_show"; - signal: "elm,state,text,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "icononly")) - { - set_state(PART:"elm.swallow.content", "visible", 0.0); - set_state(PART:"icon_rect", "visible", 0.0); - set_state(PART:"padding_after_icon", "visible", 0.0); - } - if(get_int(button_state) != BUTTON_STATE_DISABLED) - set_state(PART:"elm.text", "visible", 0.0); - else - set_state(PART:"elm.text", "disabled_visible", 0.0); - } - } - program { name: "text_hide"; - signal: "elm,state,text,hidden"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "visible")) - { - set_state(PART:"elm.swallow.content", "icononly", 0.0); - set_state(PART:"icon_rect", "icononly", 0.0); - set_state(PART:"padding_after_icon", "icononly", 0.0); - } - set_state(PART:"elm.text", "default", 0.0); - } - } - program { name: "icon_show"; - signal: "elm,state,icon,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - { - set_state(PART:"elm.swallow.content", "visible", 0.0); - set_state(PART:"icon_rect", "visible", 0.0); - set_state(PART:"padding_after_icon", "visible", 0.0); - } - else - { - set_state(PART:"elm.swallow.content", "icononly", 0.0); - set_state(PART:"icon_rect", "icononly", 0.0); - set_state(PART:"padding_after_icon", "icononly", 0.0); - } - } - } - program { name: "icon_hide"; - signal: "elm,state,icon,hidden"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "elm.swallow.content"; - } - program { name: "disable"; - signal: "elm,state,disabled"; - source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "button_image"; - target: "disabler"; - after: "disable_text"; - } - program { name: "disable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.text", "disabled_visible", 0.0); - else - set_state(PART:"elm.text", "disabled", 0.0); - set_int(button_state, BUTTON_STATE_DISABLED); - } - } - program { name: "enable"; - signal: "elm,state,enabled"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - target: "disabler"; - after: "enable_text"; - } - program { name: "enable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "disabled_visible")) - set_state(PART:"elm.text", "visible", 0.0); - else - set_state(PART:"elm.text", "default", 0.0); - set_int(button_state, BUTTON_STATE_ENABLED); - } - } - program { name: "focused"; - action: STATE_SET "focused" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "unfocused"; - action: STATE_SET "default" 0.0; - target: "button_image"; - after: "unfocus_text"; - } - program { name: "unfocus_text"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - } - } - -/////////////////////////////////////////////////////////////////////////////////////// - group { name: "elm/button/base/style_call_lscape_endcall_red"; - images { - image: "vc_button_red_normal.png" COMP; - image: "vc_button_press.png" COMP; - } - script { - public button_state = BUTTON_STATE_ENABLED; - } - parts { - part { name: "button_image"; - mouse_events: 1; - scale: 1; - description { state: "default" 0.0; - min: 20 46; - image { - normal: "vc_button_red_normal.png"; - border: 16 16 0 0; - border_scale: 1; - } - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - image.normal: "vc_button_press.png"; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - image.normal: "vc_button_press.png"; - } - } - part { - name: "padding_left_top"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 0.0 0.0; - rel1.relative: 0.0 0.0; - rel2.relative: 0.0 0.0; - min: 10 5; - fixed: 1 1; - visible: 0; - } - } - part { - name: "padding_right_bottom"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 1.0 1.0; - rel1.relative: 1.0 1.0; - rel2.relative: 1.0 1.0; - min: 10 5; - fixed: 1 1; - visible: 0; - } - } - part { - name: "icon_rect"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - visible: 1; - min: 0 0; - fixed: 1 0; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - align: 0.0 0.5; - color: 0 0 0 0; - } - description { state: "visible" 0.0; - visible: 1; - min: 40 40; - max: 40 40; - fixed: 1 0; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - align: 0.0 0.5; - color: 0 0 0 0; - } - description { state: "icononly" 0.0; - inherit: "default" 0.0; - } - } - part { - name: "padding_after_icon"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 0.0 0.0; - rel1 { relative: 1.0 0.0; to: "icon_rect"; } - rel2 { relative: 1.0 1.0; to: "icon_rect"; } - fixed: 1 0; - min: 0 0; - color: 0 255 0 100; - } - description { state: "visible" 0.0; - visible: 1; - align: 0.0 0.0; - rel1 { relative: 1.0 0.0; to: "icon_rect"; } - rel2 { relative: 1.0 1.0; to: "icon_rect"; } - fixed: 1 0; - min: 10 0; - color: 0 0 0 0; - } - description { state: "icononly" 0.0; - inherit: "default" 0.0; - } - } - part { - name: "padding_before_text"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 1.0 0.5; - rel1 { relative: 0.0 1.0; to_x: "elm.text"; to_y: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to_x: "elm.text"; to_y: "padding_right_bottom"; } - fixed: 1 0; - min: 10 0; - color: 0 0 0 0; - } - } - part { name: "elm.swallow.content"; - type: SWALLOW; - scale: 1; - description { state: "default" 0.0; - visible: 0; - align: 0.0 0.5; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - fixed: 1 0; - } - description { state: "visible" 0.0; - fixed: 1 0; - visible: 1; - min: 40 40; - max: 40 40; - align: 1.0 0.5; - rel1 { relative: 0.0 1.0; to_x: "padding_before_text"; to_y: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to_x: "padding_before_text"; to_y: "padding_right_bottom"; } - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - } - description { state: "icononly" 0.0; - visible: 1; - min: 40 40; - max: 40 40; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - align: 0.5 0.5; - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - } - } - part { name: "elm.text"; - type: TEXT; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - visible: 0; - rel1 { relative: 1.0 1.0; to_x: "padding_after_icon"; to_y: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to: "padding_right_bottom"; } - align: 0.5 0.5; - text { - font: "SLP:style=Medium"; - size: 32; - min: 0 0; - align: 0.5 0.5; - max: 1 0; - } - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 90 40; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 0 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - color: 255 255 255 51; /*20%*/ - } - description { state: "disabled_visible" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 90 40; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 0 0; - } - } - part { name: "over2"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - color: 0 0 0 0; - } - } - part { name: "over3"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 0 0 0 0; - } - } - part { name: "disabler"; - type: RECT; - description { state: "default" 0.0; - color: 0 0 0 0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - } - programs { - program { name: "button_click"; - signal: "mouse,down,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,press" ""; - after: "button_click_anim"; - } - program { name: "button_click_anim"; - action: STATE_SET "clicked" 0.0; - target: "button_image"; - after: "text_clicked"; - } - program { name: "text_clicked"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.text", "clicked", 0.0); - } - } - program { name: "button_unpress"; - action: SIGNAL_EMIT "elm,action,unpress" ""; - } - program { name: "button_mouseout_clicked"; - signal: "mouse,up,1"; - source: "over3"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (strcmp(st, "icononly")) - { - emit("elm,action,default,text,set", ""); - set_state(PART:"elm.text", "visible", 0.0); - } - if(get_int(button_state) != BUTTON_STATE_DISABLED) - set_state(PART:"button_image", "default", 0.0); - } - after: button_unpress; - } - program { name: "button_unclick3"; - signal: "mouse,clicked,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,click" ""; - } - program { name: "text_show"; - signal: "elm,state,text,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "icononly")) - { - set_state(PART:"elm.swallow.content", "visible", 0.0); - set_state(PART:"icon_rect", "visible", 0.0); - set_state(PART:"padding_after_icon", "visible", 0.0); - } - if(get_int(button_state) != BUTTON_STATE_DISABLED) - set_state(PART:"elm.text", "visible", 0.0); - else - set_state(PART:"elm.text", "disabled_visible", 0.0); - } - } - program { name: "text_hide"; - signal: "elm,state,text,hidden"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "visible")) - { - set_state(PART:"elm.swallow.content", "icononly", 0.0); - set_state(PART:"icon_rect", "icononly", 0.0); - set_state(PART:"padding_after_icon", "icononly", 0.0); - } - set_state(PART:"elm.text", "default", 0.0); - } - } - program { name: "icon_show"; - signal: "elm,state,icon,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - { - set_state(PART:"elm.swallow.content", "visible", 0.0); - set_state(PART:"icon_rect", "visible", 0.0); - set_state(PART:"padding_after_icon", "visible", 0.0); - } - else - { - set_state(PART:"elm.swallow.content", "icononly", 0.0); - set_state(PART:"icon_rect", "icononly", 0.0); - set_state(PART:"padding_after_icon", "icononly", 0.0); - } - } - } - program { name: "icon_hide"; - signal: "elm,state,icon,hidden"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "elm.swallow.content"; - } - program { name: "disable"; - signal: "elm,state,disabled"; - source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "button_image"; - target: "disabler"; - after: "disable_text"; - } - program { name: "disable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.text", "disabled_visible", 0.0); - else - set_state(PART:"elm.text", "disabled", 0.0); - set_int(button_state, BUTTON_STATE_DISABLED); - } - } - program { name: "enable"; - signal: "elm,state,enabled"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - target: "disabler"; - after: "enable_text"; - } - program { name: "enable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "disabled_visible")) - set_state(PART:"elm.text", "visible", 0.0); - else - set_state(PART:"elm.text", "default", 0.0); - set_int(button_state, BUTTON_STATE_ENABLED); - } - } - program { name: "focused"; - action: STATE_SET "focused" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "unfocused"; - action: STATE_SET "default" 0.0; - target: "button_image"; - after: "unfocus_text"; - } - program { name: "unfocus_text"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - } - } - -/////////////////////////////////////////////////////////////////////////////////////// - group { name: "elm/button/base/style_call_lscape_endcall_red_disabled"; - images { - image: "vc_button_red_normal.png" COMP; - } - script { - public button_state = BUTTON_STATE_ENABLED; - } - parts { - part { name: "button_image"; - mouse_events: 1; - scale: 1; - description { state: "default" 0.0; - min: 20 46; - image { - normal: "vc_button_red_normal.png"; - border: 16 16 0 0; - border_scale: 1; - } - color: 255 255 255 102; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - } - } - part { - name: "padding_left_top"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 0.0 0.0; - rel1.relative: 0.0 0.0; - rel2.relative: 0.0 0.0; - min: 10 5; - fixed: 1 1; - visible: 0; - } - } - part { - name: "padding_right_bottom"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 1.0 1.0; - rel1.relative: 1.0 1.0; - rel2.relative: 1.0 1.0; - min: 10 5; - fixed: 1 1; - visible: 0; - } - } - part { - name: "icon_rect"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - visible: 1; - min: 0 0; - fixed: 1 0; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - align: 0.0 0.5; - color: 0 0 0 0; - } - description { state: "visible" 0.0; - visible: 1; - min: 40 40; - max: 40 40; - fixed: 1 0; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - align: 0.0 0.5; - color: 0 0 0 0; - } - description { state: "icononly" 0.0; - inherit: "default" 0.0; - } - } - part { - name: "padding_after_icon"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 0.0 0.0; - rel1 { relative: 1.0 0.0; to: "icon_rect"; } - rel2 { relative: 1.0 1.0; to: "icon_rect"; } - fixed: 1 0; - min: 0 0; - color: 0 255 0 100; - } - description { state: "visible" 0.0; - visible: 1; - align: 0.0 0.0; - rel1 { relative: 1.0 0.0; to: "icon_rect"; } - rel2 { relative: 1.0 1.0; to: "icon_rect"; } - fixed: 1 0; - min: 10 0; - color: 0 0 0 0; - } - description { state: "icononly" 0.0; - inherit: "default" 0.0; - } - } - part { - name: "padding_before_text"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 1.0 0.5; - rel1 { relative: 0.0 1.0; to_x: "elm.text"; to_y: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to_x: "elm.text"; to_y: "padding_right_bottom"; } - fixed: 1 0; - min: 10 0; - color: 0 0 0 0; - } - } - part { name: "elm.swallow.content"; - type: SWALLOW; - scale: 1; - description { state: "default" 0.0; - visible: 0; - align: 0.0 0.5; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - fixed: 1 0; - } - description { state: "visible" 0.0; - fixed: 1 0; - visible: 1; - min: 40 40; - max: 40 40; - align: 1.0 0.5; - rel1 { relative: 0.0 1.0; to_x: "padding_before_text"; to_y: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to_x: "padding_before_text"; to_y: "padding_right_bottom"; } - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - } - description { state: "icononly" 0.0; - visible: 1; - min: 40 40; - max: 40 40; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - align: 0.5 0.5; - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - } - } - part { name: "elm.text"; - type: TEXT; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - visible: 0; - rel1 { relative: 1.0 1.0; to_x: "padding_after_icon"; to_y: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to: "padding_right_bottom"; } - align: 0.5 0.5; - color: 255 255 255 51; /*20%*/ - text { - font: "SLP:style=Medium"; - size: 32; - min: 0 0; - align: 0.5 0.5; - max: 1 0; - } - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 90 40; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 0 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - color: 0 0 0 128; - } - description { state: "disabled_visible" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 90 40; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 0 0; - } - } - part { name: "over2"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - color: 0 0 0 0; - } - } - part { name: "over3"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 0 0 0 0; - } - } - part { name: "disabler"; - type: RECT; - description { state: "default" 0.0; - color: 0 0 0 0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - } - programs { - program { name: "button_click"; - signal: "mouse,down,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,press" ""; - after: "button_click_anim"; - } - program { name: "button_click_anim"; - action: STATE_SET "clicked" 0.0; - target: "button_image"; - after: "text_clicked"; - } - program { name: "text_clicked"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.text", "clicked", 0.0); - } - } - program { name: "button_unpress"; - action: SIGNAL_EMIT "elm,action,unpress" ""; - } - program { name: "button_mouseout_clicked"; - signal: "mouse,up,1"; - source: "over3"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (strcmp(st, "icononly")) - { - emit("elm,action,default,text,set", ""); - set_state(PART:"elm.text", "visible", 0.0); - } - if(get_int(button_state) != BUTTON_STATE_DISABLED) - set_state(PART:"button_image", "default", 0.0); - } - after: button_unpress; - } - program { name: "button_unclick3"; - signal: "mouse,clicked,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,click" ""; - } - program { name: "text_show"; - signal: "elm,state,text,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "icononly")) - { - set_state(PART:"elm.swallow.content", "visible", 0.0); - set_state(PART:"icon_rect", "visible", 0.0); - set_state(PART:"padding_after_icon", "visible", 0.0); - } - if(get_int(button_state) != BUTTON_STATE_DISABLED) - set_state(PART:"elm.text", "visible", 0.0); - else - set_state(PART:"elm.text", "disabled_visible", 0.0); - } - } - program { name: "text_hide"; - signal: "elm,state,text,hidden"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "visible")) - { - set_state(PART:"elm.swallow.content", "icononly", 0.0); - set_state(PART:"icon_rect", "icononly", 0.0); - set_state(PART:"padding_after_icon", "icononly", 0.0); - } - set_state(PART:"elm.text", "default", 0.0); - } - } - program { name: "icon_show"; - signal: "elm,state,icon,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - { - set_state(PART:"elm.swallow.content", "visible", 0.0); - set_state(PART:"icon_rect", "visible", 0.0); - set_state(PART:"padding_after_icon", "visible", 0.0); - } - else - { - set_state(PART:"elm.swallow.content", "icononly", 0.0); - set_state(PART:"icon_rect", "icononly", 0.0); - set_state(PART:"padding_after_icon", "icononly", 0.0); - } - } - } - program { name: "icon_hide"; - signal: "elm,state,icon,hidden"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "elm.swallow.content"; - } - program { name: "disable"; - signal: "elm,state,disabled"; - source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "button_image"; - target: "disabler"; - after: "disable_text"; - } - program { name: "disable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.text", "disabled_visible", 0.0); - else - set_state(PART:"elm.text", "disabled", 0.0); - set_int(button_state, BUTTON_STATE_DISABLED); - } - } - program { name: "enable"; - signal: "elm,state,enabled"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - target: "disabler"; - after: "enable_text"; - } - program { name: "enable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "disabled_visible")) - set_state(PART:"elm.text", "visible", 0.0); - else - set_state(PART:"elm.text", "default", 0.0); - set_int(button_state, BUTTON_STATE_ENABLED); - } - } - program { name: "focused"; - action: STATE_SET "focused" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "unfocused"; - action: STATE_SET "default" 0.0; - target: "button_image"; - after: "unfocus_text"; - } - program { name: "unfocus_text"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - } - } - -/////////////////////////////////////////////////////////////////////////////////////// - group { name: "elm/button/base/style_call_lscape_split"; - images { - image: "vc_conference_call_btn_normal.png" COMP; - image: "vc_conference_call_btn_press.png" COMP; - } - script { - public button_state = BUTTON_STATE_ENABLED; - } - parts { - part { name: "button_image"; - mouse_events: 1; - scale: 1; - description { state: "default" 0.0; - min: 20 46; - image { - normal: "vc_conference_call_btn_normal.png"; - border: 5 5 0 0; - border_scale: 1; - } - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - image.normal: "vc_conference_call_btn_press.png"; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - } - } - part { - name: "padding_left_top"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 0.0 0.0; - rel1.relative: 0.0 0.0; - rel2.relative: 0.0 0.0; - min: 10 5; - fixed: 1 1; - visible: 0; - } - } - part { - name: "padding_right_bottom"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 1.0 1.0; - rel1.relative: 1.0 1.0; - rel2.relative: 1.0 1.0; - min: 10 5; - fixed: 1 1; - visible: 0; - } - } - part { - name: "icon_rect"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - visible: 1; - min: 0 0; - fixed: 1 0; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - align: 0.0 0.5; - color: 0 0 0 0; - } - description { state: "visible" 0.0; - visible: 1; - min: 52 35; - max: 52 35; - fixed: 1 0; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - align: 0.0 0.5; - color: 0 0 0 0; - } - description { state: "icononly" 0.0; - inherit: "default" 0.0; - } - } - part { - name: "padding_after_icon"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 0.0 0.0; - rel1 { relative: 1.0 0.0; to: "icon_rect"; } - rel2 { relative: 1.0 1.0; to: "icon_rect"; } - fixed: 1 0; - min: 0 0; - color: 0 255 0 100; - } - description { state: "visible" 0.0; - visible: 1; - align: 0.0 0.0; - rel1 { relative: 1.0 0.0; to: "icon_rect"; } - rel2 { relative: 1.0 1.0; to: "icon_rect"; } - fixed: 1 0; - min: 10 0; - color: 0 0 0 0; - } - description { state: "icononly" 0.0; - inherit: "default" 0.0; - } - } - part { - name: "padding_before_text"; - type: RECT; - scale: 1; - mouse_events: 0; - description { state: "default" 0.0; - align: 1.0 0.5; - rel1 { relative: 0.0 1.0; to_x: "elm.text"; to_y: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to_x: "elm.text"; to_y: "padding_right_bottom"; } - fixed: 1 0; - min: 10 0; - color: 0 0 0 0; - } - } - part { name: "elm.swallow.content"; - type: SWALLOW; - scale: 1; - description { state: "default" 0.0; - visible: 0; - align: 0.0 0.5; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - fixed: 1 0; - } - description { state: "visible" 0.0; - fixed: 1 0; - visible: 1; - min: 52 35; - max: 52 35; - align: 1.0 0.5; - rel1 { relative: 0.0 1.0; to_x: "padding_before_text"; to_y: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to_x: "padding_before_text"; to_y: "padding_right_bottom"; } - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - } - description { state: "icononly" 0.0; - visible: 1; - min: 52 35; - max: 52 35; - rel1 { relative: 1.0 1.0; to: "padding_left_top"; } - rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; } - align: 0.5 0.5; - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - } - } - part { name: "elm.text"; - type: TEXT; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - visible: 0; - rel1 { relative: 1.0 1.0; to_x: "padding_after_icon"; to_y: "padding_left_top"; } - rel2 { relative: 0.0 0.0; to: "padding_right_bottom"; } - align: 0.5 0.5; - text { - font: "SLP:style=Medium"; - size: 32; - min: 0 0; - align: 0.5 0.5; - max: 1 0; - } - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 90 35; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 0 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - color: 0 0 0 128; - } - description { state: "disabled_visible" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 90 35; - } - description { state: "focused" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 0 0; - } - } - part { name: "over2"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - color: 0 0 0 0; - } - } - part { name: "over3"; - type: RECT; - mouse_events: 1; - repeat_events: 1; - description { state: "default" 0.0; - color: 0 0 0 0; - } - } - part { name: "disabler"; - type: RECT; - description { state: "default" 0.0; - color: 0 0 0 0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - } - programs { - program { name: "button_click"; - signal: "mouse,down,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,press" ""; - after: "button_click_anim"; - } - program { name: "button_click_anim"; - action: STATE_SET "clicked" 0.0; - target: "button_image"; - after: "text_clicked"; - } - program { name: "text_clicked"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.text", "clicked", 0.0); - } - } - program { name: "button_unpress"; - action: SIGNAL_EMIT "elm,action,unpress" ""; - } - program { name: "button_mouseout_clicked"; - signal: "mouse,up,1"; - source: "over3"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (strcmp(st, "icononly")) - { - emit("elm,action,default,text,set", ""); - set_state(PART:"elm.text", "visible", 0.0); - } - if(get_int(button_state) != BUTTON_STATE_DISABLED) - set_state(PART:"button_image", "default", 0.0); - } - after: button_unpress; - } - program { name: "button_unclick3"; - signal: "mouse,clicked,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,click" ""; - } - program { name: "text_show"; - signal: "elm,state,text,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "icononly")) - { - set_state(PART:"elm.swallow.content", "visible", 0.0); - set_state(PART:"icon_rect", "visible", 0.0); - set_state(PART:"padding_after_icon", "visible", 0.0); - } - if(get_int(button_state) != BUTTON_STATE_DISABLED) - set_state(PART:"elm.text", "visible", 0.0); - else - set_state(PART:"elm.text", "disabled_visible", 0.0); - } - } - program { name: "text_hide"; - signal: "elm,state,text,hidden"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.swallow.content", st, 30, vl); - if (!strcmp(st, "visible")) - { - set_state(PART:"elm.swallow.content", "icononly", 0.0); - set_state(PART:"icon_rect", "icononly", 0.0); - set_state(PART:"padding_after_icon", "icononly", 0.0); - } - set_state(PART:"elm.text", "default", 0.0); - } - } - program { name: "icon_show"; - signal: "elm,state,icon,visible"; - source: "elm"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - { - set_state(PART:"elm.swallow.content", "visible", 0.0); - set_state(PART:"icon_rect", "visible", 0.0); - set_state(PART:"padding_after_icon", "visible", 0.0); - } - else - { - set_state(PART:"elm.swallow.content", "icononly", 0.0); - set_state(PART:"icon_rect", "icononly", 0.0); - set_state(PART:"padding_after_icon", "icononly", 0.0); - } - } - } - program { name: "icon_hide"; - signal: "elm,state,icon,hidden"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "elm.swallow.content"; - } - program { name: "disable"; - signal: "elm,state,disabled"; - source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "button_image"; - target: "disabler"; - after: "disable_text"; - } - program { name: "disable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.text", "disabled_visible", 0.0); - else - set_state(PART:"elm.text", "disabled", 0.0); - set_int(button_state, BUTTON_STATE_DISABLED); - } - } - program { name: "enable"; - signal: "elm,state,enabled"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - target: "disabler"; - after: "enable_text"; - } - program { name: "enable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "disabled_visible")) - set_state(PART:"elm.text", "visible", 0.0); - else - set_state(PART:"elm.text", "default", 0.0); - set_int(button_state, BUTTON_STATE_ENABLED); - } - } - program { name: "focused"; - action: STATE_SET "focused" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "unfocused"; - action: STATE_SET "default" 0.0; - target: "button_image"; - after: "unfocus_text"; - } - program { name: "unfocus_text"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - } - } - - ////////////// elm/button/base/text_only/call_end_grey ////////////////////////////////////////////// - group { name: "elm/button/base/text_only/style_call_text_only_grey"; +/////////////////////////////////////////////////////////////////////////////// + group { images { - image: "vc_second_mt_btn_normal.png" COMP; - image: "vc_button_press.png" COMP; + image: ICON_IMG_PATH"/vc_popup_bg.png" COMP; } + + name: "elm/ctxpopup/base/more_ctxpopup"; parts { - part { name: "button_image"; - mouse_events: 1; + part { + name:"frame_shadow_left_top_padding"; + type:RECT; scale: 1; - effect: SOFT_SHADOW; - description { state: "default" 0.0; - min: 100 50; + mouse_events: 0; + description { + min: 0 0; + max: 0 0; + rel2 { relative: 0 0; } + align: 1 1; + fixed: 1 1; + visible: 0; + } + } + part { + name:"frame_shadow_right_bottom_padding"; + type:RECT; + scale: 1; + mouse_events: 0; + description { + min: 0 0; + max: 0 0; + rel1{relative: 1 1;} + align: 0 0; + fixed: 1 1; + visible: 0; + } + } + part { + name: "frame_shadow"; + type: IMAGE; + scale: 1; + mouse_events: 0; + clip_to: "ctxpopup_clip"; + description { + state: "default" 0.0; + rel1 { + relative: 0.2 0.2; + to:"frame_shadow_left_top_padding"; + } + rel2 { + relative: 0.8 0.8; + to:"frame_shadow_right_bottom_padding"; + } image { - normal: "vc_second_mt_btn_normal.png"; - border: 16 16 0 0; + normal: ICON_IMG_PATH"/vc_popup_bg.png"; + border: 9 9 9 9; border_scale: 1; } + color: 255 255 255 127; } - description { state: "clicked" 0.0; - min: 100 50; - image { - normal: "vc_button_press.png"; - border: 16 16 0 0; - border_scale: 1; + } + part { name: "arrow_area_left"; + type: RECT; + mouse_events: 0; + scale: 1; + clip_to: "ctxpopup_clip"; + description { state: "default" 0.0; + visible: 0; + min: 40 0; + fixed: 1 1; + align: 1 0.5; + rel1 { + relative: 0 1; + to_y: "ctxpopup_frame_left_top"; + } + rel2 { + relative:0 0; + to:"ctxpopup_frame_left_bottom"; + } + } + } + part { name: "arrow_area_right"; + type: RECT; + mouse_events: 0; + scale: 1; + clip_to: "ctxpopup_clip"; + description { state: "default" 0.0; + visible: 0; + min: 40 0; + fixed: 1 1; + align: 0 0.5; + rel1 { + relative: 1 1; + to:"ctxpopup_frame_right_top"; + } + rel2 { + relative: 1 0; + to_y: "ctxpopup_frame_right_bottom"; + } + } + } + part { name: "arrow_area_up"; + type: RECT; + mouse_events: 0; + scale: 1; + clip_to: "ctxpopup_clip"; + description { state: "default" 0.0; + visible: 0; + min: 0 40; + fixed: 1 1; + align: 0.5 1; + rel1 { + relative: 1 0; + to_x: "ctxpopup_frame_left_top"; + } + rel2 { + relative: 0 0; + to:"ctxpopup_frame_right_top"; } } - description { state: "disabled" 0.0; - inherit: "clicked" 0.0; + } + part { name: "arrow_area_down"; + type: RECT; + mouse_events: 0; + scale: 1; + clip_to: "ctxpopup_clip"; + description { state: "default" 0.0; + visible: 0; + min: 0 40; + fixed: 1 1; + align: 0.5 0; + rel1 { + relative: 1 1; + to:"ctxpopup_frame_left_bottom"; + } + rel2 { + relative: 0 1; + to_x: "ctxpopup_frame_right_bottom"; + } + } + } + part { name: "elm.swallow.arrow_up"; + type: SWALLOW; + mouse_events: 0; + scale: 1; + clip_to: "ctxpopup_clip"; + dragable { + x: 1 1 0; + y: 1 1 0; + confine: "arrow_area_up"; + } + description { + state: "default" 0.0; + min: 40 40; + fixed: 1 1; + visible: 1; + } + } + part { name: "elm.swallow.arrow_down"; + type: SWALLOW; + mouse_events: 0; + scale: 1; + clip_to: "ctxpopup_clip"; + dragable { + x: 1 1 0; + y: 1 1 0; + confine: "arrow_area_down"; + } + description { + state: "default" 0.0; + min: 40 40; + fixed: 1 1; + visible: 1; + } + } + part { name: "elm.swallow.arrow_left"; + type: SWALLOW; + mouse_events: 0; + scale: 1; + clip_to: "ctxpopup_clip"; + dragable { + x: 1 1 0; + y: 1 1 0; + confine: "arrow_area_left"; } - description { state: "focused" 0.0; - inherit: "default" 0.0; - image.normal: "vc_button_press.png"; + description { + state: "default" 0.0; + min: 40 40; + fixed: 1 1; + visible: 1; } } - part { name: "elm.text"; - type: TEXT; - effect: SHADOW; + part { name: "elm.swallow.arrow_right"; + type: SWALLOW; mouse_events: 0; scale: 1; + clip_to: "ctxpopup_clip"; + dragable { + x: 1 1 0; + y: 1 1 0; + confine: "arrow_area_right"; + } description { state: "default" 0.0; - visible: 0; + min: 40 40; fixed: 1 1; - align: 0.5 0.5; - color: 255 255 255 255; - color2: 0 0 0 102; - color3: 0 0 0 255; - text { - font: FONT_SLP_Medium; - size: 48; - min: 0 0; - align: 0.5 0.5; - } - } - description { state: "visible" 0.0; - inherit: "default" 0.0; visible: 1; - min: 1 1; } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; - color: 255 255 255 255; - color2: 0 0 0 102; - color3: 0 0 0 255; + } + + part { + name: "ctxpopup_frame_left_top"; + type: RECT; + scale: 1; + description { + visible: 0; + align: 0 0; + min: 4 4; + max: 4 4; } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - color: 0 0 0 128; - color3: 0 0 0 0; + } + + part { + name: "ctxpopup_frame_right_top"; + type: RECT; + scale: 1; + description { + visible: 0; + align: 1 0; + min: 4 4; + max: 4 4; } - description { state: "disabled_visible" 0.0; - inherit: "default" 0.0; - color: 0 0 0 128; - color3: 0 0 0 0; - visible: 1; - min: 1 1; + } + + part { + name: "ctxpopup_frame_left_bottom"; + type: RECT; + scale: 1; + description { + visible: 0; + align: 0 1; + min: 4 4; + max: 4 4; } - description { state: "focused" 0.0; - inherit: "default" 0.0; - visible: 1; - min: 1 1; - color: 255 255 255 255; + } + + part { + name: "ctxpopup_frame_right_bottom"; + type: RECT; + scale: 1; + description { + visible: 0; + align: 1 1; + min: 4 4; + max: 4 4; } } - part { name: "over1"; + part { + name:"list_shadow_right_bottom_padding"; + type:RECT; + scale: 1; mouse_events: 0; - description { state: "default" 0.0; - rel2.relative: 1.0 0.5; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; + description { + min: MORE_MENU_CTXPOPUP_SHADOW_PADDING MORE_MENU_CTXPOPUP_SHADOW_PADDING; + max: MORE_MENU_CTXPOPUP_SHADOW_PADDING MORE_MENU_CTXPOPUP_SHADOW_PADDING; + align: 0 0; + fixed: 1 1; + visible: 0; + rel1 {to:"elm.swallow.content"; relative: 1 1;} } } - part { name: "over2"; - mouse_events: 1; - repeat_events: 1; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; + part { + name:"content_left_top_padding"; + type:RECT; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + min: MORE_MENU_CTXPOPUP_PADDING MORE_MENU_CTXPOPUP_PADDING; + max: MORE_MENU_CTXPOPUP_PADDING MORE_MENU_CTXPOPUP_PADDING; + align: 0 0; + fixed: 1 1; + visible: 0; } - description { state: "disabled" 0.0; - inherit: "default" 0.0; + } + part { + name:"content_right_bottom_padding"; + type:RECT; + scale: 1; + mouse_events: 0; + description { + min: MORE_MENU_CTXPOPUP_PADDING MORE_MENU_CTXPOPUP_PADDING; + max: MORE_MENU_CTXPOPUP_PADDING MORE_MENU_CTXPOPUP_PADDING; + rel1 { relative: 1 1;} + rel2 { relative: 1 1;} + align: 1 1; + fixed: 1 1; visible: 0; } } - part { name: "over3"; - mouse_events: 1; - repeat_events: 1; + part { + name: "frame_bg"; + type: IMAGE; + scale: 1; + mouse_events: 0; + clip_to: "ctxpopup_clip"; + description { + state: "default" 0.0; + rel1 {to:"ctxpopup_frame_left_top";} + rel2 {to:"ctxpopup_frame_right_bottom";} + image { + normal: ICON_IMG_PATH"/vc_popup_bg.png"; + border: 9 9 9 9; + border_scale: 1; + } + color: 255 255 255 127; + } + } + part { + name: "elm.swallow.content"; + type: SWALLOW; + clip_to: "ctxpopup_clip"; + description { + state: "default" 0.0; + align: 0 0; + rel1 {to:"ctxpopup_frame_left_top"; relative: 0.5 0.5;} + rel2 {to:"ctxpopup_frame_right_bottom"; relative: 0.5 0.5;} + } + } + part { name: "ctxpopup_clip"; + type: RECT; description { state: "default" 0.0; color: 255 255 255 0; + rel1 { to:"ctxpopup_frame_left_top"; relative: 0.5 0.5; } + rel2 { to:"ctxpopup_frame_right_bottom"; relative: 0.5 0.5; } } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - visible: 1; + description { state: "show_up" 0.0; color: 255 255 255 0; + rel1 { to:"arrow_area_down"; relative: 0 1; } + rel2 { to:"arrow_area_down"; relative: 1 1; } } - } - part { name: "disabler"; - type: RECT; - description { state: "default" 0.0; - color: 0 0 0 0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; + description { state: "show_left" 0.0; + color: 255 255 255 0; + rel1 { to:"arrow_area_right"; relative: 1 0; } + rel2 { to:"arrow_area_right"; relative: 1 1; } + } + description { state: "show_right" 0.0; + color: 255 255 255 0; + rel1 { to:"arrow_area_left"; relative: 0 0; } + rel2 { to:"arrow_area_left"; relative: 0 1; } + } + description { state: "show_down" 0.0; + color: 255 255 255 0; + rel1 { to:"arrow_area_up"; relative: 0 0; } + rel2 { to:"arrow_area_up"; relative: 1 0; } + } + description { state: "hide_up" 0.0; + color: 255 255 255 255; + rel1 { to:"arrow_area_down"; relative: 0 1; } + rel2 { to:"arrow_area_down"; relative: 1 1; } + } + description { state: "hide_left" 0.0; + color: 255 255 255 255; + rel1 { to:"arrow_area_right"; relative: 1 0; } + rel2 { to:"arrow_area_right"; relative: 1 1; } + } + description { state: "hide_right" 0.0; + color: 255 255 255 255; + rel1 { to:"arrow_area_left"; relative: 0 0; } + rel2 { to:"arrow_area_left"; relative: 0 1; } + } + description { state: "hide_down" 0.0; + color: 255 255 255 255; + rel1 { to:"arrow_area_up"; relative: 0 0; } + rel2 { to:"arrow_area_up"; relative: 1 0; } + } + description { state: "visible" 0.0; + color: 255 255 255 255; + rel1 { to_x:"arrow_area_left"; to_y:"arrow_area_up"; } + rel2 { to_x:"arrow_area_right"; to_y:"arrow_area_down"; } } } } programs { - program { name: "button_click"; - signal: "mouse,down,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,press" ""; - after: "button_click_anim"; - } - program { name: "button_click_anim"; - action: STATE_SET "clicked" 0.0; - target: "button_image"; - target: "elm.text"; - } - program { name: "button_unclick"; - signal: "mouse,up,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,unpress" ""; - after: "button_unclick_anim"; - } - program { name: "button_unclick_anim"; - action: STATE_SET "default" 0.0; - target: "button_image"; + program { name: "show"; + signal: "elm,state,show"; + source: "elm"; action: STATE_SET "visible" 0.0; - target: "elm.text"; - } - program { name: "button_mouseout_clicked"; - signal: "mouse,out"; - source: "over2"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "clicked")) - { - set_state(PART:"elm.text", "visible", 0.0); - set_state(PART:"button_image", "visible", 0.0); - } - } - } - program { name: "button_click2"; - signal: "mouse,down,1"; - source: "over3"; - action: STATE_SET "clicked" 0.0; - target: "over3"; - } - program { name: "button_unclick2"; - signal: "mouse,up,1"; - source: "over3"; - action: STATE_SET "default" 0.0; - target: "over3"; - } - program { name: "button_unclick3"; - signal: "mouse,up,1"; - source: "over2"; - action: SIGNAL_EMIT "elm,action,click" ""; + transition: LINEAR 0.25; + target: "ctxpopup_clip"; } - program { name: "text_show"; - signal: "elm,state,text,visible"; + program { name: "show_up"; + signal: "elm,state,show,up"; source: "elm"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; + action: STATE_SET "show_up" 0.0; + transition: LINEAR 0.25; + target: "ctxpopup_clip"; } - program { name: "text_hide"; - signal: "elm,state,text,hidden"; + program { name: "show_left"; + signal: "elm,state,show,left"; source: "elm"; - action: STATE_SET "default" 0.0; - target: "elm.text"; + action: STATE_SET "show_left" 0.0; + transition: LINEAR 0.25; + target: "ctxpopup_clip"; } - - program { name: "disable"; - signal: "elm,state,disabled"; + program { name: "show_right"; + signal: "elm,state,show,right"; source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "button_image"; - target: "over1"; - target: "over2"; - target: "disabler"; - after: "disable_text"; + action: STATE_SET "show_right" 0.0; + transition: LINEAR 0.25; + target: "ctxpopup_clip"; } - program { name: "disable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "visible")) - set_state(PART:"elm.text", "disabled_visible", 0.0); - else - set_state(PART:"elm.text", "disabled", 0.0); - } + program { name: "show_down"; + signal: "elm,state,show,down"; + source: "elm"; + action: STATE_SET "show_down" 0.0; + transition: LINEAR 0.25; + target: "ctxpopup_clip"; } - program { name: "enable"; - signal: "elm,state,enabled"; + program { name: "hide_up"; + signal: "elm,state,hide,up"; source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - target: "over1"; - target: "over2"; - target: "disabler"; - after: "enable_text"; + action: STATE_SET "hide_up" 0.0; + transition: LINEAR 0.25; + target: "ctxpopup_clip"; + after: "hide_finished"; } - program { name: "enable_text"; - script { - new st[31]; - new Float:vl; - get_state(PART:"elm.text", st, 30, vl); - if (!strcmp(st, "disabled_visible")) - set_state(PART:"elm.text", "visible", 0.0); - else - set_state(PART:"elm.text", "default", 0.0); - } + program { name: "hide_left"; + signal: "elm,state,hide,left"; + source: "elm"; + action: STATE_SET "hide_left" 0.0; + transition: LINEAR 0.25; + target: "ctxpopup_clip"; + after: "hide_finished"; } - program { name: "focused"; - signal: "elm,action,focus"; + program { name: "hide_right"; + signal: "elm,state,hide,right"; source: "elm"; - action: STATE_SET "focused" 0.0; - target: "button_image"; - target: "elm.text"; + action: STATE_SET "hide_right" 0.0; + transition: LINEAR 0.25; + target: "ctxpopup_clip"; + after: "hide_finished"; } - program { name: "unfocused"; - signal: "elm,action,unfocus"; + program { name: "hide_down"; + signal: "elm,state,hide,down"; source: "elm"; - action: STATE_SET "default" 0.0; - target: "button_image"; - action: STATE_SET "visible" 0.0; - target: "elm.text"; + action: STATE_SET "hide_down" 0.0; + transition: LINEAR 0.25; + target: "ctxpopup_clip"; + after: "hide_finished"; + } + program { name: "hide_finished"; + action: SIGNAL_EMIT "elm,action,hide,finished" ""; } } } +/* End of More ctxpopup*/ + } diff --git a/ui/images/hd/icon/vc_add_icon.png b/ui/themes/icon/vc_add_icon.png similarity index 100% rename from ui/images/hd/icon/vc_add_icon.png rename to ui/themes/icon/vc_add_icon.png diff --git a/ui/images/hd/icon/vc_add_icon_dim.png b/ui/themes/icon/vc_add_icon_dim.png similarity index 100% rename from ui/images/hd/icon/vc_add_icon_dim.png rename to ui/themes/icon/vc_add_icon_dim.png diff --git a/ui/images/hd/icon/vc_icon_hold_dim.png b/ui/themes/icon/vc_add_icon_press.png old mode 100755 new mode 100644 similarity index 91% rename from ui/images/hd/icon/vc_icon_hold_dim.png rename to ui/themes/icon/vc_add_icon_press.png index 25ad3b0..c07e615 Binary files a/ui/images/hd/icon/vc_icon_hold_dim.png and b/ui/themes/icon/vc_add_icon_press.png differ diff --git a/ui/images/hd/icon/vc_contact_icon.png b/ui/themes/icon/vc_contacts_icon.png similarity index 100% rename from ui/images/hd/icon/vc_contact_icon.png rename to ui/themes/icon/vc_contacts_icon.png diff --git a/ui/images/hd/icon/vc_contact_icon_dim.png b/ui/themes/icon/vc_contacts_icon_dim.png similarity index 100% rename from ui/images/hd/icon/vc_contact_icon_dim.png rename to ui/themes/icon/vc_contacts_icon_dim.png diff --git a/ui/themes/icon/vc_contacts_icon_press.png b/ui/themes/icon/vc_contacts_icon_press.png new file mode 100644 index 0000000..81913d4 Binary files /dev/null and b/ui/themes/icon/vc_contacts_icon_press.png differ diff --git a/ui/themes/icon/vc_end_call_icon.png b/ui/themes/icon/vc_end_call_icon.png new file mode 100644 index 0000000..fb619d1 Binary files /dev/null and b/ui/themes/icon/vc_end_call_icon.png differ diff --git a/ui/themes/icon/vc_end_call_icon_dim.png b/ui/themes/icon/vc_end_call_icon_dim.png new file mode 100644 index 0000000..13f6fb5 Binary files /dev/null and b/ui/themes/icon/vc_end_call_icon_dim.png differ diff --git a/ui/themes/icon/vc_end_call_icon_press.png b/ui/themes/icon/vc_end_call_icon_press.png new file mode 100644 index 0000000..c3d97a1 Binary files /dev/null and b/ui/themes/icon/vc_end_call_icon_press.png differ diff --git a/ui/images/hd/icon/vc_join_icon.png b/ui/themes/icon/vc_join_icon.png similarity index 100% rename from ui/images/hd/icon/vc_join_icon.png rename to ui/themes/icon/vc_join_icon.png diff --git a/ui/images/hd/icon/vc_join_icon_dim.png b/ui/themes/icon/vc_join_icon_dim.png similarity index 100% rename from ui/images/hd/icon/vc_join_icon_dim.png rename to ui/themes/icon/vc_join_icon_dim.png diff --git a/ui/themes/icon/vc_join_icon_press.png b/ui/themes/icon/vc_join_icon_press.png new file mode 100644 index 0000000..4fc3ccd Binary files /dev/null and b/ui/themes/icon/vc_join_icon_press.png differ diff --git a/ui/images/hd/icon/vc_keypad_icon.png b/ui/themes/icon/vc_keypad_icon.png similarity index 100% rename from ui/images/hd/icon/vc_keypad_icon.png rename to ui/themes/icon/vc_keypad_icon.png diff --git a/ui/images/hd/icon/vc_keypad_icon_dim.png b/ui/themes/icon/vc_keypad_icon_dim.png similarity index 100% rename from ui/images/hd/icon/vc_keypad_icon_dim.png rename to ui/themes/icon/vc_keypad_icon_dim.png diff --git a/ui/themes/icon/vc_keypad_icon_press.png b/ui/themes/icon/vc_keypad_icon_press.png new file mode 100644 index 0000000..a551ced Binary files /dev/null and b/ui/themes/icon/vc_keypad_icon_press.png differ diff --git a/ui/themes/icon/vc_live_video_icon.png b/ui/themes/icon/vc_live_video_icon.png new file mode 100755 index 0000000..092e622 Binary files /dev/null and b/ui/themes/icon/vc_live_video_icon.png differ diff --git a/ui/themes/icon/vc_live_video_icon_dim.png b/ui/themes/icon/vc_live_video_icon_dim.png new file mode 100755 index 0000000..4de8fd1 Binary files /dev/null and b/ui/themes/icon/vc_live_video_icon_dim.png differ diff --git a/ui/themes/icon/vc_live_video_icon_press.png b/ui/themes/icon/vc_live_video_icon_press.png new file mode 100755 index 0000000..3324efe Binary files /dev/null and b/ui/themes/icon/vc_live_video_icon_press.png differ diff --git a/ui/themes/icon/vc_msg_icon.png b/ui/themes/icon/vc_msg_icon.png new file mode 100644 index 0000000..9485b47 Binary files /dev/null and b/ui/themes/icon/vc_msg_icon.png differ diff --git a/ui/themes/icon/vc_msg_icon_press.png b/ui/themes/icon/vc_msg_icon_press.png new file mode 100644 index 0000000..8d658a0 Binary files /dev/null and b/ui/themes/icon/vc_msg_icon_press.png differ diff --git a/ui/themes/icon/vc_mute_icon.png b/ui/themes/icon/vc_mute_icon.png new file mode 100644 index 0000000..e8205c1 Binary files /dev/null and b/ui/themes/icon/vc_mute_icon.png differ diff --git a/ui/themes/icon/vc_mute_icon_dim.png b/ui/themes/icon/vc_mute_icon_dim.png new file mode 100644 index 0000000..5635cda Binary files /dev/null and b/ui/themes/icon/vc_mute_icon_dim.png differ diff --git a/ui/themes/icon/vc_mute_icon_press.png b/ui/themes/icon/vc_mute_icon_press.png new file mode 100644 index 0000000..f53209f Binary files /dev/null and b/ui/themes/icon/vc_mute_icon_press.png differ diff --git a/ui/themes/icon/vc_mute_on_icon.png b/ui/themes/icon/vc_mute_on_icon.png new file mode 100644 index 0000000..6d6fc3b Binary files /dev/null and b/ui/themes/icon/vc_mute_on_icon.png differ diff --git a/ui/themes/icon/vc_mute_on_icon_press.png b/ui/themes/icon/vc_mute_on_icon_press.png new file mode 100644 index 0000000..05443b3 Binary files /dev/null and b/ui/themes/icon/vc_mute_on_icon_press.png differ diff --git a/ui/themes/icon/vc_popup_arrow.png b/ui/themes/icon/vc_popup_arrow.png new file mode 100644 index 0000000..74cd5e2 Binary files /dev/null and b/ui/themes/icon/vc_popup_arrow.png differ diff --git a/ui/themes/icon/vc_popup_bg.png b/ui/themes/icon/vc_popup_bg.png new file mode 100644 index 0000000..78c64f2 Binary files /dev/null and b/ui/themes/icon/vc_popup_bg.png differ diff --git a/ui/images/wvga/icon/vc_rcs_share_icon.png b/ui/themes/icon/vc_rcs_share_icon.png similarity index 100% rename from ui/images/wvga/icon/vc_rcs_share_icon.png rename to ui/themes/icon/vc_rcs_share_icon.png diff --git a/ui/images/wvga/icon/vc_rcs_share_icon_dim.png b/ui/themes/icon/vc_rcs_share_icon_dim.png similarity index 100% rename from ui/images/wvga/icon/vc_rcs_share_icon_dim.png rename to ui/themes/icon/vc_rcs_share_icon_dim.png diff --git a/ui/images/hd/icon/vc_speaker_icon.png b/ui/themes/icon/vc_speaker_icon.png similarity index 100% rename from ui/images/hd/icon/vc_speaker_icon.png rename to ui/themes/icon/vc_speaker_icon.png diff --git a/ui/images/hd/icon/vc_speaker_icon_dim.png b/ui/themes/icon/vc_speaker_icon_dim.png similarity index 100% rename from ui/images/hd/icon/vc_speaker_icon_dim.png rename to ui/themes/icon/vc_speaker_icon_dim.png diff --git a/ui/themes/icon/vc_speaker_icon_press.png b/ui/themes/icon/vc_speaker_icon_press.png new file mode 100644 index 0000000..460944d Binary files /dev/null and b/ui/themes/icon/vc_speaker_icon_press.png differ diff --git a/ui/themes/icon/vc_speaker_on_icon.png b/ui/themes/icon/vc_speaker_on_icon.png new file mode 100644 index 0000000..81d1944 Binary files /dev/null and b/ui/themes/icon/vc_speaker_on_icon.png differ diff --git a/ui/themes/icon/vc_speaker_on_icon_press.png b/ui/themes/icon/vc_speaker_on_icon_press.png new file mode 100644 index 0000000..0a58dd4 Binary files /dev/null and b/ui/themes/icon/vc_speaker_on_icon_press.png differ diff --git a/ui/themes/icon/vc_video_call_icon.png b/ui/themes/icon/vc_video_call_icon.png new file mode 100644 index 0000000..a6ba953 Binary files /dev/null and b/ui/themes/icon/vc_video_call_icon.png differ diff --git a/ui/themes/icon/vc_video_call_icon_press.png b/ui/themes/icon/vc_video_call_icon_press.png new file mode 100644 index 0000000..2b58ccc Binary files /dev/null and b/ui/themes/icon/vc_video_call_icon_press.png differ diff --git a/ui/themes/icon/vc_voice_call_icon.png b/ui/themes/icon/vc_voice_call_icon.png new file mode 100644 index 0000000..70a166f Binary files /dev/null and b/ui/themes/icon/vc_voice_call_icon.png differ diff --git a/ui/themes/icon/vc_voice_call_icon_press.png b/ui/themes/icon/vc_voice_call_icon_press.png new file mode 100644 index 0000000..f7796fd Binary files /dev/null and b/ui/themes/icon/vc_voice_call_icon_press.png differ diff --git a/ui/themes/vc_btn_green.png b/ui/themes/vc_btn_green.png deleted file mode 100644 index 87c4b51..0000000 Binary files a/ui/themes/vc_btn_green.png and /dev/null differ diff --git a/ui/themes/vc_button_grey.png b/ui/themes/vc_button_grey.png deleted file mode 100644 index da986e8..0000000 Binary files a/ui/themes/vc_button_grey.png and /dev/null differ diff --git a/ui/themes/vc_button_hide_keypad_normal.png b/ui/themes/vc_button_hide_keypad_normal.png deleted file mode 100644 index 9df94e7..0000000 Binary files a/ui/themes/vc_button_hide_keypad_normal.png and /dev/null differ diff --git a/ui/themes/vc_button_rej_w_msg_normal.png b/ui/themes/vc_button_rej_w_msg_normal.png deleted file mode 100644 index 73c5314..0000000 Binary files a/ui/themes/vc_button_rej_w_msg_normal.png and /dev/null differ diff --git a/ui/themes/vc_button_rej_w_msg_press.png b/ui/themes/vc_button_rej_w_msg_press.png deleted file mode 100644 index 1267a27..0000000 Binary files a/ui/themes/vc_button_rej_w_msg_press.png and /dev/null differ diff --git a/ui/themes/vc_conference_call_btn_press.png b/ui/themes/vc_conference_call_btn_press.png deleted file mode 100644 index 7b9fc6e..0000000 Binary files a/ui/themes/vc_conference_call_btn_press.png and /dev/null differ diff --git a/ui/themes/vc_conference_call_btn_red.png b/ui/themes/vc_conference_call_btn_red.png deleted file mode 100644 index 7494936..0000000 Binary files a/ui/themes/vc_conference_call_btn_red.png and /dev/null differ diff --git a/ui/themes/vc_control_btn_prev.png b/ui/themes/vc_control_btn_prev.png deleted file mode 100644 index d45184d..0000000 Binary files a/ui/themes/vc_control_btn_prev.png and /dev/null differ diff --git a/ui/themes/vc_reject_with_msg_back_icon.png b/ui/themes/vc_reject_with_msg_back_icon.png deleted file mode 100755 index c56c14b..0000000 Binary files a/ui/themes/vc_reject_with_msg_back_icon.png and /dev/null differ diff --git a/ui/themes/vc_second_mt_btn_normal.png b/ui/themes/vc_second_mt_btn_normal.png deleted file mode 100644 index 7e44719..0000000 Binary files a/ui/themes/vc_second_mt_btn_normal.png and /dev/null differ diff --git a/ui/vcui-application.c b/ui/vcui-application.c deleted file mode 100755 index 41c9d7d..0000000 --- a/ui/vcui-application.c +++ /dev/null @@ -1,1224 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.tizenopensource.org/license - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -#include "vcui-application.h" -#include "vcui-app-window.h" -#include "vcui-app-data.h" -#include "vcui-document.h" - -#include "vcui-view-dialing.h" -#include "vcui-view-incoming.h" -#include "vcui-view-incoming-lock.h" -#include "vcui-view-keypad.h" -#include "vcui-view-single-call.h" -#include "vcui-view-multi-call-split.h" -#include "vcui-view-multi-call-conf.h" -#include "vcui-view-multi-call-list.h" -#include "vcui-view-callend.h" - #include "vcui-view-popup.h" -#include -#include -#include -#include -#ifdef SIGNAL_HANDLER -#include -#endif - -static vcui_app_call_data_t global_ad; - -#ifdef SIGNAL_HANDLER -#define VCUI_SIG_NUM 12 -static struct sigaction vcui_app_sigact; -static struct sigaction vcui_app_sigoldact[VCUI_SIG_NUM]; -static int vcui_app_sig_to_handle[] = {SIGABRT,SIGBUS,SIGFPE,SIGILL,SIGQUIT,SIGSEGV,SIGSYS,SIGTRAP,SIGXCPU,SIGXFSZ,SIGTERM,SIGPIPE}; -#endif - -static gboolean g_avoid_multi_setup = EINA_FALSE; -static Eina_Bool __vcui_avoid_multi_setup_timer_cb(void *data); - -#define CISS_AUL_CMD "org.tizen.ciss" -#define CISS_MODE_OPT "REQ" -#define __VCUI_NOTIFICATION_CALL_GROUP_ID 1001 - -static int __vcui_launch_ciss(const char *number); -static void __vcui_cache_flush_set(Evas *e); -static void __vcui_init_view_register_function(vcui_app_call_data_t *app_data, vcui_app_call_view_id_t view_id, voice_call_view_data_t *(*view_new) ()); -static int __vcui_app_create(void *data); -static int __vcui_app_pause(void *data); -static int __vcui_app_reset(bundle *kb, void *data); -static int __vcui_app_resume(void *data); -static int __vcui_app_terminate(void *data); -static void __vcui_fade_out_cb_routine(void); -static int __vcui_lang_changed_cb(void *data); -static int __vcui_low_mem_cb(void *data); -static int __vcui_low_bat_cb(void *data); -static void __vcui_init(vcui_app_call_data_t *ad); - -#ifdef SIGNAL_HANDLER -/** -* This function serves as the signal handler function for the SIGSEGV Signal -* -* @return nothing -* @param[in] signal_no Signal Number -* @param[in] signal_info Information associated with the generated signal -* @param[in] signal_context Signal Context Info -*/ -static void __vcui_exit_handler(void) -{ - printf("\n __vcui_app_exit_handler\n"); - /*syslog (LOG_INFO, "[VOICE-CALL] __vcui_app_exit_handler\n");*/ -} - -/** -* This function serves as the signal handler function for the SIGSEGV Signal -* -* @return nothing -* @param[in] signal_no Signal Number -* @param[in] signal_info Information associated with the generated signal -* @param[in] signal_context Signal Context Info -*/ -static void __vcui_sigsegv_handler(int signal_no) -{ - int i=0; - - CALL_UI_DEBUG("SISEGV Received, Signal Number: :%d \n", signal_no); - - vcall_engine_force_reset(); - __vcui_fade_out_cb_routine(); - - for (i=0; i < VCUI_SIG_NUM; i++) - { - sigaction(vcui_app_sig_to_handle[i], &(vcui_app_sigoldact[i]), NULL); - } - - raise(signal_no); /*raise signal intentionally (pass the same signal)*/ -} - -/** -* This function registers a user space signal handler for the signal SIGSEGV (Signal #11) -* -* @return nothing -*/ -static void __vcui_register_sigsegv_handler() -{ - CALL_UI_DEBUG(".."); - - int i =0; - vcui_app_sigact.sa_flags = SA_NOCLDSTOP; - vcui_app_sigact.sa_handler = (void *)__vcui_sigsegv_handler; - sigemptyset(&vcui_app_sigact.sa_mask); - - - for (;i < VCUI_SIG_NUM; i++) - { - sigaction (vcui_app_sig_to_handle[i], &vcui_app_sigact, &(vcui_app_sigoldact[i])); - } - -} -#endif - -static int __vcui_launch_ciss(const char *number) -{ - bundle *kb; - - CALL_UI_DEBUG("number(%s)"); - kb = bundle_create(); - bundle_add(kb, "CISS_LAUNCHING_MODE", CISS_MODE_OPT); - bundle_add(kb, "CISS_REQ_STRING", number); - aul_launch_app(CISS_AUL_CMD, kb); - bundle_free(kb); - return VC_NO_ERROR; -} - -static int __vcui_app_create(void *data) -{ - CALL_UI_DEBUG("__vcui_app_create().."); - CALL_UI_KPI("__vcui_app_create start"); - vcui_app_call_data_t *ad = data; - - elm_theme_extension_add(NULL, CALL_THEME); - - CALL_UI_KPI("_vcui_app_win_create_main start"); - ad->win_main = (Evas_Object *)_vcui_app_win_create_main(ad, PACKAGE); - CALL_UI_KPI("_vcui_app_win_create_main done"); - if (ad->win_main == NULL) { - CALL_UI_DEBUG("ERROR"); - return VC_ERROR; - } - - UG_INIT_EFL(ad->win_main, UG_OPT_INDICATOR_ENABLE); - - __vcui_hide_main_ui_set_flag(); - - ad->evas = evas_object_evas_get(ad->win_main); - ad->scale_factor = elm_config_scale_get(); - - __vcui_cache_flush_set(ad->evas); - - ecore_init(); - ecore_x_init(NULL); - _vcui_app_win_key_grab(ad); - - _vcui_view_common_timer_text_init(); - - _vcui_app_win_set_noti_type(EINA_TRUE); - - /* add system event callback */ - appcore_set_event_callback(APPCORE_EVENT_LANG_CHANGE, __vcui_lang_changed_cb, ad); - appcore_set_event_callback(APPCORE_EVENT_LOW_MEMORY, __vcui_low_mem_cb, NULL); - appcore_set_event_callback(APPCORE_EVENT_LOW_BATTERY, __vcui_low_bat_cb, NULL); - -#ifdef SIGNAL_HANDLER - __vcui_register_sigsegv_handler(); - atexit(__vcui_exit_handler); -#endif - - CALL_UI_KPI("__vcui_app_create done"); - return VC_NO_ERROR; -} - -static int __vcui_app_pause(void *data) -{ - CALL_UI_DEBUG("__vcui_app_pause().."); - - vcui_app_call_data_t *ad = (vcui_app_call_data_t *) data; - return VC_NO_ERROR; -} - -static int __vcui_app_reset(bundle *kb, void *data) -{ - CALL_UI_DEBUG("__vcui_app_reset().."); - CALL_UI_KPI("__vcui_app_reset start"); - vcui_app_call_data_t *ad = (vcui_app_call_data_t *) data; - - const char *launch_type = NULL; - const char *mime_type = NULL; - const char *tmp = NULL; - const char *uri_bundle = NULL; - char *telnum = NULL; - -#ifdef _RESET_OPEN_APP_ - { - launch_type = bundle_get_val(kb, "__AUL_CMD__"); - if (launch_type != NULL) { - CALL_UI_DEBUG("launch type: [%s]", launch_type); - if (!strncmp(launch_type, "OPEN_APP", 8)) { - elm_win_raise(ad->win_main); - return; - } - } - } -#endif - - /* mime content based AUL */ - mime_type = bundle_get_val(kb, AUL_K_MIME_TYPE); - if (mime_type != NULL) { - CALL_UI_DEBUG("mime_type: [%s]", mime_type); - if (strncmp(mime_type, "phonenum.uri",12) == 0 || strncmp(mime_type, "tel.uri",7) == 0) { - tmp = bundle_get_val(kb, AUL_K_MIME_CONTENT); - if (tmp == NULL) { - CALL_UI_DEBUG("bundle val is NULL"); - elm_exit(); - return VC_NO_ERROR; - } - - if (strncmp(tmp, "tel:", 4) == 0) { - telnum = (char *)tmp + 4; - } - - CALL_UI_DEBUG("number: [%s]", telnum); - - vcui_call_type_t call_type; - vcui_call_mo_data_t call_data; - - memset(&call_data, 0, sizeof(call_data)); - call_type = VCUI_CALL_TYPE_MO; - - snprintf(call_data.call_number, sizeof(call_data.call_number), "%s", telnum); - - _vcui_engine_interface_process_mo_call(call_type, &call_data); - - return VC_NO_ERROR; - } else { - CALL_UI_DEBUG("wrong mime type!!"); - elm_exit(); - return VC_NO_ERROR; - } - } - - uri_bundle = (const char *)appsvc_get_uri(kb); - if (uri_bundle != NULL) { - CALL_UI_DEBUG("tmp: [%s]", uri_bundle); - if (strncmp(uri_bundle, "tel:", 4) == 0) { - telnum = (char *)uri_bundle + 4; - CALL_UI_DEBUG("number: [%s]", telnum); - - vcui_call_type_t call_type; - tmp = (char *)appsvc_get_data(kb, "calltype"); - - if (tmp) { - CALL_UI_DEBUG("calltype: [%s]", tmp); - if (!strncmp(tmp, "EMERGENCY", 9)) { - vcui_call_ecc_data_t call_data; - - memset(&call_data, 0, sizeof(call_data)); - call_type = VCUI_CALL_TYPE_ECC; - - snprintf(call_data.call_number, sizeof(call_data.call_number), "%s", telnum); - - _vcui_engine_interface_process_ecc_call(call_type, &call_data); - } else { - CALL_UI_DEBUG("wrong calltype!"); - elm_exit(); - return VC_ERROR; - } - } else { - vcui_call_mo_data_t call_data; - - memset(&call_data, 0, sizeof(call_data)); - - snprintf(call_data.call_number, sizeof(call_data.call_number), "%s", telnum); - - call_type = VCUI_CALL_TYPE_MO; - - tmp = (char *)appsvc_get_data(kb, "ctindex"); - if (tmp) { - CALL_UI_DEBUG("ctindex: [%s]", tmp); - call_data.ct_index = atoi(tmp); - } else { - CALL_UI_DEBUG("bundle val is NULL"); - call_data.ct_index = -1; - } - - if ((_vc_core_util_check_incall_ss_string(call_data.call_number) == EINA_TRUE) && (_vcui_doc_get_count() >= 1)) { - vcall_engine_process_incall_ss(call_data.call_number); - _vcui_view_auto_change(); - } else if (_vc_core_util_check_ss_string(call_data.call_number) == EINA_TRUE) { - __vcui_launch_ciss(call_data.call_number); - if (_vcui_doc_get_count() == 0) - elm_exit(); - return VC_NO_ERROR; - } else { - _vcui_engine_interface_process_mo_call(call_type, &call_data); - } - } - - return VC_NO_ERROR; - } else { - CALL_UI_DEBUG("wrong type!"); - elm_exit(); - return VC_NO_ERROR; - } - } - - /* AUL */ - launch_type = bundle_get_val(kb, "launch-type"); - if (launch_type != NULL) { - CALL_UI_DEBUG("launch type: [%s]", launch_type); - if (!strncmp(launch_type, "MO", 2)) { - - if (g_avoid_multi_setup == EINA_TRUE) { - CALL_UI_DEBUG("Avoid multi touch setup"); - return VC_NO_ERROR; - } - - ecore_timer_add(3.5, __vcui_avoid_multi_setup_timer_cb, ad); - g_avoid_multi_setup = EINA_TRUE; - - vcui_call_type_t call_type; - vcui_call_mo_data_t call_data; - - memset(&call_data, 0, sizeof(call_data)); - call_type = VCUI_CALL_TYPE_MO; - - tmp = bundle_get_val(kb, "number"); - if (tmp) { - CALL_UI_DEBUG("number: [%s]", tmp); - } else { - CALL_UI_DEBUG("bundle val is NULL"); - elm_exit(); - return VC_NO_ERROR; - } - snprintf(call_data.call_number, sizeof(call_data.call_number), "%s", tmp); - - tmp = bundle_get_val(kb, "ctindex"); - if (tmp) { - CALL_UI_DEBUG("ctindex: [%s]", tmp); - call_data.ct_index = atoi(tmp); - } else { - CALL_UI_DEBUG("bundle val is NULL"); - call_data.ct_index = -1; - } - - if ((_vc_core_util_check_incall_ss_string(call_data.call_number) == EINA_TRUE) && (_vcui_doc_get_count() >= 1)) { - vcall_engine_process_incall_ss(call_data.call_number); - _vcui_view_auto_change(); - } else if (_vc_core_util_check_ss_string(call_data.call_number) == EINA_TRUE) { - __vcui_launch_ciss(call_data.call_number); - if(_vcui_doc_get_count() == 0) - elm_exit(); - return VC_NO_ERROR; - } else { - _vcui_engine_interface_process_mo_call(call_type, &call_data); - } - } else if (!strncmp(launch_type, "MT", 2)) { - - vcui_call_type_t call_type; - vcui_call_mt_data_t call_data; - - memset(&call_data, 0, sizeof(call_data)); - call_type = VCUI_CALL_TYPE_MT; - - tmp = bundle_get_val(kb, "handle"); - if (tmp) { - CALL_UI_DEBUG("handle: [%s]", tmp); - call_data.call_handle = atoi(tmp); - } else { - CALL_UI_DEBUG("bundle val is NULL"); - elm_exit(); - return VC_NO_ERROR; - } - - tmp = bundle_get_val(kb, "calltype"); - if (tmp) { - CALL_UI_DEBUG("calltype: [%s]", tmp); - call_data.call_type = atoi(tmp); - } else { - CALL_UI_DEBUG("calltype is NULL but NOT mendatory"); - call_data.call_type = 0; - } - - tmp = bundle_get_val(kb, "cliindicator"); - if (tmp) { - CALL_UI_DEBUG("cliindicator: [%s]", tmp); - call_data.cli_presentation_indicator = atoi(tmp); - } else { - CALL_UI_DEBUG("cliindicator is NULL but NOT mendatory"); - call_data.cli_presentation_indicator = 0; - } - - tmp = bundle_get_val(kb, "number"); - if (tmp) { - CALL_UI_DEBUG("number: [%s]", tmp); - vcall_engine_util_strcpy(call_data.call_num, VC_PHONE_NUMBER_LENGTH_MAX, tmp); - } else { - CALL_UI_DEBUG("bundle val is NULL"); - /*return VC_NO_ERROR;*/ /*check clir mt call.*/ - } - - tmp = bundle_get_val(kb, "name_mode"); - if (tmp) { - CALL_UI_DEBUG("name_mode: [%s]", tmp); - call_data.calling_name_mode= atoi(tmp); - } else { - CALL_UI_DEBUG("name_mode is NULL but NOT mendatory"); - call_data.calling_name_mode = -1; - } - - tmp = bundle_get_val(kb, "name"); - if (tmp) { - CALL_UI_DEBUG("name: [%s]", tmp); - vcall_engine_util_strcpy(call_data.calling_name, VC_PHONE_NAME_LENGTH_MAX, tmp); - } else { - CALL_UI_DEBUG("bundle val is NULL but NOT mendatory"); - } - - tmp = bundle_get_val(kb, "rdnumber"); - if (tmp) { - CALL_UI_DEBUG("rdnumber: [%s]", tmp); - vcall_engine_util_strcpy(call_data.redirected_number, VC_PHONE_NUMBER_LENGTH_MAX, tmp); - } else { - CALL_UI_DEBUG("bundle val is NULL but NOT mendatory"); - } - - tmp = bundle_get_val(kb, "rdsubaddress"); - if (tmp) { - CALL_UI_DEBUG("rdnumber: [%s]", tmp); - vcall_engine_util_strcpy(call_data.redirected_sub_address, VC_PHONE_SUBADDRESS_LENGTH_MAX, tmp); - } else { - CALL_UI_DEBUG("bundle val is NULL but NOT mendatory"); - } - - tmp = bundle_get_val(kb, "clicause"); - if (tmp) { - CALL_UI_DEBUG("clicause: [%s]", tmp); - call_data.cli_cause = atoi(tmp); - } else { - CALL_UI_DEBUG("bundle val is NULL"); - elm_exit(); - return VC_NO_ERROR; - } - - tmp = bundle_get_val(kb, "fwded"); - if (tmp) { - CALL_UI_DEBUG("fwded: [%s]", tmp); - call_data.bfwded = atoi(tmp); - } else { - CALL_UI_DEBUG("bundle val is NULL"); - elm_exit(); - return VC_NO_ERROR; - } - - tmp = bundle_get_val(kb, "activeline"); - if (tmp) { - CALL_UI_DEBUG("activeline: [%s]", tmp); - call_data.active_line = atoi(tmp); - } else { - CALL_UI_DEBUG("bundle val is NULL"); - elm_exit(); - return VC_NO_ERROR; - } - _vcui_engine_interface_process_mt_call(call_type, &call_data); - } else if (!strncmp(launch_type, "EMERGENCY", 9)) { - - vcui_call_type_t call_type; - vcui_call_ecc_data_t call_data; - - memset(&call_data, 0, sizeof(call_data)); - call_type = VCUI_CALL_TYPE_ECC; - - tmp = bundle_get_val(kb, "number"); - if (tmp) { - CALL_UI_DEBUG("number: [%s]", tmp); - } else { - CALL_UI_DEBUG("bundle val is NULL"); - } - snprintf(call_data.call_number, sizeof(call_data.call_number), "%s", tmp); - - _vcui_engine_interface_process_ecc_call(call_type, &call_data); - - } else if (!strncmp(launch_type, "SATSETUPCALL", 12)) { - vcui_call_type_t call_type; - vcui_call_sat_data_t sat_setup_call_info; - - memset(&sat_setup_call_info, 0, sizeof(sat_setup_call_info)); - call_type = VCUI_CALL_TYPE_SAT; - - tmp = bundle_get_val(kb, "cmd_id"); - if (tmp) { - CALL_UI_DEBUG("cmd_id: [%s]", tmp); - sat_setup_call_info.command_id = atoi(tmp); - } else { - CALL_UI_DEBUG("bundle val is NULL"); - elm_exit(); - return VC_NO_ERROR; - } - - tmp = bundle_get_val(kb, "cmd_qual"); - if (tmp) { - CALL_UI_DEBUG("cmd_qual: [%s]", tmp); - sat_setup_call_info.command_qualifier = atoi(tmp); - } else { - CALL_UI_DEBUG("bundle val is NULL"); - elm_exit(); - return VC_NO_ERROR; - } - - tmp = bundle_get_val(kb, "disp_text"); - if (tmp) { - CALL_UI_DEBUG("disp_text: [%s]", tmp); - vcall_engine_util_strcpy(sat_setup_call_info.disp_text, sizeof(sat_setup_call_info.disp_text), tmp); - } else { - CALL_UI_DEBUG("bundle val is NULL"); - /*elm_exit(); - return VC_NO_ERROR;*/ - } - - tmp = bundle_get_val(kb, "call_num"); - if (tmp) { - CALL_UI_DEBUG("call_num: [%s]", tmp); - vcall_engine_util_strcpy(sat_setup_call_info.call_num, sizeof(sat_setup_call_info.call_num), tmp); - } else { - CALL_UI_DEBUG("bundle val is NULL"); - elm_exit(); - return VC_NO_ERROR; - } - - tmp = bundle_get_val(kb, "dur"); - if (tmp) { - CALL_UI_DEBUG("dur: [%s]", tmp); - sat_setup_call_info.duration = atoi(tmp); - } else { - CALL_UI_DEBUG("bundle val is NULL"); - elm_exit(); - return VC_NO_ERROR; - } - _vcui_engine_interface_process_sat_call(call_type, &sat_setup_call_info); - } else if (!strncmp(launch_type, "ECCTEST", 7)) { - - vcui_call_type_t call_type; - vcui_call_ecc_data_t call_data; - - memset(&call_data, 0, sizeof(call_data)); - call_type = VCUI_CALL_TYPE_ECC_TEST; - - _vcui_engine_interface_process_ecc_call(call_type, &call_data); - - } else if (!strncmp(launch_type, "DOWNLOADCALL", 12)) { - vcui_call_type_t call_type; - vcui_call_mo_data_t call_data; - - memset(&call_data, 0, sizeof(call_data)); - call_type = VCUI_CALL_TYPE_DOWNLOAD_CALL; - - tmp = bundle_get_val(kb, "number"); - if (tmp) { - CALL_UI_DEBUG("number: [%s]", tmp); - } else { - CALL_UI_DEBUG("bundle val is NULL"); - } - - if(tmp != NULL) { - snprintf(call_data.call_number, sizeof(call_data.call_number), "%s", tmp); - } else { - snprintf(call_data.call_number, sizeof(call_data.call_number), "%s", "116"); - } - - vcall_engine_util_strcpy(call_data.call_number, sizeof(call_data.call_number), tmp); - - _vcui_engine_interface_process_mo_call(call_type, &call_data); - } else { /*if ear jack is needed, add it*/ - CALL_UI_DEBUG("unknown launch type"); - } - CALL_UI_KPI("__vcui_app_reset done"); - return VC_NO_ERROR; - } - - CALL_UI_DEBUG("bundle data is wrong!!"); - elm_exit(); - return VC_NO_ERROR; -} - -static int __vcui_app_resume(void *data) -{ - CALL_UI_DEBUG("__vcui_app_resume().."); - - vcui_app_call_data_t *ad = (vcui_app_call_data_t *) data; - return VC_NO_ERROR; -} - -static int __vcui_app_terminate(void *data) -{ - CALL_UI_DEBUG("__vcui_app_terminate().."); - - if (_vcui_doc_get_count() >= 1) { - CALL_UI_DEBUG("WARNING!! call exists. abnormal terminate!!"); - _vcui_engine_end_all_call(); - vcall_engine_set_to_default(); - } - __vcui_fade_out_cb_routine(); - return VC_NO_ERROR; -} - -static void __vcui_cache_flush_set(Evas *e) -{ -#ifdef _CACHE_FLUSH_ - evas_image_cache_set(e, 4096 * 1024); - evas_font_cache_set(e, 512 * 1024); - - edje_file_cache_set(0); - edje_collection_cache_set(0); -#endif -} - -static void __vcui_init_view_register_function(vcui_app_call_data_t *app_data, vcui_app_call_view_id_t view_id, voice_call_view_data_t *(*view_new) ()) -{ - app_data->func_new[view_id] = view_new; -} - -void _vcui_response_volume(int vol_alert_type, int vol_level) -{ - vcui_app_call_data_t *ad = _vcui_get_app_data(); - - if (vol_alert_type == VCUI_VOL_VOICE) { - ad->voice_vol_val = vol_level; - _vcui_set_volume(ad->vol_key_status); - } else if (vol_alert_type == VCUI_VOL_HEADSET) { - ad->bt_vol_val = vol_level; - _vcui_set_volume(ad->vol_key_status); - } else { - CALL_UI_DEBUG("ERROR"); - } -} - -void _vcui_set_volume(int key_status) -{ - vcui_app_call_data_t *ad = _vcui_get_app_data(); - - if (_vcui_doc_get_count() == 0) { - CALL_UI_DEBUG("ignore it"); - return; - } - - if ((ad->view_st[ad->view_top]->type == VIEW_INCOMING_VIEW || ad->view_st[ad->view_top]->type == VIEW_INCOMING_LOCK_VIEW)) { - int err_code = 0; - int settings_sound_status = EINA_FALSE; - - err_code = vconf_get_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, &settings_sound_status); - if (settings_sound_status == EINA_FALSE) { - CALL_UI_DEBUG("ringtone vol is ignored in sound off status."); - return; - } - - if (ad->bmute_ringtone == EINA_TRUE) { - CALL_UI_DEBUG("during mute ringtone, vol will not changed"); - return; - } - - if (ad->ringtone_val < RINGTONE_MIN) { - int vol_level = _vcui_engine_get_volume_level(VCUI_VOL_RING); - if ((vol_level < RINGTONE_MIN) || (vol_level > RINGTONE_MAX)) { - CALL_UI_DEBUG("ERROR : ringtone vol:[%d]", vol_level); - return; - } - ad->ringtone_val = vol_level; - } - - CALL_UI_DEBUG("RINGTONE : Set Volume"); - if (key_status == VAL_VOL_DOWN && ad->ringtone_val > RINGTONE_MIN) { - ad->ringtone_val--; - _vcui_engine_set_volume_level(VCUI_VOL_RING, ad->ringtone_val); - } else if (key_status == VAL_VOL_UP && ad->ringtone_val < RINGTONE_MAX) { - ad->ringtone_val++; - _vcui_engine_set_volume_level(VCUI_VOL_RING, ad->ringtone_val); - } - _vcui_view_popup_vol_ringtone(ad->ringtone_val); - } else if (ad->headset_status == EINA_TRUE) { - if (ad->bt_vol_val < BT_VOL_MIN) { - CALL_UI_DEBUG("BT VOL : Get Volume"); - ad->vol_key_status = key_status; - _vcui_engine_get_volume_level(VCUI_VOL_HEADSET); - return; - } - - CALL_UI_DEBUG("BT VOL : Set Volume"); - if (key_status == VAL_VOL_DOWN && ad->bt_vol_val > BT_VOL_MIN) { /*Key Down*/ - ad->bt_vol_val--; - _vcui_engine_set_volume_level(VCUI_VOL_HEADSET, ad->bt_vol_val); - } else if (key_status == VAL_VOL_UP && ad->bt_vol_val < BT_VOL_MAX) { /*Key Up*/ - ad->bt_vol_val++; - _vcui_engine_set_volume_level(VCUI_VOL_HEADSET, ad->bt_vol_val); - } - _vcui_view_popup_vol_bt(ad->bt_vol_val); - } else { - CALL_UI_DEBUG("TAPI VOL : Get Volume"); - ad->vol_key_status = key_status; - ad->voice_vol_val = _vcui_engine_get_volume_level(VCUI_VOL_VOICE); - - CALL_UI_DEBUG("TAPI VOL : Set Volume"); - if (key_status == VAL_VOL_DOWN && ad->voice_vol_val > VOICE_VOL_MIN) { /*Key Down*/ - ad->voice_vol_val--; - _vcui_engine_set_volume_level(VCUI_VOL_VOICE, ad->voice_vol_val); - } else if (key_status == VAL_VOL_UP && ad->voice_vol_val < VOICE_VOL_MAX) { /*Key Up*/ - ad->voice_vol_val++; - _vcui_engine_set_volume_level(VCUI_VOL_VOICE, ad->voice_vol_val); - } - _vcui_view_popup_vol_voice(ad->voice_vol_val); - } - -} - -static void __vcui_fade_out_cb_routine() -{ - CALL_UI_DEBUG(".."); - vcui_app_call_data_t *ad = _vcui_get_app_data(); - - if (ad->child_is == 1) { - /*system("killall dialer");*/ - } - if (ad->disp && ad->win) { - utilx_ungrab_key(ad->disp, ad->win, KEY_VOLUMEUP); - utilx_ungrab_key(ad->disp, ad->win, KEY_VOLUMEDOWN); - } - _vcui_doc_remove_all_data(); - _voicecall_dvc_proximity_sensor_deinit(); - _voicecall_dvc_control_lcd_state(VC_LCD_ON_UNLOCK); - _vcui_view_common_timer_destroy(); -} - -static int __vcui_lang_changed_cb(void *data) -{ - CALL_UI_DEBUG(".."); - - _vcui_view_auto_change(); - - return VC_NO_ERROR; -} - -static int __vcui_low_mem_cb(void *data) -{ - CALL_UI_DEBUG(".."); - - return VC_NO_ERROR; -} - -static int __vcui_low_bat_cb(void *data) -{ - CALL_UI_DEBUG(".."); - - return VC_NO_ERROR; -} - -static void __vcui_init(vcui_app_call_data_t *ad) -{ - CALL_UI_KPI("g_type_init start"); - g_type_init(); - CALL_UI_KPI("g_type_init done"); - _vcui_doc_recent_init(); - _vcui_doc_caller_list_init(); - _vcui_view_common_init(); - _vcui_engine_init(ad); - - CALL_UI_KPI("__vcui_init_view_register_function for all views start"); - __vcui_init_view_register_function(ad, VIEW_DIALLING_VIEW, _vcui_view_dialing_new); - __vcui_init_view_register_function(ad, VIEW_INCOMING_VIEW, _vcui_view_incoming_new); - __vcui_init_view_register_function(ad, VIEW_INCOMING_LOCK_VIEW, _vcui_view_incoming_lock_new); - __vcui_init_view_register_function(ad, VIEW_INCALL_ONECALL_VIEW, _vc_ui_view_single_call_new); - __vcui_init_view_register_function(ad, VIEW_INCALL_MULTICALL_SPLIT_VIEW, _vcui_view_multi_call_split_new); - __vcui_init_view_register_function(ad, VIEW_INCALL_MULTICALL_CONF_VIEW, _vcui_view_multi_call_conf_new); - __vcui_init_view_register_function(ad, VIEW_INCALL_MULTICALL_LIST_VIEW, _vcui_view_multi_call_list_new); - __vcui_init_view_register_function(ad, VIEW_INCALL_KEYPAD_VIEW, _vcui_view_keypad_new); - __vcui_init_view_register_function(ad, VIEW_ENDCALL_VIEW, _vcui_view_callend_new); - CALL_UI_KPI("__vcui_init_view_register_function for all views done"); - - ad->view_top = -1; - ad->view_before_top = -1; - ad->view_before_reject_view = -1; - ad->headset_status = (int)_vcui_is_headset_conected(); - ad->speaker_status = EINA_FALSE; - ad->mute_status = EINA_FALSE; - ad->child_is = -1; - ad->show_flag = WIN_HIDE; - ad->brecord_voice = 0; - ad->ringtone_val = -1; - ad->voice_vol_val = -1; - ad->bt_vol_val = -1; - ad->call_end_type = CALL_END_TYPE_NONE; -} - -char *_vcui_get_endcause_string(int end_cause, char *data) -{ - char *string_id = NULL; - CALL_UI_DEBUG("end type : %d", end_cause); - switch (end_cause) { - case VC_ENGINE_ENDCAUSE_USER_UNAVAILABLE: - string_id = _("IDS_CALL_BODY_CALLED_PARTY_UNAVAILABLE"); - break; - case VC_ENGINE_ENDCAUSE_UNASSIGNED_NUMBER: - string_id = _("IDS_CALL_BODY_NUMBER_DOES_NOT_EXIST"); - break; - case VC_ENGINE_ENDCAUSE_USER_DOESNOT_RESPOND: - string_id = _("IDS_CALL_BODY_NO_ANSWER"); - break; - case VC_ENGINE_ENDCAUSE_CALL_DISCONNECTED: - string_id = _("IDS_CALL_BODY_DISCONNECTED"); - break; - case VC_ENGINE_ENDCAUSE_CALL_ENDED: - string_id = _("IDS_CALL_BODY_CALLENDED"); - break; - case VC_ENGINE_ENDCAUSE_CALL_SERVICE_NOT_ALLOWED: - string_id = _("IDS_CALL_POP_SERVICE_NOT_ALLOWED"); - break; - case VC_ENGINE_ENDCAUSE_CALL_BARRED: - string_id = _("IDS_CALL_POP_CALL_BARRED"); - break; - case VC_ENGINE_ENDCAUSE_NO_SERVICE: - string_id = _("IDS_CALL_POP_NOSERVICE"); - break; - case VC_ENGINE_ENDCAUSE_NW_BUSY: - string_id = _("IDS_CALL_POP_NETWORKBUSY"); - break; - case VC_ENGINE_ENDCAUSE_NW_FAILED: - string_id = _("IDS_CALL_POP_NETWORK_UNAVAILABLE"); - break; - case VC_ENGINE_ENDCAUSE_SERVICE_TEMP_UNAVAILABLE: - string_id = _("IDS_CALL_BODY_SERVICE_UNAVAILABLE"); - break; - case VC_ENGINE_ENDCAUSE_NO_ANSWER: - string_id = _("IDS_CALL_BODY_NO_ANSWER"); - break; - case VC_ENGINE_ENDCAUSE_NO_CREDIT: - string_id = _("IDS_CALL_POP_NOCREDITLEFT"); - break; - case VC_ENGINE_ENDCAUSE_REJECTED: - string_id = _("IDS_CALL_BODY_CALL_REJECTED"); - break; - case VC_ENGINE_ENDCAUSE_USER_BUSY: - string_id = _("IDS_CALL_POP_USER_BUSY"); - break; - case VC_ENGINE_ENDCAUSE_WRONG_GROUP: - string_id = _("IDS_CALL_POP_WRONG_GROUP"); - break; - case VC_ENGINE_ENDCAUSE_INVALID_NUMBER_FORMAT: - string_id = _("IDS_CALL_POP_CAUSE_WRONG_NUMBER"); - break; - case VC_ENGINE_ENDCAUSE_CALL_NOT_ALLOWED: - string_id = _("IDS_CALL_POP_CALLNOTCALLOWED"); - break; - case VC_ENGINE_ENDCAUSE_TAPI_ERROR: - string_id = _("IDS_CALL_POP_AEESYS_SYSTEMFAILUREERROR"); - break; - case VC_ENGINE_ENDCAUSE_CALL_FAILED: - string_id = _("IDS_CALL_POP_CALLFAILED"); - break; - case VC_ENGINE_ENDCAUSE_NUMBER_CHANGED: - string_id = _("IDS_CALL_BODY_NUMBER_CHANGED"); - break; - case VC_ENGINE_ENDCAUSE_IMEI_REJECTED: - string_id = _("IDS_CALL_POP_VERIFY_SIM_OR_INSERT_VALID_SIM"); - break; - case VC_ENGINE_ENDCAUSE_NO_USER_RESPONDING: /**< User not responding */ - case VC_ENGINE_ENDCAUSE_USER_ALERTING_NO_ANSWER: /**< User Alerting No Answer */ - default: - string_id = _("IDS_CALL_BODY_CALLENDED"); - break; - } - vcall_engine_util_strcpy(data, VC_DATA_LENGTH_MAX, string_id); - return data; -} - -void _vcui_cache_flush() -{ -#ifdef _CACHE_FLUSH_ - vcui_app_call_data_t *ad = _vcui_get_app_data(); - - evas_font_cache_flush(ad->evas); - evas_image_cache_flush(ad->evas); - - edje_file_cache_flush(); - edje_collection_cache_flush(); - - evas_render_idle_flush(ad->evas); -#endif -} - -int _vcui_is_idle_lock() -{ - int lock_state; - int ret = vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &(lock_state)); - if (ret == -1) { - CALL_UI_DEBUG("Cannot get vconf key"); - } - - if (lock_state == VCONFKEY_IDLE_LOCK) - return CALL_LOCK; - else - return CALL_UNLOCK; -} - -unsigned long _vcui_get_diff_now(time_t start_time) -{ - time_t curr_time; - unsigned long call_duration_in_sec = 0; - curr_time = time(&curr_time); - call_duration_in_sec = curr_time - start_time; - return call_duration_in_sec; -} - -gboolean _vcui_is_gcf_mode(void) -{ - gboolean bgcf_status = EINA_FALSE; - int ret = -1; - - ret = vconf_get_int(VCONFKEY_ADMIN_GCF_TEST, &bgcf_status); - if (0 == ret) { - CALL_UI_DEBUG("bgcf_status = [%d]\n", bgcf_status); - } else { - CALL_UI_DEBUG("vconf_get_int failed..[%d]\n", ret); - } - - return bgcf_status; -} - -gboolean _vcui_is_headset_conected(void) -{ - int bt_connected = VCONFKEY_BT_DEVICE_NONE; - Eina_Bool ret = EINA_FALSE; - - ret = vconf_get_int(VCONFKEY_BT_DEVICE, &bt_connected); - if (0 == ret) { - CALL_UI_DEBUG("bt_connected = [0x%x] ", bt_connected); - } else { - CALL_UI_DEBUG("vconf_get_int failed..[%d]", ret); - } - - return (VCONFKEY_BT_DEVICE_HEADSET_CONNECTED == (bt_connected & VCONFKEY_BT_DEVICE_HEADSET_CONNECTED)) ? EINA_TRUE : EINA_FALSE; -} - -gboolean _vcui_is_headset_switch_on(void) -{ - int bt_status = VCONFKEY_BT_STATUS_OFF; - Eina_Bool ret = EINA_FALSE; - - ret = vconf_get_int(VCONFKEY_BT_STATUS, &bt_status); - if (0 == ret) { - CALL_UI_DEBUG("bt_status = [0x%x] ", bt_status); - } else { - CALL_UI_DEBUG("vconf_get_int failed..[%d]", ret); - } - - return (VCONFKEY_BT_STATUS_ON == (bt_status & VCONFKEY_BT_STATUS_ON)) ? EINA_TRUE : EINA_FALSE; -} - -gboolean _vcui_is_answering_mode_on(void) -{ - gboolean bAnswerMode = EINA_FALSE; - Eina_Bool ret = EINA_FALSE; - - ret = vconf_get_bool(VCONFKEY_CISSAPPL_ANSWERING_KEY_BOOL, &bAnswerMode); - if (0 == ret) { - CALL_UI_DEBUG("bAnswerMode = [%d] \n", bAnswerMode); - } else { - CALL_UI_DEBUG("vconf_get_int failed..[%d]\n", ret); - } - - return bAnswerMode; -} - -gboolean _vcui_is_powerkey_mode_on(void) -{ - gboolean bPowerkeyMode = EINA_FALSE; - Eina_Bool ret = EINA_FALSE; - - ret = vconf_get_bool(VCONFKEY_CISSAPPL_POWER_KEY_ENDS_CALL_BOOL, &bPowerkeyMode); - if (0 == ret) { - CALL_UI_DEBUG("bPowerkeyMode = [%d] \n", bPowerkeyMode); - } else { - CALL_UI_DEBUG("vconf_get_int failed..[%d]\n", ret); - } - - return bPowerkeyMode; -} - -gboolean _vcui_is_phonelock_status() -{ - gboolean b_phonelock = EINA_FALSE; - if (!vconf_get_bool(VCONFKEY_SETAPPL_STATE_POWER_ON_LOCK_BOOL, &b_phonelock)) { - CALL_UI_DEBUG("b_phonelock:[%d]", b_phonelock); - return b_phonelock; - } else { - CALL_UI_DEBUG("get VCONFKEY_SETAPPL_STATE_POWER_ON_LOCK_BOOL failed.."); - return EINA_FALSE; - } -} - -void _vcui_add_calllog(int type, call_data_t *data, int boutgoing_end) -{ - CALL_UI_DEBUG("type = [0x%x] ", type); - CTSvalue *plog; - time_t current_time; - - if (data == NULL) - return; - contacts_svc_connect(); - - current_time = time(NULL); - - plog = contacts_svc_value_new(CTS_VALUE_PHONELOG); - contacts_svc_value_set_str(plog, CTS_PLOG_VAL_NUMBER_STR, data->call_num); - contacts_svc_value_set_int(plog, CTS_PLOG_VAL_LOG_TIME_INT, (int)current_time); - contacts_svc_value_set_int(plog, CTS_PLOG_VAL_LOG_TYPE_INT, type); - contacts_svc_value_set_int(plog, CTS_PLOG_VAL_RELATED_ID_INT, data->contact_id); - - if ((type == CTS_PLOG_TYPE_VOICE_INCOMMING_UNSEEN) || (type == CTS_PLOG_TYPE_VOICE_REJECT) || - (type == CTS_PLOG_TYPE_VOICE_BLOCKED) || (boutgoing_end == EINA_TRUE)) { - contacts_svc_value_set_int(plog, CTS_PLOG_VAL_DURATION_INT, 0); - } else { - contacts_svc_value_set_int(plog, CTS_PLOG_VAL_DURATION_INT, _vcui_get_diff_now(data->start_time)); - } - contacts_svc_insert_phonelog(plog); - - contacts_svc_value_free(plog); - contacts_svc_disconnect(); - - /* vconf set & quickpanel noti (for missed call) */ - if (type == CTS_PLOG_TYPE_VOICE_INCOMMING_UNSEEN) { - char szname[255] = { 0, }; - int ret; - notification_h noti = NULL; - notification_error_e noti_err = NOTIFICATION_ERROR_NONE; - - if (strlen((char *)data->call_display) == 0) { - snprintf(szname, sizeof(szname), "%s", data->call_num); - } else { - snprintf(szname, sizeof(szname), "%s", data->call_display); - } - CALL_UI_DEBUG("szname:[%s]", szname); - - noti = notification_new(NOTIFICATION_TYPE_NOTI, __VCUI_NOTIFICATION_CALL_GROUP_ID, NOTIFICATION_PRIV_ID_NONE); - if(noti == NULL) { - CALL_UI_DEBUG("Fail to notification_new\n"); - return; - } - - noti_err = notification_set_application(noti, DIALER_PKG); - if(noti_err != NOTIFICATION_ERROR_NONE) { - CALL_UI_DEBUG("Fail to notification_set_application : %d\n", noti_err); - } - - bundle *args = bundle_create(); - - bundle_add(args, "logs", "missed_call"); - noti_err = notification_set_args(noti, args, NULL); - if(noti_err != NOTIFICATION_ERROR_NONE) { - CALL_UI_DEBUG("Fail to notification_set_args : %d\n", noti_err); - } - bundle_free(args); - - noti_err = notification_set_time(noti, current_time); - if(noti_err != NOTIFICATION_ERROR_NONE) { - CALL_UI_DEBUG("Fail to notification_set_icon : %d\n", noti_err); - } - - noti_err = notification_set_text(noti, NOTIFICATION_TEXT_TYPE_TITLE, szname, szname, NOTIFICATION_VARIABLE_TYPE_NONE); - if(noti_err != NOTIFICATION_ERROR_NONE) { - CALL_UI_DEBUG("Fail to notification_set_title : %d\n", noti_err); - } - - CALL_UI_DEBUG("data->call_file_path(%s)",data->call_file_path); - if (strlen(data->call_file_path) > 0) { - noti_err = notification_set_image(noti, NOTIFICATION_IMAGE_TYPE_THUMBNAIL, data->call_file_path); - if(noti_err != NOTIFICATION_ERROR_NONE) { - CALL_UI_DEBUG("Fail to notification_set_title : %d\n", noti_err); - } - } - - noti_err = notification_insert(noti, NULL); - if(noti_err != NOTIFICATION_ERROR_NONE) { - CALL_UI_DEBUG("Fail to notification_set_text_domain\n"); - } - - noti_err = notification_free(noti); - if(noti_err != NOTIFICATION_ERROR_NONE) { - CALL_UI_DEBUG("Fail to notification_set_text_domain\n"); - } - } -} - -void _vcui_raise_main_win() -{ - CALL_UI_DEBUG(".."); - - vcui_app_call_data_t *ad = _vcui_get_app_data(); - if (ad == NULL) { - CALL_UI_DEBUG("App data is NULL"); - return; - } - if (ad->win_main == NULL) { - CALL_UI_DEBUG("Main Window is NULL"); - return; - } - - elm_win_activate(ad->win_main); - _vcui_show_main_ui_set_flag(); - /*view_refresh_now();*/ - -} - -int _vcui_check_valid_eo(Evas_Object *eo, char *v_name) -{ - /*CALL_UI_DEBUG("eo addr:[%p], v_name:[%s]", eo, v_name);*/ - const char *obj_name = evas_object_name_get(eo); - if (obj_name == NULL) { - CALL_UI_DEBUG("obj_name is NULL!!. eo addr:[%p], v_name:[%s]", eo, v_name); - return VC_ERROR; - } - if (strncmp(obj_name, v_name, strlen(obj_name)) == 0) { - return VC_NO_ERROR; - } else { - CALL_UI_DEBUG("different name !! "); - return VC_ERROR; - } -} - -vcui_app_call_data_t *_vcui_get_app_data() -{ - return &global_ad; -} - -void _vcui_show_main_ui_set_flag() -{ - vcui_app_call_data_t *ad = _vcui_get_app_data(); - if (ad->show_flag == WIN_HIDE) { - CALL_UI_DEBUG("show_flag : WIN_SHOW"); - evas_object_show(ad->win_main); - ad->show_flag = WIN_SHOW; - } -} - -void __vcui_hide_main_ui_set_flag() -{ - vcui_app_call_data_t *ad = _vcui_get_app_data(); - CALL_UI_DEBUG("show_flag: WIN_HIDE"); - evas_object_hide(ad->win_main); - ad->show_flag = WIN_HIDE; -} - -Evas_Object *_vcui_load_edj(Evas_Object *parent, const char *file, const char *group) -{ - Evas_Object *eo; - int r; - - eo = elm_layout_add(parent); - if (eo) { - r = elm_layout_file_set(eo, file, group); - if (!r) { - evas_object_del(eo); - CALL_UI_DEBUG("ERROR!!"); - return NULL; - } - - evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - } - - return eo; -} - -int main(int argc, char *argv[]) -{ - CALL_UI_DEBUG("voice call ui main().."); - - struct appcore_ops ops = { - .create = __vcui_app_create, - .terminate = __vcui_app_terminate, - .pause = __vcui_app_pause, - .resume = __vcui_app_resume, - .reset = __vcui_app_reset, - }; - - memset(&global_ad, 0, sizeof(vcui_app_call_data_t)); - - ops.data = &global_ad; - - CALL_UI_KPI("__vcui_init start"); - __vcui_init(&global_ad); - CALL_UI_KPI("__vcui_init done"); - - appcore_set_i18n(PACKAGE, LOCALEDIR); - - return appcore_efl_main(PACKAGE, &argc, &argv, &ops); -} - -static Eina_Bool __vcui_avoid_multi_setup_timer_cb(void *data) -{ - CALL_UI_DEBUG(".."); - - g_avoid_multi_setup = EINA_FALSE; - - return ECORE_CALLBACK_CANCEL; -} - diff --git a/ui/vcui-document.c b/ui/vcui-document.c deleted file mode 100755 index b518a52..0000000 --- a/ui/vcui-document.c +++ /dev/null @@ -1,501 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.tizenopensource.org/license - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -#include "vcui-application.h" -#include "vcui-document.h" - -static call_data_t *recent_mo; -static call_data_t *recent_mt; -static call_data_t *recent_mt_mo; -static Eina_List *caller_list; - -void _vcui_doc_recent_init() -{ - recent_mo = NULL; - recent_mt = NULL; - recent_mt_mo = NULL; -} - -call_data_t *_vcui_doc_get_recent_mo() -{ - return recent_mo; -} - -call_data_t *_vcui_doc_get_recent_mt() -{ - return recent_mt; -} - -call_data_t *_vcui_doc_get_all_recent() -{ - CALL_UI_DEBUG(".."); - if (recent_mt_mo == NULL) { - CALL_UI_DEBUG("recent is NULL"); - if (recent_mo != NULL) { - recent_mt_mo = recent_mo; - CALL_UI_DEBUG("recent is mo"); - } else if (recent_mt != NULL) { - recent_mt_mo = recent_mt; - CALL_UI_DEBUG("recent is mt"); - } - } - return recent_mt_mo; -} - -void _vcui_doc_set_all_recent(call_data_t *in) -{ - CALL_UI_DEBUG(".."); - if (in == NULL) { - CALL_UI_DEBUG("set recent_mt_mo to null"); - } - recent_mt_mo = in; -} - -void _vcui_doc_set_mo_recent(call_data_t *in) -{ - CALL_UI_DEBUG(".."); - if (in == NULL) { - CALL_UI_DEBUG("set recent_mo to null"); - } - if (recent_mo != NULL && recent_mo->call_handle == NO_HANDLE) { - CALL_UI_DEBUG("Set_recent 1"); - free(recent_mo); - recent_mo = NULL; - } - _vcui_doc_set_all_recent(in); - recent_mo = in; -} - -void _vcui_doc_set_mt_recent(call_data_t *in) -{ - CALL_UI_DEBUG(".."); - if (in == NULL) { - CALL_UI_DEBUG("set recent_mt to null"); - } - _vcui_doc_set_all_recent(in); - recent_mt = in; -} - -void _vcui_doc_caller_list_init() -{ - caller_list = NULL; -} - -int _vcui_doc_is_call_data(call_data_t *in) -{ - if (in == NULL) - return EINA_FALSE; - Eina_List *l; - call_data_t *cd; - EINA_LIST_FOREACH(caller_list, l, cd) { - if (cd == in) { - return EINA_TRUE; - } - } - - return EINA_FALSE; -} - -void _vcui_doc_add_call_data(call_data_t *in) -{ - if (in == NULL) - return; - Eina_List *l; - call_data_t *cd; - EINA_LIST_FOREACH(caller_list, l, cd) { - if (cd == in) { - return; - } - } - - caller_list = eina_list_append(caller_list, (void *)in); -} - -void _vcui_doc_update_call_data(call_data_t *in) -{ - if (in == NULL) - return; - Eina_List *l; - call_data_t *cd; - EINA_LIST_FOREACH(caller_list, l, cd) { - if (cd == in) { - *cd = *in; - return; - } - } -} - -void _vcui_doc_remove_all_data() -{ - Eina_List *l; - call_data_t *cd; - EINA_LIST_FOREACH(caller_list, l, cd) { - if (cd != NULL) { - free(cd); - cd = NULL; - } - } - eina_list_free(caller_list); - caller_list = NULL; -} - -call_data_t *_vcui_doc_remove_call_data_only_list(call_data_t *in) -{ - if (in == NULL) { - CALL_UI_DEBUG("Call data is Null"); - return NULL; - } - Eina_List *l; - call_data_t *cd; - EINA_LIST_FOREACH(caller_list, l, cd) { - if (cd == in) { - caller_list = eina_list_remove(caller_list, in); - return in; - } - } - return NULL; -} - -void _vcui_doc_remove_call_data(call_data_t *in) -{ - if (in == NULL) { - CALL_UI_DEBUG("Call data is Null"); - return; - } - Eina_List *l; - call_data_t *cd; - EINA_LIST_FOREACH(caller_list, l, cd) { - if (cd == in) { - if (in == _vcui_doc_get_recent_mo()) - _vcui_doc_set_mo_recent(NULL); - if (in == _vcui_doc_get_recent_mt()) - _vcui_doc_set_mt_recent(NULL); - - caller_list = eina_list_remove(caller_list, in); - free(in); - in = NULL; - CALL_UI_DEBUG("Call data removed"); - break; - } - - } - - if (_vcui_doc_get_count() == 0) { - eina_list_free(caller_list); - caller_list = NULL; - } - -} - -call_data_t *_vcui_doc_get_call_handle(int handle) -{ - Eina_List *l; - call_data_t *cd; - EINA_LIST_FOREACH(caller_list, l, cd) { - if (cd != NULL) { - if (cd->call_handle == handle) { - return cd; - } - } - } - return NULL; -} - -call_data_t *_vcui_doc_get_first_unhold() -{ - Eina_List *l; - call_data_t *cd; - EINA_LIST_FOREACH(caller_list, l, cd) { - if (cd != NULL) { - if (cd->caller_status == CALL_UNHOLD) { - return cd; - } - } - } - return NULL; -} - -call_data_t *_vcui_doc_get_first_hold() -{ - Eina_List *l; - call_data_t *cd; - EINA_LIST_FOREACH(caller_list, l, cd) { - if (cd != NULL) { - if (cd->caller_status == CALL_HOLD) { - return cd; - } - } - } - return NULL; -} - -call_data_t *_vcui_doc_get_last_status(int call_status) -{ - - Eina_List *l; - call_data_t *fast_cd = NULL; - call_data_t *cd; - int i = 0; - EINA_LIST_FOREACH(caller_list, l, cd) { - if (cd != NULL) { - if (cd->caller_status == call_status) { - if (i == 0) { - fast_cd = cd; - i++; - continue; - } else { - if (fast_cd->start_time > cd->start_time) { - fast_cd = cd; - } - } - i++; - } - } - } - return fast_cd; -} - -call_data_t *_vcui_doc_get_last_type_mo() -{ - - Eina_List *l; - call_data_t *last_cd = NULL; - call_data_t *cd; - int i = 0; - EINA_LIST_FOREACH(caller_list, l, cd) { - if (cd != NULL) { - if (cd->mo_mt_status == CALL_OUTGOING) { - if (i == 0) { - last_cd = cd; - i++; - continue; - } else { - if (last_cd->start_time < cd->start_time) { - last_cd = cd; - } - } - i++; - } - } - } - return last_cd; -} - -call_data_t *_vcui_doc_get_first() -{ - Eina_List *l; - call_data_t *cd; - EINA_LIST_FOREACH(caller_list, l, cd) - if (cd != NULL) { - return cd; - } - return NULL; -} - -void _vcui_doc_set_unhold_all() -{ - Eina_List *l; - call_data_t *cd; - EINA_LIST_FOREACH(caller_list, l, cd) { - if (cd != NULL) { - if (cd->caller_status == CALL_HOLD) { - cd->caller_status = CALL_UNHOLD; - } - } - } -} - -void _vcui_doc_set_hold_all() -{ - Eina_List *l; - call_data_t *cd; - EINA_LIST_FOREACH(caller_list, l, cd) { - if (cd != NULL) { - if (cd->caller_status == CALL_UNHOLD) { - cd->caller_status = CALL_HOLD; - } - } - } -} - -void _vcui_doc_set_swap_all() -{ - Eina_List *l; - call_data_t *cd; - EINA_LIST_FOREACH(caller_list, l, cd) { - if (cd != NULL) { - if (cd->caller_status == CALL_HOLD) { - cd->caller_status = CALL_UNHOLD; - } else if (cd->caller_status == CALL_UNHOLD) { - cd->caller_status = CALL_HOLD; - } - } - } -} - -int _vcui_doc_get_show_callstatus() -{ - if (_vcui_doc_get_count() > 1) { - if (_vcui_doc_get_count_hold() > 1) - return CALL_HOLD; - else - return CALL_UNHOLD; - } else - return CALL_UNHOLD; -} - -int _vcui_doc_get_count() -{ - int i = eina_list_count(caller_list); - return i; -} - -int _vcui_doc_get_count_hold() -{ - int i = 0; - Eina_List *l; - call_data_t *cd; - EINA_LIST_FOREACH(caller_list, l, cd) { - if (cd != NULL) { - if (cd->caller_status == CALL_HOLD) { - i++; - } - } - } - CALL_UI_DEBUG("(%d)",i); - return i; -} - -int _vcui_doc_get_count_unhold() -{ - int i = 0; - Eina_List *l; - call_data_t *cd; - EINA_LIST_FOREACH(caller_list, l, cd) { - if (cd != NULL) { - if (cd->caller_status == CALL_UNHOLD) { - i++; - } - } - } - CALL_UI_DEBUG("(%d)",i); - return i; -} - -int _vcui_doc_get_count_nostatus() -{ - int i = 0; - Eina_List *l; - call_data_t *cd; - EINA_LIST_FOREACH(caller_list, l, cd) { - if (cd != NULL) { - if (cd->caller_status == NO_STATUS) { - i++; - } - } - } - return i; -} - -Eina_List *_vcui_doc_get_hold_caller() -{ - if (_vcui_doc_get_count() == 0) - return NULL; - Eina_List *hold_list = NULL; - Eina_List *l; - call_data_t *cd; - - EINA_LIST_FOREACH(caller_list, l, cd) { - if (cd != NULL) { - if (cd->caller_status == CALL_HOLD) { - hold_list = eina_list_append(hold_list, cd); - } - } - } - return hold_list; -} - -Eina_List *_vcui_doc_get_unhold_caller() -{ - if (_vcui_doc_get_count() == 0) - return NULL; - Eina_List *unhold_list = NULL; - Eina_List *l; - call_data_t *cd; - - EINA_LIST_FOREACH(caller_list, l, cd) { - if (cd != NULL) { - CALL_UI_DEBUG("_vcui_doc_get_unhold_caller"); - if (cd->caller_status == CALL_UNHOLD) { - CALL_UI_DEBUG("find it"); - unhold_list = eina_list_append(unhold_list, cd); - } - } - } - return unhold_list; -} - -Eina_List *_vcui_doc_get_caller() -{ - if (_vcui_doc_get_count() == 0) - return NULL; - - Eina_List *list = NULL; - Eina_List *l; - call_data_t *cd; - - EINA_LIST_FOREACH(caller_list, l, cd) { - list = eina_list_append(list, cd); - } - return list; -} - -void _vcui_doc_all_print_address() -{ - vcui_app_call_data_t *ad = _vcui_get_app_data(); - CALL_UI_DEBUG("----------address----------"); - CALL_UI_DEBUG("View Data : DIALING VIEW %p", ad->view_st[VIEW_DIALLING_VIEW]); - CALL_UI_DEBUG("View Data : INCOMING VIEW %p", ad->view_st[VIEW_INCOMING_VIEW]); - CALL_UI_DEBUG("View Data : INCOMING LOCK VIEW %p", ad->view_st[VIEW_INCOMING_LOCK_VIEW]); - CALL_UI_DEBUG("View Data : INCALL ONEVIEW %p", ad->view_st[VIEW_INCALL_ONECALL_VIEW]); - CALL_UI_DEBUG("View Data : INCALL MULTIVIEW SPLIT %p", ad->view_st[VIEW_INCALL_MULTICALL_SPLIT_VIEW]); - CALL_UI_DEBUG("View Data : INCALL MULTIVIEW CONF %p", ad->view_st[VIEW_INCALL_MULTICALL_CONF_VIEW]); - CALL_UI_DEBUG("View Data : INCALL MULTIVIEW LIST %p", ad->view_st[VIEW_INCALL_MULTICALL_LIST_VIEW]); - CALL_UI_DEBUG("View Data : INCALL KEYPAD %p", ad->view_st[VIEW_INCALL_KEYPAD_VIEW]); - CALL_UI_DEBUG(" --------------------------"); - -} - -void _vcui_doc_all_print(char *msg_pos) -{ - CALL_UI_DEBUG(" --------%s------------", msg_pos); - Eina_List *l; - call_data_t *cd; - EINA_LIST_FOREACH(caller_list, l, cd) { - if (cd != NULL) { - CALL_UI_DEBUG(" call_handle %d", cd->call_handle); - CALL_UI_DEBUG(" call_num %s", cd->call_num); - CALL_UI_DEBUG(" call_display %s", cd->call_display); - CALL_UI_DEBUG(" call_file_path %s", cd->call_file_path); - CALL_UI_DEBUG(" call_full_file_path %s", cd->call_full_file_path); - CALL_UI_DEBUG(" caller_status %d", cd->caller_status); - CALL_UI_DEBUG(" call_time %d", (int)(cd->start_time)); - } - } - CALL_UI_DEBUG(" --------------------------"); -} - diff --git a/ui/vcui-document.h b/ui/vcui-document.h deleted file mode 100755 index 7d52d7d..0000000 --- a/ui/vcui-document.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.tizenopensource.org/license - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -#ifndef _VOICE_CALL_UI_VIEW_DOCUMENT -#define _VOICE_CALL_UI_VIEW_DOCUMENT - -typedef struct _call_data_t { - unsigned char call_handle; - char call_num[VC_PHONE_NUMBER_LENGTH_MAX]; - char call_display[VC_DISPLAY_NAME_LENGTH_MAX]; - char call_file_path[VC_IMAGE_PATH_LENGTH_MAX]; - char call_full_file_path[VC_IMAGE_PATH_LENGTH_MAX]; - int caller_status; - time_t start_time; - - int mo_mt_status; - - int contact_id; - int contact_phone_type; - gboolean bno_end_show; /* multi list end */ -} call_data_t; - -int _vcui_doc_get_count_hold(); -int _vcui_doc_get_count_unhold(); -int _vcui_doc_get_count_nostatus(); - -int _vcui_doc_is_call_data(call_data_t *in); -void _vcui_doc_add_call_data(call_data_t *in); -void _vcui_doc_update_call_data(call_data_t *in); -void _vcui_doc_remove_call_data(call_data_t *in); -void _vcui_doc_remove_all_data(); -call_data_t *_vcui_doc_remove_call_data_only_list(call_data_t *in); - -call_data_t *_vcui_doc_get_call_handle(int handle); - -int _vcui_doc_get_count(); - -Eina_List *_vcui_doc_get_hold_caller(); -Eina_List *_vcui_doc_get_unhold_caller(); -Eina_List *_vcui_doc_get_caller(); - -call_data_t *_vcui_doc_get_last_status(int call_status); -call_data_t *_vcui_doc_get_last_type_mo(); - -void _vcui_doc_caller_list_init(); -call_data_t *_vcui_doc_get_first(); - -call_data_t *_vcui_doc_get_first_hold(); -call_data_t *_vcui_doc_get_first_unhold(); - -void _vcui_doc_recent_init(); -call_data_t *_vcui_doc_get_recent_mo(); -call_data_t *_vcui_doc_get_recent_mt(); -call_data_t *_vcui_doc_get_all_recent(); -void _vcui_doc_set_all_recent(call_data_t *in); -void _vcui_doc_set_mo_recent(call_data_t *in); -void _vcui_doc_set_mt_recent(call_data_t *in); - -void _vcui_doc_set_unhold_all(); -void _vcui_doc_set_hold_all(); -void _vcui_doc_set_swap_all(); - -int _vcui_doc_get_show_callstatus(); - -void _vcui_doc_all_print(char *); -void _vcui_doc_all_print_address(); - -int get_status_backhide(); -int get_status_delete(); -void add_status(int in); -int get_status_all(); -#endif - diff --git a/ui/vcui-engine-interface.c b/ui/vcui-engine-interface.c deleted file mode 100755 index db246d2..0000000 --- a/ui/vcui-engine-interface.c +++ /dev/null @@ -1,1113 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.tizenopensource.org/license - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -#include "vcui-application.h" -#include "vcui-engine-interface.h" -#include "vcui-view-dialing.h" - -/* For Debug Information, Call Event name string constant */ -static char *gszcall_callback_msg[VC_ENGINE_MSG_MAX_TO_UI] = { - "VC_ENGINE_MSG_INCOM_TO_UI", - "VC_ENGINE_MSG_OUTGOING_TO_UI", - "VC_ENGINE_MSG_OUTGOING_ORIG_TO_UI", - "VC_ENGINE_MSG_OUTGOING_ORIG_TO_UI_TEST", - "VC_ENGINE_MSG_OUTGOING_ALERT_TO_UI", - "VC_ENGINE_MSG_CONNECTED_TO_UI", - "VC_ENGINE_MSG_NORMAL_END_TO_UI", - "VC_ENGINE_MSG_INCOM_END_TO_UI", - "VC_ENGINE_MSG_REJECTED_END_TO_UI", - "VC_ENGINE_MSG_OUTGOING_END_TO_UI", - "VC_ENGINE_MSG_OUTGOING_END_SIGNAL_PLAY_TO_UI", - "VC_ENGINE_MSG_OUTGOING_ABORTED_TO_UI", - "VC_ENGINE_MSG_DTMF_ACK_TO_UI", - - "VC_ENGINE_MSG_SS_HELD_TO_UI", - "VC_ENGINE_MSG_SS_RETREIVED_TO_UI", - "VC_ENGINE_MSG_SS_SWAP_TO_UI", - "VC_ENGINE_MSG_SS_SETUP_CONF_TO_UI", - "VC_ENGINE_MSG_SS_SPLIT_CONF_TO_UI", - "VC_ENGINE_MSG_SS_TRANSFERRED_TO_UI", - "VC_ENGINE_MSG_SS_CONNECT_LINE_IND_TO_UI", - - "VC_ENGINE_MSG_IND_FORWARD_TO_UI", - "VC_ENGINE_MSG_IND_ACTIVATE_TO_UI", - "VC_ENGINE_MSG_IND_HOLD_TO_UI", - "VC_ENGINE_MSG_IND_TRANSFER_TO_UI", - "VC_ENGINE_MSG_IND_SETUPCONFERENCE_TO_UI", - "VC_ENGINE_MSG_IND_BARRING_TO_UI", - "VC_ENGINE_MSG_IND_WAITING_TO_UI", - "VC_ENGINE_MSG_IND_CUGINFO_TO_UI", - "VC_ENGINE_MSG_IND_SSNOTIFY_TO_UI", - "VC_ENGINE_MSG_IND_CALLINGNAMEINFO_TO_UI", - "VC_ENGINE_MSG_IND_REDIRECT_CNF_TO_UI", - "VC_ENGINE_MSG_IND_ACTIVATECCBS_CNF_TO_UI", - "VC_ENGINE_MSG_IND_ACTIVATECCBS_USERINFO_TO_UI", - "VC_ENGINE_MSG_IND_AOC_TO_UI", - - "VC_ENGINE_MSG_ERROR_OCCURED_TO_UI", - - "VC_ENGINE_MSG_ACTION_INCOM_FORCE_TO_UI", - "VC_ENGINE_MSG_ACTION_SAT_REQUEST_TO_UI", - "VC_ENGINE_MSG_ACTION_SAT_RESPONSE_TO_UI", - "VC_ENGINE_MSG_ACTION_CALL_END_HELD_RETREIVED_TO_UI", - "VC_ENGINE_MSG_ACTION_NO_ACTIVE_TASK_TO_UI", - - "VC_ENGINE_MSG_GET_VOLUME_RESP_TO_UI", - "VC_ENGINE_MSG_SET_VOLUME_FROM_BT_TO_UI", - "VC_ENGINE_MSG_HEADSET_STATUS_TO_UI", - "VC_ENGINE_MSG_EARJACK_STATUS_TO_UI", - - "VC_ENGINE_MSG_ACCEPT_CHOICE_BOX_TO_UI", - "VC_ENGINE_MSG_MESSAGE_BOX_TO_UI", - - "VC_ENGINE_MSG_REDIAL_TO_UI", - "VC_ENGINE_MSG_STOPPED_RECORDING_TO_UI", - "VC_ENGINE_MSG_CREATE_NEWVOICEFILE_TO_UI", -}; - -static char *gszcall_error_msg[IDS_CALL_MAX] = { - "IDS_CALL_POP_CALL_IS_DIVERTED", - "IDS_CALL_POP_CALLFAILED", - "IDS_CALL_POP_CALLING_EMERG_ONLY", - "IDS_CALL_POP_CALLNOTCALLOWED", - "IDS_CALL_POP_CAUSE_WRONG_NUMBER", - "IDS_CALL_POP_CHANGEOFFLINEMODETOCALL", - "IDS_CALL_POP_DTMFSENDING_FAIL", - "IDS_CALL_POP_FDNCALLONLY", - "IDS_CALL_POP_HOLD_FAILED", - "IDS_CALL_POP_HOLD_NOT_SUPPORTED", - "IDS_CALL_POP_INCOMPLETE", - "IDS_CALL_POP_JOIN_FAILED", - "IDS_CALL_POP_JOIN_NOT_SUPPORTED", - "IDS_CALL_POP_OPERATION_REFUSED", - "IDS_CALL_POP_PHONE_NOT_INITIALISED", - "IDS_CALL_POP_REJECTED", - "IDS_CALL_POP_SENDING", - "IDS_CALL_POP_SOS_CALL_ONLY_IN_NO_SIM_MODE", - "IDS_CALL_POP_SPLIT_FAILED", - "IDS_CALL_POP_SPLIT_NOT_SUPPORTED", - "IDS_CALL_POP_SWAP_FAILED", - "IDS_CALL_POP_SWAP_NOT_SUPPORTED", - "IDS_CALL_POP_TRANSFER_FAILED", - "IDS_CALL_POP_TRANSFER_NOT_SUPPORTED", - "IDS_CALL_POP_UNABLE_TO_RETRIEVE", - "IDS_CALL_POP_UNAVAILABLE", - "IDS_CALL_POP_UNHOLD_NOT_SUPPORTED", - "IDS_CALL_POP_VOICE_CALL_IS_NOT_ALLOWED_DURING_VIDEO_CALL", - "IDS_CALL_POP_WAITING_ACTIVE", - "IDS_CALL_BODY_CALLENDED", - "Invalid DTMF", - "Sent" -}; - -void _vcui_engine_init(vcui_app_call_data_t *ad) -{ - CALL_UI_DEBUG(".."); - vcall_engine_init((vcall_engine_app_cb) _vcui_engine_callback, ad); - CALL_UI_DEBUG("End.."); -} - -void _vcui_engine_answer_call(void) -{ - int ret = VCALL_ENGINE_API_SUCCESS; - - CALL_UI_DEBUG(".."); - - ret = vcall_engine_answer_call(); - - CALL_UI_DEBUG("End.."); -} - -void _vcui_engine_answer_call_by_type(int ans_type) -{ - CALL_UI_DEBUG(".."); - - vcall_engine_answer_call_by_type(ans_type); - - CALL_UI_DEBUG("End.."); -} - -void _vcui_engine_cancel_call(void) -{ - CALL_UI_DEBUG(".."); - - vcall_engine_cancel_call(); - - CALL_UI_DEBUG("End.."); -} - -void _vcui_engine_reject_call(void) -{ - CALL_UI_DEBUG(".."); - - vcall_engine_reject_call(); - - CALL_UI_DEBUG("End.."); -} - -void _vcui_engine_set_volume_level(vcui_vol_type_t vol_type, int level) -{ - int vol = 0; - vcall_engine_vol_type_t engine_vol_type = VCALL_ENGINE_VOL_TYPE_RINGTONE; - CALL_UI_DEBUG(".."); - - if (vol_type == VCUI_VOL_RING) { - engine_vol_type = VCALL_ENGINE_VOL_TYPE_RINGTONE; - } else if (vol_type == VCUI_VOL_VOICE) { - engine_vol_type = VCALL_ENGINE_VOL_TYPE_VOICE; - } else if (vol_type == VCUI_VOL_HEADSET) { - engine_vol_type = VCALL_ENGINE_VOL_TYPE_HEADSET; - } - - vol = vcall_engine_set_volume_level(engine_vol_type, level); - CALL_UI_DEBUG("End.."); -} - -int _vcui_engine_get_volume_level(vcui_vol_type_t vol_type) -{ - int vol = 0; - vcall_engine_vol_type_t engine_vol_type = VCALL_ENGINE_VOL_TYPE_RINGTONE; - CALL_UI_DEBUG("vol_type(%d)", vol_type); - - if (vol_type == VCUI_VOL_RING) { - engine_vol_type = VCALL_ENGINE_VOL_TYPE_RINGTONE; - } else if (vol_type == VCUI_VOL_VOICE) { - engine_vol_type = VCALL_ENGINE_VOL_TYPE_VOICE; - } else if (vol_type == VCUI_VOL_HEADSET) { - engine_vol_type = VCALL_ENGINE_VOL_TYPE_HEADSET; - } - - vol = vcall_engine_get_volume_level(engine_vol_type); - CALL_UI_DEBUG("End.."); - - return vol; -} - -void _vcui_engine_change_sound_path(vcui_audio_type_t sound_path) -{ - int ret = 0; - vcall_engine_audio_type_t rqst_snd_path = VCALL_ENGINE_AUDIO_NONE; - CALL_UI_DEBUG("sound_path(%d)", sound_path); - - if (sound_path == VCUI_AUDIO_SPEAKER) { - rqst_snd_path = VCALL_ENGINE_AUDIO_SPEAKER; - } else if (sound_path == VCUI_AUDIO_HEADSET) { - rqst_snd_path = VCALL_ENGINE_AUDIO_HEADSET; - } else if (sound_path == VCUI_AUDIO_EARJACK) { - rqst_snd_path = VCALL_ENGINE_AUDIO_EARJACK; - } - - vcall_engine_change_sound_path(rqst_snd_path); - CALL_UI_DEBUG("End.."); -} - -vcui_audio_type_t _vcui_engine_get_sound_path(void) -{ - int ret = 0; - int snd_path = VCALL_ENGINE_AUDIO_NONE; - - ret = vcall_engine_get_sound_path(&snd_path); - - if (snd_path == VCALL_ENGINE_AUDIO_SPEAKER) { - return VCUI_AUDIO_SPEAKER; - } else if (snd_path == VCALL_ENGINE_AUDIO_HEADSET) { - return VCUI_AUDIO_HEADSET; - } else if (snd_path == VCALL_ENGINE_AUDIO_EARJACK) { - return VCUI_AUDIO_EARJACK; - } else if (snd_path == VCALL_ENGINE_AUDIO_RECEIVER) { - return VCUI_AUDIO_RECEIVER; - } else { - return VCALL_ENGINE_AUDIO_NONE; - } -} - -void _vcui_engine_stop_alert(void) -{ - CALL_UI_DEBUG(".."); - - vcall_engine_stop_alert(); - - CALL_UI_DEBUG("End.."); -} - -void _vcui_engine_end_call(void) -{ - CALL_UI_DEBUG(".."); - - vcall_engine_release_call(); - - CALL_UI_DEBUG("End.."); -} - -void _vcui_engine_end_call_by_handle(int handle) -{ - CALL_UI_DEBUG("handle(%d)",handle); - - vcall_engine_release_call_by_handle(handle); - - CALL_UI_DEBUG("End.."); -} - -void _vcui_engine_end_all_call(void) -{ - CALL_UI_DEBUG(".."); - - vcall_engine_release_call_by_type(VCALL_ENGINE_RELEASE_ALL_CALLS); - - CALL_UI_DEBUG("End.."); -} - -void _vcui_engine_end_active_calls(void) -{ - CALL_UI_DEBUG(".."); - - vcall_engine_release_call_by_type(VCALL_ENGINE_RELEASE_ALL_ACTIVE_CALLS); - - CALL_UI_DEBUG("End.."); -} - -void _vcui_engine_end_held_calls(void) -{ - CALL_UI_DEBUG(".."); - - vcall_engine_release_call_by_type(VCALL_ENGINE_RELEASE_ALL_HELD_CALLS); - - CALL_UI_DEBUG("End.."); -} - -void _vcui_engine_hold_unhold_swap_call(void) -{ - CALL_UI_DEBUG(".."); - - vcall_engine_process_hold_call(); - - CALL_UI_DEBUG("End.."); -} - -void _vcui_engine_join_call(void) -{ - CALL_UI_DEBUG(".."); - - vcall_engine_join_call(); - - CALL_UI_DEBUG("End.."); -} - -void _vcui_engine_split_call(int call_handle) -{ - CALL_UI_DEBUG(".."); - - vcall_engine_split_call(call_handle); - - CALL_UI_DEBUG("End.."); -} - -void _vcui_engine_transfer_call(void) -{ - CALL_UI_DEBUG(".."); - - vcall_engine_transfer_call(); - - CALL_UI_DEBUG("End.."); -} - -void _vcui_engine_speaker_on_off(int bLoundSpeaker) -{ - CALL_UI_DEBUG(".."); - - vcall_engine_process_loudspeaker(bLoundSpeaker); - - CALL_UI_DEBUG("End.."); -} - -void _vcui_engine_mute_on_off(int bMute) -{ - CALL_UI_DEBUG(".."); - - vcall_engine_process_voice_mute(bMute); - - CALL_UI_DEBUG("End.."); -} - -void _vcui_engine_interface_process_auto_redial(int bRedial) -{ - CALL_UI_DEBUG(".."); - - vcall_engine_process_auto_redial(bRedial); - - CALL_UI_DEBUG("End.."); -} - -void _vcui_engine_interface_process_mute_alert(void) -{ - CALL_UI_DEBUG(".."); - - vcall_engine_mute_alert(); - - CALL_UI_DEBUG("End.."); -} - -void _vcui_engine_interface_send_dtmf_number(char data) -{ - CALL_UI_DEBUG(".."); - char dtmf_number[2]; - - dtmf_number[0] = data; - dtmf_number[1] = '\0'; - - vcall_engine_send_dtmf_number(dtmf_number); - - CALL_UI_DEBUG("End.."); -} - -void _vcui_engine_interface_process_mo_call(vcui_call_type_t call_type, vcui_call_mo_data_t *data) -{ - CALL_UI_DEBUG("."); - - CALL_UI_KPI("vcall_engine_process_normal_call start"); - vcui_call_mo_data_t *mocall = (vcui_call_mo_data_t *) data; - CALL_UI_DEBUG("number is : [%s] ", mocall->call_number); - - if (call_type == VCUI_CALL_TYPE_MO) - vcall_engine_process_normal_call(mocall->call_number, mocall->ct_index, EINA_FALSE); - else if (call_type == VCUI_CALL_TYPE_DOWNLOAD_CALL) - vcall_engine_process_normal_call(mocall->call_number, mocall->ct_index, EINA_TRUE); - - CALL_UI_KPI("vcall_engine_process_normal_call done"); - -} - -void _vcui_engine_interface_process_mt_call(vcui_call_type_t call_type, vcui_call_mt_data_t *data) -{ - CALL_UI_KPI("vcall_engine_process_incoming_call start"); - vcui_call_mt_data_t *mtcall = (vcui_call_mt_data_t *) data; - vcall_engine_incoming_info_t mtcall_info; - CALL_UI_DEBUG("number is : [%s] ", mtcall->call_num); - - mtcall_info.call_handle = mtcall->call_handle; - mtcall_info.call_type = mtcall->call_type; - mtcall_info.cli_presentation_indicator = mtcall->cli_presentation_indicator; - _vc_core_util_strcpy(mtcall_info.call_num, sizeof(mtcall_info.call_num), mtcall->call_num); - mtcall_info.calling_name_mode = mtcall->calling_name_mode; - _vc_core_util_strcpy(mtcall_info.calling_name, sizeof(mtcall_info.calling_name), mtcall->calling_name); - _vc_core_util_strcpy(mtcall_info.redirected_number, sizeof(mtcall_info.redirected_number), mtcall->redirected_number); - _vc_core_util_strcpy(mtcall_info.redirected_sub_address, sizeof(mtcall_info.redirected_sub_address), mtcall->redirected_sub_address); - mtcall_info.cli_cause = mtcall->cli_cause; - mtcall_info.bfwded = mtcall->bfwded; - mtcall_info.active_line = mtcall->active_line; - - vcall_engine_process_incoming_call(&mtcall_info); - CALL_UI_KPI("vcall_engine_process_incoming_call done"); -} - -void _vcui_engine_interface_process_ecc_call(vcui_call_type_t call_type, vcui_call_ecc_data_t *data) -{ - vcui_call_ecc_data_t *emercall = (vcui_call_ecc_data_t *) data; - - CALL_UI_DEBUG("number is : [%s] ", emercall->call_number); - if (call_type == VCUI_CALL_TYPE_ECC) - vcall_engine_process_emergency_call(emercall->call_number); - else if (call_type == VCUI_CALL_TYPE_ECC_TEST) - vcall_engine_process_emergency_call_test(emercall->call_number); - -} - -void _vcui_engine_interface_process_sat_call(vcui_call_type_t call_type, vcui_call_sat_data_t *data) -{ - vcui_call_sat_data_t *satcall = (vcui_call_sat_data_t *) data; - vcall_engine_sat_setup_call_info_t sat_setup_call_info; - CALL_UI_DEBUG(".."); - - memset(&sat_setup_call_info, 0, sizeof(sat_setup_call_info)); - sat_setup_call_info.command_id = satcall->command_id; - sat_setup_call_info.command_qualifier = satcall->command_qualifier; - sat_setup_call_info.duration = satcall->duration; - memcpy(sat_setup_call_info.disp_text, satcall->disp_text, sizeof(sat_setup_call_info.disp_text)); - memcpy(sat_setup_call_info.call_num, satcall->call_num, VC_PHONE_NUMBER_LENGTH_MAX); - - vcall_engine_process_sat_setup_call(&sat_setup_call_info); -} - -void _vcui_engine_callback(int event, void *pdata, void *puser_data) -{ - vcui_app_call_data_t *ad = (vcui_app_call_data_t *) puser_data; - vc_engine_msg_type *msg = (vc_engine_msg_type *)pdata; - - if ((ad == NULL) || (msg == NULL)) { - CALL_UI_DEBUG("ERROR.NULL pointer"); - return; - } - CALL_UI_DEBUG("@@@ event:[%s], view_top:[%d], count:[%d] @@@ \n", gszcall_callback_msg[event], ad->view_top, _vcui_doc_get_count()); - - switch (event) { - case VC_ENGINE_MSG_INCOM_TO_UI: - { - _voicecall_dvc_control_lcd_state(VC_LCD_ON_LOCK); - - CALL_UI_DEBUG("num:[%s], name:[%s]", msg->incoming.call_num, msg->incoming.call_name); - - call_data_t *call_data = malloc(sizeof(call_data_t)); - if (call_data == NULL) - return; - memset(call_data, 0, sizeof(call_data_t)); - - call_data->call_handle = msg->incoming.call_handle; - call_data->contact_id = msg->incoming.contact_index; - call_data->contact_phone_type = msg->incoming.phone_type; - vcall_engine_util_strcpy(call_data->call_num, sizeof(call_data->call_num), msg->incoming.call_num); - if (msg->incoming.brestricted == EINA_TRUE) { - if (msg->incoming.bpayphone == EINA_TRUE) { - vcall_engine_util_strcpy(call_data->call_display, VC_DISPLAY_NAME_LENGTH_MAX, _("Payphone")); - } else { - vcall_engine_util_strcpy(call_data->call_display, VC_DISPLAY_NAME_LENGTH_MAX, dgettext("sys_string", "IDS_COM_BODY_UNKNOWN")); - } - } else { - vcall_engine_util_strcpy(call_data->call_display, VC_DISPLAY_NAME_LENGTH_MAX, msg->incoming.call_name); - } - - if (strcmp((char *)msg->incoming.call_file_path, "default") == 0) - vcall_engine_util_strcpy(call_data->call_file_path, VC_IMAGE_PATH_LENGTH_MAX, NOIMG_ICON); - else if (strlen((char *)msg->incoming.call_file_path) == 0) - vcall_engine_util_strcpy(call_data->call_file_path, VC_IMAGE_PATH_LENGTH_MAX, NOIMG_ICON); - else - vcall_engine_util_strcpy(call_data->call_file_path, VC_IMAGE_PATH_LENGTH_MAX, msg->incoming.call_file_path); - - if (strcmp((char *)msg->incoming.call_full_file_path, "default") == 0) - vcall_engine_util_strcpy(call_data->call_full_file_path, VC_IMAGE_PATH_LENGTH_MAX, NOIMG_ICON); - else if (strlen((char *)msg->incoming.call_full_file_path) == 0) - vcall_engine_util_strcpy(call_data->call_full_file_path, VC_IMAGE_PATH_LENGTH_MAX, NOIMG_ICON); - else - vcall_engine_util_strcpy(call_data->call_full_file_path, VC_IMAGE_PATH_LENGTH_MAX, msg->incoming.call_full_file_path); - - call_data->caller_status = NO_STATUS; - call_data->mo_mt_status = CALL_INCOMING; - - _vcui_doc_set_mt_recent(call_data); - _vcui_doc_add_call_data(call_data); - - if (_vcui_is_idle_lock() == CALL_LOCK) { - _vcui_view_change(VIEW_INCOMING_LOCK_VIEW, 0, NULL, NULL); - } else { - _vcui_view_change(VIEW_INCOMING_VIEW, 0, NULL, NULL); - } - } - break; - - case VC_ENGINE_MSG_OUTGOING_TO_UI: - { - call_data_t *call_data = malloc(sizeof(call_data_t)); - if (call_data == NULL) - return; - memset(call_data, 0, sizeof(call_data_t)); - - call_data->call_handle = NO_HANDLE; - call_data->contact_id = msg->outgoing.contact_index; - call_data->contact_phone_type = msg->outgoing.phone_type; - vcall_engine_util_strcpy(call_data->call_num, VC_PHONE_NUMBER_LENGTH_MAX, msg->outgoing.call_num); - vcall_engine_util_strcpy(call_data->call_display, VC_DISPLAY_NAME_LENGTH_MAX, msg->outgoing.call_name); - - if (strcmp((char *)msg->outgoing.call_file_path, "default") == 0) - vcall_engine_util_strcpy(call_data->call_file_path, VC_IMAGE_PATH_LENGTH_MAX, NOIMG_ICON); - else if (strlen((char *)msg->outgoing.call_file_path) == 0) - vcall_engine_util_strcpy(call_data->call_file_path, VC_IMAGE_PATH_LENGTH_MAX, NOIMG_ICON); - else - vcall_engine_util_strcpy(call_data->call_file_path, VC_IMAGE_PATH_LENGTH_MAX, msg->outgoing.call_file_path); - - if (strcmp((char *)msg->outgoing.call_full_file_path, "default") == 0) - vcall_engine_util_strcpy(call_data->call_full_file_path, VC_IMAGE_PATH_LENGTH_MAX, NOIMG_ICON); - else if (strlen((char *)msg->outgoing.call_full_file_path) == 0) - vcall_engine_util_strcpy(call_data->call_full_file_path, VC_IMAGE_PATH_LENGTH_MAX, NOIMG_ICON); - else - vcall_engine_util_strcpy(call_data->call_full_file_path, VC_IMAGE_PATH_LENGTH_MAX, msg->outgoing.call_full_file_path); - - call_data->caller_status = NO_STATUS; - call_data->mo_mt_status = CALL_OUTGOING; - call_data->start_time = time(&(call_data->start_time)); - - _vcui_doc_set_mo_recent(call_data); - - } - break; - - case VC_ENGINE_MSG_OUTGOING_ORIG_TO_UI: - { - if (_voicecall_dvc_get_proximity_sensor_state() != VCALL_SENSOR_NEAR) - _voicecall_dvc_control_lcd_state(VC_LCD_ON_LOCK); - - vc_engine_outgoing_orig_type outgoing_orig = msg->outgoing_orig; - - call_data_t *call_data = _vcui_doc_get_recent_mo(); - call_data->call_handle = outgoing_orig.call_handle; - - if (outgoing_orig.bemergency == EINA_TRUE) { - CALL_UI_DEBUG("it is emergency call"); - char *em_name = _("IDS_CALL_POP_EMERGENCY_CALL"); - - memset(call_data->call_display, 0, sizeof(call_data->call_display)); - memset(call_data->call_file_path, 0, sizeof(call_data->call_file_path)); - memset(call_data->call_full_file_path, 0, sizeof(call_data->call_full_file_path)); - - vcall_engine_util_strcpy(call_data->call_display, VC_DISPLAY_NAME_LENGTH_MAX, em_name); - vcall_engine_util_strcpy(call_data->call_file_path, VC_IMAGE_PATH_LENGTH_MAX, NOIMG_ICON); - vcall_engine_util_strcpy(call_data->call_full_file_path, VC_IMAGE_PATH_LENGTH_MAX, NOIMG_ICON); - call_data->contact_phone_type = -1; - } - - _vcui_doc_add_call_data(call_data); - _vcui_view_change(VIEW_DIALLING_VIEW, 0, NULL, NULL); - } - break; - - case VC_ENGINE_MSG_OUTGOING_ORIG_TO_UI_TEST: - { - if (_voicecall_dvc_get_proximity_sensor_state() != VCALL_SENSOR_NEAR) - _voicecall_dvc_control_lcd_state(VC_LCD_ON_LOCK); - - vc_engine_outgoing_orig_type outgoing_orig = msg->outgoing_orig; - - call_data_t *call_data = _vcui_doc_get_recent_mo(); - call_data->call_handle = 1; - - if (outgoing_orig.bemergency == EINA_TRUE) { - CALL_UI_DEBUG("it is emergency call"); - char *em_name = _("IDS_CALL_POP_EMERGENCY_CALL"); - - memset(call_data->call_display, 0, sizeof(call_data->call_display)); - memset(call_data->call_file_path, 0, sizeof(call_data->call_file_path)); - memset(call_data->call_full_file_path, 0, sizeof(call_data->call_full_file_path)); - - vcall_engine_util_strcpy(call_data->call_display, VC_DISPLAY_NAME_LENGTH_MAX, em_name); - vcall_engine_util_strcpy(call_data->call_file_path, VC_IMAGE_PATH_LENGTH_MAX, NOIMG_ICON); - vcall_engine_util_strcpy(call_data->call_full_file_path, VC_IMAGE_PATH_LENGTH_MAX, NOIMG_ICON); - call_data->contact_phone_type = -1; - } - - _vcui_doc_add_call_data(call_data); - _vcui_view_change(VIEW_DIALLING_VIEW, 0, NULL, NULL); - } - break; - - case VC_ENGINE_MSG_OUTGOING_ALERT_TO_UI: - { - call_data_t *call_data = _vcui_doc_get_recent_mo(); - - if (call_data == NULL) { - CALL_UI_DEBUG("Error"); - elm_exit(); - return; - } - - if (_vcui_doc_is_call_data(call_data) == EINA_FALSE) { - CALL_UI_DEBUG("Error. check outgoing_orig msg."); - elm_exit(); - return; - } - - _vcui_view_dialing_draw_txt_connecting(ad->view_st[VIEW_DIALLING_VIEW]); - } - break; - - case VC_ENGINE_MSG_CONNECTED_TO_UI: - { - _voicecall_dvc_control_lcd_state(VC_LCD_ON_UNLOCK); - - vc_engine_connected_type connected = msg->connected; - call_data_t *call_data = _vcui_doc_get_call_handle(connected.call_handle); - - if (call_data == NULL) { - CALL_UI_DEBUG("Error"); - elm_exit(); - return; - } - - call_data->caller_status = CALL_UNHOLD; - call_data->call_handle = connected.call_handle; - call_data->start_time = time(&(call_data->start_time)); - - /* When new call connected, if it's multiparty call, always show split1 first. */ - ad->bswapped = EINA_FALSE; - - _vcui_view_auto_change(); - } - break; - - case VC_ENGINE_MSG_NORMAL_END_TO_UI: - { - vc_engine_normal_end_type normal_end = msg->normal_end; - - CALL_UI_DEBUG("end_cause_type:[%d]", normal_end.end_cause_type); - - call_data_t *call_data = _vcui_doc_get_call_handle(normal_end.call_handle); - if (call_data == NULL) { - CALL_UI_DEBUG("Error"); - elm_exit(); - return; - } - if (call_data->mo_mt_status == CALL_INCOMING) - _vcui_add_calllog(CTS_PLOG_TYPE_VOICE_INCOMMING, call_data, EINA_FALSE); - else if (call_data->mo_mt_status == CALL_OUTGOING) - _vcui_add_calllog(CTS_PLOG_TYPE_VOICE_OUTGOING, call_data, EINA_FALSE); - - time_t start_time; - memcpy(&start_time, &(call_data->start_time), sizeof(call_data->start_time)); - - if (call_data->bno_end_show == EINA_TRUE) { - _vcui_doc_remove_call_data(call_data); - _vcui_view_common_call_terminate_or_view_change(); - } else { - vcui_app_call_data_t *ad = _vcui_get_app_data(); - if (_vcui_doc_get_count() == 1 && ad->view_top == VIEW_INCALL_ONECALL_VIEW) { - ad->call_end_type = CALL_END_TYPE_SINGLE_CALL; - } - CALL_UI_DEBUG("ad->call_end_type[%d]", ad->call_end_type); - if (ad->call_end_type == CALL_END_TYPE_SINGLE_CALL || ad->call_end_type == CALL_END_TYPE_CONF_CALL) { - CALL_UI_DEBUG("Show end screen - %d", ad->call_end_type); - _vcui_view_change(VIEW_ENDCALL_VIEW, -1, call_data, NULL); - ad->call_end_type = CALL_END_TYPE_NONE; - CALL_UI_DEBUG("Blink show: end call time"); - _vcui_view_common_call_end_show(start_time, normal_end.end_cause_type); - _vcui_doc_remove_call_data(call_data); - } - else { - _vcui_doc_remove_call_data(call_data); - _vcui_view_common_call_terminate_or_view_change(); - } - } - } - break; - - case VC_ENGINE_MSG_INCOM_END_TO_UI: - { - _voicecall_dvc_control_lcd_state(VC_LCD_ON_UNLOCK); - - vc_engine_common_with_handle_type incom_end = msg->incom_end; - - call_data_t *call_data = _vcui_doc_get_call_handle(incom_end.call_handle); - if (call_data == NULL) { - CALL_UI_DEBUG("Error"); - elm_exit(); - return; - } - - _vcui_add_calllog(CTS_PLOG_TYPE_VOICE_INCOMMING_UNSEEN, call_data, EINA_FALSE); - _vcui_doc_remove_call_data(call_data); - - _vcui_view_common_call_terminate_or_view_change(); - - } - break; - - case VC_ENGINE_MSG_REJECTED_END_TO_UI: - { - _voicecall_dvc_control_lcd_state(VC_LCD_ON_UNLOCK); - - vc_engine_common_with_handle_type rejected_end = msg->rejected_end; - - call_data_t *call_data = _vcui_doc_get_call_handle(rejected_end.call_handle); - - if (call_data == NULL) { - CALL_UI_DEBUG("Error"); - elm_exit(); - - return; - } - - _vcui_add_calllog(CTS_PLOG_TYPE_VOICE_REJECT, call_data, EINA_FALSE); - _vcui_doc_remove_call_data(call_data); - _vcui_view_common_call_terminate_or_view_change(); - } - break; - - case VC_ENGINE_MSG_OUTGOING_END_TO_UI: - { - _voicecall_dvc_control_lcd_state(VC_LCD_ON_UNLOCK); - - vc_engine_outgoing_end_type outgoing_end = msg->outgoing_end; - call_data_t *call_data = _vcui_doc_get_call_handle(outgoing_end.call_handle); - - if (call_data == NULL) { - CALL_UI_DEBUG("It is the case which call orig is not received."); - char data[VC_DATA_LENGTH_MAX] = { 0, }; - _vcui_view_popup_load(_vcui_get_endcause_string(outgoing_end.end_cause_type, data), POPUP_TIMEOUT_LONG, EINA_TRUE); - } else { - _vcui_add_calllog(CTS_PLOG_TYPE_VOICE_OUTGOING, call_data, EINA_TRUE); - if (outgoing_end.bauto_redial == EINA_TRUE) { - CALL_UI_DEBUG("bauto_redial is EINA_TRUE"); - _vcui_doc_remove_call_data_only_list(call_data); - } else { - CALL_UI_DEBUG("show the call end screen"); - vcui_app_call_data_t *ad = _vcui_get_app_data(); - if (_vcui_doc_get_count() == 1 && ad->view_top == VIEW_DIALLING_VIEW) { - ad->call_end_type = CALL_END_TYPE_SINGLE_CALL; - _vcui_view_change(VIEW_ENDCALL_VIEW, -1, call_data, NULL); - } - _vcui_doc_remove_call_data(call_data); - } - _vcui_view_common_call_end_show_dialing(outgoing_end.end_cause_type, outgoing_end.bauto_redial); - } - - } - break; - - case VC_ENGINE_MSG_OUTGOING_END_SIGNAL_PLAY_TO_UI: - { - vc_engine_outgoing_end_signal_play_type outgoing_end_signal_play = msg->outgoing_end_signal_play; - call_data_t *call_data = _vcui_doc_get_call_handle(outgoing_end_signal_play.call_handle); - - if (call_data != NULL) { - _vcui_view_dialing_draw_txt_ended(ad->view_st[ad->view_top], outgoing_end_signal_play.end_cause_type); - } else { - CALL_UI_DEBUG("Check it whether call data exists. handle:[%d]", outgoing_end_signal_play.call_handle); - } - } - break; - - case VC_ENGINE_MSG_OUTGOING_ABORTED_TO_UI: - { - _voicecall_dvc_control_lcd_state(VC_LCD_ON_UNLOCK); - - vc_engine_common_with_handle_type outgoing_aborted = msg->outgoing_aborted; - call_data_t *call_data = _vcui_doc_get_call_handle(outgoing_aborted.call_handle); - - if (call_data == NULL) - call_data = _vcui_doc_get_recent_mo(); - - if (call_data == NULL) { - CALL_UI_DEBUG("Error"); - elm_exit(); - return; - } - - _vcui_add_calllog(CTS_PLOG_TYPE_VOICE_OUTGOING, call_data, EINA_TRUE); - - _vcui_doc_remove_call_data(call_data); - - _vcui_view_common_call_terminate_or_view_change(); - - } - break; - - case VC_ENGINE_MSG_DTMF_ACK_TO_UI: - { -#ifdef PDIAL_SEND_DTMF - - vc_engine_dtmf_ack_type dtmf_ack = msg->dtmf_progress; - - if (EINA_FALSE == dtmf_ack.bstatus) { - _vcui_view_popup_unload_progress(ad); - if ((dtmf_ack.string_id != -1) && (dtmf_ack.string_id != IDS_CALL_POP_DTMF_SENT)) { - CALL_UI_DEBUG("load popup window... Start"); - _vcui_view_popup_load(_(gszcall_error_msg[dtmf_ack.string_id]), POPUP_TIMEOUT_LONG, EINA_FALSE); - } - } else { - CALL_UI_DEBUG("display_string:[%s], string_id:[%d]", dtmf_ack.display_string, dtmf_ack.string_id); - _vcui_view_popup_load_sending_dtmf(_(gszcall_error_msg[dtmf_ack.string_id]), dtmf_ack.display_string); - } -#endif - } - break; - - case VC_ENGINE_MSG_SS_HELD_TO_UI: - { - _vcui_doc_set_hold_all(); - _vcui_view_update(); - } - break; - - case VC_ENGINE_MSG_SS_RETREIVED_TO_UI: - { - _vcui_doc_set_unhold_all(); - _vcui_view_update(); - } - break; - - case VC_ENGINE_MSG_SS_SWAP_TO_UI: - { - _vcui_view_popup_unload(ad->popup_eo); - - if (ad->bholdisleft == EINA_TRUE) { - ad->bswapped = EINA_FALSE; - } else { - ad->bswapped = EINA_TRUE; - } - - _vcui_doc_set_swap_all(); - _vcui_view_auto_change(); - } - break; - - case VC_ENGINE_MSG_SS_SETUP_CONF_TO_UI: - { - _vcui_view_popup_unload(ad->popup_eo); - - _vcui_doc_set_unhold_all(); - _vcui_view_auto_change(); - } - break; - - case VC_ENGINE_MSG_SS_SPLIT_CONF_TO_UI: - { - vc_engine_common_with_handle_type ss_split_conf = msg->ss_split_conf; - - CALL_UI_DEBUG("[UI]The handle is %d ", ss_split_conf.call_handle); - - call_data_t *call_data = _vcui_doc_get_call_handle(ss_split_conf.call_handle); - if (call_data == NULL) { - CALL_UI_DEBUG("Error"); - elm_exit(); - return; - } else { - _vcui_doc_set_hold_all(); - call_data->caller_status = CALL_UNHOLD; - - _vcui_view_auto_change(); - } - } - break; - - case VC_ENGINE_MSG_SS_TRANSFERRED_TO_UI: - break; - - case VC_ENGINE_MSG_SS_CONNECT_LINE_IND_TO_UI: - break; - - case VC_ENGINE_MSG_IND_FORWARD_TO_UI: - break; - - case VC_ENGINE_MSG_IND_ACTIVATE_TO_UI: - { - _vcui_view_popup_load(_("IDS_CALL_POP_UNHELD"), POPUP_TIMEOUT_SHORT, EINA_FALSE); - } - break; - - case VC_ENGINE_MSG_IND_HOLD_TO_UI: - { - _vcui_view_popup_load(_("IDS_CALL_POP_HELD"), POPUP_TIMEOUT_SHORT, EINA_FALSE); - } - break; - - case VC_ENGINE_MSG_IND_TRANSFER_TO_UI: - break; - - case VC_ENGINE_MSG_IND_SETUPCONFERENCE_TO_UI: - break; - - case VC_ENGINE_MSG_IND_BARRING_TO_UI: - break; - - case VC_ENGINE_MSG_IND_WAITING_TO_UI: - { - _vcui_view_popup_load(_("IDS_CALL_POP_WAITING_ACTIVE"), POPUP_TIMEOUT_SHORT, EINA_FALSE); - } - break; - - case VC_ENGINE_MSG_IND_CUGINFO_TO_UI: - break; - - case VC_ENGINE_MSG_IND_SSNOTIFY_TO_UI: - break; - - case VC_ENGINE_MSG_IND_CALLINGNAMEINFO_TO_UI: - break; - - case VC_ENGINE_MSG_IND_REDIRECT_CNF_TO_UI: - break; - - case VC_ENGINE_MSG_IND_ACTIVATECCBS_CNF_TO_UI: - break; - - case VC_ENGINE_MSG_IND_ACTIVATECCBS_USERINFO_TO_UI: - break; - - case VC_ENGINE_MSG_GET_VOLUME_RESP_TO_UI: - { - vc_engine_vol_resp_type vol_resp = msg->vol_resp; - _vcui_response_volume(vol_resp.vol_alert_type, vol_resp.vol_level); - } - break; - - case VC_ENGINE_MSG_SET_VOLUME_FROM_BT_TO_UI: - { - vc_engine_vol_set_from_bt_type vol_set_from_bt = msg->vol_set_from_bt; - ad->bt_vol_val = vol_set_from_bt.vol_level; - _vcui_view_popup_vol_bt(ad->bt_vol_val); - } - break; - - case VC_ENGINE_MSG_ACTION_NO_ACTIVE_TASK_TO_UI: - { - - } - break; - - case VC_ENGINE_MSG_ACTION_CALL_END_HELD_RETREIVED_TO_UI: - { - - } - break; - - case VC_ENGINE_MSG_ACTION_SAT_RESPONSE_TO_UI: - { - - } - break; - - case VC_ENGINE_MSG_ACTION_SAT_REQUEST_TO_UI: - { - - } - break; - - case VC_ENGINE_MSG_ERROR_OCCURED_TO_UI: - break; - - case VC_ENGINE_MSG_IND_AOC_TO_UI: - break; - - case VC_ENGINE_MSG_ACCEPT_CHOICE_BOX_TO_UI: - { - CALL_UI_DEBUG("not supported"); - } - break; - - case VC_ENGINE_MSG_HEADSET_STATUS_TO_UI: - { - vc_engine_headset_status_type headset_status = msg->headset_status; - ad->headset_status = headset_status.bstatus; - if (ad->headset_status == EINA_TRUE) { - ad->speaker_status = EINA_FALSE; - } - - CALL_UI_DEBUG("Headset Status = %d", ad->headset_status); - CALL_UI_DEBUG("ad->view_top:[%d]", ad->view_top); - - if ((ad->view_top == VIEW_INCALL_ONECALL_VIEW) || (ad->view_top == VIEW_INCALL_MULTICALL_SPLIT_VIEW) - || (ad->view_top == VIEW_INCALL_MULTICALL_CONF_VIEW) || (ad->view_top == VIEW_DIALLING_VIEW)) { - if (ad->view_st[ad->view_top] != NULL) { - ad->view_st[ad->view_top]->onUpdate(ad->view_st[ad->view_top], NULL, NULL); - } - } - - } - break; - - case VC_ENGINE_MSG_EARJACK_STATUS_TO_UI: - { - vc_engine_earjack_status_type earjack_status = msg->earjack_status; - - CALL_UI_DEBUG("earjack Status = %d", earjack_status.bstatus); - CALL_UI_DEBUG("ad->view_top:[%d]", ad->view_top); - - if(earjack_status.bstatus == EINA_TRUE) { - if (ad->ctxpopup_radio_group_eo != NULL ) - elm_radio_value_set(ad->ctxpopup_radio_group_eo, VCUI_SND_PATH_EARJACK); -#ifdef _NEW_SND_ -#else - _vcui_engine_change_sound_path(VCUI_AUDIO_EARJACK); -#endif - - ad->speaker_status = EINA_FALSE; - ad->headset_status = EINA_FALSE; - - if ((ad->view_top == VIEW_INCALL_ONECALL_VIEW) || (ad->view_top == VIEW_INCALL_MULTICALL_SPLIT_VIEW) - || (ad->view_top == VIEW_INCALL_MULTICALL_CONF_VIEW) || (ad->view_top == VIEW_DIALLING_VIEW)) { - if (ad->view_st[ad->view_top] != NULL) { - ad->view_st[ad->view_top]->onUpdate(ad->view_st[ad->view_top], NULL, NULL); - } - } - } else { - if (_vcui_is_headset_conected() == EINA_TRUE) { - if (ad->ctxpopup_radio_group_eo != NULL ) - elm_radio_value_set(ad->ctxpopup_radio_group_eo, VCUI_SND_PATH_HEADSET); - -#ifdef _NEW_SND_ -#else - _vcui_engine_change_sound_path(VCUI_AUDIO_HEADSET); -#endif - - ad->speaker_status = EINA_FALSE; - ad->headset_status = EINA_TRUE; - - if ((ad->view_top == VIEW_INCALL_ONECALL_VIEW) || (ad->view_top == VIEW_INCALL_MULTICALL_SPLIT_VIEW) - || (ad->view_top == VIEW_INCALL_MULTICALL_CONF_VIEW) || (ad->view_top == VIEW_DIALLING_VIEW)) { - if (ad->view_st[ad->view_top] != NULL) { - ad->view_st[ad->view_top]->onUpdate(ad->view_st[ad->view_top], NULL, NULL); - } - } - } else { - if (ad->ctxpopup_radio_group_eo != NULL ) - elm_radio_value_set(ad->ctxpopup_radio_group_eo, VCUI_SND_PATH_EARJACK); - -#ifdef _NEW_SND_ -#else - _vcui_engine_change_sound_path(VCUI_AUDIO_EARJACK); -#endif - - ad->speaker_status = EINA_FALSE; - ad->headset_status = EINA_FALSE; - - if ((ad->view_top == VIEW_INCALL_ONECALL_VIEW) || (ad->view_top == VIEW_INCALL_MULTICALL_SPLIT_VIEW) - || (ad->view_top == VIEW_INCALL_MULTICALL_CONF_VIEW) || (ad->view_top == VIEW_DIALLING_VIEW)) { - if (ad->view_st[ad->view_top] != NULL) { - ad->view_st[ad->view_top]->onUpdate(ad->view_st[ad->view_top], NULL, NULL); - } - } - } - } - } - break; - - case VC_ENGINE_MSG_ACTION_INCOM_FORCE_TO_UI: - { - call_data_t *recent_mo = _vcui_doc_get_recent_mo(); - if (recent_mo != NULL && recent_mo->call_handle == NO_HANDLE) { - _vcui_doc_remove_call_data_only_list(recent_mo); - _vcui_doc_set_mo_recent(NULL); - } - - } - break; - - case VC_ENGINE_MSG_MESSAGE_BOX_TO_UI: - { - _voicecall_dvc_control_lcd_state(VC_LCD_ON_UNLOCK); - - vc_engine_msg_box_type msg_box = msg->msg_box; - _vcui_view_popup_load(_(gszcall_error_msg[msg_box.string_id]), POPUP_TIMEOUT_LONG, EINA_TRUE); - } - break; - - case VC_ENGINE_MSG_REDIAL_TO_UI: - { - CALL_UI_DEBUG("not used"); - } - break; - - case VC_ENGINE_MSG_CREATE_NEWVOICEFILE_TO_UI: - { - CALL_UI_DEBUG("not used"); - } - - default: - break; - } - - _vcui_doc_all_print(gszcall_callback_msg[event]); - - CALL_UI_DEBUG("End.."); - -} diff --git a/ui/vcui-engine-interface.h b/ui/vcui-engine-interface.h deleted file mode 100755 index 01d12ef..0000000 --- a/ui/vcui-engine-interface.h +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.tizenopensource.org/license - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -#ifndef _VOICE_CALL_UI_IPC_ -#define _VOICE_CALL_UI_IPC_ - -#include "voice-call-engine.h" - -typedef enum _vcui_snd_path_type_t{ - VCUI_SND_PATH_NONE, - VCUI_SND_PATH_HEADSET, - VCUI_SND_PATH_EARJACK, - VCUI_SND_PATH_SPEAKER, - VCUI_SND_PATH_MAX, -}vcui_snd_path_type_t; - -typedef enum _vcui_call_type_t { - VCUI_CALL_TYPE_MO, - VCUI_CALL_TYPE_MT, - VCUI_CALL_TYPE_ECC, - VCUI_CALL_TYPE_ECC_TEST, - VCUI_CALL_TYPE_DOWNLOAD_CALL, - VCUI_CALL_TYPE_SAT, - VCUI_CALL_TYPE_MAX -} vcui_call_type_t; - -typedef struct _vcui_call_mo_data_t { - char call_number[VC_PHONE_NUMBER_LENGTH_MAX]; - int ct_index; -} vcui_call_mo_data_t; - -typedef struct _vcui_call_mt_data_t { - int call_handle; - int call_type; - int cli_presentation_indicator; - char call_num[VC_PHONE_NUMBER_LENGTH_MAX]; - int calling_name_mode; - char calling_name[VC_PHONE_NAME_LENGTH_MAX]; - char redirected_number[VC_PHONE_NUMBER_LENGTH_MAX]; - char redirected_sub_address[VC_PHONE_SUBADDRESS_LENGTH_MAX]; - int cli_cause; - int bfwded; - int active_line; -} vcui_call_mt_data_t; - -typedef struct _vcui_call_ecc_data_t { - char call_number[VC_PHONE_NUMBER_LENGTH_MAX]; -} vcui_call_ecc_data_t; - -typedef struct _vcui_call_sat_data_t { - int command_id; /**app_data; - - ad->bholdisleft = ad->bswapped; - _vcui_view_popup_load(_("IDS_CALL_POP_SWAPPED"), POPUP_TIMEOUT_LONG, EINA_FALSE); - _vcui_engine_hold_unhold_swap_call(); -} - -static void __vcui_join_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALL_UI_DEBUG(".."); - _vcui_create_top_right_button_disabled(data); - _vcui_engine_join_call(); -} - -void _vcui_conf_img_cb(void *data, Evas_Object *obj, void *event_info) /* for multicall list view */ -{ - CALL_UI_DEBUG(".."); - _vcui_view_change(VIEW_INCALL_MULTICALL_LIST_VIEW, 0, 0, 0); -} - -static void __vcui_keypad_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALL_UI_DEBUG(".."); - _vcui_view_change(VIEW_INCALL_KEYPAD_VIEW, 0, NULL, NULL); -} - -static void __vcui_contacts_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALL_UI_DEBUG(".."); - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - _vcui_doc_launch_contact_list_ug(NULL, NULL, vd->layout, NULL, NULL, NULL, &(vd->app_data->ugs_array_data)); -} - -static void __vcui_addcall_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALL_UI_DEBUG(".."); - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - vcui_app_call_data_t *ad = vd->app_data; - - _vcui_doc_launch_phoneui_ug(NULL, NULL, vd->layout, NULL, NULL, NULL, &(vd->app_data->ugs_array_data)); -} - -static void __vcui_sound_path_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALL_UI_DEBUG(".."); - _vcui_view_popup_load_snd_path(); -} - -static void __vcui_spk_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALL_UI_DEBUG(".."); - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - vcui_app_call_data_t *ad = vd->app_data; - - CALL_UI_DEBUG("vd->type:[%d]", vd->type); - - _vcui_engine_speaker_on_off(EINA_TRUE); - - ad->speaker_status = EINA_TRUE; - _vcui_create_bottom_left_button(vd); -} - -static void __vcui_spk_press_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALL_UI_DEBUG(".."); - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - vcui_app_call_data_t *ad = vd->app_data; - - CALL_UI_DEBUG("vd->type:[%d]", vd->type); - - _vcui_engine_speaker_on_off(EINA_FALSE); - - ad->speaker_status = EINA_FALSE; - _vcui_create_bottom_left_button(vd); -} - -static void __vcui_mute_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALL_UI_DEBUG(".."); - - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - vcui_app_call_data_t *ad = vd->app_data; - - CALL_UI_DEBUG("vd->type:[%d]", vd->type); - - _vcui_engine_mute_on_off(EINA_TRUE); - - ad->mute_status = EINA_TRUE; - _vcui_create_bottom_middle_button(vd); -} - -static void __vcui_mute_press_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALL_UI_DEBUG(".."); - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - vcui_app_call_data_t *ad = vd->app_data; - - CALL_UI_DEBUG("vd->type:[%d]", vd->type); - - _vcui_engine_mute_on_off(EINA_FALSE); - - ad->mute_status = EINA_FALSE; - _vcui_create_bottom_middle_button(vd); -} - -static void __vcui_bigend_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALL_UI_DEBUG(".."); - - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - vcui_app_call_data_t *ad = vd->app_data; - CALL_UI_DEBUG("vd->type:[%d]", vd->type); - - _vcui_create_button_bigend_disabled(vd); - - switch (vd->type) { - case VIEW_DIALLING_VIEW: - { - _vcui_engine_cancel_call(); - } - break; - case VIEW_INCALL_ONECALL_VIEW: - { - _vcui_engine_end_call(); - } - break; - case VIEW_INCALL_MULTICALL_SPLIT_VIEW: - { - _vcui_engine_end_active_calls(); - } - break; - case VIEW_INCALL_MULTICALL_CONF_VIEW: - { - vcui_view_multi_call_conf_priv_t *priv = (vcui_view_multi_call_conf_priv_t *) vd->priv; - if (priv->call_status == CALL_HOLD) - _vcui_engine_end_held_calls(); - else - _vcui_engine_end_active_calls(); - ad->call_end_type = CALL_END_TYPE_CONF_CALL; - } - break; - case VIEW_INCALL_MULTICALL_LIST_VIEW: - { - vcui_view_multi_call_list_priv_t *priv = (vcui_view_multi_call_list_priv_t *) vd->priv; - if (priv->call_status == CALL_HOLD) - _vcui_engine_end_held_calls(); - else - _vcui_engine_end_active_calls(); - - int grp_count = 0; - vcall_engine_get_group_count(&grp_count); - CALL_UI_DEBUG("No. of groups - %d", grp_count); - if (grp_count == 1) - ad->call_end_type = CALL_END_TYPE_CONF_CALL; - else - ad->call_end_type = CALL_END_TYPE_NONE; - } - break; - default: - CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); - return; - break; - - } -} - -static void __vcui_accept_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALL_UI_DEBUG(".."); - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv; - - if (priv->bselected_btn == EINA_TRUE) { - CALL_UI_DEBUG("already clicked!!"); - } else { - priv->bselected_btn = EINA_TRUE; - _vcui_engine_answer_call(); - } -} - -static void __vcui_reject_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALL_UI_DEBUG(".."); - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv; - - if (priv->bselected_btn == EINA_TRUE) { - CALL_UI_DEBUG("already clicked!!"); - } else { - priv->bselected_btn = EINA_TRUE; - _vcui_engine_reject_call(); - } -} - -static void __vcui_second_incoming_reject_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALL_UI_DEBUG(".."); - _vcui_engine_reject_call(); -} - -static void __vcui_second_incoming_hold_and_accept_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALL_UI_DEBUG(".."); - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - switch (vd->type) { - case VIEW_INCOMING_VIEW: - { - incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv; - priv->bdont_refresh = EINA_TRUE; - } - break; - default: - CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); - break; - } - - _vcui_engine_answer_call_by_type(1); -} - -static void __vcui_second_incoming_end_and_accept_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALL_UI_DEBUG(".."); - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - switch (vd->type) { - case VIEW_INCOMING_VIEW: - { - incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv; - priv->bdont_refresh = EINA_TRUE; - } - break; - default: - CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); - break; - } - - _vcui_engine_answer_call_by_type(2); -} - -static void __vcui_second_incoming_end_active_and_accept_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALL_UI_DEBUG(".."); - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - switch (vd->type) { - case VIEW_INCOMING_VIEW: - { - incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv; - priv->bdont_refresh = EINA_TRUE; - } - break; - default: - CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); - break; - } - - _vcui_engine_answer_call_by_type(2); -} - -static void __vcui_second_incoming_end_hold_and_accept_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALL_UI_DEBUG(".."); - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - switch (vd->type) { - case VIEW_INCOMING_VIEW: - { - incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv; - priv->bdont_refresh = EINA_TRUE; - } - break; - default: - CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); - break; - } - - _vcui_engine_answer_call_by_type(3); -} - -static void __vcui_second_incoming_end_all_and_accept_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALL_UI_DEBUG(".."); - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - switch (vd->type) { - case VIEW_INCOMING_VIEW: - { - incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv; - priv->bdont_refresh = EINA_TRUE; - } - break; - default: - CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); - break; - } - - _vcui_engine_answer_call_by_type(4); -} - -Evas_Object *_vcui_create_top_left_button(void *data) -{ - return NULL; -} - -Evas_Object *_vcui_create_top_left_button_disabled(void *data) -{ - return NULL; -} - - -Evas_Object *_vcui_create_top_middle_button(void *data) -{ - return NULL; -} - -Evas_Object *_vcui_create_top_middle_button_disabled(void *data) -{ - return NULL; -} - -Evas_Object *_vcui_create_top_right_button(void *data) -{ - return NULL; -} - -Evas_Object *_vcui_create_top_right_button_disabled(void *data) -{ - return NULL; -} - -/* Speaker Button ENABLED */ -Evas_Object *_vcui_create_bottom_left_button(void *data) -{ - CALL_UI_KPI("_vcui_create_bottom_left_button start"); - Evas_Object *btn; - Evas_Object *ic; - Evas_Object *layout; - Evas_Object *sw; - - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - vcui_app_call_data_t *ad = vd->app_data; - - switch (vd->type) { - case VIEW_DIALLING_VIEW: - { - vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *) vd->priv; - layout = priv->contents; - } - break; - case VIEW_INCALL_ONECALL_VIEW: - { - incall_one_view_priv_t *priv = (incall_one_view_priv_t *) vd->priv; - layout = priv->contents; - } - break; - case VIEW_INCALL_MULTICALL_SPLIT_VIEW: - { - incall_multi_view_split_priv_t *priv = (incall_multi_view_split_priv_t *) vd->priv; - layout = priv->contents; - } - break; - case VIEW_INCALL_MULTICALL_CONF_VIEW: - { - vcui_view_multi_call_conf_priv_t *priv = (vcui_view_multi_call_conf_priv_t *) vd->priv; - layout = priv->contents; - } - break; - default: - CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); - return NULL; - break; - - } - - sw = edje_object_part_swallow_get(_EDJ(layout), "btn_speaker"); - if (sw) { - edje_object_part_unswallow(_EDJ(layout), sw); - evas_object_del(sw); - } - if (EINA_TRUE == _vcui_is_headset_conected()) { - btn = elm_button_add(layout); - CALL_UI_KPI("elm_object_style_set start :: style_call_sixbtn"); - elm_object_style_set(btn, "style_call_sixbtn"); - CALL_UI_KPI("elm_object_style_set done :: style_call_sixbtn"); - elm_object_part_content_set(layout, "btn_speaker", btn); - ic = elm_icon_add(layout); - elm_icon_file_set(ic, SPEAKER_ICON, NULL); - evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); - elm_icon_resizable_set(ic, 1, 1); - elm_object_part_content_set(btn, "icon", ic); - elm_object_text_set(btn, _("IDS_MSGC_OPT_SOUND")); - evas_object_smart_callback_add(btn, "clicked", __vcui_sound_path_btn_cb, vd); - } else { - if (ad->speaker_status == EINA_FALSE) { - btn = elm_button_add(layout); - CALL_UI_KPI("elm_object_style_set start :: style_call_sixbtn"); - elm_object_style_set(btn, "style_call_sixbtn"); - CALL_UI_KPI("elm_object_style_set done :: style_call_sixbtn"); - elm_object_part_content_set(layout, "btn_speaker", btn); - ic = elm_icon_add(layout); - elm_icon_file_set(ic, SPEAKER_ICON, NULL); - evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); - elm_icon_resizable_set(ic, 1, 1); - elm_object_part_content_set(btn, "icon", ic); - elm_object_text_set(btn, _("IDS_CALL_BUTTON_SPEAKER")); - evas_object_smart_callback_add(btn, "clicked", __vcui_spk_btn_cb, vd); - } else { - btn = elm_button_add(layout); - CALL_UI_KPI("elm_object_style_set start :: style_call_sixbtn_pressed"); - elm_object_style_set(btn, "style_call_sixbtn_pressed"); - CALL_UI_KPI("elm_object_style_set done :: style_call_sixbtn_pressed"); - elm_object_part_content_set(layout, "btn_speaker", btn); - ic = elm_icon_add(layout); - elm_icon_file_set(ic, SPEAKER_ICON, NULL); - evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); - elm_icon_resizable_set(ic, 1, 1); - elm_object_part_content_set(btn, "icon", ic); - elm_object_text_set(btn, _("IDS_CALL_BUTTON_SPEAKER")); - evas_object_smart_callback_add(btn, "clicked", __vcui_spk_press_btn_cb, vd); - } - } - CALL_UI_KPI("_vcui_create_bottom_left_button done"); - return layout; -} - -/* Speaker Button DISABLED */ -Evas_Object *_vcui_create_bottom_left_button_disabled(void *data) -{ - CALL_UI_KPI("_vcui_create_bottom_left_button_disabled start"); - Evas_Object *btn; - Evas_Object *ic; - Evas_Object *layout; - Evas_Object *sw; - - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - switch (vd->type) { - case VIEW_ENDCALL_VIEW: - { - endcall_view_priv_t *priv = (endcall_view_priv_t *) vd->priv; - layout = priv->contents; - } - break; - default: - CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); - return NULL; - break; - - } - - sw = edje_object_part_swallow_get(_EDJ(layout), "btn_speaker"); - if (sw) { - edje_object_part_unswallow(_EDJ(layout), sw); - evas_object_del(sw); - } - - btn = elm_button_add(layout); - CALL_UI_KPI("elm_object_style_set start :: style_call_sixbtn_disabled"); - elm_object_style_set(btn, "style_call_sixbtn_disabled"); - CALL_UI_KPI("elm_object_style_set done :: style_call_sixbtn_disabled"); - elm_object_part_content_set(layout, "btn_speaker", btn); - ic = elm_icon_add(layout); - elm_icon_file_set(ic, SPEAKER_DISABLED_ICON, NULL); - evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); - elm_icon_resizable_set(ic, 1, 1); - elm_object_part_content_set(btn, "icon", ic); - elm_object_text_set(btn, _("IDS_CALL_BUTTON_SPEAKER")); - CALL_UI_KPI("_vcui_create_bottom_left_button_disabled done"); - return layout; -} - -Evas_Object *_vcui_create_bottom_middle_button(void *data) -{ - return NULL; -} - -Evas_Object *_vcui_create_bottom_middle_button_disabled(void *data) -{ - return NULL; -} - -Evas_Object *_vcui_create_bottom_right_button(void *data) -{ - return NULL; -} - - -Evas_Object *_vcui_create_bottom_right_button_disabled(void *data) -{ - return NULL; -} - - -Evas_Object *_vcui_create_button_bigend(void *data) -{ - CALL_UI_KPI("_vcui_create_button_bigend start"); - Evas_Object *btn; - Evas_Object *layout; - Evas_Object *sw; - - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - switch (vd->type) { - case VIEW_DIALLING_VIEW: - { - vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *) vd->priv; - layout = priv->contents; - } - break; - case VIEW_INCALL_ONECALL_VIEW: - { - incall_one_view_priv_t *priv = (incall_one_view_priv_t *) vd->priv; - layout = priv->contents; - } - break; - case VIEW_INCALL_MULTICALL_SPLIT_VIEW: - { - incall_multi_view_split_priv_t *priv = (incall_multi_view_split_priv_t *) vd->priv; - layout = priv->contents; - } - break; - case VIEW_INCALL_MULTICALL_CONF_VIEW: - { - vcui_view_multi_call_conf_priv_t *priv = (vcui_view_multi_call_conf_priv_t *) vd->priv; - layout = priv->contents; - } - break; - case VIEW_INCALL_MULTICALL_LIST_VIEW: - { - vcui_view_multi_call_list_priv_t *priv = (vcui_view_multi_call_list_priv_t *) vd->priv; - layout = priv->contents; - } - break; - default: - CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); - return NULL; - break; - - } - - sw = edje_object_part_swallow_get(_EDJ(layout), "btn_bigend"); - if (sw) { - edje_object_part_unswallow(_EDJ(layout), sw); - evas_object_del(sw); - } - - btn = elm_button_add(layout); - elm_object_part_content_set(layout, "btn_bigend", btn); - CALL_UI_KPI("elm_object_style_set start :: text_only/style_call_text_only_red"); - elm_object_style_set(btn, "text_only/style_call_text_only_red"); - CALL_UI_KPI("elm_object_style_set done :: text_only/style_call_text_only_red"); - elm_object_text_set(btn, _("IDS_CALL_SK3_END_CALL")); - evas_object_smart_callback_add(btn, "clicked", __vcui_bigend_btn_cb, vd); - CALL_UI_KPI("_vcui_create_button_bigend done"); - return layout; -} - -Evas_Object *_vcui_create_button_bigend_disabled(void *data) -{ - CALL_UI_KPI("_vcui_create_button_bigend_disabled start"); - Evas_Object *btn; - Evas_Object *layout; - Evas_Object *sw; - - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - switch (vd->type) { - case VIEW_DIALLING_VIEW: - { - vcui_view_dialing_priv_t *priv = (vcui_view_dialing_priv_t *) vd->priv; - layout = priv->contents; - } - break; - case VIEW_INCALL_ONECALL_VIEW: - { - incall_one_view_priv_t *priv = (incall_one_view_priv_t *) vd->priv; - layout = priv->contents; - } - break; - case VIEW_INCALL_MULTICALL_SPLIT_VIEW: - { - incall_multi_view_split_priv_t *priv = (incall_multi_view_split_priv_t *) vd->priv; - layout = priv->contents; - } - break; - case VIEW_INCALL_MULTICALL_CONF_VIEW: - { - vcui_view_multi_call_conf_priv_t *priv = (vcui_view_multi_call_conf_priv_t *) vd->priv; - layout = priv->contents; - } - break; - case VIEW_ENDCALL_VIEW: - { - endcall_view_priv_t *priv = (endcall_view_priv_t *) vd->priv; - layout = priv->contents; - } - break; - default: - CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); - return NULL; - break; - - } - - sw = edje_object_part_swallow_get(_EDJ(layout), "btn_bigend"); - if (sw) { - edje_object_part_unswallow(_EDJ(layout), sw); - evas_object_del(sw); - } - - btn = elm_button_add(layout); - elm_object_part_content_set(layout, "btn_bigend", btn); - CALL_UI_KPI("elm_object_style_set start :: text_only/style_call_text_only_red_disabled"); - elm_object_style_set(btn, "text_only/style_call_text_only_red_disabled"); - CALL_UI_KPI("elm_object_style_set done :: text_only/style_call_text_only_red_disabled"); - elm_object_text_set(btn, _("IDS_CALL_SK3_END_CALL")); - CALL_UI_KPI("_vcui_create_button_bigend_disabled done"); - return layout; -} - -Evas_Object *_vcui_create_conf_list_button_hold(void *data) -{ - return NULL; -} - -Evas_Object *_vcui_create_button_accept(void *data) -{ - Evas_Object *btn; - Evas_Object *layout; - Evas_Object *sw; - - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - switch (vd->type) { - case VIEW_INCOMING_VIEW: - { - incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv; - layout = priv->contents; - } - break; - default: - CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); - return NULL; - break; - - } - - sw = edje_object_part_swallow_get(_EDJ(layout), "btn_accept"); - if (sw) { - edje_object_part_unswallow(_EDJ(layout), sw); - evas_object_del(sw); - } - - btn = elm_button_add(layout); - elm_object_part_content_set(layout, "btn_accept", btn); - CALL_UI_KPI("elm_object_style_set start :: text_only/style_call_text_only_green"); - elm_object_style_set(btn, "text_only/style_call_text_only_green"); - CALL_UI_KPI("elm_object_style_set done :: text_only/style_call_text_only_green"); - elm_object_text_set(btn, _("IDS_CALL_BUTTON_ACCEPT")); - evas_object_smart_callback_add(btn, "clicked", __vcui_accept_btn_cb, vd); - - return layout; -} - -Evas_Object *_vcui_create_button_reject(void *data) -{ - Evas_Object *btn; - Evas_Object *layout; - Evas_Object *sw; - - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - switch (vd->type) { - case VIEW_INCOMING_VIEW: - { - incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv; - layout = priv->contents; - } - break; - default: - CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); - return NULL; - break; - - } - - sw = edje_object_part_swallow_get(_EDJ(layout), "btn_reject"); - if (sw) { - edje_object_part_unswallow(_EDJ(layout), sw); - evas_object_del(sw); - } - - btn = elm_button_add(layout); - elm_object_part_content_set(layout, "btn_reject", btn); - CALL_UI_KPI("elm_object_style_set start :: text_only/style_call_text_only_red"); - elm_object_style_set(btn, "text_only/style_call_text_only_red"); - CALL_UI_KPI("elm_object_style_set done :: text_only/style_call_text_only_red"); - elm_object_text_set(btn, _("IDS_CALL_BUTTON_REJECT")); - evas_object_smart_callback_add(btn, "clicked", __vcui_reject_btn_cb, vd); - - return layout; -} - -Evas_Object *_vcui_create_button_second_incoming_reject(void *data, char *text, char *part_name) -{ - Evas_Object *btn; - Evas_Object *layout; - Evas_Object *sw; - - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - switch (vd->type) { - case VIEW_INCOMING_VIEW: - { - incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv; - layout = priv->contents; - } - break; - default: - CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); - return NULL; - break; - - } - - sw = edje_object_part_swallow_get(_EDJ(layout), part_name); - if (sw) { - edje_object_part_unswallow(_EDJ(layout), sw); - evas_object_del(sw); - } - - btn = elm_button_add(layout); - elm_object_part_content_set(layout, part_name, btn); - CALL_UI_KPI("elm_object_style_set start :: multiline_text_black"); - elm_object_style_set(btn, "multiline_text_black"); - CALL_UI_KPI("elm_object_style_set done :: multiline_text_black"); - elm_object_text_set(btn, text); - evas_object_smart_callback_add(btn, "clicked", __vcui_second_incoming_reject_btn_cb, vd); - - return layout; -} - -Evas_Object *_vcui_create_button_second_incoming_hold_and_accept(void *data, char *text) -{ - return NULL; -} - -Evas_Object *_vcui_create_button_second_incoming_end_and_accept(void *data, char *text) -{ - Evas_Object *btn; - Evas_Object *layout; - Evas_Object *sw; - - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - switch (vd->type) { - case VIEW_INCOMING_VIEW: - { - incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv; - layout = priv->contents; - } - break; - default: - CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); - return NULL; - break; - - } - - sw = edje_object_part_swallow_get(_EDJ(layout), "btn_incoming4"); - if (sw) { - edje_object_part_unswallow(_EDJ(layout), sw); - evas_object_del(sw); - } - - btn = elm_button_add(layout); - elm_object_part_content_set(layout, "btn_incoming4", btn); - CALL_UI_KPI("elm_object_style_set start :: multiline_text_red"); - elm_object_style_set(btn, "multiline_text_red"); - CALL_UI_KPI("elm_object_style_set done :: multiline_text_red"); - elm_object_text_set(btn, text); - evas_object_smart_callback_add(btn, "clicked", __vcui_second_incoming_end_and_accept_btn_cb, vd); - - return layout; -} - -Evas_Object *_vcui_create_button_second_incoming_end_active_and_accept(void *data, char *text) -{ - Evas_Object *btn; - Evas_Object *layout; - Evas_Object *sw; - - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - switch (vd->type) { - case VIEW_INCOMING_VIEW: - { - incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv; - layout = priv->contents; - } - break; - default: - CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); - return NULL; - break; - - } - - sw = edje_object_part_swallow_get(_EDJ(layout), "btn_incoming2"); - if (sw) { - edje_object_part_unswallow(_EDJ(layout), sw); - evas_object_del(sw); - } - - btn = elm_button_add(layout); - elm_object_part_content_set(layout, "btn_incoming2", btn); - CALL_UI_KPI("elm_object_style_set start :: multiline_text_black"); - elm_object_style_set(btn, "multiline_text_black"); - CALL_UI_KPI("elm_object_style_set done :: multiline_text_black"); - elm_object_text_set(btn, text); - evas_object_smart_callback_add(btn, "clicked", __vcui_second_incoming_end_active_and_accept_btn_cb, vd); - - return layout; -} - -Evas_Object *_vcui_create_button_second_incoming_end_hold_and_accept(void *data, char *text) -{ - Evas_Object *btn; - Evas_Object *layout; - Evas_Object *sw; - - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - switch (vd->type) { - case VIEW_INCOMING_VIEW: - { - incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv; - layout = priv->contents; - } - break; - default: - CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); - return NULL; - break; - - } - - sw = edje_object_part_swallow_get(_EDJ(layout), "btn_incoming3"); - if (sw) { - edje_object_part_unswallow(_EDJ(layout), sw); - evas_object_del(sw); - } - - btn = elm_button_add(layout); - elm_object_part_content_set(layout, "btn_incoming3", btn); - CALL_UI_KPI("elm_object_style_set start :: multiline_text_black"); - elm_object_style_set(btn, "multiline_text_black"); - CALL_UI_KPI("elm_object_style_set done :: multiline_text_black"); - elm_object_text_set(btn, text); - evas_object_smart_callback_add(btn, "clicked", __vcui_second_incoming_end_hold_and_accept_btn_cb, vd); - - return layout; -} - -Evas_Object *_vcui_create_button_second_incoming_end_all_and_accept(void *data, char *text) -{ - Evas_Object *btn; - Evas_Object *layout; - Evas_Object *sw; - - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - switch (vd->type) { - case VIEW_INCOMING_VIEW: - { - incoming_view_priv_t *priv = (incoming_view_priv_t *) vd->priv; - layout = priv->contents; - } - break; - default: - CALL_UI_DEBUG("ERROR - wrong vd type:[%d]", vd->type); - return NULL; - break; - - } - - sw = edje_object_part_swallow_get(_EDJ(layout), "btn_incoming4"); - if (sw) { - edje_object_part_unswallow(_EDJ(layout), sw); - evas_object_del(sw); - } - - btn = elm_button_add(layout); - elm_object_part_content_set(layout, "btn_incoming4", btn); - CALL_UI_KPI("elm_object_style_set start :: multiline_text_red"); - elm_object_style_set(btn, "multiline_text_red"); - CALL_UI_KPI("elm_object_style_set done :: multiline_text_red"); - elm_object_text_set(btn, text); - evas_object_smart_callback_add(btn, "clicked", __vcui_second_incoming_end_all_and_accept_btn_cb, vd); - - return layout; -} - -Evas_Object *_vcui_show_wallpaper_image(Evas_Object *contents) -{ - return NULL; -} - -Evas_Object *_vcui_show_calling_name_bg(Evas_Object *contents) -{ - vcui_app_call_data_t *ad = _vcui_get_app_data(); - Evas_Object *sw = NULL; - Evas_Object *ic = NULL; - - sw = edje_object_part_swallow_get(_EDJ(contents), "swl_calling_name_bg"); - if (sw) { - edje_object_part_unswallow(_EDJ(contents), sw); - evas_object_del(sw); - } - - ic = elm_icon_add(ad->win_main); - elm_object_part_content_set(contents, "swl_calling_name_bg", ic); - elm_icon_file_set(ic, CALLING_NAME_BG_IMAGE, NULL); - elm_icon_fill_outside_set(ic, EINA_TRUE); - - return ic; -} - -void _vcui_delete_contact_image(Evas_Object *contents) -{ - Evas_Object *sw; - - sw = edje_object_part_swallow_get(_EDJ(contents), "swl_cid"); - if (sw) { - edje_object_part_unswallow(_EDJ(contents), sw); - evas_object_del(sw); - } -} - -Evas_Object *_vcui_show_contact_image(Evas_Object *contents, Evas_Object *win_main, char *path) -{ - Evas_Object *sw; - Evas_Object *ic; - - sw = edje_object_part_swallow_get(_EDJ(contents), "swl_cid"); - if (sw) { - edje_object_part_unswallow(_EDJ(contents), sw); - evas_object_del(sw); - } - - ic = elm_icon_add(win_main); - elm_object_part_content_set(contents, "swl_cid", ic); - elm_icon_file_set(ic, path, NULL); - - return ic; -} - -Evas_Object *_vcui_show_default_image(Evas_Object *contents, Evas_Object *win_main, char *path) -{ - Evas_Object *sw; - Evas_Object *ic; - - sw = edje_object_part_swallow_get(_EDJ(contents), "swl_cid"); - if (sw) { - edje_object_part_unswallow(_EDJ(contents), sw); - evas_object_del(sw); - } - - ic = elm_icon_add(win_main); - elm_object_part_content_set(contents, "swl_cid", ic); - elm_icon_file_set(ic, path, NULL); - - return ic; -} - -void _vcui_set_full_image(Evas_Object *contents, Evas_Object *win_main, char *img_path) -{ - Evas_Object *d_image; - Evas_Object *sw; - vcui_app_call_data_t *ad = _vcui_get_app_data(); - - CALL_UI_DEBUG("path:[%s]", img_path); - - sw = edje_object_part_swallow_get(_EDJ(contents), "swl_cid_background"); - if (sw) { - edje_object_part_unswallow(_EDJ(contents), sw); - evas_object_del(sw); - } - - d_image = elm_image_add(contents); - elm_image_file_set(d_image, img_path, NULL); - elm_object_part_content_set(contents, "swl_cid_background", d_image); -} - -static void __vcui_videocall_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALL_UI_DEBUG("__vcui_videocall_btn_cb.."); - char *tel_num = (char *)data; - - bundle *kb; - kb = bundle_create(); - bundle_add(kb, "KEY_CALL_TYPE", "MO"); - bundle_add(kb, "number", tel_num); - aul_launch_app("org.tizen.vtmain", kb); - bundle_free(kb); - - free(tel_num); - tel_num = NULL; - - _vcui_view_common_call_end_timer_reset(); - evas_object_smart_callback_del(obj, "clicked", __vcui_videocall_btn_cb); -} - -static void __vcui_voicecall_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALL_UI_DEBUG("__vcui_voicecall_btn_cb.."); - vcui_app_call_data_t *ad = _vcui_get_app_data(); - char *tel_num = (char *)data; - vcui_call_type_t call_type; - vcui_call_mo_data_t call_data; - - _vcui_view_common_timer_redial_reset(); - ad->speaker_status = EINA_FALSE; - ad->mute_status = EINA_FALSE; - - memset(&call_data, 0, sizeof(call_data)); - call_type = VCUI_CALL_TYPE_MO; - - snprintf(call_data.call_number, sizeof(call_data.call_number), "%s", tel_num); - - _vcui_engine_interface_process_mo_call(call_type, &call_data); - - free(tel_num); - tel_num = NULL; - - evas_object_smart_callback_del(obj, "clicked", __vcui_voicecall_btn_cb); -} - -static void __vcui_msg_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALL_UI_DEBUG("__vcui_msg_btn_cb.."); - char *tel_num = (char *)data; - - _vcui_doc_launch_msg_composer(NULL, tel_num); - - free(tel_num); - tel_num = NULL; - - _vcui_view_common_call_end_timer_reset(); - evas_object_smart_callback_del(obj, "clicked", __vcui_msg_btn_cb); -} - -static void __vcui_add_to_contacts_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALL_UI_DEBUG("__vcui_add_to_contacts_btn_cb.."); - vcui_app_call_data_t *ad = _vcui_get_app_data(); - voice_call_view_data_t *vd = ad->view_st[VIEW_ENDCALL_VIEW]; - char *tel_num = (char *)data; - - _vcui_doc_launch_add_to_contacts_ug(NULL, NULL, vd->layout, NULL, NULL, NULL, &(vd->app_data->ugs_array_data), tel_num); - - free(tel_num); - tel_num = NULL; - - evas_object_smart_callback_del(obj, "clicked", __vcui_add_to_contacts_btn_cb); -} - -static void __qp_end_btn_cb(void *data, Evas_Object * obj, void *event_info) -{ - CALL_UI_DEBUG(".."); - voice_call_view_data_t *vd = (voice_call_view_data_t *) data; - vcui_app_call_data_t *ad = vd->app_data; - int grp_count = 0; - - vcall_engine_get_group_count(&grp_count); - CALL_UI_DEBUG("No. of groups - %d", grp_count); - - if (grp_count > 1) { - CALL_UI_DEBUG("multi-party call"); - _vcui_engine_end_active_calls(); - } else if (grp_count == 1) { - CALL_UI_DEBUG("single-party call"); - int all_calls = 0, call_status = 0; - all_calls = _vcui_doc_get_count(); - call_status = _vcui_doc_get_show_callstatus(); - CALL_UI_DEBUG("all_calls[%d], call_status[%d]", all_calls, call_status); - - if (all_calls > 1) { - CALL_UI_DEBUG("End active conference call"); - if (call_status == CALL_HOLD) - _vcui_engine_end_held_calls(); - else - _vcui_engine_end_active_calls(); - ad->call_end_type = CALL_END_TYPE_CONF_CALL; /*conf call end screen SHOW*/ - } else if (all_calls == 1) { - CALL_UI_DEBUG("End single active call"); - _vcui_engine_end_call(); - } else { - CALL_UI_DEBUG("invalid case"); - } - } else { - CALL_UI_DEBUG("dialing/connecting screen end"); - _vcui_engine_cancel_call(); - } -} diff --git a/ui/vcui-view-incoming-lock.c b/ui/vcui-view-incoming-lock.c deleted file mode 100755 index 18ab954..0000000 --- a/ui/vcui-view-incoming-lock.c +++ /dev/null @@ -1,421 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.tizenopensource.org/license - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -#include "vcui-application.h" -#include "vcui-view-incoming-lock.h" - -#define ACCEPT_DIFF_VALUE (130) -#define ACCEPT_DIFF_VALUE_MAX (182) - -#define REJECT_DIFF_VALUE (-130) -#define REJECT_DIFF_VALUE_MAX (-182) - -static int __vcui_view_incoming_lock_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3); -static int __vcui_view_incoming_lock_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2); -static int __vcui_view_incoming_lock_onhide(voice_call_view_data_t *view_data); -static int __vcui_view_incoming_lock_onshow(voice_call_view_data_t *view_data); -static int __vcui_view_incoming_lock_ondestroy(voice_call_view_data_t *view_data); - -static voice_call_view_data_t s_view = { - .type = VIEW_INCOMING_LOCK_VIEW, - .app_data = NULL, - .layout = NULL, - .onCreate = __vcui_view_incoming_lock_oncreate, - .onUpdate = __vcui_view_incoming_lock_onupdate, - .onHide = __vcui_view_incoming_lock_onhide, - .onShow = __vcui_view_incoming_lock_onshow, - .onDestroy = __vcui_view_incoming_lock_ondestroy, - .priv = NULL, -}; - -voice_call_view_data_t *_vcui_view_incoming_lock_new(vcui_app_call_data_t *ad) -{ - - s_view.app_data = ad; - s_view.priv = calloc(1, sizeof(incoming_lock_view_priv_t)); - - if (!s_view.priv) { - CALL_UI_DEBUG("ERROR!!!!!!!!!!!"); - } - - return &s_view; -} - -static Evas_Object *__vcui_view_incoming_lock_load_edj(Evas *evas, char *edjname, const char *grpname) -{ - Evas_Object *edj; - - edj = edje_object_add(evas); - if (!edje_object_file_set(edj, edjname, grpname)) { - CALL_UI_DEBUG("ERROR!!"); - return NULL; - } - - return edj; -} - -static void __vcui_view_incoming_lock_accept_mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) -{ - voice_call_view_data_t *vd = (voice_call_view_data_t *)data; - incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; - Evas_Event_Mouse_Move *ev = event_info; - - priv->accept_start_x = ev->cur.canvas.x; -} - -static void __vcui_view_incoming_lock_accept_mouse_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) -{ - voice_call_view_data_t *vd = (voice_call_view_data_t *)data; - incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; - vcui_app_call_data_t *ad = vd->app_data; - Evas_Event_Mouse_Move *ev = event_info; - - int diff_x = 0; - - priv->accept_cur_x = ev->cur.canvas.x; - diff_x = priv->accept_cur_x - priv->accept_start_x; - - - if (diff_x >= 0) { - if (diff_x < (ACCEPT_DIFF_VALUE * ad->scale_factor)) { - evas_object_move(priv->lock_accept, diff_x, 0); - - edje_object_signal_emit(priv->lock_reject, "lock_reject,default", "prog"); - } else if (diff_x < (ACCEPT_DIFF_VALUE_MAX * ad->scale_factor)) { - evas_object_move(priv->lock_accept, diff_x, 0); - evas_object_move(priv->lock_reject, (diff_x - (ACCEPT_DIFF_VALUE * ad->scale_factor)), 0); - - edje_object_signal_emit(priv->lock_reject, "lock_reject,default", "prog"); - } else { - evas_object_move(priv->lock_accept, (ACCEPT_DIFF_VALUE_MAX * ad->scale_factor), 0); - evas_object_move(priv->lock_reject, ((ACCEPT_DIFF_VALUE_MAX * ad->scale_factor) - (ACCEPT_DIFF_VALUE * ad->scale_factor)), 0); - - edje_object_signal_emit(priv->lock_reject, "lock_reject,alpha", "prog"); - } - } -} - -static void __vcui_view_incoming_lock_accept_mouse_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) -{ - voice_call_view_data_t *vd = (voice_call_view_data_t *)data; - incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; - vcui_app_call_data_t *ad = vd->app_data; - - int diff_x = priv->accept_cur_x - priv->accept_start_x; - - if (diff_x >= (ACCEPT_DIFF_VALUE_MAX * ad->scale_factor)) { - if(_vcui_is_phonelock_status() == EINA_FALSE) - vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, VCONFKEY_IDLE_UNLOCK); - _vcui_engine_answer_call(); - } else { - evas_object_move(priv->lock_accept, 0, 0); - evas_object_move(priv->lock_reject, 0, 0); - } - -} - -static Evas_Object *__vcui_view_incoming_lock_create_button_accept(void *data) -{ - voice_call_view_data_t *vd = (voice_call_view_data_t *)data; - incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; - vcui_app_call_data_t *ad = vd->app_data; - - if(priv->lock_accept != NULL) { - evas_object_del(priv->lock_accept); - priv->lock_accept = NULL; - } - priv->lock_accept = __vcui_view_incoming_lock_load_edj(evas_object_evas_get(ad->win_main), EDJ_NAME, GRP_LOCK_ACCEPT); - evas_object_resize(priv->lock_accept, ad->root_w, ad->root_h); - - evas_object_event_callback_add(priv->lock_accept, EVAS_CALLBACK_MOUSE_DOWN, __vcui_view_incoming_lock_accept_mouse_down_cb, vd); - evas_object_event_callback_add(priv->lock_accept, EVAS_CALLBACK_MOUSE_MOVE, __vcui_view_incoming_lock_accept_mouse_move_cb, vd); - evas_object_event_callback_add(priv->lock_accept, EVAS_CALLBACK_MOUSE_UP, __vcui_view_incoming_lock_accept_mouse_up_cb, vd); - - edje_object_part_text_set(priv->lock_accept, "accept_text", _("IDS_CALL_BUTTON_ACCEPT")); - - evas_object_show(priv->lock_accept); - - return priv->lock_accept; -} - -static void __vcui_view_incoming_lock_reject_mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) -{ - voice_call_view_data_t *vd = (voice_call_view_data_t *)data; - incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; - Evas_Event_Mouse_Move *ev = event_info; - - priv->reject_start_x = ev->cur.canvas.x; -} - -static void __vcui_view_incoming_lock_reject_mouse_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) -{ - voice_call_view_data_t *vd = (voice_call_view_data_t *)data; - incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; - vcui_app_call_data_t *ad = vd->app_data; - Evas_Event_Mouse_Move *ev = event_info; - - int diff_x = 0; - - priv->reject_cur_x = ev->cur.canvas.x; - diff_x = priv->reject_cur_x - priv->reject_start_x; - - if (diff_x <= 0) { - if (diff_x > (REJECT_DIFF_VALUE * ad->scale_factor)) { - evas_object_move(priv->lock_reject, diff_x, 0); - - edje_object_signal_emit(priv->lock_accept, "lock_accept,default", "prog"); - } else if (diff_x > (REJECT_DIFF_VALUE_MAX * ad->scale_factor)) { - evas_object_move(priv->lock_reject, diff_x, 0); - evas_object_move(priv->lock_accept, (diff_x - (REJECT_DIFF_VALUE * ad->scale_factor)), 0); - - edje_object_signal_emit(priv->lock_accept, "lock_accept,default", "prog"); - } else { - evas_object_move(priv->lock_reject, (REJECT_DIFF_VALUE_MAX * ad->scale_factor), 0); - evas_object_move(priv->lock_accept, ((REJECT_DIFF_VALUE_MAX * ad->scale_factor) - (REJECT_DIFF_VALUE * ad->scale_factor)), 0); - - edje_object_signal_emit(priv->lock_accept, "lock_accept,alpha", "prog"); - - } - } -} - -static void __vcui_view_incoming_lock_reject_mouse_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) -{ - voice_call_view_data_t *vd = (voice_call_view_data_t *)data; - incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; - vcui_app_call_data_t *ad = vd->app_data; - - int diff_x = priv->reject_cur_x - priv->reject_start_x; - - if (diff_x <= (REJECT_DIFF_VALUE_MAX * ad->scale_factor)) { -/* vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, VCONFKEY_IDLE_UNLOCK);*/ - _vcui_engine_reject_call(); - } else { - evas_object_move(priv->lock_reject, 0, 0); - evas_object_move(priv->lock_accept, 0, 0); - } - -} - -static Evas_Object *__vcui_view_incoming_lock_create_button_reject(void *data) -{ - voice_call_view_data_t *vd = (voice_call_view_data_t *)data; - incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; - vcui_app_call_data_t *ad = vd->app_data; - - if(priv->lock_reject != NULL) { - evas_object_del(priv->lock_reject); - priv->lock_reject = NULL; - } - priv->lock_reject = __vcui_view_incoming_lock_load_edj(evas_object_evas_get(ad->win_main), EDJ_NAME, GRP_LOCK_REJECT); - evas_object_resize(priv->lock_reject, ad->root_w, ad->root_h); - - evas_object_event_callback_add(priv->lock_reject, EVAS_CALLBACK_MOUSE_DOWN, __vcui_view_incoming_lock_reject_mouse_down_cb, vd); - evas_object_event_callback_add(priv->lock_reject, EVAS_CALLBACK_MOUSE_MOVE, __vcui_view_incoming_lock_reject_mouse_move_cb, vd); - evas_object_event_callback_add(priv->lock_reject, EVAS_CALLBACK_MOUSE_UP, __vcui_view_incoming_lock_reject_mouse_up_cb, vd); - - edje_object_part_text_set(priv->lock_reject, "reject_text", _("IDS_CALL_BUTTON_REJECT")); - - evas_object_show(priv->lock_reject); - - return priv->lock_reject; -} - -static void __vcui_view_incoming_lock_draw_screen(voice_call_view_data_t *vd) -{ - CALL_UI_DEBUG(".."); - - incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; - Evas_Object *eo = priv->contents; - vcui_app_call_data_t *ad = vd->app_data; - - priv->now_data = _vcui_doc_get_recent_mt(); - if (priv->now_data == NULL) { - CALL_UI_DEBUG("call data is null"); - return; - } - if (priv->now_data->mo_mt_status != CALL_INCOMING) { - CALL_UI_DEBUG("it is not call_incoming."); - return; - } - - /* call image */ - if (strcmp((char *)priv->now_data->call_file_path, NOIMG_ICON) == 0) { - _vcui_show_wallpaper_image(priv->contents); - } else { - CALL_UI_DEBUG("there is caller image."); - _vcui_show_wallpaper_image(priv->contents); - priv->ic = _vcui_show_contact_image(priv->contents, vd->app_data->win_main, priv->now_data->call_file_path); - } - - /* call name (if nothing, call number) */ - if (strlen((char *)priv->now_data->call_display) == 0) { - edje_object_part_text_set(_EDJ(eo), "txt_call_name", (char *)priv->now_data->call_num); - } else { - edje_object_part_text_set(_EDJ(eo), "txt_call_name", (char *)priv->now_data->call_display); - edje_object_part_text_set(_EDJ(eo), "txt_contact_phone_type", (char *)priv->now_data->call_num); - } - - __vcui_view_incoming_lock_create_button_accept(vd); - __vcui_view_incoming_lock_create_button_reject(vd); - - ad->beffect_needed = EINA_TRUE; - - evas_object_show(eo); - -} - -static Evas_Object *__vcui_view_incoming_lock_create_contents(void *data) -{ - if (data == NULL) { - CALL_UI_DEBUG("ERROR"); - return NULL; - } - voice_call_view_data_t *vd = (voice_call_view_data_t *)data; - Evas_Object *eo; - - /* load edje */ - eo = _vcui_load_edj(vd->app_data->win_main, EDJ_NAME, GRP_MTLOCK); - if (eo == NULL) - return NULL; - - return eo; -} - -static Evas_Object *__vcui_view_incoming_lock_create_layout_main(Evas_Object *parent) -{ - if (parent == NULL) { - CALL_UI_DEBUG("ERROR"); - return NULL; - } - - Evas_Object *ly; - ly = elm_layout_add(parent); - retvm_if(ly == NULL, NULL, "Failed elm_layout_add."); - - elm_layout_theme_set(ly, "standard", "window", "integration"); - evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_win_resize_object_add(parent, ly); - - edje_object_signal_emit(_EDJ(ly), "elm,state,show,indicator", "elm"); - edje_object_signal_emit(_EDJ(ly), "elm,state,show,content", "elm"); - evas_object_show(ly); - - return ly; -} - -static int __vcui_view_incoming_lock_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3) -{ - CALL_UI_DEBUG("mt-lock view create!!"); - - vcui_app_call_data_t *ad = view_data->app_data; - incoming_lock_view_priv_t *priv = view_data->priv; - - if (!view_data->layout) { - view_data->layout = __vcui_view_incoming_lock_create_layout_main(ad->win_main); - if (view_data->layout == NULL) { - CALL_UI_DEBUG("ERROR"); - return VC_ERROR; - } - priv->contents = __vcui_view_incoming_lock_create_contents(view_data); - elm_object_part_content_set(view_data->layout, "elm.swallow.content", priv->contents); - - evas_object_name_set(priv->contents, "INCOMINGLOCKVIEW"); - CALL_UI_DEBUG("[========== INCOMINGLOCKVIEW: priv->contents Addr : [%p] ==========]", priv->contents); - - } - - __vcui_view_incoming_lock_onshow(view_data); - return VC_NO_ERROR; -} - -static int __vcui_view_incoming_lock_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2) -{ - CALL_UI_DEBUG("mt-lock view update!!"); - - __vcui_view_incoming_lock_onshow(view_data); - return VC_NO_ERROR; -} - -static int __vcui_view_incoming_lock_onhide(voice_call_view_data_t *view_data) -{ - CALL_UI_DEBUG("mt-lock view hide!!"); - - evas_object_hide(view_data->layout); - return VC_NO_ERROR; -} - -static int __vcui_view_incoming_lock_onshow(voice_call_view_data_t *view_data) -{ - CALL_UI_DEBUG("mt-lock view show!!"); - vcui_app_call_data_t *ad = _vcui_get_app_data(); - int result = 0; - - __vcui_view_incoming_lock_draw_screen(view_data); - - evas_object_hide(view_data->layout); - evas_object_show(view_data->layout); - _vcui_app_win_set_noti_type(EINA_TRUE); - - return VC_NO_ERROR; -} - -static int __vcui_view_incoming_lock_ondestroy(voice_call_view_data_t *view_data) -{ - CALL_UI_DEBUG("mt-lock view destroy!!"); - - vcui_app_call_data_t *ad = _vcui_get_app_data(); - - voice_call_view_data_t *vd = ad->view_st[VIEW_INCOMING_LOCK_VIEW]; - incoming_lock_view_priv_t *priv = (incoming_lock_view_priv_t *)vd->priv; - - if (_vcui_is_idle_lock() == CALL_LOCK) - _vcui_app_win_set_noti_type(EINA_TRUE); - else - _vcui_app_win_set_noti_type(EINA_FALSE); - - ad->bmute_ringtone = EINA_FALSE; - if (priv != NULL) { - if (priv->lock_accept) { - evas_object_del(priv->lock_accept); - priv->lock_accept = NULL; - } - if (priv->lock_reject) { - evas_object_del(priv->lock_reject); - priv->lock_reject = NULL; - } - if (priv->contents) { - evas_object_del(priv->contents); - priv->contents = NULL; - } - - free(priv); - priv = NULL; - } - - if (vd->layout != NULL) { - evas_object_hide(vd->layout); - evas_object_del(vd->layout); - vd->layout = NULL; - } - - ad->view_st[VIEW_INCOMING_LOCK_VIEW] = NULL; - - _vcui_cache_flush(); - - return VC_NO_ERROR; -} diff --git a/ui/vcui-view-incoming.c b/ui/vcui-view-incoming.c deleted file mode 100755 index bd924b5..0000000 --- a/ui/vcui-view-incoming.c +++ /dev/null @@ -1,350 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.tizenopensource.org/license - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -#include "vcui-application.h" -#include "vcui-view-incoming.h" -#include "vcui-view-elements.h" - -static int __vcui_view_incoming_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3); -static int __vcui_view_incoming_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2); -static int __vcui_view_incoming_onhide(voice_call_view_data_t *view_data); -static int __vcui_view_incoming_onshow(voice_call_view_data_t *view_data); -static int __vcui_view_incoming_destroy(voice_call_view_data_t *view_data); - -static voice_call_view_data_t s_view = { - .type = VIEW_INCOMING_VIEW, - .app_data = NULL, - .layout = NULL, - .onCreate = __vcui_view_incoming_oncreate, - .onUpdate = __vcui_view_incoming_onupdate, - .onHide = __vcui_view_incoming_onhide, - .onShow = __vcui_view_incoming_onshow, - .onDestroy = __vcui_view_incoming_destroy, - .priv = NULL, -}; - -voice_call_view_data_t *_vcui_view_incoming_new(vcui_app_call_data_t *ad) -{ - - s_view.app_data = ad; - s_view.priv = calloc(1, sizeof(incoming_view_priv_t)); - - if (!s_view.priv) { - CALL_UI_DEBUG("ERROR!!!!!!!!!!! "); - } - - return &s_view; -} - -static void __vcui_view_incoming_clear_button(Evas_Object *eo) -{ - CALL_UI_DEBUG(".."); - Evas_Object *sw; - sw = edje_object_part_swallow_get(_EDJ(eo), "btn_accept"); - if (sw) { - edje_object_part_unswallow(_EDJ(eo), sw); - evas_object_del(sw); - } - sw = edje_object_part_swallow_get(_EDJ(eo), "btn_reject"); - if (sw) { - edje_object_part_unswallow(_EDJ(eo), sw); - evas_object_del(sw); - } - sw = edje_object_part_swallow_get(_EDJ(eo), "btn_incoming1"); - if (sw) { - edje_object_part_unswallow(_EDJ(eo), sw); - evas_object_del(sw); - } - sw = edje_object_part_swallow_get(_EDJ(eo), "btn_incoming2"); - if (sw) { - edje_object_part_unswallow(_EDJ(eo), sw); - evas_object_del(sw); - } - sw = edje_object_part_swallow_get(_EDJ(eo), "btn_incoming3"); - if (sw) { - edje_object_part_unswallow(_EDJ(eo), sw); - evas_object_del(sw); - } - sw = edje_object_part_swallow_get(_EDJ(eo), "btn_incoming4"); - if (sw) { - edje_object_part_unswallow(_EDJ(eo), sw); - evas_object_del(sw); - } -} - -static void __vcui_view_incoming_draw_screen(Evas_Object *eo, void *data) -{ - CALL_UI_DEBUG(".."); - - voice_call_view_data_t *vd = (voice_call_view_data_t *)data; - incoming_view_priv_t *priv = (incoming_view_priv_t *)vd->priv; - vcui_app_call_data_t *ad = vd->app_data; - int hold_cnt = 0; - int active_cnt = 0; - - /* ============ Check valid Evas Object ============= */ - int valid = 0; - valid = _vcui_check_valid_eo(priv->contents, "INCOMINGVIEW"); - if (valid == -1) { - CALL_UI_DEBUG("[========== INCOMINGVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents); - return; - } - /* ============ Check valid Evas Object ============= */ - - if (strcmp((char *)priv->now_data->call_file_path, NOIMG_ICON) == 0) { - _vcui_show_wallpaper_image(priv->contents); - _vcui_show_calling_name_bg(priv->contents); - } else { - CALL_UI_DEBUG("there is caller image."); - _vcui_show_wallpaper_image(priv->contents); - _vcui_show_calling_name_bg(priv->contents); - priv->ic = _vcui_show_contact_image(priv->contents, vd->app_data->win_main, priv->now_data->call_file_path); - } - - /* call name (if nothing, call number) */ - if (strlen((char *)priv->now_data->call_display) == 0) { - edje_object_part_text_set(_EDJ(eo), "txt_call_name", (char *)priv->now_data->call_num); - } else { - edje_object_part_text_set(_EDJ(eo), "txt_call_name", (char *)priv->now_data->call_display); - edje_object_part_text_set(_EDJ(eo), "txt_contact_phone_type", (char *)priv->now_data->call_num); - } - - active_cnt = _vcui_doc_get_count_unhold(); - hold_cnt = _vcui_doc_get_count_hold(); - CALL_UI_DEBUG("unhold:[%d], hold:[%d]",active_cnt, hold_cnt ); - __vcui_view_incoming_clear_button(priv->contents); /* to change 2nd incoming call view -> normal incoming call view. */ - if (active_cnt == 0) { /* no active call - single mt call or 2nd call(1hold) */ - CALL_UI_DEBUG("normal incoming call"); - - _vcui_create_button_accept(vd); - _vcui_create_button_reject(vd); - - ad->beffect_needed = EINA_TRUE; - } else if (hold_cnt == 0) { /* active call & no hold call - 2nd call(1active) */ - CALL_UI_DEBUG("2nd incoming call-1"); - char text[256] = { 0, }; - _vcui_create_button_second_incoming_reject(vd, _("IDS_CALL_BUTTON_REJECT"), "btn_incoming3"); - memset(text, 0x00, 256); - snprintf(text, 256, "%s + %s", _("IDS_CALL_BODY_HOLD_ACTIVE_CALL_ABB"), _("IDS_CALL_BUTTON_ACCEPT")); - _vcui_create_button_second_incoming_hold_and_accept(vd, text); - memset(text, 0x00, 256); - snprintf(text, 256, "%s + %s", _("IDS_CALL_POP_END_ACTIVE_CALL"), _("IDS_CALL_BUTTON_ACCEPT")); - _vcui_create_button_second_incoming_end_and_accept(vd, text); - } else if (active_cnt == 1 && hold_cnt == 1) { /* 1active & 1hold */ - CALL_UI_DEBUG("2nd incoming call - 1ACT & 1HLD"); - char text[256] = { 0, }; - _vcui_create_button_second_incoming_reject(vd, _("IDS_CALL_BUTTON_REJECT"), "btn_incoming1"); - - memset(text, 0x00, 256); - snprintf(text, 256, "%s + %s", _("IDS_CALL_POP_END_ACTIVE_CALL"), _("IDS_CALL_BUTTON_ACCEPT")); - _vcui_create_button_second_incoming_end_active_and_accept(vd, text); - - memset(text, 0x00, 256); - snprintf(text, 256, "%s + %s", _("IDS_CALL_OPT_END_HELD_CALL"), _("IDS_CALL_BUTTON_ACCEPT")); - _vcui_create_button_second_incoming_end_hold_and_accept(vd, text); - - memset(text, 0x00, 256); - snprintf(text, 256, "%s + %s", _("IDS_CALL_OPT_END_ALL_CALLS"), _("IDS_CALL_BUTTON_ACCEPT")); - _vcui_create_button_second_incoming_end_all_and_accept(vd, text); - } else if (active_cnt >= 1 && hold_cnt == 1) { /* 1+active & 1hold */ - CALL_UI_DEBUG("2nd incoming call - [1+]ACT & 1HLD"); - char text[256] = { 0, }; - _vcui_create_button_second_incoming_reject(vd, _("IDS_CALL_BUTTON_REJECT"), "btn_incoming1"); - - memset(text, 0x00, 256); - snprintf(text, 256, "%s(%d) + %s", _("IDS_CALL_POP_END_ACTIVE_CALL"), active_cnt, _("IDS_CALL_BUTTON_ACCEPT")); - _vcui_create_button_second_incoming_end_active_and_accept(vd, text); - - memset(text, 0x00, 256); - snprintf(text, 256, "%s + %s", _("IDS_CALL_OPT_END_HELD_CALL"), _("IDS_CALL_BUTTON_ACCEPT")); - _vcui_create_button_second_incoming_end_hold_and_accept(vd, text); - - memset(text, 0x00, 256); - snprintf(text, 256, "%s + %s", _("IDS_CALL_OPT_END_ALL_CALLS"), _("IDS_CALL_BUTTON_ACCEPT")); - _vcui_create_button_second_incoming_end_all_and_accept(vd, text); - } else if (active_cnt == 1 && hold_cnt >= 1) { /* 1active & 1+hold */ - CALL_UI_DEBUG("2nd incoming call - 1ACT & [1+]HLD"); - char text[256] = { 0, }; - _vcui_create_button_second_incoming_reject(vd, _("IDS_CALL_BUTTON_REJECT"), "btn_incoming1"); - - memset(text, 0x00, 256); - snprintf(text, 256, "%s + %s", _("IDS_CALL_POP_END_ACTIVE_CALL"), _("IDS_CALL_BUTTON_ACCEPT")); - _vcui_create_button_second_incoming_end_active_and_accept(vd, text); - - memset(text, 0x00, 256); - snprintf(text, 256, "%s(%d) + %s", _("IDS_CALL_OPT_END_HELD_CALL"), hold_cnt, _("IDS_CALL_BUTTON_ACCEPT")); - _vcui_create_button_second_incoming_end_hold_and_accept(vd, text); - - memset(text, 0x00, 256); - snprintf(text, 256, "%s + %s", _("IDS_CALL_OPT_END_ALL_CALLS"), _("IDS_CALL_BUTTON_ACCEPT")); - _vcui_create_button_second_incoming_end_all_and_accept(vd, text); - } - CALL_UI_DEBUG("unhold:[%d], hold:[%d]", active_cnt, hold_cnt); - - evas_object_show(eo); -} - -static Evas_Object *__vcui_view_incoming_create_contents(void *data) -{ - voice_call_view_data_t *vd = (voice_call_view_data_t *)data; - Evas_Object *eo = NULL; - - /* load edje */ - eo = _vcui_load_edj(vd->app_data->win_main, EDJ_NAME, GRP_MTVIEW); - if (eo == NULL) - return NULL; - - return eo; -} - -static Evas_Object *__vcui_view_incoming_create_layout_main(Evas_Object *parent) -{ - if (parent == NULL) { - CALL_UI_DEBUG("ERROR"); - return NULL; - } - - Evas_Object *ly; - ly = elm_layout_add(parent); - retvm_if(ly == NULL, NULL, "Failed elm_layout_add."); - - elm_layout_theme_set(ly, "standard", "window", "integration"); - evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_win_resize_object_add(parent, ly); - - edje_object_signal_emit(_EDJ(ly), "elm,state,show,indicator", "elm"); - edje_object_signal_emit(_EDJ(ly), "elm,state,show,content", "elm"); - evas_object_show(ly); - - return ly; -} - -static int __vcui_view_incoming_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3) -{ - CALL_UI_DEBUG("incoming view create!!"); - - vcui_app_call_data_t *ad = view_data->app_data; - incoming_view_priv_t *priv = view_data->priv; - - if (!view_data->layout) { - - view_data->layout = __vcui_view_incoming_create_layout_main(ad->win_main); - if (view_data->layout == NULL) { - CALL_UI_DEBUG("ERROR"); - return VC_ERROR; - } - - priv->contents = __vcui_view_incoming_create_contents(view_data); - elm_object_part_content_set(view_data->layout, "elm.swallow.content", priv->contents); - - evas_object_name_set(priv->contents, "INCOMINGVIEW"); - CALL_UI_DEBUG("[========== INCOMINGVIEW: priv->contents Addr : [%p] ==========]", priv->contents); - - } - - __vcui_view_incoming_onshow(view_data); - return VC_NO_ERROR; -} - -static int __vcui_view_incoming_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2) -{ - CALL_UI_DEBUG("incoming view update"); - incoming_view_priv_t *priv = view_data->priv; - if (priv->bdont_refresh == EINA_TRUE) { - return VC_NO_ERROR; - } - priv->bselected_btn = EINA_FALSE; - __vcui_view_incoming_onshow(view_data); - return VC_NO_ERROR; -} - -static int __vcui_view_incoming_onhide(voice_call_view_data_t *view_data) -{ - CALL_UI_DEBUG("incoming view hide"); - - int valid = 0; - incoming_view_priv_t *priv = (incoming_view_priv_t *)view_data->priv; - valid = _vcui_check_valid_eo(priv->contents, "INCOMINGVIEW"); - - if (valid == -1) { - CALL_UI_DEBUG("[========== INCOMINGVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents); - } - - evas_object_hide(view_data->layout); - return VC_NO_ERROR; -} - -static int __vcui_view_incoming_onshow(voice_call_view_data_t *view_data) -{ - CALL_UI_DEBUG("incoming view show"); - vcui_app_call_data_t *ad = _vcui_get_app_data(); - int result = 0; - - incoming_view_priv_t *priv = view_data->priv; - priv->now_data = _vcui_doc_get_recent_mt(); - if (priv->now_data == NULL) { - CALL_UI_DEBUG("call data is null"); - return VC_ERROR; - } - - __vcui_view_incoming_draw_screen(priv->contents, view_data); - - evas_object_hide(view_data->layout); - evas_object_show(view_data->layout); - - _vcui_app_win_set_noti_type(EINA_TRUE); - - return VC_NO_ERROR; -} - -static int __vcui_view_incoming_destroy(voice_call_view_data_t *view_data) -{ - CALL_UI_DEBUG("incoming view destroy"); - - vcui_app_call_data_t *ad = _vcui_get_app_data(); - - voice_call_view_data_t *vd = ad->view_st[VIEW_INCOMING_VIEW]; - incoming_view_priv_t *priv = (incoming_view_priv_t *)vd->priv; - - if (_vcui_is_idle_lock() == CALL_LOCK) - _vcui_app_win_set_noti_type(EINA_TRUE); - else - _vcui_app_win_set_noti_type(EINA_FALSE); - - ad->bmute_ringtone = EINA_FALSE; - - if (priv != NULL) { - if (priv->contents) { - evas_object_del(priv->contents); - priv->contents = NULL; - } - - free(priv); - priv = NULL; - } - - if (vd->layout != NULL) { - evas_object_hide(vd->layout); - evas_object_del(vd->layout); - vd->layout = NULL; - } - - ad->view_st[VIEW_INCOMING_VIEW] = NULL; - _vcui_cache_flush(); - - return VC_NO_ERROR; -} diff --git a/ui/vcui-view-keypad.c b/ui/vcui-view-keypad.c deleted file mode 100755 index c2294f6..0000000 --- a/ui/vcui-view-keypad.c +++ /dev/null @@ -1,438 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.tizenopensource.org/license - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -#include "vcui-application.h" -#include "vcui-view-keypad.h" -#include "vcui-view-common.h" - -static int _vcui_view_keypad_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3); -static int _vcui_view_keypad_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2); -static int _vcui_view_keypad_onhide(voice_call_view_data_t *view_data); -static int _vcui_view_keypad_onshow(voice_call_view_data_t *view_data); -static int _vcui_view_keypad_ondestroy(voice_call_view_data_t *view_data); -static Evas_Object *__vcui_view_keypad_create_single_line_scrolled_entry(void *content); - -static voice_call_view_data_t s_view = { - .type = VIEW_INCALL_KEYPAD_VIEW, - .app_data = NULL, - .layout = NULL, - .onCreate = _vcui_view_keypad_oncreate, - .onUpdate = _vcui_view_keypad_onupdate, - .onHide = _vcui_view_keypad_onhide, - .onShow = _vcui_view_keypad_onshow, - .onDestroy = _vcui_view_keypad_ondestroy, - .priv = NULL, -}; - -static void __vcui_view_keypad_on_keypad_down(void *data, Evas_Object *obj, const char *emission, const char *source) -{ - CALL_UI_DEBUG("source(%s)",source); - - char before_dest[KEYPAD_STR_DEFINE_OPEN_SIZE+KEYPAD_ENTRY_DISP_DATA_SIZE+1] = { 0, }; - char *sub_buffer_pointer = NULL; - char entry_dest[KEYPAD_ENTRY_SET_DATA_SIZE+1] = { 0, }; - char *keypad_source; - voice_call_view_data_t *vd = (voice_call_view_data_t *)data; - vcui_view_keypad_priv_t *priv = NULL; - - if (NULL == vd) { - CALL_UI_DEBUG("\n data is null \n"); - return; - } - priv = (vcui_view_keypad_priv_t *)vd->priv; - - if (strlen(source) >= KEYPAD_ENTRY_DISP_DATA_SIZE) { - CALL_UI_DEBUG("strlen(source) >= DATA_BUF_SIZE(%d)",KEYPAD_ENTRY_DISP_DATA_SIZE); - return; - } - - if (strcmp(source, "star") == 0) { - keypad_source = "*"; - } else if (strcmp(source, "sharp") == 0) { - keypad_source = "#"; - } else { - keypad_source = (char *)source; - } - - _vcui_engine_interface_send_dtmf_number(keypad_source[0]); - - if (strlen(priv->entry_disp_data) == KEYPAD_ENTRY_DISP_DATA_SIZE) { - sub_buffer_pointer = &priv->entry_disp_data[1]; - - snprintf(priv->entry_disp_data, sizeof(priv->entry_disp_data), - "%s", sub_buffer_pointer); - CALL_UI_DEBUG("priv->entry_disp_data after change [%s]", priv->entry_disp_data); - } - - priv->entry_disp_data[priv->data_len] = keypad_source[0]; - if(priv->data_len < (KEYPAD_ENTRY_DISP_DATA_SIZE-1)) { - priv->data_len++; - } - - snprintf(before_dest, sizeof(before_dest), - "%s", - MAX_DIAL_NUMBER_FONT_SIZE, priv->entry_disp_data); - - snprintf(entry_dest, sizeof(entry_dest), - "%s", - before_dest); - - CALL_UI_DEBUG("entry_dest [%s]", priv->entry_disp_data); - elm_entry_entry_set(priv->entry, entry_dest); - elm_entry_cursor_end_set(priv->entry); -} - -static void __vcui_view_keypad_hide_btn_effect_done(void *data, Evas_Object *obj, const char *emission, const char *source) -{ - CALL_UI_DEBUG(".."); - - _vcui_view_auto_change(); -} - -static void __vcui_view_keypad_hide_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALL_UI_DEBUG(".."); - - voice_call_view_data_t *vd = (voice_call_view_data_t *)data; - vcui_view_keypad_priv_t *priv = (vcui_view_keypad_priv_t *)vd->priv; - - edje_object_signal_emit(_EDJ(priv->contents), "HIDE", "KEYPADBTN"); - edje_object_signal_callback_add(_EDJ(priv->contents), "DONE", "HIDEKEYPAD", __vcui_view_keypad_hide_btn_effect_done, data); -} - -static void __vcui_view_keypad_end_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALL_UI_DEBUG(".."); - - if (_vcui_doc_get_count_unhold() == 1) { - _vcui_engine_end_call(); - } else if (_vcui_doc_get_count_unhold() > 1) { - _vcui_engine_end_active_calls(); - } else if (_vcui_doc_get_count_hold() == 1) { - _vcui_engine_end_call(); - } else if (_vcui_doc_get_count_hold() > 1) { - _vcui_engine_end_held_calls(); - } else { - CALL_UI_DEBUG("call data is null"); - return; - } - -} - -voice_call_view_data_t *_vcui_view_keypad_new(vcui_app_call_data_t *ad) -{ - - s_view.app_data = ad; - s_view.priv = calloc(1, sizeof(vcui_view_keypad_priv_t)); - - if (!s_view.priv) { - CALL_UI_DEBUG("ERROR!!!!!!!!!!!"); - } - - return &s_view; -} - -static Evas_Object *__vcui_view_keypad_create_hide_button(void *data) -{ - Evas_Object *btn; - Evas_Object *layout; - Evas_Object *sw; - - voice_call_view_data_t *vd = (voice_call_view_data_t *)data; - vcui_view_keypad_priv_t *priv = (vcui_view_keypad_priv_t *)vd->priv; - layout = priv->contents; - - sw = edje_object_part_swallow_get(_EDJ(layout), "btn_hide"); - if (sw) { - edje_object_part_unswallow(_EDJ(layout), sw); - evas_object_del(sw); - } - - btn = elm_button_add(layout); - elm_object_part_content_set(layout, "btn_hide", btn); - elm_object_style_set(btn, "text_only/style_keypad_hide_button"); - elm_object_text_set(btn, _("IDS_CALL_BUTTON2_HIDE_KEYPAD")); - evas_object_smart_callback_add(btn, "clicked", __vcui_view_keypad_hide_btn_cb, vd); - - return layout; -} - -static Evas_Object *__vcui_view_keypad_create_end_call(void *data) -{ - Evas_Object *btn; - Evas_Object *layout; - Evas_Object *sw; - - voice_call_view_data_t *vd = (voice_call_view_data_t *)data; - vcui_view_keypad_priv_t *priv = (vcui_view_keypad_priv_t *)vd->priv; - layout = priv->contents; - - sw = edje_object_part_swallow_get(_EDJ(layout), "btn_end"); - if (sw) { - edje_object_part_unswallow(_EDJ(layout), sw); - evas_object_del(sw); - } - - btn = elm_button_add(layout); - elm_object_part_content_set(layout, "btn_end", btn); - elm_object_style_set(btn, "text_only/style_keypad_end_button"); - elm_object_text_set(btn, _("IDS_CALL_SK3_END_CALL")); - evas_object_smart_callback_add(btn, "clicked", __vcui_view_keypad_end_btn_cb, vd); - - return layout; -} - -static Evas_Object *__vcui_view_keypad_create_contents(void *data) -{ - if (data == NULL) { - CALL_UI_DEBUG("ERROR"); - return NULL; - } - voice_call_view_data_t *vd = (voice_call_view_data_t *)data; - - Evas_Object *eo; - - /* load edje */ - eo = _vcui_load_edj(vd->app_data->win_main, EDJ_NAME, GRP_KEYPAD); - if (eo == NULL) - return NULL; - - return eo; -} - -static Evas_Object *__vcui_view_keypad_create_layout_main(Evas_Object *parent) -{ - if (parent == NULL) { - CALL_UI_DEBUG("ERROR"); - return NULL; - } - Evas_Object *ly; - - ly = elm_layout_add(parent); - retvm_if(ly == NULL, NULL, "Failed elm_layout_add."); - - elm_layout_theme_set(ly, "standard", "window", "integration"); - evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_win_resize_object_add(parent, ly); - - edje_object_signal_emit(_EDJ(ly), "elm,state,show,indicator", "elm"); - edje_object_signal_emit(_EDJ(ly), "elm,state,show,content", "elm"); - evas_object_show(ly); - - return ly; -} - -static void __vcui_view_keypad_draw_keypad_screen(Evas_Object *eo, void *data) -{ - CALL_UI_DEBUG(".."); - - int valid = 0; - voice_call_view_data_t *vd = (voice_call_view_data_t *)data; - vcui_view_keypad_priv_t *priv = (vcui_view_keypad_priv_t *)vd->priv; - - _vcui_show_wallpaper_image(priv->contents); - - if (_vcui_doc_get_count_unhold() == 1) { - priv->now_data = _vcui_doc_get_last_status(CALL_UNHOLD); - if (NULL == priv->now_data) { - CALL_UI_DEBUG("priv->now_data is NULL \n"); - return; - } - if (strlen((char *)priv->now_data->call_display) == 0) { - edje_object_part_text_set(_EDJ(priv->contents), "txt_call_name", (char *)priv->now_data->call_num); - } else { - edje_object_part_text_set(_EDJ(priv->contents), "txt_call_name", (char *)priv->now_data->call_display); - } - } else if (_vcui_doc_get_count_unhold() > 1) { - priv->now_data = _vcui_doc_get_last_status(CALL_UNHOLD); - edje_object_part_text_set(_EDJ(priv->contents), "txt_call_name", _("IDS_CALL_OPT_CONFERENCE_CALL")); - } else if (_vcui_doc_get_count_hold() == 1) { - priv->now_data = _vcui_doc_get_last_status(CALL_HOLD); - if (NULL == priv->now_data) { - CALL_UI_DEBUG("priv->now_data is NULL \n"); - return; - } - - if (strlen((char *)priv->now_data->call_display) == 0) { - edje_object_part_text_set(_EDJ(priv->contents), "txt_call_name", (char *)priv->now_data->call_num); - } else { - edje_object_part_text_set(_EDJ(priv->contents), "txt_call_name", (char *)priv->now_data->call_display); - } - } else if (_vcui_doc_get_count_hold() > 1) { - priv->now_data = _vcui_doc_get_last_status(CALL_HOLD); - edje_object_part_text_set(_EDJ(priv->contents), "txt_call_name", _("IDS_CALL_OPT_CONFERENCE_CALL")); - } else { - CALL_UI_DEBUG("call data is null"); - return; - } - - valid = _vcui_check_valid_eo(priv->contents, "KEYPADVIEW"); - if (valid == -1) { - CALL_UI_DEBUG("[========== KEYPADVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents); - return; - } - - if (NULL == priv->now_data) { - CALL_UI_DEBUG("\n priv->now_data is NULL \n"); - return; - } - _vcui_view_common_set_each_time(priv->now_data->start_time); - - __vcui_view_keypad_create_hide_button(vd); - __vcui_view_keypad_create_end_call(vd); - - edje_object_signal_emit(_EDJ(priv->contents), "SHOW", "KEYPADBTN"); - - evas_object_show(priv->contents); - -} - -static int _vcui_view_keypad_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3) -{ - CALL_UI_DEBUG("keypad view create!!"); - - vcui_app_call_data_t *ad = view_data->app_data; - vcui_view_keypad_priv_t *priv = view_data->priv; - - if (!view_data->layout) { - /* Create Main Layout */ - view_data->layout = __vcui_view_keypad_create_layout_main(ad->win_main); - if (view_data->layout == NULL) { - CALL_UI_DEBUG("ERROR"); - return VC_ERROR; - } - - /* Create Contents */ - priv->contents = __vcui_view_keypad_create_contents(view_data); - elm_object_part_content_set(view_data->layout, "elm.swallow.content", priv->contents); - - priv->entry = __vcui_view_keypad_create_single_line_scrolled_entry(priv->contents); - memset(priv->entry_disp_data, 0x0, sizeof(priv->entry_disp_data)); - priv->data_len = 0; - - edje_object_signal_callback_add(_EDJ(priv->contents), - "pad_down", "*", - __vcui_view_keypad_on_keypad_down, - view_data); - - edje_object_part_swallow(_EDJ(priv->contents), "textblock/textarea", priv->entry); - evas_object_name_set(priv->contents, "KEYPADVIEW"); - CALL_UI_DEBUG("[========== KEYPADVIEW: priv->contents Addr : [%p] ==========]", priv->contents); - } - - _vcui_view_keypad_onshow(view_data); - return VC_NO_ERROR; -} - -static int _vcui_view_keypad_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2) -{ - CALL_UI_DEBUG("keypad view update!!"); - - _vcui_view_keypad_onshow(view_data); - return VC_NO_ERROR; -} - -static int _vcui_view_keypad_onhide(voice_call_view_data_t *view_data) -{ - CALL_UI_DEBUG("keypad view hide!!"); - int valid = 0; - vcui_view_keypad_priv_t *priv = (vcui_view_keypad_priv_t *)view_data->priv; - - valid = _vcui_check_valid_eo(priv->contents, "KEYPADVIEW"); - if (valid == -1) { - CALL_UI_DEBUG("[========== KEYPADVIEW : Invalid Evas Object, priv->contents : %p ==========]", priv->contents); - } - - evas_object_hide(view_data->layout); - return VC_NO_ERROR; -} - -static int _vcui_view_keypad_onshow(voice_call_view_data_t *view_data) -{ - CALL_UI_DEBUG("keypad view show!!"); - - vcui_view_keypad_priv_t *priv = view_data->priv; - - __vcui_view_keypad_draw_keypad_screen(priv->contents, view_data); - - evas_object_hide(view_data->layout); - evas_object_show(view_data->layout); - elm_object_focus_set(priv->entry, EINA_TRUE); - return VC_NO_ERROR; -} - -static int _vcui_view_keypad_ondestroy(voice_call_view_data_t *view_data) -{ - CALL_UI_DEBUG("keypad view destroy!!"); - - vcui_app_call_data_t *ad = _vcui_get_app_data(); - - voice_call_view_data_t *vd = ad->view_st[VIEW_INCALL_KEYPAD_VIEW]; - vcui_view_keypad_priv_t *priv = (vcui_view_keypad_priv_t *)vd->priv; - - if (priv != NULL) { - if (priv->contents) { - evas_object_del(priv->contents); - priv->contents = NULL; - } - - free(priv); - priv = NULL; - } - - if (vd->layout != NULL) { - evas_object_hide(vd->layout); - evas_object_del(vd->layout); - vd->layout = NULL; - } - - ad->view_st[VIEW_INCALL_KEYPAD_VIEW] = NULL; - - _vcui_cache_flush(); - - return VC_NO_ERROR; -} - -static Evas_Object *__vcui_view_keypad_create_single_line_scrolled_entry(void *content) -{ - Evas_Object *en; - - if (content == NULL) { - CALL_UI_DEBUG("content is NULL!"); - return NULL; - } - - en = elm_entry_add(content); - elm_entry_scrollable_set(en, EINA_TRUE); - - elm_entry_select_all(en); - elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, - ELM_SCROLLER_POLICY_AUTO); - - elm_entry_bounce_set(en, EINA_FALSE, EINA_FALSE); - elm_entry_line_wrap_set(en, ELM_WRAP_WORD); - elm_entry_input_panel_enabled_set(en, EINA_FALSE); - elm_entry_single_line_set(en, EINA_TRUE); - elm_entry_cursor_end_set(en); - evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, - EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL); - - evas_object_show(en); - - return en; -} diff --git a/ui/vcui-view-layout-hd.h b/ui/vcui-view-layout-hd.h deleted file mode 100755 index 557ddf0..0000000 --- a/ui/vcui-view-layout-hd.h +++ /dev/null @@ -1,754 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.tizenopensource.org/license - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -#ifndef __VCUI_VIEW_LAYOUT_HD__ -#define __VCUI_VIEW_LAYOUT_HD__ - -#define COLOR_DEFAULT 0 0 0 255 -#define COLOR_BG_ALPHA 0 0 0 0 -#define COLOR_BG_FOR_HELD_CALL_DIM 0 0 0 150 - -/*#define BTN_EDGE_W 9*/ - -/* - * HD GUI Widget Dimensions - * In Portrait mode - */ -#define MAIN_SCREEN_W 720 -#define MAIN_SCREEN_H 1280 - -#define INDICATOR_HEIGHT 50 -#define NAVIFRAME_TITLE_HEIGHT 100 - -#define MAIN_NAVIFRAME_W MAIN_SCREEN_W -#define MAIN_NAVIFRAME_H (MAIN_SCREEN_H-INDICATOR_HEIGHT-NAVIFRAME_TITLE_HEIGHT) -#define NAVIFRAME_T_PAD 50 - -#define QP_WIN_W MAIN_SCREEN_W -#define QP_WIN_H 166 /*approx*/ - -#define DIALING_STATUS_L_PAD 0 -#define DIALING_STATUS_WIDTH MAIN_SCREEN_W -#define DIALING_STATUS_T_PAD 687 -#define DIALING_STATUS_HEIGHT 52 - -#define CALL_NAME_L_PAD 20 -#define CALL_NAME_WIDTH 680 -#define CALL_NAME_T_PAD 83 -#define CALL_NAME_HEIGHT 80 - -#define CALL_NUMBER_T_GAP 6 - -#define CALL_NUMBER_L_PAD CALL_NAME_L_PAD -#define CALL_NUMBER_WIDTH CALL_NAME_WIDTH -#define CALL_NUMBER_T_PAD (CALL_NAME_T_PAD+CALL_NAME_HEIGHT+CALL_NUMBER_T_GAP) -#define CALL_NUMBER_HEIGHT 52 - -#define CALLER_ID_L_PAD 208 -#define CALLER_ID_WIDTH 304 -#define CALLER_ID_T_PAD 268 -#define CALLER_ID_HEIGHT 304 - -#define BACKGROUND_CID_L_PAD 0 -#define BACKGROUND_CID_WIDTH MAIN_SCREEN_W -#define BACKGROUND_CID_T_PAD 0 -#define BACKGROUND_CID_HEIGHT MAIN_SCREEN_H - -#define MT_CALLING_NAME_BG_WIDTH MAIN_SCREEN_W -#define MT_CALLING_NAME_BG_HEIGHT 590 - -#define ACCEPT_BTN_L_PAD 40 -#define ACCEPT_BTN_WIDTH 300 -#define ACCEPT_BTN_T_PAD 992 -#define ACCEPT_BTN_HEIGHT 112 - -#define REJECT_BTN_L_GAP 40 - -#define REJECT_BTN_L_PAD (ACCEPT_BTN_L_PAD+ACCEPT_BTN_WIDTH+REJECT_BTN_L_GAP) -#define REJECT_BTN_WIDTH ACCEPT_BTN_WIDTH -#define REJECT_BTN_T_PAD ACCEPT_BTN_T_PAD -#define REJECT_BTN_HEIGHT ACCEPT_BTN_HEIGHT - -#define REJECT_W_MSG_BTN_T_GAP 40 - -#define REJECT_W_MSG_BTN_L_PAD ACCEPT_BTN_L_PAD -#define REJECT_W_MSG_BTN_WIDTH 640 -#define REJECT_W_MSG_BTN_T_PAD (ACCEPT_BTN_T_PAD+ACCEPT_BTN_HEIGHT+REJECT_W_MSG_BTN_T_GAP) -#define REJECT_W_MSG_BTN_HEIGHT 90 - -#define INCALL_HOLD_BTN_L_PAD 40 -#define INCALL_HOLD_BTN_WIDTH 108 /*approx*/ -#define INCALL_HOLD_BTN_T_PAD 670 /*approx*/ -#define INCALL_HOLD_BTN_HEIGHT 86 /*approx*/ - -#define INCALL_TIMER_L_PAD 40 -#define INCALL_TIMER_WIDTH 640 -#define INCALL_TIMER_T_PAD 687 -#define INCALL_TIMER_HEIGHT 52 - -#define INCALL_SHARE_BG_T_PAD 584 /*approx*/ -#define INCALL_SHARE_BG_HEIGHT 654 /*approx*/ - -#define KEYPAD_TIMER_L_PAD 40 -#define KEYPAD_TIMER_WIDTH 640 -#define KEYPAD_TIMER_T_PAD 384 -#define KEYPAD_TIMER_HEIGHT 52 - -#define KEYPAD_ENTRY_TXT_L_PAD KEYPAD_TIMER_L_PAD -#define KEYPAD_ENTRY_TXT_WIDTH KEYPAD_TIMER_WIDTH -#define KEYPAD_ENTRY_TXT_T_PAD 90 -#define KEYPAD_ENTRY_TXT_HEIGHT 114 - -#define KEYPAD_BTNS_T_PAD 461 -#define KEYPAD_BTNS_WIDTH MAIN_SCREEN_W -#define KEYPAD_BTNS_HEIGHT 620 - -#define KEYPAD_HIDE_BTN_L_PAD KEYPAD_TIMER_L_PAD -#define KEYPAD_HIDE_BTN_WIDTH 300 -#define KEYPAD_HIDE_BTN_T_PAD 1140 -#define KEYPAD_HIDE_BTN_HEIGHT 112 - -#define KEYPAD_BTN_GAP 40 -#define KEYPAD_END_BTN_L_PAD (KEYPAD_HIDE_BTN_L_PAD+KEYPAD_HIDE_BTN_WIDTH+KEYPAD_BTN_GAP) -#define KEYPAD_END_BTN_WIDTH KEYPAD_HIDE_BTN_WIDTH - -#define SPLIT_CID1_L_PAD 56 -#define SPLIT_CID1_WIDTH 304 -#define SPLIT_CID1_T_PAD 219 -#define SPLIT_CID1_HEIGHT 304 - -#define SPLIT_PAUSE_L_PAD (SPLIT_CID1_L_PAD+8) -#define SPLIT_PAUSE_WIDTH 62 -#define SPLIT_PAUSE_HEIGHT 62 -#define SPLIT_PAUSE_T_PAD (SPLIT_CID1_T_PAD+SPLIT_CID1_HEIGHT-8-SPLIT_PAUSE_HEIGHT) - -#define SPLIT_CID2_L_PAD 456 -#define SPLIT_CID2_WIDTH 208 -#define SPLIT_CID2_T_PAD 267 -#define SPLIT_CID2_HEIGHT 208 - -#define SPLIT_PLAY_L_PAD (SPLIT_CID2_L_PAD+12) -#define SPLIT_PLAY_WIDTH 40 -#define SPLIT_PLAY_HEIGHT 40 -#define SPLIT_PLAY_T_PAD (SPLIT_CID2_T_PAD+SPLIT_CID2_HEIGHT-8-SPLIT_PLAY_HEIGHT) - -#define SPLIT_NAME1_L_PAD 38 -#define SPLIT_NAME1_WIDTH 364 -#define SPLIT_NAME1_T_PAD 145 -#define SPLIT_NAME1_HEIGHT 58 - -#define SPLIT_NAME2_L_PAD (SPLIT_NAME1_L_PAD+SPLIT_NAME1_WIDTH+22) -#define SPLIT_NAME2_WIDTH 258 -#define SPLIT_NAME2_T_PAD 217 -#define SPLIT_NAME2_HEIGHT 40 - -#define SPLIT_TIMER_TXT_T_PAD 549 -#define SPLIT_TIMER_TXT_HEIGHT 46 - -#define SPLIT_MORE_BTN_WIDTH 40 -#define SPLIT_MORE_BTN_L_PAD (SPLIT_CID2_L_PAD+SPLIT_CID2_WIDTH-SPLIT_MORE_BTN_WIDTH) -#define SPLIT_ONHOLD_TXT_W_ICON_WIDTH (SPLIT_CID2_WIDTH-SPLIT_MORE_BTN_WIDTH) -#define SPLIT_ONHOLD_TXT_T_PAD 492 -#define SPLIT_ONHOLD_TXT_HEIGHT 40 - -#define SPLIT_SWAP_CID1_L_PAD 70 -#define SPLIT_SWAP_CID1_WIDTH 208 - -#define SPLIT_SWAP_PLAY_L_PAD (SPLIT_SWAP_CID1_L_PAD+12) -#define SPLIT_SWAP_PLAY_WIDTH 40 - -#define SPLIT_SWAP_CID2_L_PAD 336 -#define SPLIT_SWAP_CID2_WIDTH 304 - -#define SPLIT_SWAP_PAUSE_L_PAD (SPLIT_SWAP_CID2_L_PAD+8) -#define SPLIT_SWAP_PAUSE_WIDTH 62 - -#define SPLIT_SWAP_NAME1_L_PAD 38 -#define SPLIT_SWAP_NAME1_WIDTH 258 - -#define SPLIT_SWAP_NAME2_L_PAD (SPLIT_SWAP_NAME1_L_PAD+SPLIT_SWAP_NAME1_WIDTH+22) -#define SPLIT_SWAP_NAME2_WIDTH 364 - -#define SPLIT_SWAP_MORE_BTN_WIDTH 60 -#define SPLIT_SWAP_MORE_BTN_L_PAD (SPLIT_SWAP_CID2_L_PAD+SPLIT_SWAP_CID2_WIDTH-SPLIT_SWAP_MORE_BTN_WIDTH) -#define SPLIT_SWAP_MORE_BTN_T_PAD (SPLIT_TIMER_TXT_T_PAD-7) -#define SPLIT_SWAP_MORE_BTN_HEIGHT 60 -#define SPLIT_TIMER_TXT_W_ICON_WIDTH (SPLIT_SWAP_CID2_WIDTH-SPLIT_SWAP_MORE_BTN_WIDTH) - -#define CONF_LIST_T_PAD 182 -#define CONF_LIST_HEIGHT 566 - -#define CONF_HOLD_WIDTH 110 -#define CONF_HOLD_L_PAD (MAIN_SCREEN_W-40-CONF_HOLD_WIDTH) -#define CONF_HOLD_T_PAD 866 -#define CONF_HOLD_HEIGHT 76 - -#define CONF_TIMER_T_PAD 878 -#define CONF_TIMER_HEIGHT 52 - -#define CONF_CALL_BIG_END_T_PAD 1026 - -#define REJ_MSG_NEW_BTN_L_PAD 40 /*approx*/ -#define REJ_MSG_NEW_BTN_WIDTH 640 /*approx*/ -#define REJ_MSG_NEW_BTN_T_PAD 120 /*approx*/ -#define REJ_MSG_NEW_BTN_HEIGHT 128 /*approx*/ - -#define REJ_MSG_LIST_T_PAD 32 /*approx*/ -#define REJ_MSG_LIST_HEIGHT 1096 /*approx*/ - -#define SIX_BTN_COL1_L_PAD 40 -#define SIX_BTN_COL1_WIDTH 200 -#define SIX_BTN_COL2_L_PAD (SIX_BTN_COL1_L_PAD+SIX_BTN_COL1_WIDTH+20) -#define SIX_BTN_COL3_L_PAD (SIX_BTN_COL2_L_PAD+SIX_BTN_COL1_WIDTH+20) -#define SIX_BTN_ROW1_T_PAD 792 -#define SIX_BTN_ROW1_HEIGHT 140 -#define SIX_BTN_ROW2_T_PAD (SIX_BTN_ROW1_T_PAD+SIX_BTN_ROW1_HEIGHT+20) - -#define CALL_BIG_END_L_PAD 40 -#define CALL_BIG_END_WIDTH 640 -#define CALL_BIG_END_T_PAD 1140 -#define CALL_BIG_END_HEIGHT 112 - -#define INCMG_CALL_BTN1_T_PAD 700 -#define INCMG_CALL_BTN_HEIGHT CALL_BIG_END_HEIGHT -#define INCMG_CALL_BTN2_T_PAD 838 -#define INCMG_CALL_BTN3_T_PAD 976 - -#define VIDEO_BTN_POS1_L_PAD 40 -#define VIDEO_BTN_POS1_WIDTH 300 -#define VIDEO_BTN_POS1_T_PAD 864 -#define VIDEO_BTN_POS1_HEIGHT 112 -#define VIDEO_BTN_POS2_L_PAD VIDEO_BTN_POS1_L_PAD -#define VIDEO_BTN_POS2_WIDTH VIDEO_BTN_POS1_WIDTH -#define VIDEO_BTN_POS2_T_PAD 1002 -#define VIDEO_BTN_POS2_HEIGHT VIDEO_BTN_POS1_HEIGHT - -#define VOICE_BTN_POS1_L_PAD (VIDEO_BTN_POS1_L_PAD+VIDEO_BTN_POS1_WIDTH+40) -#define VOICE_BTN_POS1_WIDTH VIDEO_BTN_POS1_WIDTH - -#define MSG_BTN_POS1_L_PAD VIDEO_BTN_POS1_L_PAD -#define MSG_BTN_POS1_WIDTH 640 -#define MSG_BTN_POS1_T_PAD 1002 -#define MSG_BTN_POS1_HEIGHT VIDEO_BTN_POS1_HEIGHT -#define MSG_BTN_POS2_T_PAD 1140 -#define MSG_BTN_POS2_HEIGHT VIDEO_BTN_POS1_HEIGHT - -#define CONTACT_BTN_POS1_L_PAD VIDEO_BTN_POS1_L_PAD -#define CONTACT_BTN_POS1_WIDTH MSG_BTN_POS1_WIDTH -#define CONTACT_BTN_POS1_T_PAD 1140 -#define CONTACT_BTN_POS1_HEIGHT VIDEO_BTN_POS1_HEIGHT - -#define QP_CID_L_PAD 15 /*approx*/ -#define QP_CID_WIDTH 123 /*approx*/ -#define QP_CID_T_PAD 18 /*approx*/ -#define QP_CID_HEIGHT 130 /*approx*/ - -#define QP_END_BTN_L_PAD 153 /*approx*/ -#define QP_END_BTN_WIDTH 552 /*approx*/ -#define QP_END_BTN_T_PAD 80 /*approx*/ -#define QP_END_BTN_HEIGHT 64 /*approx*/ - -#define QP_NAME_L_PAD 153 /*approx*/ -#define QP_NAME_WIDTH 372 /*approx*/ -#define QP_NAME_T_PAD 13 /*approx*/ -#define QP_NAME_HEIGHT 48 /*approx*/ - -#define QP_TIMER_L_PAD 555 /*approx*/ -/* - * End of HD GUI Widget Dimensions - */ - - -/* - * Relative positions - * In Portrait mode - */ -/* Relative X & Y positions of widgets w.r.t. Full Screen */ -#define REL_W(x) ((x)/MAIN_SCREEN_W) -#define REL_H(y) ((y)/MAIN_SCREEN_H) - -/* Relative X & Y positions of widgets w.r.t. Navi-frame layout */ -/*#define WL_NB_H 94*/ -#define REL_NAVIFRAME_W(x) ((x)/MAIN_NAVIFRAME_W) -#define REL_NAVIFRAME_H(y) ((y)/MAIN_NAVIFRAME_H) - -/* Relative X & Y positions of widgets w.r.t. ACC/REJ ICON layout */ -#define REL_LOCK_W(x) ((x)/483) /*approx*/ -#define REL_LOCK_H(y) ((y)/198) /*approx*/ -/* Relative X & Y positions of widgets w.r.t. REJ-W-MSG ICON layout */ -#define REL_LOCK_MSG_W(x) ((x)/348) /*approx*/ -#define REL_LOCK_MSG_H(y) ((y)/200) /*approx*/ - -/* Relative X & Y positions of widgets w.r.t. Keypad Buttons layout */ -#define REL_KEYPAD_W(x) ((x)/KEYPAD_BTNS_WIDTH) -#define REL_KEYPAD_H(y) ((y)/KEYPAD_BTNS_HEIGHT) -/* - * End of Relative positions - */ - - -/* - * MO/Dialing view & MT/Incoming view - * In Portrait mode - */ -#define DIALLING_STATUS_L REL_W(DIALING_STATUS_L_PAD) -#define DIALLING_STATUS_R REL_W(DIALING_STATUS_L_PAD+DIALING_STATUS_WIDTH) -#define DIALLING_STATUS_T REL_H(DIALING_STATUS_T_PAD) -#define DIALLING_STATUS_B REL_H(DIALING_STATUS_T_PAD+DIALING_STATUS_HEIGHT) - -/* -#define DIALLING_MT_STATUS_L REL_W(123) -#define DIALLING_MT_STATUS_R REL_W(357) -#define DIALLING_MT_STATUS_T REL_H(375) -#define DIALLING_MT_STATUS_B REL_H(407) -*/ - -#define DIALLING_NAME_L REL_W(CALL_NAME_L_PAD) -#define DIALLING_NAME_R REL_W(CALL_NAME_L_PAD+CALL_NAME_WIDTH) -#define DIALLING_NAME_T REL_H(CALL_NAME_T_PAD) -#define DIALLING_NAME_B REL_H(CALL_NAME_T_PAD+CALL_NAME_HEIGHT) - -#define DIALLING_NUMBER_L REL_W(CALL_NUMBER_L_PAD) -#define DIALLING_NUMBER_R REL_W(CALL_NUMBER_L_PAD+CALL_NUMBER_WIDTH) -#define DIALLING_NUMBER_T REL_H(CALL_NUMBER_T_PAD) -#define DIALLING_NUMBER_B REL_H(CALL_NUMBER_T_PAD+CALL_NUMBER_HEIGHT) - -#define DIALLING_CID_L REL_W(CALLER_ID_L_PAD) -#define DIALLING_CID_R REL_W(CALLER_ID_L_PAD+CALLER_ID_WIDTH) -#define DIALLING_CID_T REL_H(CALLER_ID_T_PAD) -#define DIALLING_CID_B REL_H(CALLER_ID_T_PAD+CALLER_ID_HEIGHT) - -#define DIALLING_BACKGROUND_CID_L REL_W(BACKGROUND_CID_L_PAD) -#define DIALLING_BACKGROUND_CID_R REL_W(BACKGROUND_CID_L_PAD+BACKGROUND_CID_WIDTH) -#define DIALLING_BACKGROUND_CID_T REL_H(BACKGROUND_CID_T_PAD) -#define DIALLING_BACKGROUND_CID_B REL_H(BACKGROUND_CID_T_PAD+BACKGROUND_CID_HEIGHT) - -#define MT_CALLING_BG_L REL_W(0) -#define MT_CALLING_BG_R REL_W(0+MT_CALLING_NAME_BG_WIDTH) -#define MT_CALLING_BG_T REL_H(0) -#define MT_CALLING_BG_B REL_H(0+MT_CALLING_NAME_BG_HEIGHT) - -/* accept - MT view */ -#define DIALLING_MT_BTN1_L REL_W(ACCEPT_BTN_L_PAD) -#define DIALLING_MT_BTN1_R REL_W(ACCEPT_BTN_L_PAD+ACCEPT_BTN_WIDTH) -#define DIALLING_MT_BTN1_T REL_H(ACCEPT_BTN_T_PAD) -#define DIALLING_MT_BTN1_B REL_H(ACCEPT_BTN_T_PAD+ACCEPT_BTN_HEIGHT) - -/* reject - MT view */ -#define DIALLING_MT_BTN2_L REL_W(REJECT_BTN_L_PAD) -#define DIALLING_MT_BTN2_R REL_W(REJECT_BTN_L_PAD+REJECT_BTN_WIDTH) -#define DIALLING_MT_BTN2_T REL_H(REJECT_BTN_T_PAD) -#define DIALLING_MT_BTN2_B REL_H(REJECT_BTN_T_PAD+REJECT_BTN_HEIGHT) -/* - * End of MO/Dialing view & MT/Incoming view - */ - - -/* - * MT LOCK View - check - * In Portrait mode - */ -#define INCOMING_LOCK_ACCEPT_BG_L REL_W(-273) -#define INCOMING_LOCK_ACCEPT_BG_R REL_W(210) -#define INCOMING_LOCK_ACCEPT_BG_T REL_H(945) -#define INCOMING_LOCK_ACCEPT_BG_B REL_H(1144) - -#define INCOMING_LOCK_ACCEPT_ICON_L REL_LOCK_W(303) -#define INCOMING_LOCK_ACCEPT_ICON_R REL_LOCK_W(408) -#define INCOMING_LOCK_ACCEPT_ICON_T REL_LOCK_H(37) -#define INCOMING_LOCK_ACCEPT_ICON_B REL_LOCK_H(149) - -#define INCOMING_LOCK_ACCEPT_TEXT_L REL_LOCK_W(45) -#define INCOMING_LOCK_ACCEPT_TEXT_R REL_LOCK_W(273) -#define INCOMING_LOCK_ACCEPT_TEXT_T INCOMING_LOCK_ACCEPT_ICON_T -#define INCOMING_LOCK_ACCEPT_TEXT_B INCOMING_LOCK_ACCEPT_ICON_B - -#define INCOMING_LOCK_REJECT_BG_L REL_W(510) -#define INCOMING_LOCK_REJECT_BG_R REL_W(993) -#define INCOMING_LOCK_REJECT_BG_T INCOMING_LOCK_ACCEPT_BG_T -#define INCOMING_LOCK_REJECT_BG_B INCOMING_LOCK_ACCEPT_BG_B - -#define INCOMING_LOCK_REJECT_ICON_L REL_LOCK_W(75) -#define INCOMING_LOCK_REJECT_ICON_R REL_LOCK_W(180) -#define INCOMING_LOCK_REJECT_ICON_T INCOMING_LOCK_ACCEPT_ICON_T -#define INCOMING_LOCK_REJECT_ICON_B INCOMING_LOCK_ACCEPT_ICON_B - -#define INCOMING_LOCK_REJECT_TEXT_L REL_LOCK_W(195) -#define INCOMING_LOCK_REJECT_TEXT_R REL_LOCK_W(423) -#define INCOMING_LOCK_REJECT_TEXT_T INCOMING_LOCK_REJECT_ICON_T -#define INCOMING_LOCK_REJECT_TEXT_B INCOMING_LOCK_REJECT_ICON_B -/* - * End of MT LOCK View - */ - - -/* - * KEYPAD View - * In Portrait mode - */ -#define INCALL_DIALER_TIMER_L REL_W(KEYPAD_TIMER_L_PAD) -#define INCALL_DIALER_TIMER_R REL_W(KEYPAD_TIMER_L_PAD+KEYPAD_TIMER_WIDTH) -#define INCALL_DIALER_TIMER_T REL_H(KEYPAD_TIMER_T_PAD) -#define INCALL_DIALER_TIMER_B REL_H(KEYPAD_TIMER_T_PAD+KEYPAD_TIMER_HEIGHT) - -#define INCALL_DIALER_NAME_L INCALL_DIALER_TIMER_L -#define INCALL_DIALER_NAME_R INCALL_DIALER_TIMER_R -#define INCALL_DIALER_NAME_T INCALL_DIALER_TIMER_T -#define INCALL_DIALER_NAME_B INCALL_DIALER_TIMER_B - -/* -#define DIALLING_KEYPAD_T_BF REL_H(319) -#define DIALLING_KEYPAD_B_BF REL_H(710) -*/ - -#define DIALLING_KEYPAD_L REL_W(0) -#define DIALLING_KEYPAD_R REL_W(MAIN_SCREEN_W) -#define DIALLING_KEYPAD_T REL_H(KEYPAD_BTNS_T_PAD) -#define DIALLING_KEYPAD_B REL_H(KEYPAD_BTNS_T_PAD+KEYPAD_BTNS_HEIGHT) - -#define DIALLING_ENTRY_TEXT_L REL_W(KEYPAD_ENTRY_TXT_L_PAD) -#define DIALLING_ENTRY_TEXT_R REL_W(KEYPAD_ENTRY_TXT_L_PAD+KEYPAD_ENTRY_TXT_WIDTH) -#define DIALLING_ENTRY_TEXT_T REL_H(KEYPAD_ENTRY_TXT_T_PAD) -#define DIALLING_ENTRY_TEXT_B REL_H(KEYPAD_ENTRY_TXT_T_PAD+KEYPAD_ENTRY_TXT_HEIGHT) - -#define DIALER_BTN1_L REL_W(KEYPAD_HIDE_BTN_L_PAD) -#define DIALER_BTN1_R REL_W(KEYPAD_HIDE_BTN_L_PAD+KEYPAD_HIDE_BTN_WIDTH) -#define DIALER_BTN1_T REL_H(KEYPAD_HIDE_BTN_T_PAD) -#define DIALER_BTN1_B REL_H(KEYPAD_HIDE_BTN_T_PAD+KEYPAD_HIDE_BTN_HEIGHT) - -#define DIALER_BTN2_L REL_W(KEYPAD_END_BTN_L_PAD) -#define DIALER_BTN2_R REL_W(KEYPAD_END_BTN_L_PAD+KEYPAD_END_BTN_WIDTH) -#define DIALER_BTN2_T DIALER_BTN1_T -#define DIALER_BTN2_B DIALER_BTN1_B -/* - * End of KEYPAD View - */ - - -/* - * INCALL View - * In Portrait mode - */ -#define INCALL_CID_L DIALLING_CID_L -#define INCALL_CID_R DIALLING_CID_R -#define INCALL_CID_T DIALLING_CID_T -#define INCALL_CID_B DIALLING_CID_B - -/* -#define INCALL_CID_DIM_T DIALLING_CID_T -#define INCALL_CID_DIM_B DIALLING_CID_B -#define INCALL_CID_DIM_L REL_W(145) -#define INCALL_CID_DIM_R REL_W(334) -*/ - -#define INCALL_BACKGROUND_CID_L DIALLING_BACKGROUND_CID_L -#define INCALL_BACKGROUND_CID_R DIALLING_BACKGROUND_CID_R -#define INCALL_BACKGROUND_CID_T DIALLING_BACKGROUND_CID_T -#define INCALL_BACKGROUND_CID_B DIALLING_BACKGROUND_CID_B - -#define INCALL_NAME_L DIALLING_NAME_L -#define INCALL_NAME_R DIALLING_NAME_R -#define INCALL_NAME_T DIALLING_NAME_T -#define INCALL_NAME_B DIALLING_NAME_B - -#define INCALL_NUMBER_L DIALLING_NUMBER_L -#define INCALL_NUMBER_R DIALLING_NUMBER_R -#define INCALL_NUMBER_T DIALLING_NUMBER_T -#define INCALL_NUMBER_B DIALLING_NUMBER_B - -#define INCALL_HOLD_L REL_W(INCALL_HOLD_BTN_L_PAD) -#define INCALL_HOLD_R REL_W(INCALL_HOLD_BTN_L_PAD+INCALL_HOLD_BTN_WIDTH) -#define INCALL_HOLD_T REL_H(INCALL_HOLD_BTN_T_PAD) -#define INCALL_HOLD_B REL_H(INCALL_HOLD_BTN_T_PAD+INCALL_HOLD_BTN_HEIGHT) - -#define INCALL_TIMER_L REL_W(INCALL_TIMER_L_PAD) -#define INCALL_TIMER_R REL_W(INCALL_TIMER_L_PAD+INCALL_TIMER_WIDTH) -#define INCALL_TIMER_T REL_H(INCALL_TIMER_T_PAD) -#define INCALL_TIMER_B REL_H(INCALL_TIMER_T_PAD+INCALL_TIMER_HEIGHT) - -#define INCALL_BACKGROUND_SHARE_L REL_W(0) -#define INCALL_BACKGROUND_SHARE_R REL_W(MAIN_SCREEN_W) -#define INCALL_BACKGROUND_SHARE_T REL_H(INCALL_SHARE_BG_T_PAD) -#define INCALL_BACKGROUND_SHARE_B REL_H(INCALL_SHARE_BG_T_PAD+INCALL_SHARE_BG_HEIGHT) -/* - * End of INCALL View - */ - - -/* - * MULTI-CALL SPLIT View - * In Portrait mode - */ -/* L[ACT] + R[HLD] */ -#define MULTICALL_SPLIT_BACKGROUND_CID_L INCALL_BACKGROUND_CID_L -#define MULTICALL_SPLIT_BACKGROUND_CID_R INCALL_BACKGROUND_CID_R -#define MULTICALL_SPLIT_BACKGROUND_CID_T INCALL_BACKGROUND_CID_T -#define MULTICALL_SPLIT_BACKGROUND_CID_B INCALL_BACKGROUND_CID_B - -#define MULTICALL_SPLIT_CID_1_L REL_W(SPLIT_CID1_L_PAD) -#define MULTICALL_SPLIT_CID_1_R REL_W(SPLIT_CID1_L_PAD+SPLIT_CID1_WIDTH) -#define MULTICALL_SPLIT_CID_1_T REL_H(SPLIT_CID1_T_PAD) -#define MULTICALL_SPLIT_CID_1_B REL_H(SPLIT_CID1_T_PAD+SPLIT_CID1_HEIGHT) - -#define MULTICALL_SPLIT_PAUSE_L REL_W(SPLIT_PAUSE_L_PAD) -#define MULTICALL_SPLIT_PAUSE_R REL_W(SPLIT_PAUSE_L_PAD+SPLIT_PAUSE_WIDTH) -#define MULTICALL_SPLIT_PAUSE_T REL_H(SPLIT_PAUSE_T_PAD) -#define MULTICALL_SPLIT_PAUSE_B REL_H(SPLIT_PAUSE_T_PAD+SPLIT_PAUSE_HEIGHT) - -#define MULTICALL_SPLIT_CID_2_L REL_W(SPLIT_CID2_L_PAD) -#define MULTICALL_SPLIT_CID_2_R REL_W(SPLIT_CID2_L_PAD+SPLIT_CID2_WIDTH) -#define MULTICALL_SPLIT_CID_2_T REL_H(SPLIT_CID2_T_PAD) -#define MULTICALL_SPLIT_CID_2_B REL_H(SPLIT_CID2_T_PAD+SPLIT_CID2_HEIGHT) - -#define MULTICALL_SPLIT_PLAY_L REL_W(SPLIT_PLAY_L_PAD) -#define MULTICALL_SPLIT_PLAY_R REL_W(SPLIT_PLAY_L_PAD+SPLIT_PLAY_WIDTH) -#define MULTICALL_SPLIT_PLAY_T REL_H(SPLIT_PLAY_T_PAD) -#define MULTICALL_SPLIT_PLAY_B REL_H(SPLIT_PLAY_T_PAD+SPLIT_PLAY_HEIGHT) - -#define MULTICALL_SPLIT_NAME_1_L REL_W(SPLIT_NAME1_L_PAD) -#define MULTICALL_SPLIT_NAME_1_R REL_W(SPLIT_NAME1_L_PAD+SPLIT_NAME1_WIDTH) -#define MULTICALL_SPLIT_NAME_1_T REL_H(SPLIT_NAME1_T_PAD) -#define MULTICALL_SPLIT_NAME_1_B REL_H(SPLIT_NAME1_T_PAD+SPLIT_NAME1_HEIGHT) - -#define MULTICALL_SPLIT_NAME_2_L REL_W(SPLIT_NAME2_L_PAD) -#define MULTICALL_SPLIT_NAME_2_R REL_W(SPLIT_NAME2_L_PAD+SPLIT_NAME2_WIDTH) -#define MULTICALL_SPLIT_NAME_2_T REL_H(SPLIT_NAME2_T_PAD) -#define MULTICALL_SPLIT_NAME_2_B REL_H(SPLIT_NAME2_T_PAD+SPLIT_NAME2_HEIGHT) - -#define MULTICALL_SPLIT_TIMER_L MULTICALL_SPLIT_CID_1_L -#define MULTICALL_SPLIT_TIMER_R MULTICALL_SPLIT_CID_1_R -#define MULTICALL_SPLIT_TIMER_T REL_H(SPLIT_TIMER_TXT_T_PAD) -#define MULTICALL_SPLIT_TIMER_B REL_H(SPLIT_TIMER_TXT_T_PAD+SPLIT_TIMER_TXT_HEIGHT) - -#define MULTICALL_SPLIT_ON_HOLD_TXT_L MULTICALL_SPLIT_CID_2_L -#define MULTICALL_SPLIT_ON_HOLD_TXT_R MULTICALL_SPLIT_CID_2_R -#define MULTICALL_SPLIT_ON_HOLD_TXT_T REL_H(SPLIT_ONHOLD_TXT_T_PAD) -#define MULTICALL_SPLIT_ON_HOLD_TXT_B REL_H(SPLIT_ONHOLD_TXT_T_PAD+SPLIT_ONHOLD_TXT_HEIGHT) - -#define MULTICALL_SPLIT_ON_HOLD_TXT_WITH_ICON_L MULTICALL_SPLIT_CID_2_L -#define MULTICALL_SPLIT_ON_HOLD_TXT_WITH_ICON_R REL_W(SPLIT_CID2_L_PAD+SPLIT_CID2_WIDTH-SPLIT_MORE_BTN_WIDTH) -#define MULTICALL_SPLIT_ON_HOLD_TXT_WITH_ICON_T MULTICALL_SPLIT_ON_HOLD_TXT_T -#define MULTICALL_SPLIT_ON_HOLD_TXT_WITH_ICON_B MULTICALL_SPLIT_ON_HOLD_TXT_B - -#define MULTICALL_SPLIT_MORE_ICON_L REL_W(SPLIT_MORE_BTN_L_PAD) -#define MULTICALL_SPLIT_MORE_ICON_R REL_W(SPLIT_MORE_BTN_L_PAD+SPLIT_MORE_BTN_WIDTH) -#define MULTICALL_SPLIT_MORE_ICON_T MULTICALL_SPLIT_ON_HOLD_TXT_T -#define MULTICALL_SPLIT_MORE_ICON_B MULTICALL_SPLIT_ON_HOLD_TXT_B -/* L[ACT] + R[HLD] */ - -/* L[HLD] + R[ACT] */ -#define MULTICALL_SPLIT_SWAP_CID_1_L REL_W(SPLIT_SWAP_CID1_L_PAD) -#define MULTICALL_SPLIT_SWAP_CID_1_R REL_W(SPLIT_SWAP_CID1_L_PAD+SPLIT_SWAP_CID1_WIDTH) -#define MULTICALL_SPLIT_SWAP_CID_1_T MULTICALL_SPLIT_CID_2_T -#define MULTICALL_SPLIT_SWAP_CID_1_B MULTICALL_SPLIT_CID_2_B - -#define MULTICALL_SPLIT_SWAP_PLAY_L REL_W(SPLIT_SWAP_PLAY_L_PAD) -#define MULTICALL_SPLIT_SWAP_PLAY_R REL_W(SPLIT_SWAP_PLAY_L_PAD+SPLIT_SWAP_PLAY_WIDTH) -#define MULTICALL_SPLIT_SWAP_PLAY_T MULTICALL_SPLIT_PLAY_T -#define MULTICALL_SPLIT_SWAP_PLAY_B MULTICALL_SPLIT_PLAY_B - -#define MULTICALL_SPLIT_SWAP_CID_2_L REL_W(SPLIT_SWAP_CID2_L_PAD) -#define MULTICALL_SPLIT_SWAP_CID_2_R REL_W(SPLIT_SWAP_CID2_L_PAD+SPLIT_SWAP_CID2_WIDTH) -#define MULTICALL_SPLIT_SWAP_CID_2_T MULTICALL_SPLIT_CID_1_T -#define MULTICALL_SPLIT_SWAP_CID_2_B MULTICALL_SPLIT_CID_1_B - -#define MULTICALL_SPLIT_SWAP_PAUSE_L REL_W(SPLIT_SWAP_PAUSE_L_PAD) -#define MULTICALL_SPLIT_SWAP_PAUSE_R REL_W(SPLIT_SWAP_PAUSE_L_PAD+SPLIT_SWAP_PAUSE_WIDTH) -#define MULTICALL_SPLIT_SWAP_PAUSE_T MULTICALL_SPLIT_PAUSE_T -#define MULTICALL_SPLIT_SWAP_PAUSE_B MULTICALL_SPLIT_PAUSE_B - -#define MULTICALL_SPLIT_SWAP_NAME_1_L MULTICALL_SPLIT_NAME_1_L -#define MULTICALL_SPLIT_SWAP_NAME_1_R REL_W(SPLIT_SWAP_NAME1_L_PAD+SPLIT_SWAP_NAME1_WIDTH) -#define MULTICALL_SPLIT_SWAP_NAME_1_T MULTICALL_SPLIT_NAME_2_T -#define MULTICALL_SPLIT_SWAP_NAME_1_B MULTICALL_SPLIT_NAME_2_B - -#define MULTICALL_SPLIT_SWAP_NAME_2_L REL_W(SPLIT_SWAP_NAME2_L_PAD) -#define MULTICALL_SPLIT_SWAP_NAME_2_R REL_W(SPLIT_SWAP_NAME2_L_PAD+SPLIT_SWAP_NAME2_WIDTH) -#define MULTICALL_SPLIT_SWAP_NAME_2_T MULTICALL_SPLIT_NAME_1_T -#define MULTICALL_SPLIT_SWAP_NAME_2_B MULTICALL_SPLIT_NAME_1_B - -#define MULTICALL_SPLIT_SWAP_ON_HOLD_TXT_L MULTICALL_SPLIT_SWAP_CID_1_L -#define MULTICALL_SPLIT_SWAP_ON_HOLD_TXT_R MULTICALL_SPLIT_SWAP_CID_1_R -#define MULTICALL_SPLIT_SWAP_ON_HOLD_TXT_T MULTICALL_SPLIT_ON_HOLD_TXT_T -#define MULTICALL_SPLIT_SWAP_ON_HOLD_TXT_B MULTICALL_SPLIT_ON_HOLD_TXT_B - -#define MULTICALL_SPLIT_SWAP_TIMER_L MULTICALL_SPLIT_SWAP_CID_2_L -#define MULTICALL_SPLIT_SWAP_TIMER_R MULTICALL_SPLIT_SWAP_CID_2_R -#define MULTICALL_SPLIT_SWAP_TIMER_T MULTICALL_SPLIT_TIMER_T -#define MULTICALL_SPLIT_SWAP_TIMER_B MULTICALL_SPLIT_TIMER_B - -#define MULTICALL_SPLIT_SWAP_TIMER_WITH_ICON_L MULTICALL_SPLIT_SWAP_CID_2_L -#define MULTICALL_SPLIT_SWAP_TIMER_WITH_ICON_R REL_W(SPLIT_CID2_L_PAD+SPLIT_CID2_WIDTH-SPLIT_MORE_BTN_WIDTH) -#define MULTICALL_SPLIT_SWAP_TIMER_WITH_ICON_T MULTICALL_SPLIT_TIMER_T -#define MULTICALL_SPLIT_SWAP_TIMER_WITH_ICON_B MULTICALL_SPLIT_TIMER_B - -#define MULTICALL_SPLIT_SWAP_MORE_ICON_L REL_W(SPLIT_SWAP_MORE_BTN_L_PAD) -#define MULTICALL_SPLIT_SWAP_MORE_ICON_R REL_W(SPLIT_SWAP_MORE_BTN_L_PAD+SPLIT_SWAP_MORE_BTN_WIDTH) -#define MULTICALL_SPLIT_SWAP_MORE_ICON_T REL_H(SPLIT_SWAP_MORE_BTN_T_PAD) -#define MULTICALL_SPLIT_SWAP_MORE_ICON_B REL_H(SPLIT_SWAP_MORE_BTN_T_PAD+SPLIT_SWAP_MORE_BTN_HEIGHT) -/* L[HLD] + R[ACT] */ -/* - * End of MULTI-CALL SPLIT View - */ - -/* - * MULTI-CALL LIST View - * In Portrait mode - */ -#define MULTICALL_LIST_L REL_W(0) -#define MULTICALL_LIST_R REL_W(MAIN_SCREEN_W) -#define MULTICALL_LIST_T REL_H(CONF_LIST_T_PAD) -#define MULTICALL_LIST_B REL_H(CONF_LIST_T_PAD+CONF_LIST_HEIGHT) - -#define MULTICALL_LIST_HOLD_L REL_W(CONF_HOLD_L_PAD) -#define MULTICALL_LIST_HOLD_R REL_W(CONF_HOLD_L_PAD+CONF_HOLD_WIDTH) -#define MULTICALL_LIST_HOLD_T REL_H(CONF_HOLD_T_PAD) -#define MULTICALL_LIST_HOLD_B REL_H(CONF_HOLD_T_PAD+CONF_HOLD_HEIGHT) - -#define MULTICALL_LIST_TIMER_L REL_W(0) -#define MULTICALL_LIST_TIMER_R REL_W(MAIN_SCREEN_W) -#define MULTICALL_LIST_TIMER_T REL_H(CONF_TIMER_T_PAD) -#define MULTICALL_LIST_TIMER_B REL_H(CONF_TIMER_T_PAD+CONF_TIMER_HEIGHT) - -#define MULTICALL_LIST_BIG_END_L REL_W(CALL_BIG_END_L_PAD) -#define MULTICALL_LIST_BIG_END_R REL_W(CALL_BIG_END_L_PAD+CALL_BIG_END_WIDTH) -#define MULTICALL_LIST_BIG_END_T REL_H(CONF_CALL_BIG_END_T_PAD) -#define MULTICALL_LIST_BIG_END_B REL_H(CONF_CALL_BIG_END_T_PAD+CALL_BIG_END_HEIGHT) -/* - * End of MULTI-CALL LIST View - */ - - -/* - * SIX Button Layout - * In Portrait mode - */ -#define SIX_BTN_1_L REL_W(SIX_BTN_COL1_L_PAD) -#define SIX_BTN_1_R REL_W(SIX_BTN_COL1_L_PAD+SIX_BTN_COL1_WIDTH) -#define SIX_BTN_2_L REL_W(SIX_BTN_COL2_L_PAD) -#define SIX_BTN_2_R REL_W(SIX_BTN_COL2_L_PAD+SIX_BTN_COL1_WIDTH) -#define SIX_BTN_3_L REL_W(SIX_BTN_COL3_L_PAD) -#define SIX_BTN_3_R REL_W(SIX_BTN_COL3_L_PAD+SIX_BTN_COL1_WIDTH) - -#define SIX_BTN_1_T REL_H(SIX_BTN_ROW1_T_PAD) -#define SIX_BTN_1_B REL_H(SIX_BTN_ROW1_T_PAD+SIX_BTN_ROW1_HEIGHT) -#define SIX_BTN_2_T REL_H(SIX_BTN_ROW2_T_PAD) -#define SIX_BTN_2_B REL_H(SIX_BTN_ROW2_T_PAD+SIX_BTN_ROW1_HEIGHT) - -#define SIX_BTN_BIG_END_L REL_W(CALL_BIG_END_L_PAD) -#define SIX_BTN_BIG_END_R REL_W(CALL_BIG_END_L_PAD+CALL_BIG_END_WIDTH) -#define SIX_BTN_BIG_END_T REL_H(CALL_BIG_END_T_PAD) -#define SIX_BTN_BIG_END_B REL_H(CALL_BIG_END_T_PAD+CALL_BIG_END_HEIGHT) - -#define SIX_BTN_INCOMING_1_L SIX_BTN_BIG_END_L -#define SIX_BTN_INCOMING_1_R SIX_BTN_BIG_END_R -#define SIX_BTN_INCOMING_1_T REL_H(INCMG_CALL_BTN1_T_PAD) -#define SIX_BTN_INCOMING_1_B REL_H(INCMG_CALL_BTN1_T_PAD+INCMG_CALL_BTN_HEIGHT) - -#define SIX_BTN_INCOMING_2_L SIX_BTN_BIG_END_L -#define SIX_BTN_INCOMING_2_R SIX_BTN_BIG_END_R -#define SIX_BTN_INCOMING_2_T REL_H(INCMG_CALL_BTN2_T_PAD) -#define SIX_BTN_INCOMING_2_B REL_H(INCMG_CALL_BTN2_T_PAD+INCMG_CALL_BTN_HEIGHT) - -#define SIX_BTN_INCOMING_3_L SIX_BTN_BIG_END_L -#define SIX_BTN_INCOMING_3_R SIX_BTN_BIG_END_R -#define SIX_BTN_INCOMING_3_T REL_H(INCMG_CALL_BTN3_T_PAD) -#define SIX_BTN_INCOMING_3_B REL_H(INCMG_CALL_BTN3_T_PAD+INCMG_CALL_BTN_HEIGHT) -/* - * End of SIX Button Layout - */ - - -/* - * Navigation bar layout - */ -#define CALL_NAVIGATION_BAR_T REL_H(NAVIFRAME_T_PAD) -#define CALL_NAVIGATION_BAR_B REL_H(MAIN_SCREEN_H) -#define CALL_NAVIGATION_BAR_L REL_W(0) -#define CALL_NAVIGATION_BAR_R REL_W(MAIN_SCREEN_W) -/* - * End of Navigation bar layout - */ - - -/* - * END CALL View - * In Portrait mode - */ -#define ENDSINGLECALL_BACKGROUND_CID_L DIALLING_BACKGROUND_CID_L -#define ENDSINGLECALL_BACKGROUND_CID_R DIALLING_BACKGROUND_CID_R -#define ENDSINGLECALL_BACKGROUND_CID_T DIALLING_BACKGROUND_CID_T -#define ENDSINGLECALL_BACKGROUND_CID_B DIALLING_BACKGROUND_CID_B - -#define ENDSINGLECALL_CID_L DIALLING_CID_L -#define ENDSINGLECALL_CID_R DIALLING_CID_R -#define ENDSINGLECALL_CID_T DIALLING_CID_T -#define ENDSINGLECALL_CID_B DIALLING_CID_B - -#define ENDSINGLECALL_NAME_L DIALLING_NAME_L -#define ENDSINGLECALL_NAME_R DIALLING_NAME_R -#define ENDSINGLECALL_NAME_T DIALLING_NAME_T -#define ENDSINGLECALL_NAME_B DIALLING_NAME_B - -#define ENDSINGLECALL_NUMBER_L DIALLING_NUMBER_L -#define ENDSINGLECALL_NUMBER_R DIALLING_NUMBER_R -#define ENDSINGLECALL_NUMBER_T DIALLING_NUMBER_T -#define ENDSINGLECALL_NUMBER_B DIALLING_NUMBER_B - -#define ENDSINGLECALL_TIMER_L INCALL_TIMER_L -#define ENDSINGLECALL_TIMER_R INCALL_TIMER_R -#define ENDSINGLECALL_TIMER_T INCALL_TIMER_T -#define ENDSINGLECALL_TIMER_B INCALL_TIMER_B - -#define ENDSINGLECALL_VIDEO_BTN_L REL_W(VIDEO_BTN_POS1_L_PAD) -#define ENDSINGLECALL_VIDEO_BTN_R REL_W(VIDEO_BTN_POS1_L_PAD+VIDEO_BTN_POS1_WIDTH) -#define ENDSINGLECALL_VIDEO_BTN_T REL_H(VIDEO_BTN_POS1_T_PAD) -#define ENDSINGLECALL_VIDEO_BTN_B REL_H(VIDEO_BTN_POS1_T_PAD+VIDEO_BTN_POS1_HEIGHT) - -#define ENDSINGLECALL_VIDEO2_BTN_L REL_W(VIDEO_BTN_POS2_L_PAD) -#define ENDSINGLECALL_VIDEO2_BTN_R REL_W(VIDEO_BTN_POS2_L_PAD+VIDEO_BTN_POS2_WIDTH) -#define ENDSINGLECALL_VIDEO2_BTN_T REL_H(VIDEO_BTN_POS2_T_PAD) -#define ENDSINGLECALL_VIDEO2_BTN_B REL_H(VIDEO_BTN_POS2_T_PAD+VIDEO_BTN_POS2_HEIGHT) - -#define ENDSINGLECALL_VOICE_BTN_L REL_W(VOICE_BTN_POS1_L_PAD) -#define ENDSINGLECALL_VOICE_BTN_R REL_W(VOICE_BTN_POS1_L_PAD+VOICE_BTN_POS1_WIDTH) -#define ENDSINGLECALL_VOICE_BTN_T ENDSINGLECALL_VIDEO_BTN_T -#define ENDSINGLECALL_VOICE_BTN_B ENDSINGLECALL_VIDEO_BTN_B - -#define ENDSINGLECALL_VOICE2_BTN_L ENDSINGLECALL_VOICE_BTN_L -#define ENDSINGLECALL_VOICE2_BTN_R ENDSINGLECALL_VOICE_BTN_R -#define ENDSINGLECALL_VOICE2_BTN_T ENDSINGLECALL_VIDEO2_BTN_T -#define ENDSINGLECALL_VOICE2_BTN_B ENDSINGLECALL_VIDEO2_BTN_B - -#define ENDSINGLECALL_MSG_BTN_L REL_W(MSG_BTN_POS1_L_PAD) -#define ENDSINGLECALL_MSG_BTN_R REL_W(MSG_BTN_POS1_L_PAD+MSG_BTN_POS1_WIDTH) -#define ENDSINGLECALL_MSG_BTN_T REL_H(MSG_BTN_POS1_T_PAD) -#define ENDSINGLECALL_MSG_BTN_B REL_H(MSG_BTN_POS1_T_PAD+MSG_BTN_POS1_HEIGHT) - -#define ENDSINGLECALL_MSG2_BTN_L ENDSINGLECALL_MSG_BTN_L -#define ENDSINGLECALL_MSG2_BTN_R ENDSINGLECALL_MSG_BTN_R -#define ENDSINGLECALL_MSG2_BTN_T REL_H(MSG_BTN_POS2_T_PAD) -#define ENDSINGLECALL_MSG2_BTN_B REL_H(MSG_BTN_POS2_T_PAD+MSG_BTN_POS2_HEIGHT) - -#define ENDSINGLECALL_CONTACT_BTN_L REL_W(CONTACT_BTN_POS1_L_PAD) -#define ENDSINGLECALL_CONTACT_BTN_R REL_W(CONTACT_BTN_POS1_L_PAD+CONTACT_BTN_POS1_WIDTH) -#define ENDSINGLECALL_CONTACT_BTN_T REL_H(CONTACT_BTN_POS1_T_PAD) -#define ENDSINGLECALL_CONTACT_BTN_B REL_H(CONTACT_BTN_POS1_T_PAD+CONTACT_BTN_POS1_HEIGHT) -/* - * End of END CALL View - */ -#endif /*__VCUI_VIEW_LAYOUT_HD__*/ diff --git a/ui/vcui-view-layout-wvga.h b/ui/vcui-view-layout-wvga.h deleted file mode 100755 index 558a903..0000000 --- a/ui/vcui-view-layout-wvga.h +++ /dev/null @@ -1,745 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.tizenopensource.org/license - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -#ifndef __VCUI_VIEW_LAYOUT_WVGA__ -#define __VCUI_VIEW_LAYOUT_WVGA__ - -#define COLOR_DEFAULT 0 0 0 255 -#define COLOR_BG_ALPHA 0 0 0 0 -#define COLOR_BG_FOR_HELD_CALL_DIM 0 0 0 150 - -/*#define BTN_EDGE_W 9*/ - -/* - * WVGA GUI Widget Dimensions - * In Portrait mode - */ -#define MAIN_SCREEN_W 480 -#define MAIN_SCREEN_H 800 - -#define INDICATOR_HEIGHT 40 -#define NAVIFRAME_TITLE_HEIGHT 75 - -#define MAIN_NAVIFRAME_W MAIN_SCREEN_W -#define MAIN_NAVIFRAME_H (MAIN_SCREEN_H-INDICATOR_HEIGHT-NAVIFRAME_TITLE_HEIGHT) -#define NAVIFRAME_T_PAD 40 - -#define QP_WIN_W MAIN_SCREEN_W -#define QP_WIN_H 104 - -#define DIALING_STATUS_L_PAD 0 -#define DIALING_STATUS_WIDTH MAIN_SCREEN_W -#define DIALING_STATUS_T_PAD 428 -#define DIALING_STATUS_HEIGHT 32 - -#define CALL_NAME_L_PAD 12 -#define CALL_NAME_WIDTH 456 -#define CALL_NAME_T_PAD 52 -#define CALL_NAME_HEIGHT 50 - -#define CALL_NUMBER_T_GAP 4 - -#define CALL_NUMBER_L_PAD CALL_NAME_L_PAD -#define CALL_NUMBER_WIDTH CALL_NAME_WIDTH -#define CALL_NUMBER_T_PAD (CALL_NAME_T_PAD+CALL_NAME_HEIGHT+CALL_NUMBER_T_GAP) -#define CALL_NUMBER_HEIGHT 32 - -#define CALLER_ID_L_PAD 145 -#define CALLER_ID_WIDTH 190 -#define CALLER_ID_T_PAD 176 -#define CALLER_ID_HEIGHT 190 - -#define BACKGROUND_CID_L_PAD 0 -#define BACKGROUND_CID_WIDTH MAIN_SCREEN_W -#define BACKGROUND_CID_T_PAD 0 -#define BACKGROUND_CID_HEIGHT MAIN_SCREEN_H - -#define ACCEPT_BTN_L_PAD 26 -#define ACCEPT_BTN_WIDTH 202 -#define ACCEPT_BTN_T_PAD 620 -#define ACCEPT_BTN_HEIGHT 70 - -#define REJECT_BTN_L_GAP 24 - -#define REJECT_BTN_L_PAD (ACCEPT_BTN_L_PAD+ACCEPT_BTN_WIDTH+REJECT_BTN_L_GAP) -#define REJECT_BTN_WIDTH ACCEPT_BTN_WIDTH -#define REJECT_BTN_T_PAD ACCEPT_BTN_T_PAD -#define REJECT_BTN_HEIGHT ACCEPT_BTN_HEIGHT - -#define REJECT_W_MSG_BTN_T_GAP 25 - -#define REJECT_W_MSG_BTN_L_PAD ACCEPT_BTN_L_PAD -#define REJECT_W_MSG_BTN_WIDTH 428 -#define REJECT_W_MSG_BTN_T_PAD (ACCEPT_BTN_T_PAD+ACCEPT_BTN_HEIGHT+REJECT_W_MSG_BTN_T_GAP) -#define REJECT_W_MSG_BTN_HEIGHT 56 - -#define INCALL_HOLD_BTN_L_PAD 26 -#define INCALL_HOLD_BTN_WIDTH 73 -#define INCALL_HOLD_BTN_T_PAD 417 -#define INCALL_HOLD_BTN_HEIGHT 54 - -#define INCALL_TIMER_L_PAD 26 -#define INCALL_TIMER_WIDTH 428 -#define INCALL_TIMER_T_PAD 428 -#define INCALL_TIMER_HEIGHT 32 - -#define INCALL_SHARE_BG_T_PAD 365 /*approx*/ -#define INCALL_SHARE_BG_HEIGHT 774 /*approx*/ - -#define KEYPAD_TIMER_L_PAD 26 -#define KEYPAD_TIMER_WIDTH 428 -#define KEYPAD_TIMER_T_PAD 240 -#define KEYPAD_TIMER_HEIGHT 32 - -#define KEYPAD_ENTRY_TXT_L_PAD KEYPAD_TIMER_L_PAD -#define KEYPAD_ENTRY_TXT_WIDTH KEYPAD_TIMER_WIDTH -#define KEYPAD_ENTRY_TXT_T_PAD 57 -#define KEYPAD_ENTRY_TXT_HEIGHT 70 - -#define KEYPAD_BTNS_T_PAD 289 -#define KEYPAD_BTNS_WIDTH MAIN_SCREEN_W -#define KEYPAD_BTNS_HEIGHT 391 - -#define KEYPAD_HIDE_BTN_L_PAD KEYPAD_TIMER_L_PAD -#define KEYPAD_HIDE_BTN_WIDTH 202 -#define KEYPAD_HIDE_BTN_T_PAD 712 -#define KEYPAD_HIDE_BTN_HEIGHT 70 - -#define KEYPAD_BTN_GAP 13 -#define KEYPAD_END_BTN_L_PAD (KEYPAD_HIDE_BTN_L_PAD+KEYPAD_HIDE_BTN_WIDTH+KEYPAD_BTN_GAP) -#define KEYPAD_END_BTN_WIDTH KEYPAD_HIDE_BTN_WIDTH - -#define SPLIT_CID1_L_PAD 50 -#define SPLIT_CID1_WIDTH 190 -#define SPLIT_CID1_T_PAD 137 -#define SPLIT_CID1_HEIGHT 190 - -#define SPLIT_PAUSE_L_PAD (SPLIT_CID1_L_PAD+4) -#define SPLIT_PAUSE_WIDTH 40 -#define SPLIT_PAUSE_HEIGHT 40 -#define SPLIT_PAUSE_T_PAD (SPLIT_CID1_T_PAD+SPLIT_CID1_HEIGHT-8-SPLIT_PAUSE_HEIGHT) - -#define SPLIT_CID2_L_PAD 300 -#define SPLIT_CID2_WIDTH 130 -#define SPLIT_CID2_T_PAD 167 -#define SPLIT_CID2_HEIGHT 130 - -#define SPLIT_PLAY_L_PAD (SPLIT_CID2_L_PAD+8) -#define SPLIT_PLAY_WIDTH 25 -#define SPLIT_PLAY_HEIGHT 25 -#define SPLIT_PLAY_T_PAD (SPLIT_CID2_T_PAD+SPLIT_CID2_HEIGHT-8-SPLIT_PLAY_HEIGHT) - -#define SPLIT_NAME1_L_PAD 24 -#define SPLIT_NAME1_WIDTH 242 -#define SPLIT_NAME1_T_PAD 90 -#define SPLIT_NAME1_HEIGHT 36 - -#define SPLIT_NAME2_L_PAD (SPLIT_NAME1_L_PAD+SPLIT_NAME1_WIDTH+14) -#define SPLIT_NAME2_WIDTH 170 -#define SPLIT_NAME2_T_PAD 136 -#define SPLIT_NAME2_HEIGHT 24 - -#define SPLIT_TIMER_TXT_T_PAD 343 -#define SPLIT_TIMER_TXT_HEIGHT 28 - -#define SPLIT_MORE_BTN_WIDTH 24 -#define SPLIT_MORE_BTN_L_PAD (SPLIT_CID2_L_PAD+SPLIT_CID2_WIDTH-SPLIT_MORE_BTN_WIDTH) -#define SPLIT_ONHOLD_TXT_W_ICON_WIDTH (SPLIT_CID2_WIDTH-SPLIT_MORE_BTN_WIDTH) -#define SPLIT_ONHOLD_TXT_T_PAD 308 -#define SPLIT_ONHOLD_TXT_HEIGHT 24 - -#define SPLIT_SWAP_CID1_L_PAD 47 -#define SPLIT_SWAP_CID1_WIDTH 130 - -#define SPLIT_SWAP_PLAY_L_PAD (SPLIT_SWAP_CID1_L_PAD+8) -#define SPLIT_SWAP_PLAY_WIDTH 25 - -#define SPLIT_SWAP_CID2_L_PAD 240 -#define SPLIT_SWAP_CID2_WIDTH 190 - -#define SPLIT_SWAP_PAUSE_L_PAD (SPLIT_SWAP_CID2_L_PAD+4) -#define SPLIT_SWAP_PAUSE_WIDTH 40 - -#define SPLIT_SWAP_NAME1_L_PAD 30 -#define SPLIT_SWAP_NAME1_WIDTH 170 - -#define SPLIT_SWAP_NAME2_L_PAD (SPLIT_SWAP_NAME1_L_PAD+SPLIT_SWAP_NAME1_WIDTH+14) -#define SPLIT_SWAP_NAME2_WIDTH 242 - -#define SPLIT_SWAP_MORE_BTN_WIDTH 40 -#define SPLIT_SWAP_MORE_BTN_L_PAD (SPLIT_SWAP_CID2_L_PAD+SPLIT_SWAP_CID2_WIDTH-SPLIT_SWAP_MORE_BTN_WIDTH) -#define SPLIT_SWAP_MORE_BTN_T_PAD (SPLIT_TIMER_TXT_T_PAD-6) -#define SPLIT_SWAP_MORE_BTN_HEIGHT 40 -#define SPLIT_TIMER_TXT_W_ICON_WIDTH (SPLIT_SWAP_CID2_WIDTH-SPLIT_SWAP_MORE_BTN_WIDTH) - -#define CONF_LIST_T_PAD 115 -#define CONF_LIST_HEIGHT (70*5+1*5) /*row-height(70) row-gap(1)*/ - -#define CONF_HOLD_WIDTH 45 -#define CONF_HOLD_L_PAD (MAIN_SCREEN_W-26-CONF_HOLD_WIDTH) -#define CONF_HOLD_T_PAD 620 -#define CONF_HOLD_HEIGHT 39 - -#define CONF_TIMER_T_PAD 620 -#define CONF_TIMER_HEIGHT 52 - -#define REJ_MSG_NEW_BTN_L_PAD 26 -#define REJ_MSG_NEW_BTN_WIDTH 428 -#define REJ_MSG_NEW_BTN_T_PAD 715 -#define REJ_MSG_NEW_BTN_HEIGHT 56 - -#define REJ_MSG_LIST_T_PAD 20 -#define REJ_MSG_LIST_HEIGHT 685 - -#define SIX_BTN_COL1_L_PAD 26 -#define SIX_BTN_COL1_WIDTH 134 -#define SIX_BTN_COL2_L_PAD (SIX_BTN_COL1_L_PAD+SIX_BTN_COL1_WIDTH+13) -#define SIX_BTN_COL3_L_PAD (SIX_BTN_COL2_L_PAD+SIX_BTN_COL1_WIDTH+13) -#define SIX_BTN_ROW1_T_PAD 494 -#define SIX_BTN_ROW1_HEIGHT 88 -#define SIX_BTN_ROW2_T_PAD (SIX_BTN_ROW1_T_PAD+SIX_BTN_ROW1_HEIGHT+13) - -#define CALL_BIG_END_L_PAD 26 -#define CALL_BIG_END_WIDTH 428 -#define CALL_BIG_END_T_PAD 712 -#define CALL_BIG_END_HEIGHT 70 - -#define INCMG_CALL_BTN1_T_PAD 438 -#define INCMG_CALL_BTN_HEIGHT CALL_BIG_END_HEIGHT -#define INCMG_CALL_BTN2_T_PAD 524 -#define INCMG_CALL_BTN3_T_PAD 610 - -#define VIDEO_BTN_POS1_L_PAD 26 -#define VIDEO_BTN_POS1_WIDTH 202 -#define VIDEO_BTN_POS1_T_PAD 524 -#define VIDEO_BTN_POS1_HEIGHT 70 -#define VIDEO_BTN_POS2_L_PAD VIDEO_BTN_POS1_L_PAD -#define VIDEO_BTN_POS2_WIDTH VIDEO_BTN_POS1_WIDTH -#define VIDEO_BTN_POS2_T_PAD 610 -#define VIDEO_BTN_POS2_HEIGHT VIDEO_BTN_POS1_HEIGHT - -#define VOICE_BTN_POS1_L_PAD (VIDEO_BTN_POS1_L_PAD+VIDEO_BTN_POS1_WIDTH+40) -#define VOICE_BTN_POS1_WIDTH VIDEO_BTN_POS1_WIDTH - -#define MSG_BTN_POS1_L_PAD VIDEO_BTN_POS1_L_PAD -#define MSG_BTN_POS1_WIDTH 428 -#define MSG_BTN_POS1_T_PAD 610 -#define MSG_BTN_POS1_HEIGHT VIDEO_BTN_POS1_HEIGHT -#define MSG_BTN_POS2_T_PAD 712 -#define MSG_BTN_POS2_HEIGHT VIDEO_BTN_POS1_HEIGHT - -#define CONTACT_BTN_POS1_L_PAD VIDEO_BTN_POS1_L_PAD -#define CONTACT_BTN_POS1_WIDTH MSG_BTN_POS1_WIDTH -#define CONTACT_BTN_POS1_T_PAD 712 -#define CONTACT_BTN_POS1_HEIGHT VIDEO_BTN_POS1_HEIGHT - -#define QP_CID_L_PAD 10 -#define QP_CID_WIDTH 82 -#define QP_CID_T_PAD 11 -#define QP_CID_HEIGHT 82 - -#define QP_END_BTN_L_PAD 102 -#define QP_END_BTN_WIDTH 368 -#define QP_END_BTN_T_PAD 50 -#define QP_END_BTN_HEIGHT 40 - -#define QP_NAME_L_PAD 102 -#define QP_NAME_WIDTH 248 -#define QP_NAME_T_PAD 8 -#define QP_NAME_HEIGHT 30 - -#define QP_TIMER_L_PAD 370 -/* - * End of WVGA GUI Widget Dimensions - */ - - -/* - * Relative positions - * In Portrait mode - */ -/* Relative X & Y positions of widgets w.r.t. Full Screen */ -#define REL_W(x) ((x)/MAIN_SCREEN_W) -#define REL_H(y) ((y)/MAIN_SCREEN_H) - -/* Relative X & Y positions of widgets w.r.t. Navi-frame layout */ -/*#define WL_NB_H 94*/ -#define REL_NAVIFRAME_W(x) ((x)/MAIN_NAVIFRAME_W) -#define REL_NAVIFRAME_H(y) ((y)/MAIN_NAVIFRAME_H) - -/* Relative X & Y positions of widgets w.r.t. ACC/REJ ICON layout */ -#define REL_LOCK_W(x) ((x)/483) /*approx*/ -#define REL_LOCK_H(y) ((y)/198) /*approx*/ -/* Relative X & Y positions of widgets w.r.t. REJ-W-MSG ICON layout */ -#define REL_LOCK_MSG_W(x) ((x)/348) /*approx*/ -#define REL_LOCK_MSG_H(y) ((y)/200) /*approx*/ - -/* Relative X & Y positions of widgets w.r.t. Keypad Buttons layout */ -#define REL_KEYPAD_W(x) ((x)/KEYPAD_BTNS_WIDTH) -#define REL_KEYPAD_H(y) ((y)/KEYPAD_BTNS_HEIGHT) - /* - * End of Relative positions - */ - - -/* - * MO/Dialing view & MT/Incoming view - * In Portrait mode - */ -#define DIALLING_STATUS_L REL_W(DIALING_STATUS_L_PAD) -#define DIALLING_STATUS_R REL_W(DIALING_STATUS_L_PAD+DIALING_STATUS_WIDTH) -#define DIALLING_STATUS_T REL_H(DIALING_STATUS_T_PAD) -#define DIALLING_STATUS_B REL_H(DIALING_STATUS_T_PAD+DIALING_STATUS_HEIGHT) - -/* -#define DIALLING_MT_STATUS_L REL_W(123) -#define DIALLING_MT_STATUS_R REL_W(357) -#define DIALLING_MT_STATUS_T REL_H(375) -#define DIALLING_MT_STATUS_B REL_H(407) -*/ - -#define DIALLING_NAME_L REL_W(CALL_NAME_L_PAD) -#define DIALLING_NAME_R REL_W(CALL_NAME_L_PAD+CALL_NAME_WIDTH) -#define DIALLING_NAME_T REL_H(CALL_NAME_T_PAD) -#define DIALLING_NAME_B REL_H(CALL_NAME_T_PAD+CALL_NAME_HEIGHT) - -#define DIALLING_NUMBER_L REL_W(CALL_NUMBER_L_PAD) -#define DIALLING_NUMBER_R REL_W(CALL_NUMBER_L_PAD+CALL_NUMBER_WIDTH) -#define DIALLING_NUMBER_T REL_H(CALL_NUMBER_T_PAD) -#define DIALLING_NUMBER_B REL_H(CALL_NUMBER_T_PAD+CALL_NUMBER_HEIGHT) - -#define DIALLING_CID_L REL_W(CALLER_ID_L_PAD) -#define DIALLING_CID_R REL_W(CALLER_ID_L_PAD+CALLER_ID_WIDTH) -#define DIALLING_CID_T REL_H(CALLER_ID_T_PAD) -#define DIALLING_CID_B REL_H(CALLER_ID_T_PAD+CALLER_ID_HEIGHT) - -#define DIALLING_BACKGROUND_CID_L REL_W(BACKGROUND_CID_L_PAD) -#define DIALLING_BACKGROUND_CID_R REL_W(BACKGROUND_CID_L_PAD+BACKGROUND_CID_WIDTH) -#define DIALLING_BACKGROUND_CID_T REL_H(BACKGROUND_CID_T_PAD) -#define DIALLING_BACKGROUND_CID_B REL_H(BACKGROUND_CID_T_PAD+BACKGROUND_CID_HEIGHT) - -/* accept - MT view */ -#define DIALLING_MT_BTN1_L REL_W(ACCEPT_BTN_L_PAD) -#define DIALLING_MT_BTN1_R REL_W(ACCEPT_BTN_L_PAD+ACCEPT_BTN_WIDTH) -#define DIALLING_MT_BTN1_T REL_H(ACCEPT_BTN_T_PAD) -#define DIALLING_MT_BTN1_B REL_H(ACCEPT_BTN_T_PAD+ACCEPT_BTN_HEIGHT) - -/* reject - MT view */ -#define DIALLING_MT_BTN2_L REL_W(REJECT_BTN_L_PAD) -#define DIALLING_MT_BTN2_R REL_W(REJECT_BTN_L_PAD+REJECT_BTN_WIDTH) -#define DIALLING_MT_BTN2_T REL_H(REJECT_BTN_T_PAD) -#define DIALLING_MT_BTN2_B REL_H(REJECT_BTN_T_PAD+REJECT_BTN_HEIGHT) -/* - * End of MO/Dialing view & MT/Incoming view - */ - - -/* - * MT LOCK View - * In Portrait mode - */ -#define INCOMING_LOCK_ACCEPT_BG_L REL_W(-182) -#define INCOMING_LOCK_ACCEPT_BG_R REL_W(140) -#define INCOMING_LOCK_ACCEPT_BG_T REL_H(591) -#define INCOMING_LOCK_ACCEPT_BG_B REL_H(715) - -#define INCOMING_LOCK_ACCEPT_ICON_L REL_LOCK_W(202) -#define INCOMING_LOCK_ACCEPT_ICON_R REL_LOCK_W(272) -#define INCOMING_LOCK_ACCEPT_ICON_T REL_LOCK_H(23) -#define INCOMING_LOCK_ACCEPT_ICON_B REL_LOCK_H(93) - -#define INCOMING_LOCK_ACCEPT_TEXT_L REL_LOCK_W(30) -#define INCOMING_LOCK_ACCEPT_TEXT_R REL_LOCK_W(182) -#define INCOMING_LOCK_ACCEPT_TEXT_T INCOMING_LOCK_ACCEPT_ICON_T -#define INCOMING_LOCK_ACCEPT_TEXT_B INCOMING_LOCK_ACCEPT_ICON_B - -#define INCOMING_LOCK_REJECT_BG_L REL_W(340) -#define INCOMING_LOCK_REJECT_BG_R REL_W(662) -#define INCOMING_LOCK_REJECT_BG_T INCOMING_LOCK_ACCEPT_BG_T -#define INCOMING_LOCK_REJECT_BG_B INCOMING_LOCK_ACCEPT_BG_B - -#define INCOMING_LOCK_REJECT_ICON_L REL_LOCK_W(50) -#define INCOMING_LOCK_REJECT_ICON_R REL_LOCK_W(120) -#define INCOMING_LOCK_REJECT_ICON_T INCOMING_LOCK_ACCEPT_ICON_T -#define INCOMING_LOCK_REJECT_ICON_B INCOMING_LOCK_ACCEPT_ICON_B - -#define INCOMING_LOCK_REJECT_TEXT_L REL_LOCK_W(130) -#define INCOMING_LOCK_REJECT_TEXT_R REL_LOCK_W(282) -#define INCOMING_LOCK_REJECT_TEXT_T INCOMING_LOCK_REJECT_ICON_T -#define INCOMING_LOCK_REJECT_TEXT_B INCOMING_LOCK_REJECT_ICON_B -/* - * End of MT LOCK View - */ - - -/* - * KEYPAD View - * In Portrait mode - */ -#define INCALL_DIALER_TIMER_L REL_W(KEYPAD_TIMER_L_PAD) -#define INCALL_DIALER_TIMER_R REL_W(KEYPAD_TIMER_L_PAD+KEYPAD_TIMER_WIDTH) -#define INCALL_DIALER_TIMER_T REL_H(KEYPAD_TIMER_T_PAD) -#define INCALL_DIALER_TIMER_B REL_H(KEYPAD_TIMER_L_PAD+KEYPAD_TIMER_HEIGHT) - -#define INCALL_DIALER_NAME_L INCALL_DIALER_TIMER_L -#define INCALL_DIALER_NAME_R INCALL_DIALER_TIMER_R -#define INCALL_DIALER_NAME_T INCALL_DIALER_TIMER_T -#define INCALL_DIALER_NAME_B INCALL_DIALER_TIMER_B - -/* -#define DIALLING_KEYPAD_T_BF REL_H(319) -#define DIALLING_KEYPAD_B_BF REL_H(710) -*/ - -#define DIALLING_KEYPAD_L REL_W(0) -#define DIALLING_KEYPAD_R REL_W(MAIN_SCREEN_W) -#define DIALLING_KEYPAD_T REL_H(KEYPAD_BTNS_T_PAD) -#define DIALLING_KEYPAD_B REL_H(KEYPAD_BTNS_T_PAD+KEYPAD_BTNS_HEIGHT) - -#define DIALLING_ENTRY_TEXT_L REL_W(KEYPAD_ENTRY_TXT_L_PAD) -#define DIALLING_ENTRY_TEXT_R REL_W(KEYPAD_ENTRY_TXT_L_PAD+KEYPAD_ENTRY_TXT_WIDTH) -#define DIALLING_ENTRY_TEXT_T REL_H(KEYPAD_ENTRY_TXT_T_PAD) -#define DIALLING_ENTRY_TEXT_B REL_H(KEYPAD_ENTRY_TXT_T_PAD+KEYPAD_ENTRY_TXT_HEIGHT) - -#define DIALER_BTN1_L REL_W(KEYPAD_HIDE_BTN_L_PAD) -#define DIALER_BTN1_R REL_W(KEYPAD_HIDE_BTN_L_PAD+KEYPAD_HIDE_BTN_WIDTH) -#define DIALER_BTN1_T REL_H(KEYPAD_HIDE_BTN_T_PAD) -#define DIALER_BTN1_B REL_H(KEYPAD_HIDE_BTN_T_PAD+KEYPAD_HIDE_BTN_HEIGHT) - -#define DIALER_BTN2_L REL_W(KEYPAD_END_BTN_L_PAD) -#define DIALER_BTN2_R REL_W(KEYPAD_END_BTN_L_PAD+KEYPAD_END_BTN_WIDTH) -#define DIALER_BTN2_T DIALER_BTN1_T -#define DIALER_BTN2_B DIALER_BTN1_B -/* - * End of KEYPAD View - */ - - -/* - * INCALL View - * In Portrait mode - */ -#define INCALL_CID_L DIALLING_CID_L -#define INCALL_CID_R DIALLING_CID_R -#define INCALL_CID_T DIALLING_CID_T -#define INCALL_CID_B DIALLING_CID_B - -/* -#define INCALL_CID_DIM_T DIALLING_CID_T -#define INCALL_CID_DIM_B DIALLING_CID_B -#define INCALL_CID_DIM_L REL_W(145) -#define INCALL_CID_DIM_R REL_W(334) -*/ - -#define INCALL_BACKGROUND_CID_L DIALLING_BACKGROUND_CID_L -#define INCALL_BACKGROUND_CID_R DIALLING_BACKGROUND_CID_R -#define INCALL_BACKGROUND_CID_T DIALLING_BACKGROUND_CID_T -#define INCALL_BACKGROUND_CID_B DIALLING_BACKGROUND_CID_B - -#define INCALL_NAME_L DIALLING_NAME_L -#define INCALL_NAME_R DIALLING_NAME_R -#define INCALL_NAME_T DIALLING_NAME_T -#define INCALL_NAME_B DIALLING_NAME_B - -#define INCALL_NUMBER_L DIALLING_NUMBER_L -#define INCALL_NUMBER_R DIALLING_NUMBER_R -#define INCALL_NUMBER_T DIALLING_NUMBER_T -#define INCALL_NUMBER_B DIALLING_NUMBER_B - -#define INCALL_HOLD_L REL_W(INCALL_HOLD_BTN_L_PAD) -#define INCALL_HOLD_R REL_W(INCALL_HOLD_BTN_L_PAD+INCALL_HOLD_BTN_WIDTH) -#define INCALL_HOLD_T REL_H(INCALL_HOLD_BTN_T_PAD) -#define INCALL_HOLD_B REL_H(INCALL_HOLD_BTN_T_PAD+INCALL_HOLD_BTN_HEIGHT) - -#define INCALL_TIMER_L REL_W(INCALL_TIMER_L_PAD) -#define INCALL_TIMER_R REL_W(INCALL_TIMER_L_PAD+INCALL_TIMER_WIDTH) -#define INCALL_TIMER_T REL_H(INCALL_TIMER_T_PAD) -#define INCALL_TIMER_B REL_H(INCALL_TIMER_T_PAD+INCALL_TIMER_HEIGHT) - -#define INCALL_BACKGROUND_SHARE_L REL_W(0) -#define INCALL_BACKGROUND_SHARE_R REL_W(MAIN_SCREEN_W) -#define INCALL_BACKGROUND_SHARE_T REL_H(INCALL_SHARE_BG_T_PAD) -#define INCALL_BACKGROUND_SHARE_B REL_H(INCALL_SHARE_BG_T_PAD+INCALL_SHARE_BG_HEIGHT) -/* - * End of INCALL View - */ - - -/* - * MULTI-CALL SPLIT View - * In Portrait mode - */ -/* L[ACT] + R[HLD] */ -#define MULTICALL_SPLIT_BACKGROUND_CID_L INCALL_BACKGROUND_CID_L -#define MULTICALL_SPLIT_BACKGROUND_CID_R INCALL_BACKGROUND_CID_R -#define MULTICALL_SPLIT_BACKGROUND_CID_T INCALL_BACKGROUND_CID_T -#define MULTICALL_SPLIT_BACKGROUND_CID_B INCALL_BACKGROUND_CID_B - -#define MULTICALL_SPLIT_CID_1_L REL_W(SPLIT_CID1_L_PAD) -#define MULTICALL_SPLIT_CID_1_R REL_W(SPLIT_CID1_L_PAD+SPLIT_CID1_WIDTH) -#define MULTICALL_SPLIT_CID_1_T REL_H(SPLIT_CID1_T_PAD) -#define MULTICALL_SPLIT_CID_1_B REL_H(SPLIT_CID1_T_PAD+SPLIT_CID1_HEIGHT) - -#define MULTICALL_SPLIT_PAUSE_L REL_W(SPLIT_PAUSE_L_PAD) -#define MULTICALL_SPLIT_PAUSE_R REL_W(SPLIT_PAUSE_L_PAD+SPLIT_PAUSE_WIDTH) -#define MULTICALL_SPLIT_PAUSE_T REL_H(SPLIT_PAUSE_T_PAD) -#define MULTICALL_SPLIT_PAUSE_B REL_H(SPLIT_PAUSE_T_PAD+SPLIT_PAUSE_HEIGHT) - -#define MULTICALL_SPLIT_CID_2_L REL_W(SPLIT_CID2_L_PAD) -#define MULTICALL_SPLIT_CID_2_R REL_W(SPLIT_CID2_L_PAD+SPLIT_CID2_WIDTH) -#define MULTICALL_SPLIT_CID_2_T REL_H(SPLIT_CID2_T_PAD) -#define MULTICALL_SPLIT_CID_2_B REL_H(SPLIT_CID2_T_PAD+SPLIT_CID2_HEIGHT) - -#define MULTICALL_SPLIT_PLAY_L REL_W(SPLIT_PLAY_L_PAD) -#define MULTICALL_SPLIT_PLAY_R REL_W(SPLIT_PLAY_L_PAD+SPLIT_PLAY_WIDTH) -#define MULTICALL_SPLIT_PLAY_T REL_H(SPLIT_PLAY_T_PAD) -#define MULTICALL_SPLIT_PLAY_B REL_H(SPLIT_PLAY_T_PAD+SPLIT_PLAY_HEIGHT) - -#define MULTICALL_SPLIT_NAME_1_L REL_W(SPLIT_NAME1_L_PAD) -#define MULTICALL_SPLIT_NAME_1_R REL_W(SPLIT_NAME1_L_PAD+SPLIT_NAME1_WIDTH) -#define MULTICALL_SPLIT_NAME_1_T REL_H(SPLIT_NAME1_T_PAD) -#define MULTICALL_SPLIT_NAME_1_B REL_H(SPLIT_NAME1_T_PAD+SPLIT_NAME1_HEIGHT) - -#define MULTICALL_SPLIT_NAME_2_L REL_W(SPLIT_NAME2_L_PAD) -#define MULTICALL_SPLIT_NAME_2_R REL_W(SPLIT_NAME2_L_PAD+SPLIT_NAME2_WIDTH) -#define MULTICALL_SPLIT_NAME_2_T REL_H(SPLIT_NAME2_T_PAD) -#define MULTICALL_SPLIT_NAME_2_B REL_H(SPLIT_NAME2_T_PAD+SPLIT_NAME2_HEIGHT) - -#define MULTICALL_SPLIT_TIMER_L MULTICALL_SPLIT_CID_1_L -#define MULTICALL_SPLIT_TIMER_R MULTICALL_SPLIT_CID_1_R -#define MULTICALL_SPLIT_TIMER_T REL_H(SPLIT_TIMER_TXT_T_PAD) -#define MULTICALL_SPLIT_TIMER_B REL_H(SPLIT_TIMER_TXT_T_PAD+SPLIT_TIMER_TXT_HEIGHT) - -#define MULTICALL_SPLIT_ON_HOLD_TXT_L MULTICALL_SPLIT_CID_2_L -#define MULTICALL_SPLIT_ON_HOLD_TXT_R MULTICALL_SPLIT_CID_2_R -#define MULTICALL_SPLIT_ON_HOLD_TXT_T REL_H(SPLIT_ONHOLD_TXT_T_PAD) -#define MULTICALL_SPLIT_ON_HOLD_TXT_B REL_H(SPLIT_ONHOLD_TXT_T_PAD+SPLIT_ONHOLD_TXT_HEIGHT) - -#define MULTICALL_SPLIT_ON_HOLD_TXT_WITH_ICON_L MULTICALL_SPLIT_CID_2_L -#define MULTICALL_SPLIT_ON_HOLD_TXT_WITH_ICON_R REL_W(SPLIT_ONHOLD_TXT_W_ICON_WIDTH) -#define MULTICALL_SPLIT_ON_HOLD_TXT_WITH_ICON_T MULTICALL_SPLIT_ON_HOLD_TXT_T -#define MULTICALL_SPLIT_ON_HOLD_TXT_WITH_ICON_B MULTICALL_SPLIT_ON_HOLD_TXT_B - -#define MULTICALL_SPLIT_MORE_ICON_L REL_W(SPLIT_MORE_BTN_L_PAD) -#define MULTICALL_SPLIT_MORE_ICON_R REL_W(SPLIT_MORE_BTN_L_PAD+SPLIT_MORE_BTN_WIDTH) -#define MULTICALL_SPLIT_MORE_ICON_T MULTICALL_SPLIT_ON_HOLD_TXT_T -#define MULTICALL_SPLIT_MORE_ICON_B MULTICALL_SPLIT_ON_HOLD_TXT_B -/* L[ACT] + R[HLD] */ - -/* L[HLD] + R[ACT] */ -#define MULTICALL_SPLIT_SWAP_CID_1_L REL_W(SPLIT_SWAP_CID1_L_PAD) -#define MULTICALL_SPLIT_SWAP_CID_1_R REL_W(SPLIT_SWAP_CID1_L_PAD+SPLIT_SWAP_CID1_WIDTH) -#define MULTICALL_SPLIT_SWAP_CID_1_T MULTICALL_SPLIT_CID_2_T -#define MULTICALL_SPLIT_SWAP_CID_1_B MULTICALL_SPLIT_CID_2_B - -#define MULTICALL_SPLIT_SWAP_PLAY_L REL_W(SPLIT_SWAP_PLAY_L_PAD) -#define MULTICALL_SPLIT_SWAP_PLAY_R REL_W(SPLIT_SWAP_PLAY_L_PAD+SPLIT_SWAP_PLAY_WIDTH) -#define MULTICALL_SPLIT_SWAP_PLAY_T MULTICALL_SPLIT_PLAY_T -#define MULTICALL_SPLIT_SWAP_PLAY_B MULTICALL_SPLIT_PLAY_B - -#define MULTICALL_SPLIT_SWAP_CID_2_L REL_W(SPLIT_SWAP_CID2_L_PAD) -#define MULTICALL_SPLIT_SWAP_CID_2_R REL_W(SPLIT_SWAP_CID2_L_PAD+SPLIT_SWAP_CID2_WIDTH) -#define MULTICALL_SPLIT_SWAP_CID_2_T MULTICALL_SPLIT_CID_1_T -#define MULTICALL_SPLIT_SWAP_CID_2_B MULTICALL_SPLIT_CID_1_B - -#define MULTICALL_SPLIT_SWAP_PAUSE_L REL_W(SPLIT_SWAP_PAUSE_L_PAD) -#define MULTICALL_SPLIT_SWAP_PAUSE_R REL_W(SPLIT_SWAP_PAUSE_L_PAD+SPLIT_SWAP_PAUSE_WIDTH) -#define MULTICALL_SPLIT_SWAP_PAUSE_T MULTICALL_SPLIT_PAUSE_T -#define MULTICALL_SPLIT_SWAP_PAUSE_B MULTICALL_SPLIT_PAUSE_B - -#define MULTICALL_SPLIT_SWAP_NAME_1_L MULTICALL_SPLIT_NAME_1_L -#define MULTICALL_SPLIT_SWAP_NAME_1_R REL_W(SPLIT_SWAP_NAME1_L_PAD+SPLIT_SWAP_NAME1_WIDTH) -#define MULTICALL_SPLIT_SWAP_NAME_1_T MULTICALL_SPLIT_NAME_2_T -#define MULTICALL_SPLIT_SWAP_NAME_1_B MULTICALL_SPLIT_NAME_2_B - -#define MULTICALL_SPLIT_SWAP_NAME_2_L REL_W(SPLIT_SWAP_NAME2_L_PAD) -#define MULTICALL_SPLIT_SWAP_NAME_2_R REL_W(SPLIT_SWAP_NAME2_L_PAD+SPLIT_SWAP_NAME2_WIDTH) -#define MULTICALL_SPLIT_SWAP_NAME_2_T MULTICALL_SPLIT_NAME_1_T -#define MULTICALL_SPLIT_SWAP_NAME_2_B MULTICALL_SPLIT_NAME_1_B - -#define MULTICALL_SPLIT_SWAP_ON_HOLD_TXT_L MULTICALL_SPLIT_SWAP_CID_1_L -#define MULTICALL_SPLIT_SWAP_ON_HOLD_TXT_R MULTICALL_SPLIT_SWAP_CID_1_R -#define MULTICALL_SPLIT_SWAP_ON_HOLD_TXT_T MULTICALL_SPLIT_ON_HOLD_TXT_T -#define MULTICALL_SPLIT_SWAP_ON_HOLD_TXT_B MULTICALL_SPLIT_ON_HOLD_TXT_B - -#define MULTICALL_SPLIT_SWAP_TIMER_L MULTICALL_SPLIT_SWAP_CID_2_L -#define MULTICALL_SPLIT_SWAP_TIMER_R MULTICALL_SPLIT_SWAP_CID_2_R -#define MULTICALL_SPLIT_SWAP_TIMER_T MULTICALL_SPLIT_TIMER_T -#define MULTICALL_SPLIT_SWAP_TIMER_B MULTICALL_SPLIT_TIMER_B - -#define MULTICALL_SPLIT_SWAP_TIMER_WITH_ICON_L MULTICALL_SPLIT_SWAP_CID_2_L -#define MULTICALL_SPLIT_SWAP_TIMER_WITH_ICON_R REL_W(SPLIT_TIMER_TXT_W_ICON_WIDTH) -#define MULTICALL_SPLIT_SWAP_TIMER_WITH_ICON_T MULTICALL_SPLIT_TIMER_T -#define MULTICALL_SPLIT_SWAP_TIMER_WITH_ICON_B MULTICALL_SPLIT_TIMER_B - -#define MULTICALL_SPLIT_SWAP_MORE_ICON_L REL_W(SPLIT_SWAP_MORE_BTN_L_PAD) -#define MULTICALL_SPLIT_SWAP_MORE_ICON_R REL_W(SPLIT_SWAP_MORE_BTN_L_PAD+SPLIT_SWAP_MORE_BTN_WIDTH) -#define MULTICALL_SPLIT_SWAP_MORE_ICON_T REL_H(SPLIT_SWAP_MORE_BTN_T_PAD) -#define MULTICALL_SPLIT_SWAP_MORE_ICON_B REL_H(SPLIT_SWAP_MORE_BTN_T_PAD+SPLIT_SWAP_MORE_BTN_HEIGHT) -/* L[HLD] + R[ACT] */ - -/* - * End of MULTI-CALL SPLIT View - */ - - -/* - * MULTI-CALL LIST View - * In Portrait mode - */ -#define MULTICALL_LIST_L REL_W(0) -#define MULTICALL_LIST_R REL_W(MAIN_SCREEN_W) -#define MULTICALL_LIST_T REL_H(CONF_LIST_T_PAD) -#define MULTICALL_LIST_B REL_H(CONF_LIST_T_PAD+CONF_LIST_HEIGHT) - -#define MULTICALL_LIST_HOLD_L REL_W(CONF_HOLD_L_PAD) -#define MULTICALL_LIST_HOLD_R REL_W(CONF_HOLD_L_PAD+CONF_HOLD_WIDTH) -#define MULTICALL_LIST_HOLD_T REL_H(CONF_HOLD_T_PAD) -#define MULTICALL_LIST_HOLD_B REL_H(CONF_HOLD_T_PAD+CONF_HOLD_HEIGHT) - -#define MULTICALL_LIST_TIMER_L REL_W(0) -#define MULTICALL_LIST_TIMER_R REL_W(MAIN_SCREEN_W) -#define MULTICALL_LIST_TIMER_T REL_H(CONF_TIMER_T_PAD) -#define MULTICALL_LIST_TIMER_B REL_H(CONF_TIMER_T_PAD+CONF_TIMER_HEIGHT) - -#define MULTICALL_LIST_BIG_END_L REL_W(CALL_BIG_END_L_PAD) -#define MULTICALL_LIST_BIG_END_R REL_W(CALL_BIG_END_L_PAD+CALL_BIG_END_WIDTH) -#define MULTICALL_LIST_BIG_END_T REL_H(CALL_BIG_END_T_PAD) -#define MULTICALL_LIST_BIG_END_B REL_H(CALL_BIG_END_T_PAD+CALL_BIG_END_HEIGHT) -/* - * End of MULTI-CALL LIST View - */ - - -/* - * SIX Button Layout - * In Portrait mode - */ -#define SIX_BTN_1_L REL_W(SIX_BTN_COL1_L_PAD) -#define SIX_BTN_1_R REL_W(SIX_BTN_COL1_L_PAD+SIX_BTN_COL1_WIDTH) -#define SIX_BTN_2_L REL_W(SIX_BTN_COL2_L_PAD) -#define SIX_BTN_2_R REL_W(SIX_BTN_COL2_L_PAD+SIX_BTN_COL1_WIDTH) -#define SIX_BTN_3_L REL_W(SIX_BTN_COL3_L_PAD) -#define SIX_BTN_3_R REL_W(SIX_BTN_COL3_L_PAD+SIX_BTN_COL1_WIDTH) - -#define SIX_BTN_1_T REL_H(SIX_BTN_ROW1_T_PAD) -#define SIX_BTN_1_B REL_H(SIX_BTN_ROW1_T_PAD+SIX_BTN_ROW1_HEIGHT) -#define SIX_BTN_2_T REL_H(SIX_BTN_ROW2_T_PAD) -#define SIX_BTN_2_B REL_H(SIX_BTN_ROW2_T_PAD+SIX_BTN_ROW1_HEIGHT) - -#define SIX_BTN_BIG_END_L REL_W(CALL_BIG_END_L_PAD) -#define SIX_BTN_BIG_END_R REL_W(CALL_BIG_END_L_PAD+CALL_BIG_END_WIDTH) -#define SIX_BTN_BIG_END_T REL_H(CALL_BIG_END_T_PAD) -#define SIX_BTN_BIG_END_B REL_H(CALL_BIG_END_T_PAD+CALL_BIG_END_HEIGHT) - -#define SIX_BTN_INCOMING_1_L SIX_BTN_BIG_END_L -#define SIX_BTN_INCOMING_1_R SIX_BTN_BIG_END_R -#define SIX_BTN_INCOMING_1_T REL_H(INCMG_CALL_BTN1_T_PAD) -#define SIX_BTN_INCOMING_1_B REL_H(INCMG_CALL_BTN1_T_PAD+INCMG_CALL_BTN_HEIGHT) - -#define SIX_BTN_INCOMING_2_L SIX_BTN_BIG_END_L -#define SIX_BTN_INCOMING_2_R SIX_BTN_BIG_END_R -#define SIX_BTN_INCOMING_2_T REL_H(INCMG_CALL_BTN2_T_PAD) -#define SIX_BTN_INCOMING_2_B REL_H(INCMG_CALL_BTN2_T_PAD+INCMG_CALL_BTN_HEIGHT) - -#define SIX_BTN_INCOMING_3_L SIX_BTN_BIG_END_L -#define SIX_BTN_INCOMING_3_R SIX_BTN_BIG_END_R -#define SIX_BTN_INCOMING_3_T REL_H(INCMG_CALL_BTN3_T_PAD) -#define SIX_BTN_INCOMING_3_B REL_H(INCMG_CALL_BTN3_T_PAD+INCMG_CALL_BTN_HEIGHT) -/* - * End of SIX Button Layout - */ - -/* - * Navigation bar layout - */ -#define CALL_NAVIGATION_BAR_T REL_H(NAVIFRAME_T_PAD) -#define CALL_NAVIGATION_BAR_B REL_H(MAIN_SCREEN_H) -#define CALL_NAVIGATION_BAR_L REL_W(0) -#define CALL_NAVIGATION_BAR_R REL_W(MAIN_SCREEN_W) -/* - * End of Navigation bar layout - */ - - -/* - * END CALL View - * In Portrait mode - */ -#define ENDSINGLECALL_BACKGROUND_CID_L DIALLING_BACKGROUND_CID_L -#define ENDSINGLECALL_BACKGROUND_CID_R DIALLING_BACKGROUND_CID_R -#define ENDSINGLECALL_BACKGROUND_CID_T DIALLING_BACKGROUND_CID_T -#define ENDSINGLECALL_BACKGROUND_CID_B DIALLING_BACKGROUND_CID_B - -#define ENDSINGLECALL_CID_L DIALLING_CID_L -#define ENDSINGLECALL_CID_R DIALLING_CID_R -#define ENDSINGLECALL_CID_T DIALLING_CID_T -#define ENDSINGLECALL_CID_B DIALLING_CID_B - -#define ENDSINGLECALL_NAME_L DIALLING_NAME_L -#define ENDSINGLECALL_NAME_R DIALLING_NAME_R -#define ENDSINGLECALL_NAME_T DIALLING_NAME_T -#define ENDSINGLECALL_NAME_B DIALLING_NAME_B - -#define ENDSINGLECALL_NUMBER_L DIALLING_NUMBER_L -#define ENDSINGLECALL_NUMBER_R DIALLING_NUMBER_R -#define ENDSINGLECALL_NUMBER_T DIALLING_NUMBER_T -#define ENDSINGLECALL_NUMBER_B DIALLING_NUMBER_B - -#define ENDSINGLECALL_TIMER_L INCALL_TIMER_L -#define ENDSINGLECALL_TIMER_R INCALL_TIMER_R -#define ENDSINGLECALL_TIMER_T INCALL_TIMER_T -#define ENDSINGLECALL_TIMER_B INCALL_TIMER_B - -#define ENDSINGLECALL_VIDEO_BTN_L REL_W(VIDEO_BTN_POS1_L_PAD) -#define ENDSINGLECALL_VIDEO_BTN_R REL_W(VIDEO_BTN_POS1_L_PAD+VIDEO_BTN_POS1_WIDTH) -#define ENDSINGLECALL_VIDEO_BTN_T REL_H(VIDEO_BTN_POS1_T_PAD) -#define ENDSINGLECALL_VIDEO_BTN_B REL_H(VIDEO_BTN_POS1_T_PAD+VIDEO_BTN_POS1_HEIGHT) - -#define ENDSINGLECALL_VIDEO2_BTN_L REL_W(VIDEO_BTN_POS2_L_PAD) -#define ENDSINGLECALL_VIDEO2_BTN_R REL_W(VIDEO_BTN_POS2_L_PAD+VIDEO_BTN_POS2_WIDTH) -#define ENDSINGLECALL_VIDEO2_BTN_T REL_H(VIDEO_BTN_POS2_T_PAD) -#define ENDSINGLECALL_VIDEO2_BTN_B REL_H(VIDEO_BTN_POS2_T_PAD+VIDEO_BTN_POS2_HEIGHT) - -#define ENDSINGLECALL_VOICE_BTN_L REL_W(VOICE_BTN_POS1_L_PAD) -#define ENDSINGLECALL_VOICE_BTN_R REL_W(VOICE_BTN_POS1_L_PAD+VOICE_BTN_POS1_WIDTH) -#define ENDSINGLECALL_VOICE_BTN_T ENDSINGLECALL_VIDEO_BTN_T -#define ENDSINGLECALL_VOICE_BTN_B ENDSINGLECALL_VIDEO_BTN_B - -#define ENDSINGLECALL_VOICE2_BTN_L ENDSINGLECALL_VOICE_BTN_L -#define ENDSINGLECALL_VOICE2_BTN_R ENDSINGLECALL_VOICE_BTN_R -#define ENDSINGLECALL_VOICE2_BTN_T ENDSINGLECALL_VIDEO2_BTN_T -#define ENDSINGLECALL_VOICE2_BTN_B ENDSINGLECALL_VIDEO2_BTN_B - -#define ENDSINGLECALL_MSG_BTN_L REL_W(MSG_BTN_POS1_L_PAD) -#define ENDSINGLECALL_MSG_BTN_R REL_W(MSG_BTN_POS1_L_PAD+MSG_BTN_POS1_WIDTH) -#define ENDSINGLECALL_MSG_BTN_T REL_H(MSG_BTN_POS1_T_PAD) -#define ENDSINGLECALL_MSG_BTN_B REL_H(MSG_BTN_POS1_T_PAD+MSG_BTN_POS1_HEIGHT) - -#define ENDSINGLECALL_MSG2_BTN_L ENDSINGLECALL_MSG_BTN_L -#define ENDSINGLECALL_MSG2_BTN_R ENDSINGLECALL_MSG_BTN_R -#define ENDSINGLECALL_MSG2_BTN_T REL_H(MSG_BTN_POS2_T_PAD) -#define ENDSINGLECALL_MSG2_BTN_B REL_H(MSG_BTN_POS2_T_PAD+MSG_BTN_POS2_HEIGHT) - -#define ENDSINGLECALL_CONTACT_BTN_L REL_W(CONTACT_BTN_POS1_L_PAD) -#define ENDSINGLECALL_CONTACT_BTN_R REL_W(CONTACT_BTN_POS1_L_PAD+CONTACT_BTN_POS1_WIDTH) -#define ENDSINGLECALL_CONTACT_BTN_T REL_H(CONTACT_BTN_POS1_T_PAD) -#define ENDSINGLECALL_CONTACT_BTN_B REL_H(CONTACT_BTN_POS1_T_PAD+CONTACT_BTN_POS1_HEIGHT) -/* - * End of END CALL View - */ -#endif /*__VCUI_VIEW_LAYOUT_WVGA__*/ diff --git a/ui/vcui-view-layout.h b/ui/vcui-view-layout.h deleted file mode 100755 index b24e370..0000000 --- a/ui/vcui-view-layout.h +++ /dev/null @@ -1,592 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.tizenopensource.org/license - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -#ifndef __VCUI_VIEW_LAYOUT__ -#define __VCUI_VIEW_LAYOUT__ - -#define COLOR_DEFAULT 0 0 0 255 -#define COLOR_BG_ALPHA 0 0 0 0 -#define COLOR_BG_FOR_HELD_CALL_DIM 0 0 0 150 - -/*#define BTN_EDGE_W 9*/ - -/*List of the screen and widget dimensions as per GUI*/ -/*Portrait mode*/ -#define MAIN_SCREEN_W 480 -#define MAIN_SCREEN_H 800 - -#define REL_W(x) (x / MAIN_SCREEN_W) -#define REL_H(x) (x / MAIN_SCREEN_H) - -/* Window layout with nothing (only indicator) */ -/* -#define WL_INDI_H 52 -#define MAIN_INDICATOR_W MAIN_SCREEN_W -#define MAIN_INDICATOR_H 748 -#define REL_INDI_W(x) (x / MAIN_INDICATOR_W) -#define REL_INDI_H(x) (x / MAIN_INDICATOR_H) -*/ - -/* Window layout with titlebar */ -/* -#define WL_TB_H 92 -#define MAIN_TITLEBAR_W MAIN_SCREEN_W -#define MAIN_TITLEBAR_H 702 -#define REL_TITLEBAR_W(x) (x / MAIN_TITLEBAR_W) -#define REL_TITLEBAR_H(x) (x / MAIN_TITLEBAR_H) -*/ - -/* Window layout with navibar */ -/*#define WL_NB_H 94*/ -#define MAIN_NAVIBAR_W MAIN_SCREEN_W -#define MAIN_NAVIBAR_H 706 -#define REL_NAVIBAR_W(x) (x / MAIN_NAVIBAR_W) -#define REL_NAVIBAR_H(x) (x / MAIN_NAVIBAR_H) - -/* Main View (MO/MT view) */ -#define DIALLING_STATUS_L REL_W(12) -#define DIALLING_STATUS_R REL_W(468) -#define DIALLING_STATUS_T REL_H(428) -#define DIALLING_STATUS_B REL_H(460) - -#define DIALLING_MT_STATUS_L REL_W(123) -#define DIALLING_MT_STATUS_R REL_W(357) -#define DIALLING_MT_STATUS_T REL_H(375) -#define DIALLING_MT_STATUS_B REL_H(407) - -#define DIALLING_NAME_L REL_W(12) -#define DIALLING_NAME_R REL_W(468) -#define DIALLING_NAME_T REL_H(52) -#define DIALLING_NAME_B REL_H(102) - -#define DIALLING_NUMBER_L DIALLING_NAME_L -#define DIALLING_NUMBER_R DIALLING_NAME_R -#define DIALLING_NUMBER_T REL_H(106) -#define DIALLING_NUMBER_B REL_H(138) - -#define DIALLING_CID_L REL_W(145) -#define DIALLING_CID_R REL_W(335) -#define DIALLING_CID_T REL_H(145) -#define DIALLING_CID_B REL_H(335) - -#define DIALLING_BACKGROUND_CID_L REL_W(0) -#define DIALLING_BACKGROUND_CID_R REL_W(MAIN_SCREEN_W) -#define DIALLING_BACKGROUND_CID_T REL_H(0) -#define DIALLING_BACKGROUND_CID_B REL_H(MAIN_SCREEN_H) - -/* accept */ -#define DIALLING_MT_BTN1_L REL_W(26) -#define DIALLING_MT_BTN1_R REL_W(228) -#define DIALLING_MT_BTN1_T REL_H(620) -#define DIALLING_MT_BTN1_B REL_H(690) - -/* reject */ -#define DIALLING_MT_BTN2_L REL_W(252) -#define DIALLING_MT_BTN2_R REL_W(454) -#define DIALLING_MT_BTN2_T DIALLING_MT_BTN1_T -#define DIALLING_MT_BTN2_B DIALLING_MT_BTN1_B -/* End of Main View (MO/MT view) */ - -/* MT LOCK View */ -#define REL_LOCK_W(x) (x / 322) -#define REL_LOCK_H(x) (x / 124) - -#define INCOMING_LOCK_ACCEPT_BG_L REL_W(-182) -#define INCOMING_LOCK_ACCEPT_BG_R REL_W(140) -#define INCOMING_LOCK_ACCEPT_BG_T REL_H(591) -#define INCOMING_LOCK_ACCEPT_BG_B REL_H(715) - -#define INCOMING_LOCK_ACCEPT_ICON_L REL_LOCK_W(202) -#define INCOMING_LOCK_ACCEPT_ICON_R REL_LOCK_W(272) -#define INCOMING_LOCK_ACCEPT_ICON_T REL_LOCK_H(23) -#define INCOMING_LOCK_ACCEPT_ICON_B REL_LOCK_H(93) - -#define INCOMING_LOCK_ACCEPT_TEXT_L REL_LOCK_W(30) -#define INCOMING_LOCK_ACCEPT_TEXT_R REL_LOCK_W(182) -#define INCOMING_LOCK_ACCEPT_TEXT_T INCOMING_LOCK_ACCEPT_ICON_T -#define INCOMING_LOCK_ACCEPT_TEXT_B INCOMING_LOCK_ACCEPT_ICON_B - -#define INCOMING_LOCK_REJECT_BG_L REL_W(340) -#define INCOMING_LOCK_REJECT_BG_R REL_W(662) -#define INCOMING_LOCK_REJECT_BG_T INCOMING_LOCK_ACCEPT_BG_T -#define INCOMING_LOCK_REJECT_BG_B INCOMING_LOCK_ACCEPT_BG_B - -#define INCOMING_LOCK_REJECT_ICON_L REL_LOCK_W(50) -#define INCOMING_LOCK_REJECT_ICON_R REL_LOCK_W(120) -#define INCOMING_LOCK_REJECT_ICON_T INCOMING_LOCK_ACCEPT_ICON_T -#define INCOMING_LOCK_REJECT_ICON_B INCOMING_LOCK_ACCEPT_ICON_B - -#define INCOMING_LOCK_REJECT_TEXT_L REL_LOCK_W(130) -#define INCOMING_LOCK_REJECT_TEXT_R REL_LOCK_W(282) -#define INCOMING_LOCK_REJECT_TEXT_T INCOMING_LOCK_REJECT_ICON_T -#define INCOMING_LOCK_REJECT_TEXT_B INCOMING_LOCK_REJECT_ICON_B - -#define REL_LOCK_MSG_W(x) (x / 232) -#define REL_LOCK_MSG_H(x) (x / 125) -/* End of MT LOCK View */ - -/* KEYPAD View */ -#define INCALL_DIALER_TIMER_T REL_H(241) -#define INCALL_DIALER_TIMER_B REL_H(271) -#define INCALL_DIALER_TIMER_L REL_W(300) -#define INCALL_DIALER_TIMER_R REL_W(454) - -#define INCALL_DIALER_NAME_T INCALL_DIALER_TIMER_T -#define INCALL_DIALER_NAME_B INCALL_DIALER_TIMER_B -#define INCALL_DIALER_NAME_L REL_W(27) -#define INCALL_DIALER_NAME_R REL_W(300) - -/* -#define DIALLING_KEYPAD_T_BF REL_H(319) -#define DIALLING_KEYPAD_B_BF REL_H(710) -*/ - -#define DIALLING_KEYPAD_T REL_H(289) -#define DIALLING_KEYPAD_B REL_H(680) -#define DIALLING_KEYPAD_L REL_W(0) -#define DIALLING_KEYPAD_R REL_W(MAIN_SCREEN_W) -#define KEYPAD_W MAIN_SCREEN_W -#define KEYPAD_H 391 - -#define DIALLING_ENTRY_TEXT_T REL_H(46) -#define DIALLING_ENTRY_TEXT_B REL_H(186) -#define DIALLING_ENTRY_TEXT_L REL_W(26) -#define DIALLING_ENTRY_TEXT_R REL_W(454) -#define REL_KEYPAD_W(x) ((x)/KEYPAD_W) -#define REL_KEYPAD_H(y) ((y)/KEYPAD_H) - -#define DIALER_BTN1_T REL_H(712) -#define DIALER_BTN1_B REL_H(782) -#define DIALER_BTN1_L REL_W(27) -#define DIALER_BTN1_R REL_W(229) - -#define DIALER_BTN2_T DIALER_BTN1_T -#define DIALER_BTN2_B DIALER_BTN1_B -#define DIALER_BTN2_L REL_W(252) -#define DIALER_BTN2_R REL_W(454) -/* End of KEYPAD View */ - -/* INCALL View : Use Windows Layout with nothing (only indicator) */ -/*Portrait view - START*/ -#define INCALL_CID_T DIALLING_CID_T -#define INCALL_CID_B DIALLING_CID_B -#define INCALL_CID_L DIALLING_CID_L -#define INCALL_CID_R DIALLING_CID_R - -/* -#define INCALL_CID_DIM_T DIALLING_CID_T -#define INCALL_CID_DIM_B DIALLING_CID_B -#define INCALL_CID_DIM_L REL_W(145) -#define INCALL_CID_DIM_R REL_W(334) -*/ - -#define INCALL_BACKGROUND_CID_L DIALLING_BACKGROUND_CID_L -#define INCALL_BACKGROUND_CID_R DIALLING_BACKGROUND_CID_R -#define INCALL_BACKGROUND_CID_T DIALLING_BACKGROUND_CID_T -#define INCALL_BACKGROUND_CID_B DIALLING_BACKGROUND_CID_B - -#define INCALL_NAME_T DIALLING_NAME_T -#define INCALL_NAME_B DIALLING_NAME_B -#define INCALL_NAME_L DIALLING_NAME_L -#define INCALL_NAME_R DIALLING_NAME_R - -#define INCALL_NUMBER_T DIALLING_NUMBER_T -#define INCALL_NUMBER_B DIALLING_NUMBER_B -#define INCALL_NUMBER_L DIALLING_NUMBER_L -#define INCALL_NUMBER_R DIALLING_NUMBER_R - -#define INCALL_HOLD_T REL_H(389) -#define INCALL_HOLD_B REL_H(443) -#define INCALL_HOLD_L REL_W(26) -#define INCALL_HOLD_R REL_W(99) - -#define INCALL_TIMER_T REL_H(400) -#define INCALL_TIMER_B REL_H(432) -#define INCALL_TIMER_L REL_W(173) -#define INCALL_TIMER_R REL_W(454) - -#define INCALL_BACKGROUND_SHARE_L REL_W(0) -#define INCALL_BACKGROUND_SHARE_R REL_W(MAIN_SCREEN_W) -#define INCALL_BACKGROUND_SHARE_T REL_H(365) -#define INCALL_BACKGROUND_SHARE_B REL_H(774) -/*Portrait view - END*/ - -/* MULTICALL_SPLIT View : Use Windows Layout with no indicator */ -/*portrait mode - START*/ -/*L[ACT] + R[HLD]*/ -#define MULTICALL_SPLIT_BACKGROUND_CID_L INCALL_BACKGROUND_CID_L -#define MULTICALL_SPLIT_BACKGROUND_CID_R INCALL_BACKGROUND_CID_R -#define MULTICALL_SPLIT_BACKGROUND_CID_T INCALL_BACKGROUND_CID_T -#define MULTICALL_SPLIT_BACKGROUND_CID_B INCALL_BACKGROUND_CID_B - -#define MULTICALL_SPLIT_CID_1_T REL_H(136) -#define MULTICALL_SPLIT_CID_1_B REL_H(326) -#define MULTICALL_SPLIT_CID_1_L REL_W(50) -#define MULTICALL_SPLIT_CID_1_R REL_W(240) - -#define MULTICALL_SPLIT_PAUSE_T REL_H(282) -#define MULTICALL_SPLIT_PAUSE_B REL_H(322) -#define MULTICALL_SPLIT_PAUSE_L REL_W(54) -#define MULTICALL_SPLIT_PAUSE_R REL_W(94) - -#define MULTICALL_SPLIT_CID_2_T REL_H(169) -#define MULTICALL_SPLIT_CID_2_B REL_H(299) -#define MULTICALL_SPLIT_CID_2_L REL_W(305) -#define MULTICALL_SPLIT_CID_2_R REL_W(435) - -#define MULTICALL_SPLIT_PLAY_T REL_H(266) -#define MULTICALL_SPLIT_PLAY_B REL_H(291) -#define MULTICALL_SPLIT_PLAY_L REL_W(313) -#define MULTICALL_SPLIT_PLAY_R REL_W(338) - -#define MULTICALL_SPLIT_NAME_1_T REL_H(90) -#define MULTICALL_SPLIT_NAME_1_B REL_H(126) -#define MULTICALL_SPLIT_NAME_1_L REL_W(24) -#define MULTICALL_SPLIT_NAME_1_R REL_W(266) - -#define MULTICALL_SPLIT_NAME_2_T REL_H(136) -#define MULTICALL_SPLIT_NAME_2_B REL_H(160) -#define MULTICALL_SPLIT_NAME_2_L REL_W(280) -#define MULTICALL_SPLIT_NAME_2_R REL_W(450) - -/* -#define MULTICALL_SPLIT_ACTIVE_ICON_T REL_H(343) -#define MULTICALL_SPLIT_ACTIVE_ICON_B REL_H(371) -#define MULTICALL_SPLIT_ACTIVE_ICON_L REL_W(97) -#define MULTICALL_SPLIT_ACTIVE_ICON_R REL_W(118) -*/ - -#define MULTICALL_SPLIT_ACTIVE_TXT_T MULTICALL_SPLIT_ACTIVE_ICON_T -#define MULTICALL_SPLIT_ACTIVE_TXT_B MULTICALL_SPLIT_ACTIVE_ICON_B -#define MULTICALL_SPLIT_ACTIVE_TXT_L REL_W(120) -#define MULTICALL_SPLIT_ACTIVE_TXT_R MULTICALL_SPLIT_CID_1_R - -#define MULTICALL_SPLIT_MORE_ICON_T REL_H(308) -#define MULTICALL_SPLIT_MORE_ICON_B REL_H(332) -#define MULTICALL_SPLIT_MORE_ICON_L REL_W(409) -#define MULTICALL_SPLIT_MORE_ICON_R REL_W(433) - -/* -#define MULTICALL_SPLIT_ON_HOLD_ICON_T REL_H(308) -#define MULTICALL_SPLIT_ON_HOLD_ICON_B REL_H(332) -#define MULTICALL_SPLIT_ON_HOLD_ICON_L REL_W(320) -#define MULTICALL_SPLIT_ON_HOLD_ICON_R REL_W(341) -*/ - -#define MULTICALL_SPLIT_ON_HOLD_TXT_T REL_H(308) -#define MULTICALL_SPLIT_ON_HOLD_TXT_B REL_H(332) -#define MULTICALL_SPLIT_ON_HOLD_TXT_L REL_W(303) -#define MULTICALL_SPLIT_ON_HOLD_TXT_R REL_W(433) - -#define MULTICALL_SPLIT_ON_HOLD_TXT_WITH_ICON_T REL_H(308) -#define MULTICALL_SPLIT_ON_HOLD_TXT_WITH_ICON_B REL_H(332) -#define MULTICALL_SPLIT_ON_HOLD_TXT_WITH_ICON_L REL_W(303) -#define MULTICALL_SPLIT_ON_HOLD_TXT_WITH_ICON_R REL_W(409) - -#define MULTICALL_SPLIT_TIMER_T REL_H(343) -#define MULTICALL_SPLIT_TIMER_B REL_H(371) -#define MULTICALL_SPLIT_TIMER_L REL_W(56) -#define MULTICALL_SPLIT_TIMER_R REL_W(246) -/*L[ACT] + R[HLD]*/ - -/*L[HLD] + R[ACT]*/ -#define MULTICALL_SPLIT_SWAP_CID_1_T MULTICALL_SPLIT_CID_2_T -#define MULTICALL_SPLIT_SWAP_CID_1_B MULTICALL_SPLIT_CID_2_B -#define MULTICALL_SPLIT_SWAP_CID_1_L REL_W(49) -#define MULTICALL_SPLIT_SWAP_CID_1_R REL_W(179) - -#define MULTICALL_SPLIT_SWAP_PLAY_T MULTICALL_SPLIT_PLAY_T -#define MULTICALL_SPLIT_SWAP_PLAY_B MULTICALL_SPLIT_PLAY_B -#define MULTICALL_SPLIT_SWAP_PLAY_L REL_W(57) -#define MULTICALL_SPLIT_SWAP_PLAY_R REL_W(82) - -#define MULTICALL_SPLIT_SWAP_CID_2_T MULTICALL_SPLIT_CID_1_T -#define MULTICALL_SPLIT_SWAP_CID_2_B MULTICALL_SPLIT_CID_1_B -#define MULTICALL_SPLIT_SWAP_CID_2_L REL_W(244) -#define MULTICALL_SPLIT_SWAP_CID_2_R REL_W(434) - -#define MULTICALL_SPLIT_SWAP_PAUSE_T MULTICALL_SPLIT_PAUSE_T -#define MULTICALL_SPLIT_SWAP_PAUSE_B MULTICALL_SPLIT_PAUSE_B -#define MULTICALL_SPLIT_SWAP_PAUSE_L REL_W(248) -#define MULTICALL_SPLIT_SWAP_PAUSE_R REL_W(288) - -#define MULTICALL_SPLIT_SWAP_NAME_1_T MULTICALL_SPLIT_NAME_2_T -#define MULTICALL_SPLIT_SWAP_NAME_1_B MULTICALL_SPLIT_NAME_2_B -#define MULTICALL_SPLIT_SWAP_NAME_1_L MULTICALL_SPLIT_NAME_1_L -#define MULTICALL_SPLIT_SWAP_NAME_1_R REL_W(194) - -#define MULTICALL_SPLIT_SWAP_NAME_2_T MULTICALL_SPLIT_NAME_1_T -#define MULTICALL_SPLIT_SWAP_NAME_2_B MULTICALL_SPLIT_NAME_1_B -#define MULTICALL_SPLIT_SWAP_NAME_2_L REL_W(208) -#define MULTICALL_SPLIT_SWAP_NAME_2_R REL_W(450) - -/* -#define MULTICALL_SPLIT_SWAP_ACTIVE_ICON_T MULTICALL_SPLIT_ACTIVE_ICON_T -#define MULTICALL_SPLIT_SWAP_ACTIVE_ICON_B MULTICALL_SPLIT_ACTIVE_ICON_B -#define MULTICALL_SPLIT_SWAP_ACTIVE_ICON_L REL_W(287) -#define MULTICALL_SPLIT_SWAP_ACTIVE_ICON_R REL_W(308) -*/ - -#define MULTICALL_SPLIT_SWAP_ACTIVE_TXT_T MULTICALL_SPLIT_ACTIVE_ICON_T -#define MULTICALL_SPLIT_SWAP_ACTIVE_TXT_B MULTICALL_SPLIT_ACTIVE_ICON_B -#define MULTICALL_SPLIT_SWAP_ACTIVE_TXT_L REL_W(310) -#define MULTICALL_SPLIT_SWAP_ACTIVE_TXT_R MULTICALL_SPLIT_SWAP_CID_2_R - -/* -#define MULTICALL_SPLIT_SWAP_ON_HOLD_ICON_T MULTICALL_SPLIT_ON_HOLD_ICON_T -#define MULTICALL_SPLIT_SWAP_ON_HOLD_ICON_B MULTICALL_SPLIT_ON_HOLD_ICON_B -#define MULTICALL_SPLIT_SWAP_ON_HOLD_ICON_L REL_W(67) -#define MULTICALL_SPLIT_SWAP_ON_HOLD_ICON_R REL_W(88) -*/ - -#define MULTICALL_SPLIT_SWAP_ON_HOLD_TXT_T REL_H(308) -#define MULTICALL_SPLIT_SWAP_ON_HOLD_TXT_B REL_H(332) -#define MULTICALL_SPLIT_SWAP_ON_HOLD_TXT_L REL_W(50) -#define MULTICALL_SPLIT_SWAP_ON_HOLD_TXT_R REL_W(180) - -#define MULTICALL_SPLIT_SWAP_MORE_ICON_T REL_H(343) -#define MULTICALL_SPLIT_SWAP_MORE_ICON_B REL_H(371) -#define MULTICALL_SPLIT_SWAP_MORE_ICON_L REL_W(412) -#define MULTICALL_SPLIT_SWAP_MORE_ICON_R REL_W(436) - -#define MULTICALL_SPLIT_SWAP_TIMER_T REL_H(343) -#define MULTICALL_SPLIT_SWAP_TIMER_B REL_H(371) -#define MULTICALL_SPLIT_SWAP_TIMER_L REL_W(246) -#define MULTICALL_SPLIT_SWAP_TIMER_R REL_W(436) - -#define MULTICALL_SPLIT_SWAP_TIMER_WITH_ICON_T REL_H(343) -#define MULTICALL_SPLIT_SWAP_TIMER_WITH_ICON_B REL_H(371) -#define MULTICALL_SPLIT_SWAP_TIMER_WITH_ICON_L REL_W(246) -#define MULTICALL_SPLIT_SWAP_TIMER_WITH_ICON_R REL_W(406) -/*L[HLD] + R[ACT]*/ -/*portrait mode - END*/ -/* End of MULTICALL_SPLIT View : Use Windows Layout with no indicator */ - -/* MULTICALL_LIST View */ -/* -#define MULTICALL_CID_T REL_TITLEBAR_H(8) -#define MULTICALL_CID_B REL_TITLEBAR_H(428) -#define MULTICALL_CID_L REL_TITLEBAR_W(15) -#define MULTICALL_CID_R REL_TITLEBAR_W(468) - -#define MULTICALL_NAME_T REL_TITLEBAR_H(218) -#define MULTICALL_NAME_B REL_TITLEBAR_H(268) - -#define MULTICALL_NUM_T REL_TITLEBAR_H(48) -#define MULTICALL_NUM_B REL_TITLEBAR_H(88) -*/ - -#define MULTICALL_LIST_T REL_H(120) -#define MULTICALL_LIST_B REL_H(475) -#define MULTICALL_LIST_L REL_W(0) -#define MULTICALL_LIST_R REL_W(MAIN_SCREEN_W) - -#define MULTICALL_LIST_HOLD_T REL_H(609) -#define MULTICALL_LIST_HOLD_B REL_H(663) -#define MULTICALL_LIST_HOLD_L REL_W(381) -#define MULTICALL_LIST_HOLD_R REL_W(454) - -#define MULTICALL_LIST_TIMER_T REL_H(620) -#define MULTICALL_LIST_TIMER_B REL_H(652) -#define MULTICALL_LIST_TIMER_L REL_W(0) -#define MULTICALL_LIST_TIMER_R REL_W(MAIN_SCREEN_W) - -#define MULTICALL_LIST_BIG_END_T REL_H(704) -#define MULTICALL_LIST_BIG_END_B REL_H(774) -#define MULTICALL_LIST_BIG_END_L REL_W(26) -#define MULTICALL_LIST_BIG_END_R REL_W(454) -/* End of MULTICALL_LIST View */ - -/* Six button layout, Without Window Layout */ -#define SIX_BTN_1_L REL_W(26) -#define SIX_BTN_1_R REL_W(160) -#define SIX_BTN_2_L REL_W(173) -#define SIX_BTN_2_R REL_W(307) -#define SIX_BTN_3_L REL_W(320) -#define SIX_BTN_3_R REL_W(454) - -#define SIX_BTN_1_T REL_H(494) -#define SIX_BTN_1_B REL_H(582) -#define SIX_BTN_2_T REL_H(595) -#define SIX_BTN_2_B REL_H(683) - -#define SIX_BTN_BIG_END_L REL_W(26) -#define SIX_BTN_BIG_END_R REL_W(454) -#define SIX_BTN_BIG_END_T REL_H(712) -#define SIX_BTN_BIG_END_B REL_H(782) - -#define SIX_BTN_INCOMING_1_L SIX_BTN_BIG_END_L -#define SIX_BTN_INCOMING_1_R SIX_BTN_BIG_END_R -#define SIX_BTN_INCOMING_1_T REL_H(438) -#define SIX_BTN_INCOMING_1_B REL_H(508) - -#define SIX_BTN_INCOMING_2_L SIX_BTN_BIG_END_L -#define SIX_BTN_INCOMING_2_R SIX_BTN_BIG_END_R -#define SIX_BTN_INCOMING_2_T REL_H(524) -#define SIX_BTN_INCOMING_2_B REL_H(594) - -#define SIX_BTN_INCOMING_3_L SIX_BTN_BIG_END_L -#define SIX_BTN_INCOMING_3_R SIX_BTN_BIG_END_R -#define SIX_BTN_INCOMING_3_T REL_H(610) -#define SIX_BTN_INCOMING_3_B REL_H(680) -/* Six Button Layout End */ - -/* Six button layout, Window Layout : INDICATOR */ -/* -#define INDI_SIX_BTN_1_L REL_INDI_W(26) -#define INDI_SIX_BTN_1_R REL_INDI_W(160) -#define INDI_SIX_BTN_2_L REL_INDI_W(173) -#define INDI_SIX_BTN_2_R REL_INDI_W(307) -#define INDI_SIX_BTN_3_L REL_INDI_W(320) -#define INDI_SIX_BTN_3_R REL_INDI_W(454) - -#define INDI_SIX_BTN_1_T_BF REL_INDI_H(417) -#define INDI_SIX_BTN_1_B_BF REL_INDI_H(505) -#define INDI_SIX_BTN_2_T_BF REL_INDI_H(518) -#define INDI_SIX_BTN_2_B_BF REL_INDI_H(606) - -#define INDI_SIX_BTN_1_T REL_INDI_H(467) -#define INDI_SIX_BTN_1_B REL_INDI_H(555) -#define INDI_SIX_BTN_2_T REL_INDI_H(568) -#define INDI_SIX_BTN_2_B REL_INDI_H(656) - -#define INDI_SIX_BTN_BIG_END_L REL_INDI_W(26) -#define INDI_SIX_BTN_BIG_END_R REL_INDI_W(454) - -#define INDI_SIX_BTN_BIG_END_T_BF REL_INDI_H(635) -#define INDI_SIX_BTN_BIG_END_B_BF REL_INDI_H(705) - -#define INDI_SIX_BTN_BIG_END_T REL_INDI_H(685) -#define INDI_SIX_BTN_BIG_END_B REL_INDI_H(755) - -#define INDI_SIX_BTN_INCOMING_1_L INDI_SIX_BTN_BIG_END_L -#define INDI_SIX_BTN_INCOMING_1_R INDI_SIX_BTN_BIG_END_R -#define INDI_SIX_BTN_INCOMING_1_T REL_INDI_H(411) -#define INDI_SIX_BTN_INCOMING_1_B REL_INDI_H(481) - -#define INDI_SIX_BTN_INCOMING_2_L INDI_SIX_BTN_BIG_END_L -#define INDI_SIX_BTN_INCOMING_2_R INDI_SIX_BTN_BIG_END_R -#define INDI_SIX_BTN_INCOMING_2_T REL_INDI_H(497) -#define INDI_SIX_BTN_INCOMING_2_B REL_INDI_H(567) - -#define INDI_SIX_BTN_INCOMING_3_L INDI_SIX_BTN_BIG_END_L -#define INDI_SIX_BTN_INCOMING_3_R INDI_SIX_BTN_BIG_END_R -#define INDI_SIX_BTN_INCOMING_3_T REL_INDI_H(583) -#define INDI_SIX_BTN_INCOMING_3_B REL_INDI_H(653) -*/ -/* Six Button Layout End */ - -/* Six button layout, Window Layout : Titlebar */ -/* -#define TITLEBAR_SIX_BTN_1_L REL_TITLEBAR_W(18) -#define TITLEBAR_SIX_BTN_1_R REL_TITLEBAR_W(160) -#define TITLEBAR_SIX_BTN_2_L REL_TITLEBAR_W(169) -#define TITLEBAR_SIX_BTN_2_R REL_TITLEBAR_W(311) -#define TITLEBAR_SIX_BTN_3_L REL_TITLEBAR_W(320) -#define TITLEBAR_SIX_BTN_3_R REL_TITLEBAR_W(462) - -#define TITLEBAR_SIX_BTN_1_T REL_TITLEBAR_H(477) -#define TITLEBAR_SIX_BTN_1_B REL_TITLEBAR_H(569) -#define TITLEBAR_SIX_BTN_2_T REL_TITLEBAR_H(580) -#define TITLEBAR_SIX_BTN_2_B REL_TITLEBAR_H(672) - -#define TITLEBAR_SIX_BTN_TXT_1_T REL_TITLEBAR_H(533) -#define TITLEBAR_SIX_BTN_TXT_1_B REL_TITLEBAR_H(562) -#define TITLEBAR_SIX_BTN_TXT_2_T REL_TITLEBAR_H(636) -#define TITLEBAR_SIX_BTN_TXT_2_B REL_TITLEBAR_H(665) - -#define TITLEBAR_SIX_BTN_TXT_1_M1_T REL_TITLEBAR_H(580) -#define TITLEBAR_SIX_BTN_TXT_1_M1_B REL_TITLEBAR_H(625) -#define TITLEBAR_SIX_BTN_TXT_1_M2_T REL_TITLEBAR_H(627) -#define TITLEBAR_SIX_BTN_TXT_1_M2_B REL_TITLEBAR_H(672) - -#define TITLEBAR_SIX_BTN_TXT_2_M1_T REL_TITLEBAR_H(477) -#define TITLEBAR_SIX_BTN_TXT_2_M1_B REL_TITLEBAR_H(569) -#define TITLEBAR_SIX_BTN_TXT_2_M2_T REL_TITLEBAR_H(580) -#define TITLEBAR_SIX_BTN_TXT_2_M2_B REL_TITLEBAR_H(672) -*/ -/* Six Button Layout End */ - -/* Navigation bar layout */ -#define CALL_NAVIGATION_BAR_T REL_H(40) -#define CALL_NAVIGATION_BAR_B REL_H(MAIN_SCREEN_H) -#define CALL_NAVIGATION_BAR_L REL_W(0) -#define CALL_NAVIGATION_BAR_R REL_W(MAIN_SCREEN_W) -/* Navigation bar layout */ - -/* End call layout */ -#define ENDSINGLECALL_BACKGROUND_CID_L DIALLING_BACKGROUND_CID_L -#define ENDSINGLECALL_BACKGROUND_CID_R DIALLING_BACKGROUND_CID_R -#define ENDSINGLECALL_BACKGROUND_CID_T DIALLING_BACKGROUND_CID_T -#define ENDSINGLECALL_BACKGROUND_CID_B DIALLING_BACKGROUND_CID_B - -#define ENDSINGLECALL_CID_L REL_W(145) -#define ENDSINGLECALL_CID_R REL_W(335) -#define ENDSINGLECALL_CID_T REL_H(145) -#define ENDSINGLECALL_CID_B REL_H(335) - -#define ENDSINGLECALL_NAME_L DIALLING_NAME_L -#define ENDSINGLECALL_NAME_R DIALLING_NAME_R -#define ENDSINGLECALL_NAME_T DIALLING_NAME_T -#define ENDSINGLECALL_NAME_B DIALLING_NAME_B - -#define ENDSINGLECALL_NUMBER_L DIALLING_NUMBER_L -#define ENDSINGLECALL_NUMBER_R DIALLING_NUMBER_R -#define ENDSINGLECALL_NUMBER_T DIALLING_NUMBER_T -#define ENDSINGLECALL_NUMBER_B DIALLING_NUMBER_B - -#define ENDSINGLECALL_TIMER_L REL_W(173) -#define ENDSINGLECALL_TIMER_R REL_W(454) -#define ENDSINGLECALL_TIMER_T REL_H(400) -#define ENDSINGLECALL_TIMER_B REL_H(432) - -#define ENDSINGLECALL_VIDEO_BTN_L REL_W(26) -#define ENDSINGLECALL_VIDEO_BTN_R REL_W(228) -#define ENDSINGLECALL_VIDEO_BTN_T REL_H(534) -#define ENDSINGLECALL_VIDEO_BTN_B REL_H(604) - -#define ENDSINGLECALL_VIDEO2_BTN_L REL_W(26) -#define ENDSINGLECALL_VIDEO2_BTN_R REL_W(228) -#define ENDSINGLECALL_VIDEO2_BTN_T REL_H(620) -#define ENDSINGLECALL_VIDEO2_BTN_B REL_H(690) - -#define ENDSINGLECALL_VOICE_BTN_L REL_W(252) -#define ENDSINGLECALL_VOICE_BTN_R REL_W(454) -#define ENDSINGLECALL_VOICE_BTN_T ENDSINGLECALL_VIDEO_BTN_T -#define ENDSINGLECALL_VOICE_BTN_B ENDSINGLECALL_VIDEO_BTN_B - -#define ENDSINGLECALL_VOICE2_BTN_L REL_W(252) -#define ENDSINGLECALL_VOICE2_BTN_R REL_W(454) -#define ENDSINGLECALL_VOICE2_BTN_T ENDSINGLECALL_VIDEO2_BTN_T -#define ENDSINGLECALL_VOICE2_BTN_B ENDSINGLECALL_VIDEO2_BTN_B - -#define ENDSINGLECALL_MSG_BTN_L REL_W(26) -#define ENDSINGLECALL_MSG_BTN_R REL_W(454) -#define ENDSINGLECALL_MSG_BTN_T REL_H(620) -#define ENDSINGLECALL_MSG_BTN_B REL_H(690) - -#define ENDSINGLECALL_MSG2_BTN_L REL_W(26) -#define ENDSINGLECALL_MSG2_BTN_R REL_W(454) -#define ENDSINGLECALL_MSG2_BTN_T REL_H(706) -#define ENDSINGLECALL_MSG2_BTN_B REL_H(776) - -#define ENDSINGLECALL_CONTACT_BTN_L REL_W(26) -#define ENDSINGLECALL_CONTACT_BTN_R REL_W(454) -#define ENDSINGLECALL_CONTACT_BTN_T REL_H(706) -#define ENDSINGLECALL_CONTACT_BTN_B REL_H(776) -/* End call layout */ - #endif /*__VCUI_VIEW_LAYOUT__*/ diff --git a/ui/vcui-view-multi-call-conf.c b/ui/vcui-view-multi-call-conf.c deleted file mode 100755 index 5b6c641..0000000 --- a/ui/vcui-view-multi-call-conf.c +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.tizenopensource.org/license - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -#include "vcui-application.h" -#include "vcui-view-common.h" -#include "vcui-view-elements.h" -#include "vcui-view-multi-call-conf.h" - -static int __vcui_view_multi_call_conf_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3); -static int __vcui_view_multi_call_conf_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2); -static int __vcui_view_multi_call_conf_onhide(voice_call_view_data_t *view_data); -static int __vcui_view_multi_call_conf_onshow(voice_call_view_data_t *view_data); -static int __vcui_view_multi_call_conf_ondestroy(voice_call_view_data_t *view_data); - -static voice_call_view_data_t s_view = { - .type = VIEW_INCALL_MULTICALL_CONF_VIEW, - .app_data = NULL, - .layout = NULL, - .onCreate = __vcui_view_multi_call_conf_oncreate, - .onUpdate = __vcui_view_multi_call_conf_onupdate, - .onHide = __vcui_view_multi_call_conf_onhide, - .onShow = __vcui_view_multi_call_conf_onshow, - .onDestroy = __vcui_view_multi_call_conf_ondestroy, - .priv = NULL, -}; - -voice_call_view_data_t *_vcui_view_multi_call_conf_new(vcui_app_call_data_t *ad) -{ - s_view.app_data = ad; - s_view.priv = calloc(1, sizeof(vcui_view_multi_call_conf_priv_t)); - - if (!s_view.priv) { - CALL_UI_DEBUG("ERROR!!!!!!!!!!! "); - } - - return &s_view; -} - -static void __vcui_view_multi_call_conf_draw_screen(Evas_Object *eo, void *data) -{ - CALL_UI_DEBUG(".."); - - voice_call_view_data_t *vd = (voice_call_view_data_t *)data; - vcui_view_multi_call_conf_priv_t *priv = (vcui_view_multi_call_conf_priv_t *)vd->priv; - vcui_app_call_data_t *ad = vd->app_data; - char buf[DEF_BUF_LEN] = { 0, }; - call_data_t *call_data = NULL; - - priv->call_status = _vcui_doc_get_show_callstatus(); - call_data = _vcui_doc_get_last_status(priv->call_status); - if (call_data == NULL) { - CALL_UI_DEBUG("call data is null"); - return; - } - priv->total_members = _vcui_doc_get_count_hold()+_vcui_doc_get_count_unhold(); - - /* call image */ - _vcui_show_wallpaper_image(priv->contents); - priv->ic = _vcui_show_default_image(priv->contents, vd->app_data->win_main, CONF_ICON); - if (priv->call_status == CALL_HOLD) { - double scale_factor = 0.0; - scale_factor = elm_config_scale_get(); - CALL_UI_DEBUG("scale_factor %f", scale_factor); - - if (scale_factor == 1.0) { - edje_object_signal_emit(_EDJ(priv->contents), "SHOW_DIM_HD", "CID_HD"); - } else { - edje_object_signal_emit(_EDJ(priv->contents), "SHOW_DIM_WVGA", "CID_WVGA"); - } - } else { - edje_object_signal_emit(_EDJ(priv->contents), "HIDE_DIM", "CID"); - } - evas_object_smart_callback_add(priv->ic, "clicked", _vcui_conf_img_cb, vd); - - edje_object_part_text_set(_EDJ(eo), "txt_call_name", _("IDS_CALL_OPT_CONFERENCE_CALL")); - snprintf(buf, DEF_BUF_LEN, "%d %s", priv->total_members, _("IDS_CALL_BODY_PEOPLE")); - edje_object_part_text_set(_EDJ(eo), "txt_contact_phone_type", buf); /* in case of multicallconf, it is num of people */ - - _vcui_view_common_set_each_time(call_data->start_time); - - _vcui_create_top_left_button(vd); - _vcui_create_top_right_button(vd); - _vcui_create_bottom_left_button(vd); - _vcui_create_bottom_middle_button(vd); - if ((_vcui_is_phonelock_status() == EINA_TRUE)&&(_vcui_is_idle_lock() == EINA_TRUE)) { - _vcui_create_top_middle_button_disabled(vd); - _vcui_create_bottom_right_button_disabled(vd); - } else { - _vcui_create_top_middle_button(vd); - _vcui_create_bottom_right_button(vd); - } - _vcui_create_button_bigend(vd); - - ad->beffect_needed = EINA_FALSE; - - evas_object_show(eo); -} - -static Evas_Object *__vcui_view_multi_call_conf_create_contents(void *data, char *group) -{ - if (data == NULL) { - CALL_UI_DEBUG("ERROR"); - return NULL; - } - voice_call_view_data_t *vd = (voice_call_view_data_t *)data; - - Evas_Object *eo; - - /* load edje */ - eo = _vcui_load_edj(vd->app_data->win_main, EDJ_NAME, group); - if (eo == NULL) - return NULL; - - return eo; -} - -static Evas_Object *__vcui_view_multi_call_conf_create_layout_main(Evas_Object *parent) -{ - if (parent == NULL) { - CALL_UI_DEBUG("ERROR"); - return NULL; - } - - Evas_Object *ly; - ly = elm_layout_add(parent); - retvm_if(ly == NULL, NULL, "Failed elm_layout_add."); - - elm_layout_theme_set(ly, "standard", "window", "integration"); - evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_win_resize_object_add(parent, ly); - - edje_object_signal_emit(_EDJ(ly), "elm,state,show,indicator", "elm"); - edje_object_signal_emit(_EDJ(ly), "elm,state,show,content", "elm"); - evas_object_show(ly); - - return ly; -} - -static int __vcui_view_multi_call_conf_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3) -{ - voice_call_view_data_t *vd = view_data; - vcui_view_multi_call_conf_priv_t *priv = (vcui_view_multi_call_conf_priv_t *)vd->priv; - - if (!vd->layout) { - - /* Create Main Layout */ - vd->layout = __vcui_view_multi_call_conf_create_layout_main(vd->app_data->win_main); - if (vd->layout == NULL) { - CALL_UI_DEBUG("ERROR"); - return VC_ERROR; - } - /* Create Contents */ - priv->contents = __vcui_view_multi_call_conf_create_contents(vd, GRP_MULTICALL_CONF); - elm_object_part_content_set(vd->layout, "elm.swallow.content", priv->contents); - - evas_object_name_set(priv->contents, "MULTIVIEWCONF"); - CALL_UI_DEBUG("[========== MULTIVIEWCONF: priv->contents Addr : [%p] ==========]", priv->contents); - } else { - CALL_UI_DEBUG("[UI]ad->layout_multicallconf==NULL case "); - evas_object_show(vd->layout); - } - - __vcui_view_multi_call_conf_onshow(view_data); - return VC_NO_ERROR; -} - -static int __vcui_view_multi_call_conf_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2) -{ - CALL_UI_DEBUG("multicall-conf view update"); - - __vcui_view_multi_call_conf_onshow(view_data); - - return VC_NO_ERROR; -} - -static int __vcui_view_multi_call_conf_onhide(voice_call_view_data_t *view_data) -{ - CALL_UI_DEBUG("multicall-conf view hide"); - - evas_object_hide(view_data->layout); - return VC_NO_ERROR; -} - -static int __vcui_view_multi_call_conf_onshow(voice_call_view_data_t *view_data) -{ - CALL_UI_DEBUG("multicall-conf view show"); - - vcui_view_multi_call_conf_priv_t *priv = (vcui_view_multi_call_conf_priv_t *)view_data->priv; - - __vcui_view_multi_call_conf_draw_screen(priv->contents, view_data); - - evas_object_hide(view_data->layout); - evas_object_show(view_data->layout); - return VC_NO_ERROR; -} - -static int __vcui_view_multi_call_conf_ondestroy(voice_call_view_data_t *view_data) -{ - CALL_UI_DEBUG("multicall-conf view destroy"); - vcui_app_call_data_t *ad = _vcui_get_app_data(); - - voice_call_view_data_t *vd = ad->view_st[VIEW_INCALL_MULTICALL_CONF_VIEW]; - vcui_view_multi_call_conf_priv_t *priv = (vcui_view_multi_call_conf_priv_t *)vd->priv; - - if (priv != NULL) { - if (priv->contents) { - evas_object_del(priv->contents); - priv->contents = NULL; - } - - free(priv); - priv = NULL; - } - - if (vd->layout != NULL) { - evas_object_hide(vd->layout); - evas_object_del(vd->layout); - vd->layout = NULL; - } - - ad->view_st[VIEW_INCALL_MULTICALL_CONF_VIEW] = NULL; - - _vcui_cache_flush(); - CALL_UI_DEBUG("complete destroy multi view conf"); - - return VC_NO_ERROR; -} diff --git a/ui/vcui-view-multi-call-conf.h b/ui/vcui-view-multi-call-conf.h deleted file mode 100755 index 65e05f1..0000000 --- a/ui/vcui-view-multi-call-conf.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.tizenopensource.org/license - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -#ifndef _VCUI_VIEW_MULTI_CALL_CONF_ -#define _VCUI_VIEW_MULTI_CALL_CONF_ - -typedef struct { - Evas_Object *contents; - Evas_Object *ic; - Evas_Object *record_btn; - vcui_app_call_status_t call_status; - int total_members; -} vcui_view_multi_call_conf_priv_t; - -voice_call_view_data_t *_vcui_view_multi_call_conf_new(vcui_app_call_data_t *ad); - -#endif /*_VCUI_VIEW_MULTI_CALL_CONF_*/ - diff --git a/ui/vcui-view-multi-call-split.c b/ui/vcui-view-multi-call-split.c deleted file mode 100755 index 653fa7d..0000000 --- a/ui/vcui-view-multi-call-split.c +++ /dev/null @@ -1,402 +0,0 @@ -/* - * Copyright 2012 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.tizenopensource.org/license - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -#include "vcui-application.h" -#include "vcui-view-elements.h" -#include "vcui-view-multi-call-split.h" - -static int __vcui_view_multi_call_split_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3); -static int __vcui_view_multi_call_split_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2); -static int __vcui_view_multi_call_split_onhide(voice_call_view_data_t *view_data); -static int __vcui_view_multi_call_split_onshow(voice_call_view_data_t *view_data); -static int __vcui_view_multi_call_split_ondestroy(voice_call_view_data_t *view_data); - -static voice_call_view_data_t s_view = { - .type = VIEW_INCALL_MULTICALL_SPLIT_VIEW, - .app_data = NULL, - .layout = NULL, - .onCreate = __vcui_view_multi_call_split_oncreate, - .onUpdate = __vcui_view_multi_call_split_onupdate, - .onHide = __vcui_view_multi_call_split_onhide, - .onShow = __vcui_view_multi_call_split_onshow, - .onDestroy = __vcui_view_multi_call_split_ondestroy, - .priv = NULL, -}; - -voice_call_view_data_t *_vcui_view_multi_call_split_new(vcui_app_call_data_t *ad) -{ - s_view.app_data = ad; - s_view.priv = calloc(1, sizeof(incall_multi_view_split_priv_t)); - - if (!s_view.priv) { - CALL_UI_DEBUG("ERROR!!!!!!!!!!!"); - } - - return &s_view; -} - -static void __vcui_more_btn_cb(void *data, Evas_Object *obj, void *event_info) -{ - CALL_UI_DEBUG(".."); - _vcui_view_change(VIEW_INCALL_MULTICALL_LIST_VIEW, 0, 0, 0); -} - -static void __vcui_view_multi_call_split_draw_screen(Evas_Object *eo, void *data) -{ - CALL_UI_DEBUG(".."); - - voice_call_view_data_t *vd = (voice_call_view_data_t *)data; - incall_multi_view_split_priv_t *priv = (incall_multi_view_split_priv_t *)vd->priv; - - vcui_app_call_data_t *ad = vd->app_data; - - Evas_Object *sw1; - Evas_Object *sw2; - Evas_Object *sw3; - Evas_Object *sw4; - Evas_Object *play_ic; - Evas_Object *pause_ic; - Evas_Object *more_ic; - - priv->now_data_hold = _vcui_doc_get_last_status(CALL_HOLD); - priv->now_data_unhold = _vcui_doc_get_last_status(CALL_UNHOLD); - - if ((priv->now_data_hold == NULL) || (priv->now_data_unhold == NULL)) { - CALL_UI_DEBUG("call data is null"); - return; - } - - sw1 = edje_object_part_swallow_get(_EDJ(eo), "swl_cid_1"); - if (sw1) { - edje_object_part_unswallow(_EDJ(eo), sw1); - evas_object_del(sw1); - } - sw2 = edje_object_part_swallow_get(_EDJ(eo), "swl_cid_2"); - if (sw2) { - edje_object_part_unswallow(_EDJ(eo), sw2); - evas_object_del(sw2); - } - sw3 = edje_object_part_swallow_get(_EDJ(eo), "txt_call_name_1"); - if (sw3) { - edje_object_part_unswallow(_EDJ(eo), sw3); - evas_object_del(sw3); - } - sw4 = edje_object_part_swallow_get(_EDJ(eo), "txt_call_name_2"); - if (sw4) { - edje_object_part_unswallow(_EDJ(eo), sw4); - evas_object_del(sw4); - } - play_ic = edje_object_part_swallow_get(_EDJ(eo), "swl_play"); - if (play_ic) { - edje_object_part_unswallow(_EDJ(eo), play_ic); - evas_object_del(play_ic); - } - pause_ic = edje_object_part_swallow_get(_EDJ(eo), "swl_pause"); - if (pause_ic) { - edje_object_part_unswallow(_EDJ(eo), pause_ic); - evas_object_del(pause_ic); - } - more_ic = edje_object_part_swallow_get(_EDJ(eo), "swl_more"); - if (more_ic) { - edje_object_part_unswallow(_EDJ(eo), more_ic); - evas_object_del(more_ic); - } - - priv->ic_incall = elm_icon_add(vd->app_data->win_main); - elm_object_part_content_set(eo, "swl_cid_1", priv->ic_incall); - - priv->ic_onhold = elm_icon_add(vd->app_data->win_main); - elm_object_part_content_set(eo, "swl_cid_2", priv->ic_onhold); - - play_ic = elm_icon_add(vd->app_data->win_main); - elm_object_part_content_set(eo, "swl_play", play_ic); - pause_ic = elm_icon_add(vd->app_data->win_main); - elm_object_part_content_set(eo, "swl_pause", pause_ic); - more_ic = elm_icon_add(vd->app_data->win_main); - elm_object_part_content_set(eo, "swl_more", more_ic); - - CALL_UI_DEBUG("priv->now_data_unhold->call_num:[%s]", priv->now_data_unhold->call_num); - CALL_UI_DEBUG("priv->now_data_hold->call_num:[%s]", priv->now_data_hold->call_num); - CALL_UI_DEBUG("priv->now_data_unhold->call_file_path:[%s]", priv->now_data_unhold->call_file_path); - CALL_UI_DEBUG("priv->now_data_hold->call_file_path:[%s]", priv->now_data_hold->call_file_path); - - _vcui_show_wallpaper_image(priv->contents); - if (_vcui_doc_get_count_unhold() == 1 && _vcui_doc_get_count_hold() == 1) { - /* in call */ - elm_icon_file_set(priv->ic_incall, (char *)priv->now_data_unhold->call_file_path, NULL); - - if (strlen((char *)priv->now_data_unhold->call_display) == 0) { - edje_object_part_text_set(_EDJ(eo), "txt_call_name_1", (char *)priv->now_data_unhold->call_num); - } else { - edje_object_part_text_set(_EDJ(eo), "txt_call_name_1", (char *)priv->now_data_unhold->call_display); - } - - /* on hold */ - elm_icon_file_set(priv->ic_onhold, (char *)priv->now_data_hold->call_file_path, NULL); - - if (strlen((char *)priv->now_data_hold->call_display) == 0) { - edje_object_part_text_set(_EDJ(eo), "txt_call_name_2", (char *)priv->now_data_hold->call_num); - } else { - edje_object_part_text_set(_EDJ(eo), "txt_call_name_2", (char *)priv->now_data_hold->call_display); - } - - /* on hold callback */ - if (priv->ic_onhold) { - evas_object_smart_callback_del(priv->ic_onhold, "clicked", _vcui_swap_btn_cb); - } - evas_object_smart_callback_add(priv->ic_onhold, "clicked", _vcui_swap_btn_cb, vd); - } else if (_vcui_doc_get_count_unhold() == 1 && _vcui_doc_get_count_hold() > 1) { - /* in call */ - elm_icon_file_set(priv->ic_incall, (char *)priv->now_data_unhold->call_file_path, NULL); - - if (strlen((char *)priv->now_data_unhold->call_display) == 0) { - edje_object_part_text_set(_EDJ(eo), "txt_call_name_1", (char *)priv->now_data_unhold->call_num); - } else { - edje_object_part_text_set(_EDJ(eo), "txt_call_name_1", (char *)priv->now_data_unhold->call_display); - } - - /* on hold */ - elm_icon_file_set(priv->ic_onhold, CONF_ICON, NULL); - edje_object_part_text_set(_EDJ(eo), "txt_call_name_2", _("IDS_CALL_OPT_CONFERENCE_CALL")); - - /* on hold callback */ - if (priv->ic_onhold) { - evas_object_smart_callback_del(priv->ic_onhold, "clicked", _vcui_swap_btn_cb); - } - evas_object_smart_callback_add(priv->ic_onhold, "clicked", _vcui_swap_btn_cb, vd); - } else if (_vcui_doc_get_count_unhold() > 1 && _vcui_doc_get_count_hold() == 1) { - /* in call */ - elm_icon_file_set(priv->ic_incall, CONF_ICON, NULL); - edje_object_part_text_set(_EDJ(eo), "txt_call_name_1", _("IDS_CALL_OPT_CONFERENCE_CALL")); - - /* on hold */ - elm_icon_file_set(priv->ic_onhold, (char *)priv->now_data_hold->call_file_path, NULL); - - if (strlen((char *)priv->now_data_hold->call_display) == 0) { - edje_object_part_text_set(_EDJ(eo), "txt_call_name_2", (char *)priv->now_data_hold->call_num); - } else { - edje_object_part_text_set(_EDJ(eo), "txt_call_name_2", (char *)priv->now_data_hold->call_display); - } - - /* on hold callback */ - if (priv->ic_onhold) { - evas_object_smart_callback_del(priv->ic_onhold, "clicked", _vcui_swap_btn_cb); - } - evas_object_smart_callback_add(priv->ic_onhold, "clicked", _vcui_swap_btn_cb, vd); - - /* enter conf list view */ - if (priv->ic_incall) { - evas_object_smart_callback_del(priv->ic_incall, "clicked", _vcui_conf_img_cb); - } - evas_object_smart_callback_add(priv->ic_incall, "clicked", _vcui_conf_img_cb, vd); - } else { - CALL_UI_DEBUG("[=========== ERROR : Invalid Status!!! ============]"); - return; - } - - elm_icon_file_set(play_ic, PLAY_ICON, NULL); - elm_icon_file_set(pause_ic, PAUSE_ICON, NULL); - - elm_icon_file_set(more_ic, MORE_ICON, NULL); - evas_object_smart_callback_add(more_ic, "clicked", __vcui_more_btn_cb, vd); - - _vcui_view_common_set_each_time(priv->now_data_unhold->start_time); - - edje_object_part_text_set(_EDJ(eo), "txt_onhold", _("IDS_CALL_BODY_ON_HOLD_ABB")); - - if ((_vcui_doc_get_count_unhold() == 5 && _vcui_doc_get_count_hold() == 1) || (_vcui_doc_get_count_unhold() == 1 && _vcui_doc_get_count_hold() == 5)) { - _vcui_create_top_right_button_disabled(vd); - } else { - _vcui_create_top_right_button(vd); - } - - _vcui_create_top_left_button(vd); - _vcui_create_bottom_left_button(vd); - _vcui_create_bottom_middle_button(vd); - if ((_vcui_is_phonelock_status() == EINA_TRUE)&&(_vcui_is_idle_lock() == EINA_TRUE)) { - _vcui_create_top_middle_button_disabled(vd); - _vcui_create_bottom_right_button_disabled(vd); - } else { - _vcui_create_top_middle_button(vd); - _vcui_create_bottom_right_button(vd); - } - _vcui_create_button_bigend(vd); - - ad->beffect_needed = EINA_FALSE; - - evas_object_show(eo); -} - -static Evas_Object *__vcui_view_multi_call_split_create_contents(void *data, char *group) -{ - if (data == NULL) { - CALL_UI_DEBUG("ERROR"); - return NULL; - } - voice_call_view_data_t *vd = (voice_call_view_data_t *)data; - - Evas_Object *eo = NULL; - - /* load edje */ - eo = _vcui_load_edj(vd->app_data->win_main, EDJ_NAME, group); - if (eo == NULL) - return NULL; - - return eo; -} - -static Evas_Object *__vcui_view_multi_call_split_create_layout_main(Evas_Object *parent) -{ - if (parent == NULL) { - CALL_UI_DEBUG("ERROR"); - return NULL; - } - - Evas_Object *ly; - ly = elm_layout_add(parent); - retvm_if(ly == NULL, NULL, "Failed elm_layout_add."); - - elm_layout_theme_set(ly, "standard", "window", "integration"); - evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_win_resize_object_add(parent, ly); - - edje_object_signal_emit(_EDJ(ly), "elm,state,show,indicator", "elm"); - edje_object_signal_emit(_EDJ(ly), "elm,state,show,content", "elm"); - evas_object_show(ly); - - return ly; -} - -static int __vcui_view_multi_call_split_oncreate(voice_call_view_data_t *view_data, int param1, void *param2, void *param3) -{ - CALL_UI_DEBUG("multi-split view create"); - - voice_call_view_data_t *vd = view_data; - vcui_app_call_data_t *ad = vd->app_data; - - if (!vd->layout) { - vd->layout = __vcui_view_multi_call_split_create_layout_main(vd->app_data->win_main); - if (vd->layout == NULL) { - CALL_UI_DEBUG("ERROR"); - return VC_ERROR; - } - } else { - CALL_UI_DEBUG("[UI]ad->layout_incall==NULL case "); - evas_object_show(vd->layout); - } - - __vcui_view_multi_call_split_onshow(view_data); - return VC_NO_ERROR; -} - -static int __vcui_view_multi_call_split_onupdate(voice_call_view_data_t *view_data, void *update_data1, void *update_data2) -{ - CALL_UI_DEBUG("multi-split view update"); - - __vcui_view_multi_call_split_onshow(view_data); - return VC_NO_ERROR; -} - -static int __vcui_view_multi_call_split_onhide(voice_call_view_data_t *view_data) -{ - CALL_UI_DEBUG("multi-split view hide"); - - evas_object_hide(view_data->layout); - return VC_NO_ERROR; -} - -static int __vcui_view_multi_call_split_onshow(voice_call_view_data_t *view_data) -{ - CALL_UI_DEBUG("multi-split view show"); - - incall_multi_view_split_priv_t *priv = (incall_multi_view_split_priv_t *)view_data->priv; - vcui_app_call_data_t *ad = view_data->app_data; - - if (priv->contents) { - evas_object_del(priv->contents); - priv->contents = NULL; - } - - CALL_UI_DEBUG("bswapped(%d)",ad->bswapped); - if (ad->bswapped == 1) { - priv->contents = __vcui_view_multi_call_split_create_contents(view_data, GRP_MULTICALL_SPLIT2); - } else { - priv->contents = __vcui_view_multi_call_split_create_contents(view_data, GRP_MULTICALL_SPLIT); - } - elm_object_part_content_set(view_data->layout, "elm.swallow.content", priv->contents); - evas_object_name_set(priv->contents, "MULTIVIEWSPLIT"); - CALL_UI_DEBUG("[========== MULTIVIEWSPLIT: priv->contents Addr : [%p] ==========]", priv->contents); - - __vcui_view_multi_call_split_draw_screen(priv->contents, view_data); - - evas_object_hide(view_data->layout); - - double scale_factor = 0.0; - if (ad->bswapped == 1) { - edje_object_signal_emit(_EDJ(priv->contents), "set-portrait", "incall-split2-view"); - if (_vcui_doc_get_count_unhold() > 1 && _vcui_doc_get_count_hold() == 1) { - CALL_UI_DEBUG("show-more-portrait mode signal emit"); - edje_object_signal_emit(_EDJ(priv->contents), "show-more-portrait", "incall-split2-conf-call"); - } - } - else { - edje_object_signal_emit(_EDJ(priv->contents), "set-portrait", "incall-split1-view"); - if (_vcui_doc_get_count_hold() > 1 && _vcui_doc_get_count_unhold() == 1) { - CALL_UI_DEBUG("show-more-portrait mode signal emit"); - edje_object_signal_emit(_EDJ(priv->contents), "show-more-portrait", "incall-split1-conf-call"); - } - } - - scale_factor = elm_config_scale_get(); - CALL_UI_DEBUG("scale_factor %f", scale_factor); - if (scale_factor == 1.0) { - edje_object_signal_emit(_EDJ(priv->contents), "show-swl-dim-hd", "cid-hd"); - } else { - edje_object_signal_emit(_EDJ(priv->contents), "show-swl-dim-wvga", "cid-wvga"); - } - evas_object_show(view_data->layout); - return VC_NO_ERROR; -} - -static int __vcui_view_multi_call_split_ondestroy(voice_call_view_data_t *view_data) -{ - CALL_UI_DEBUG("multi-split view destroy"); - - vcui_app_call_data_t *ad = _vcui_get_app_data(); - voice_call_view_data_t *vd = ad->view_st[VIEW_INCALL_MULTICALL_SPLIT_VIEW]; - - incall_multi_view_split_priv_t *priv = (incall_multi_view_split_priv_t *)vd->priv; - if (priv != NULL) { - if (priv->contents) { - evas_object_del(priv->contents); - priv->contents = NULL; - } - free(priv); - priv = NULL; - } - - if (vd->layout != NULL) { - evas_object_hide(vd->layout); - evas_object_del(vd->layout); - vd->layout = NULL; - } - ad->view_st[VIEW_INCALL_MULTICALL_SPLIT_VIEW] = NULL; - - _vcui_cache_flush(); - - return VC_NO_ERROR; -}