FreeCalypso > hg > tcs211-c139
diff g23m/condat/ms/src/bmi/ATBWapACI.c @ 0:509db1a7b7b8
initial import: leo2moko-r1
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Mon, 01 Jun 2015 03:24:05 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/g23m/condat/ms/src/bmi/ATBWapACI.c Mon Jun 01 03:24:05 2015 +0000 @@ -0,0 +1,3981 @@ +/******************************************************************************* + + CONDAT (UK) + +******************************************************************************** + + This software product is the property of Condat (UK) Ltd and may not be + disclosed to any third party without the express permission of the owner. + +******************************************************************************** + + $Project name: + $Project code: + $Module: + $File: ATBWapACI.c + $Revision: + + $Author: Condat(UK) + $Date: + +******************************************************************************** + + Description: + Provides an interface between the ATB and the ACI. + + +******************************************************************************** + + $History: ATBWapACI.c + + x0035544Nov 29, 2005 REF: MMI-SPR-33833(OMAPS00055207) + MMI making Riviera calls without using proper header files. So added appropriate header files. + + xrashmic 20 Dec, 2005 OMAPS00061232 (on behalf of xreddymn) + Displaying of error message when image decoding fails + + xrashmic 30 Aug, 2005 MMI-SPR-34024(OMAPS00048918) mem leak fix + Freeing ImageReq data in WAP memory only for plugin images. + + Nov 02, 2005 DR OMAPS00052132 xdeepadh + Bug:Not able to access the SMS inbox and also not able to send SMS in Locosto Lite build + Fix: The ATI Enums usage has been put under the FF_ATI flag. + + xrashmic 17 Aug, 2005 MMI-SPR-31364 + When it is detected that a very large page is being opened, the wap adapter sends a message. + We need to exit wap and display a error dialog as we have memory constraints. + + xreddymn Jun-29-2005 MMI-ENH-32467: + Handling of animated GIF images + + July 18 2005 REF: MMI-SPR-32012 x0012849 + To change the functionality of RSK , when there is no page to go back. + + xrashmic 29 Jun, 2005 MMI-SPR-32462 + Patch given by Kyle for display of table border + + xreddymn Jun-21-2005 MMI-SPR-30291: Send one message for the entire profile, + instead of sending one parameter at a time, to the WAP adapter + + xreddymn May-15-2005 MMI-SPR-30962: Added changes to maintain WAP busy state + during MMS transactions. + + xreddymn May-14-2005 MMI-SPR-30834: added send memory free indication + from MMI to WAP + + xrashmic 12 May, 2005 MMI-SPR-30834 + For input text box, adding of [] is moved from wap adapter to bmi + + xreddymn Mar-22-2005 MMI-SPR-29767 + Modified behaviour of SL push message handling in MMI + + xreddymn Mar-11-2005 MMI-SPR-29510 + Enabled listing of SL WAP push messages + + xreddymn Mar-05-2005 MMI-SPR-26144 + Disabled dialog boxes that affect MMS send display + + xrashmic 08 Feb, 2005 MMI-SPR-27853 + Error handling in sending MMS and also displaying the progress value + + xreddymn Mar-11-2005 MMI-SPR-29510 + Enabled listing of SL WAP push messages + + Jan-24-2005 MMI-SPR-28135 - xreddymn: WAP_OTA settings saved in WAP profiles + + xrashmic 21 Jan, 2005 MMI-SPR-28223 + Saving the information passed by wap adapter if the image is from plugin or normal wap page. + + Dec-10-2003 MMI-SPR-26159 - xreddymn: Prevent duplicate entries in History List + + 15/05/2003 - SPR#1983 - SH - Updated to latest from 1.6.3 version. + + $End + +*******************************************************************************/ + + + +#ifndef PSA_WAPS_C +#define PSA_WAPS_C +#endif + +#ifdef MFW +#define ENTITY_MFW +#else +#ifdef SMI +#define ENTITY_SMI +#else +#define ENTITY_ACI +#endif +#endif + +#define ACI_MEMBER + +/*==== INCLUDES ===================================================*/ + +#include <stdio.h> +#include <string.h> +#include <stdlib.h> + +#include "typedefs.h" +#include "pconst.cdg" +#include "mconst.cdg" +#include "message.h" +#include "ccdapi.h" +#include "vsi.h" +#include "custom.h" +#include "gsm.h" +#include "prim.h" +#include "cnf_aci.h" +#include "mon_aci.h" +#include "pei.h" +#include "tok.h" +#include "message.h" +#include "prim.h" +#include "aci_cmh.h" +#include "ati_cmd.h" +#include "aci_cmd.h" + +/* BEGIN ADD: Sumit : Req ID: : 31-Mar-2005*/ +#ifndef NEPTUNE_BOARD +/* END ADD: Sumit : Req ID: : 31-Mar-2005*/ +#include "ffs/ffs.h" +/* BEGIN ADD: Sumit : Req ID: : 31-Mar-2005*/ +#else +#include "ffs.h" +#endif +/* END ADD: Sumit : Req ID: : 31-Mar-2005*/ + +#ifdef FF_GPF_TCPIP +#include "leconfig.h" +#include "capimic.h" +#include "aapimic.h" + + +#include "wapmic_types.h" +#include "wapmic_codec.h" +#else +#include "gledef.h" +#include "capiclnt.h" +#include "aapiclnt.h" + +#include "wap_types.h" +#include "wap_codec.h" +#endif + + +#include "ATBData.h" +#include "ATBWapACI.h" + +#include "ATBWapAUI.h" +#include "dspl.h" + +#ifdef GPRS +#include "gaci_cmh.h" +#endif + +//x0035544 29 Nov, 2005 MMI-SPR-55207 +#ifndef NEPTUNE_BOARD //x0035544 Sudha - Guarded the below header files for Neptune. +#include "rvf/rvf_api.h" // for the function rvf_delay() +#endif +#ifdef FF_GPF_TCPIP +#include "tapimmi.h" + +#include "socket_api.h" +#include "wapmic_sdlh.h" + +// xreddymn Jan-24-2005 MMI-SPR-28135: WAP_OTA settings saved in WAP profiles +#include "mfw_ss.h" // For definitions of MFW_ASCII, MFW_DCS_UCS2 + +int ATB_convert_String( char * ipString, UBYTE ipDataType, int ipLength, + char * opString, UBYTE opDataType, int opLength, UBYTE addNull); +void ATB_wap_profile_add(T_WAP_PROFILE *p); + +#endif + + +EXTERN char *atD (char *cl,UBYTE srcId); + +//xrashmic 21 Jan, 2005 MMI-SPR-28223 + +/******************************************************************************* + + $Function: M_MMI_WAP_READY_IND + + $Description: Indicate to WAP that MMI is ready to receive events + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + + +void M_MMI_WAP_READY_IND(T_MMI_WAP_READY_IND *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_READY_IND"); +#endif + + mmi_coder(WAP_READY_IND_ID,(void*)parameter); + + return; +} + + +/******************************************************************************* + + $Function: M_MMI_WAP_START_IND + + $Description: Tell WAP Browser to start up + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +#ifdef CO_UDP_IP +void M_MMI_WAP_START_IND(T_MMI_WAP_START_IND *parameter) +#else +void M_MMI_WAP_START_IND(T_MMI_WAP_START_USER_AGENT_REQ *parameter) +#endif +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_START_IND"); +#endif + + mmi_coder(WAP_START_IND_ID,(void*)parameter); + + return; +} + + +/******************************************************************************* + + $Function: M_MMI_WAP_NEW_VIEW_IND + + $Description: Tell WAP Browser to start a new view + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + + +void M_MMI_WAP_NEW_VIEW_IND(T_MMI_WAP_NEW_VIEW_IND *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_NEW_VIEW_IND"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); + TRACE_EVENT_P2("id/uamode: %d, %d", parameter->object_id, parameter->uaMode); + TRACE_EVENT_P2("width/height: %d, %d", parameter->view_width, parameter->view_height); + TRACE_EVENT_P2("font height: %d, width of 'A': %d", parameter->font_height, parameter->font_width[65]); + TRACE_EVENT_P2("unicode height: %d, unicode width: %d", parameter->unicode_width, parameter->unicode_height); +#endif + + mmi_coder(WAP_NEW_VIEW_IND_ID,(void*)parameter); + + return; +} + + +/******************************************************************************* + + $Function: M_MMI_WAP_TERMINATE_IND + + $Description: Tell WAP Browser to terminate. + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_MMI_WAP_TERMINATE_IND(T_MMI_WAP_TERMINATE_IND *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_TERMINATE_IND"); +#endif + + mmi_coder(WAP_TERMINATE_IND_ID,(void*)parameter); + + return; +} + + +/******************************************************************************* + + $Function: M_MMI_WAP_CLOSE_VIEW_IND + + $Description: Close the specified view. + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_MMI_WAP_CLOSE_VIEW_IND(T_MMI_WAP_CLOSE_VIEW_IND *parameter) +{ +#ifdef TRACE_WAP_WAPMMI + TRACE_FUNCTION("M_MMI_WAP_CLOSE_VIEW_IND"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); +#endif + + mmi_coder(WAP_CLOSE_VIEW_IND_ID,(void*)parameter); + + return; +} + + +/******************************************************************************* + + + $Function: M_MMI_WAP_CONFIGURE_IND + + $Description: Send configuration information to WAP Browser + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_MMI_WAP_CONFIGURE_IND(T_MMI_WAP_CONFIGURE_IND *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_CONFIGURE_IND"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); + TRACE_EVENT_P3( "Type, Param, Length: %d, %d, %d", parameter->type, parameter->param, parameter->length); + TRACE_EVENT_P1( "Integer Value: %d", parameter->intvalue); + if (parameter->length>0) + ATB_trace_string(parameter->strvalue, parameter->length); +#endif + + mmi_coder(WAP_CONFIGURE_IND_ID,(void*)parameter); + + return; +} + + +/******************************************************************************* + + + $Function: M_MMI_WAP_CONNECTION_CONFIGURE_IND + + $Description: Send configuration information to WAP Browser + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_MMI_WAP_CONNECTION_CONFIGURE_IND(T_MMI_WAP_CONNECTION_CONFIGURE_IND *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_CONNECTION_CONFIGURE_IND"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); + TRACE_EVENT_P3( "Type, Channel_id, Length: %d, %d, %d", parameter->type, parameter->channel_id, parameter->length); + TRACE_EVENT_P1( "Integer Value: %d", parameter->intvalue); + ATB_trace_string(parameter->strvalue, parameter->length); +#endif + + mmi_coder(WAP_CONNECTION_CONFIGURE_IND_ID,(void*)parameter); + + return; +} + + +/******************************************************************************* + + + $Function: M_MMI_WAP_DOWNLOAD_URL_IND + + $Description: Requests WAP Browser to download a URL + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_MMI_WAP_DOWNLOAD_URL_IND(T_MMI_WAP_DOWNLOAD_URL_IND *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_DOWNLOAD_URL_IND"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); + TRACE_EVENT_P2( "URL length, Reload: %d, %d", parameter->url_length, parameter->reload); + ATB_trace_string(parameter->Url, parameter->url_length); +#endif + + mmi_coder(WAP_DOWNLOAD_URL_IND_ID,(void*)parameter); + + return; +} + + +/******************************************************************************* + + + $Function: M_MMI_WAP_BROWSE_CONTROL_IND + + $Description: Sends browsing request to WAP Browser + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_MMI_WAP_BROWSE_CONTROL_IND(T_MMI_WAP_BROWSE_CONTROL_IND *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_BROWSE_CONTROL_IND"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); + TRACE_EVENT_P1( "Browse command: %d", parameter->browse_command); +#endif + + mmi_coder(WAP_BROWSE_CONTROL_IND_ID,(void*)parameter); + + return; +} + + +/******************************************************************************* + + + $Function: M_MMI_WAP_KEY_SELECTED_IND + + $Description: Indicate to Browser that a WAP Key has been selected. + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_MMI_WAP_KEY_SELECTED_IND(T_MMI_WAP_KEY_SELECTED_IND *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_KEY_SELECTED_IND"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); + TRACE_EVENT_P1( "keyId: %d", parameter->keyId); +#endif + + mmi_coder(WAP_KEY_SELECTED_IND_ID,(void*)parameter); + + return; +} + + +/******************************************************************************* + + + $Function: M_MMI_WAP_INPUT_DIALOG_CNF + + $Description: Confirmation of input dialog. + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_MMI_WAP_INPUT_DIALOG_CNF(T_MMI_WAP_INPUT_DIALOG_CNF *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_INPUT_DIALOG_CNF"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); + TRACE_EVENT_P2( "dialog_id, edited: %d, %d", parameter->dialog_id, parameter->edited); + ATB_trace_ushort_string(parameter->Text, parameter->text_length); +#endif + + mmi_coder(WAP_INPUT_DIALOG_CNF_ID,(void*)parameter); + + return; +} + + +/******************************************************************************* + + + $Function: M_MMI_WAP_PASSWORD_DIALOG_CNF + + $Description: Confirmation of password dialog. + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_MMI_WAP_PASSWORD_DIALOG_CNF(T_MMI_WAP_PASSWORD_DIALOG_CNF *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_PASSWORD_DIALOG_CNF"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); + TRACE_EVENT_P1( "MMI dialog_id: %d", parameter->dialog_id); + ATB_trace_string(parameter->Input, parameter->input_length); + ATB_trace_string(parameter->Password, parameter->password_length); +#endif + + mmi_coder(WAP_PASSWORD_DIALOG_CNF_ID,(void*)parameter); + + return; +} + + +/******************************************************************************* + + + $Function: M_MMI_WAP_CONFIRM_DIALOG_CNF + + $Description: Confirmation of confirm dialog. + + $Returns: None + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_MMI_WAP_CONFIRM_DIALOG_CNF(T_MMI_WAP_CONFIRM_DIALOG_CNF *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_CONFIRM_DIALOG_CNF"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); + TRACE_EVENT_P2( "MMI dialog_id: %d, Answer: %d", parameter->dialog_id, parameter->answer); +#endif + + mmi_coder(WAP_CONFIRM_DIALOG_CNF_ID,(void*)parameter); + + return; +} + + +/******************************************************************************* + + + $Function: M_MMI_WAP_INFO_DIALOG_CNF + + $Description: Confirmation of info dialog. + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_MMI_WAP_INFO_DIALOG_CNF(T_MMI_WAP_INFO_DIALOG_CNF *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_INFO_DIALOG_CNF"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); + TRACE_EVENT_P1( "MMI dialog_id: %d", parameter->dialog_id); +#endif + + mmi_coder(WAP_INFO_DIALOG_CNF_ID,(void*)parameter); + + return; +} + + +/******************************************************************************* + + + $Function: M_MMI_WAP_DRAW_CARD_REQ + + $Description: Request WAP Browser to draw the current card. + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_MMI_WAP_DRAW_CARD_REQ(T_MMI_WAP_DRAW_CARD_REQ *parameter) +{ + T_WAP_VIEW *View = ATB_wap_get_view(parameter->object_id); + +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_DRAW_CARD_REQ"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); +#endif + + if (View) + mmi_coder(WAP_DRAW_CARD_REQ_ID,(void*)parameter); + + return; +} + + +/******************************************************************************* + + + $Function: M_MMI_WAP_CONNECT_CNF + + $Description: Confirmation to WAP Browser that WAP call is connected + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_MMI_WAP_CONNECT_CNF(T_MMI_WAP_CONNECT_CNF *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_CONNECT_CNF"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); +#endif + + mmi_coder(WAP_CONNECT_CNF_ID,(void*)parameter); + + return; +} + + +/******************************************************************************* + + $Function: M_MMI_WAP_DISCONNECT_IND + + $Description: Tell WAP Browser to disconnect + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_MMI_WAP_DISCONNECT_IND(T_MMI_WAP_DISCONNECT_IND *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_DISCONNECT_IND"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); +#endif + + mmi_coder(WAP_DISCONNECT_IND_ID,(void*)parameter); + + return; +} + + +/******************************************************************************* + + + $Function: M_MMI_WAP_CACHE_PREPARE_IND + + $Description: Tell WAP Browser to prepare the cache for shutdown + + $Returns: None + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_MMI_WAP_CACHE_PREPARE_IND(T_MMI_WAP_CACHE_PREPARE_IND *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_CACHE_PREPARE_IND"); +#endif + + mmi_coder(WAP_CACHE_PREPARE_IND_ID,(void*)parameter); + + return; +} + + +#ifdef FF_GPF_TCPIP +/******************************************************************************* + + $Function: M_MMI_WAP_CONFIG_CNF + + $Description: SPR#2086 - SH - SAR + + $Returns: None + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_MMI_WAP_CONFIG_CNF(T_MMI_WAP_CONFIG_CNF *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_CONFIG_CNF"); +#endif + + mmi_coder(WAP_CONFIG_CNF_ID,(void*)parameter); + + return; +} + +/******************************************************************************* + + $Function: M_MMI_WAP_CONTENT_REQ + + $Description: SPR#2086 - SH - SAR + + $Returns: None + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_MMI_WAP_CONTENT_REQ(T_MMI_WAP_CONTENT_REQ *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_GET_CONTENT_REQ"); +#endif + + mmi_coder(WAP_CONTENT_REQ_ID,(void*)parameter); + + return; +} + +/******************************************************************************* + + $Function: M_MMI_WAP_CONTENT_POST_REQ + + $Description: SPR#2086 - SH - SAR + + $Returns: None + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_MMI_WAP_CONTENT_POST_REQ(T_MMI_WAP_CONTENT_POST_REQ *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_CONTENT_POST_REQ"); +#endif + + mmi_coder(WAP_CONTENT_POST_REQ_ID,(void*)parameter); + + return; +} + + +/******************************************************************************* + + $Function: M_MMI_WAP_CONTENT_POST_MORE_IND + + $Description: SPR#2086 - SH - SAR + + $Returns: None + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_MMI_WAP_CONTENT_POST_MORE_REQ(T_MMI_WAP_CONTENT_POST_MORE_REQ *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_CONTENT_POST_MORE_REQ"); +#endif + + mmi_coder(WAP_CONTENT_POST_MORE_REQ_ID,(void*)parameter); + + return; +} + +/******************************************************************************* + + $Function: M_MMI_WAP_CONTENT_CNF + + $Description: SPR#2086 - SH - SAR + + $Returns: None + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_MMI_WAP_CONTENT_CNF(T_MMI_WAP_CONTENT_CNF *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_CONTENT_CNF"); +#endif + + mmi_coder(WAP_CONTENT_CNF_ID,(void*)parameter); + + return; +} + + +/******************************************************************************* + + $Function: M_MMI_WAP_CONTENT_CANCEL_IND + + $Description: SPR#2086 - SH - SAR + + $Returns: None + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_MMI_WAP_CONTENT_CANCEL_IND(T_MMI_WAP_CONTENT_CANCEL_IND *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_CONTENT_CANCEL_IND"); +#endif + + mmi_coder(WAP_CONTENT_CANCEL_IND_ID,(void*)parameter); + + return; +} + + +/******************************************************************************* + + $Function: M_MMI_WAP_PUSH_LOAD_SI_IND + + $Description: Load the service pointed to by a SI + SPR#2086 - Added + + $Returns: None. + + $Arguments: parameter - Data block + +*******************************************************************************/ + +void M_MMI_WAP_PUSH_LOAD_SI_IND(T_MMI_WAP_PUSH_LOAD_SI_IND *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_PUSH_LOAD_SI_IND"); +#endif + + mmi_coder(WAP_PUSH_LOAD_SI_IND_ID,(void*)parameter); + + return; +} + +/******************************************************************************* + + $Function: M_MMI_WAP_PUSH_DELETE_SI_IND + + $Description: Delete an SI + SPR#2086 - Added + + $Returns: None. + + $Arguments: parameter - Data block + +*******************************************************************************/ + +void M_MMI_WAP_PUSH_DELETE_SI_IND(T_MMI_WAP_PUSH_DELETE_SI_IND *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_PUSH_DELETE_SI_IND"); +#endif + + mmi_coder(WAP_PUSH_DELETE_SI_IND_ID,(void*)parameter); + + return; + +} + + +/******************************************************************************* + + $Function: M_MMI_WAP_PUSH_GET_SI_INFO_REQ + + $Description: Request info on an SI + SPR#2086 - Added + + $Returns: None. + + $Arguments: parameter - Data block + +*******************************************************************************/ + +void M_MMI_WAP_PUSH_GET_SI_INFO_REQ(T_MMI_WAP_PUSH_GET_SI_INFO_REQ *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_MMI_WAP_PUSH_GET_SI_INFO_REQ"); +#endif + + mmi_coder(WAP_PUSH_GET_SI_INFO_REQ_ID,(void*)parameter); + + return; + +} + +/******************************************************************************* + + $Function: M_MMI_WAP_PUSH_LOAD_SL_IND + + $Description: Load the service pointed to by an SL + SPR#2086 - Added + + $Returns: None. + + $Arguments: parameter - Data block + +*******************************************************************************/ + +void M_MMI_WAP_PUSH_LOAD_SL_IND(T_MMI_WAP_PUSH_LOAD_SL_IND *parameter) +{ + +#ifdef TRACE_WAP_WAPMMI + TRACE_EVENT("M_MMI_WAP_PUSH_LOAD_SL_IND"); +#endif + + mmi_coder(WAP_PUSH_LOAD_SL_IND_ID,(void*)parameter); + + return; +} + + +/******************************************************************************* + + $Function: M_MMI_WAP_PUSH_DELETE_SL_IND + + $Description: Delete an SL + SPR#2086 - Added + + $Returns: None. + + $Arguments: parameter - Data block + +*******************************************************************************/ + +void M_MMI_WAP_PUSH_DELETE_SL_IND(T_MMI_WAP_PUSH_DELETE_SL_IND *parameter) +{ +#ifdef TRACE_WAP_WAPMMI + TRACE_EVENT("M_MMI_WAP_PUSH_DELETE_SL_IND"); +#endif + + mmi_coder(WAP_PUSH_DELETE_SL_IND_ID,(void*)parameter); + + return; + +} + + +/******************************************************************************* + + $Function: M_MMI_WAP_PUSH_GET_SL_INFO_REQ + + $Description: Request info on an SL + SPR#2086 - Added + + $Returns: None. + + $Arguments: parameter - Data block + +*******************************************************************************/ + +void M_MMI_WAP_PUSH_GET_SL_INFO_REQ(T_MMI_WAP_PUSH_GET_SL_INFO_REQ *parameter) +{ + +#ifdef TRACE_WAP_WAPMMI + TRACE_EVENT("M_MMI_WAP_PUSH_GET_SL_INFO_REQ"); +#endif + + mmi_coder(WAP_PUSH_GET_SL_INFO_REQ_ID,(void*)parameter); + + return; + +} + + +/******************************************************************************* + + $Function: M_MMI_WAP_PUSH_CONNECTION_CNF + + $Description: Confirm that Push connection information has been set up + SPR#2086 - Added + + $Returns: None. + + $Arguments: parameter - Data block + +*******************************************************************************/ + +void M_MMI_WAP_PUSH_CONNECTION_CNF(T_MMI_WAP_PUSH_CONNECTION_CNF *parameter) +{ + +#ifdef TRACE_WAP_WAPMMI + TRACE_EVENT("M_MMI_WAP_PUSH_CONNECTION_CNF"); +#endif + + mmi_coder(WAP_PUSH_CONNECTION_CNF_ID,(void*)parameter); + + return; + +} + + +/******************************************************************************* + + $Function: M_MMI_WAP_PUSH_CHANGE_STATUS_IND + + $Description: Change the status of a push message + SPR#2086 - Added + + $Returns: None. + + $Arguments: parameter - Data block + +*******************************************************************************/ + +void M_MMI_WAP_PUSH_CHANGE_STATUS_IND(T_MMI_WAP_PUSH_CHANGE_STATUS_IND *parameter) +{ + +#ifdef TRACE_WAP_WAPMMI + TRACE_EVENT("M_MMI_WAP_PUSH_CHANGE_STATUS_IND"); +#endif + + mmi_coder(WAP_PUSH_CHANGE_STATUS_IND_ID,(void*)parameter); + + return; + +} + +/******************************************************************************* + + $Function: M_MMI_WAP_PUSH_REMOVE_MESSAGE_IND + + $Description: Remove a push message + SPR#2086 - Added + + $Returns: None. + + $Arguments: parameter - Data block + +*******************************************************************************/ + +void M_MMI_WAP_PUSH_REMOVE_MESSAGE_IND(T_MMI_WAP_PUSH_REMOVE_MESSAGE_IND *parameter) +{ + +#ifdef TRACE_WAP_WAPMMI + TRACE_EVENT("M_MMI_WAP_PUSH_REMOVE_MESSAGE_IND"); +#endif + + mmi_coder(WAP_PUSH_REMOVE_MESSAGE_IND_ID,(void*)parameter); + + return; + +} + +/******************************************************************************* + + $Function: MMI_WAP_PUSH_CHECK_UNLOADED_MSG_REQ + + $Description: Check if there are any unloaded messages + SPR#2086 - Added + + $Returns: None. + + $Arguments: parameter - Data block + +*******************************************************************************/ + +void M_MMI_WAP_PUSH_CHECK_UNLOADED_MSG_REQ(T_MMI_WAP_PUSH_CHECK_UNLOADED_MSG_REQ *parameter) +{ + +#ifdef TRACE_WAP_WAPMMI + TRACE_EVENT("M_MMI_WAP_PUSH_CHECK_UNLOADED_MSG_REQ"); +#endif + + mmi_coder(WAP_PUSH_CHECK_UNLOADED_MSG_REQ_ID,(void*)parameter); + + return; + +} + + +/******************************************************************************* + + + $Function: M_MMI_WAP_PUSH_SAVE_TO_FLASH_IND + + $Description: Save push repository to flash + SPR#2086 - Added + + $Returns: None. + + $Arguments: parameter - Data block + +*******************************************************************************/ + +void M_MMI_WAP_PUSH_SAVE_TO_FLASH_IND(T_MMI_WAP_PUSH_SAVE_TO_FLASH_IND *parameter) +{ + +#ifdef TRACE_WAP_WAPMMI + TRACE_EVENT("M_MMI_WAP_PUSH_SAVE_TO_FLASH_IND"); +#endif + + mmi_coder(WAP_PUSH_SAVE_TO_FLASH_IND_ID,(void*)parameter); + + return; + +} + +/******************************************************************************* + + $Function: M_MMI_WAP_PUSH_SMS_RECEIVED_IND + + $Description: WAP SMS has been received + SPR#2086 - Added + + $Returns: None + + $Arguments: parameter - Data block + +*******************************************************************************/ + +void M_MMI_WAP_PUSH_SMS_RECEIVED_IND(T_MMI_WAP_PUSH_SMS_RECEIVED_IND *parameter) +{ +#ifdef TRACE_WAP_WAPMMI + TRACE_EVENT("M_MMI_WAP_PUSH_SMS_RECEIVED_IND"); +#endif + + mmi_coder(WAP_PUSH_SMS_RECEIVED_IND_ID, (void*)parameter); + + return; +} + +/******************************************************************************* + + $Function: M_MMI_WAP_PUSH_SMS_SENT_IND + + $Description: WAP SMS has been sent + SPR#2086 - Added + + $Returns: None + + $Arguments: parameter - Data block + +*******************************************************************************/ + +void M_MMI_WAP_PUSH_SMS_SENT_IND(T_MMI_WAP_PUSH_SMS_SENT_IND *parameter) +{ + +#ifdef TRACE_WAP_WAPMMI + TRACE_EVENT("M_MMI_WAP_PUSH_SMS_SENT_IND"); +#endif + + mmi_coder(WAP_PUSH_SMS_SENT_IND_ID, (void *)parameter); + + return; +} + +/******************************************************************************* + + $Function: M_MMI_WAP_PUSH_SMS_ERROR_IND + + $Description: WAP SMS has not been sent + SPR#2086 - Added + + $Returns: None + + $Arguments: parameter - Data block + +*******************************************************************************/ + +void M_MMI_WAP_PUSH_SMS_ERROR_IND(T_MMI_WAP_PUSH_SMS_ERROR_IND *parameter) +{ + +#ifdef TRACE_WAP_WAPMMI + TRACE_EVENT("M_MMI_WAP_PUSH_SMS_ERROR_IND"); +#endif + + mmi_coder(WAP_PUSH_SMS_ERROR_IND_ID, (void *)parameter); + + return; +} + +#endif + + +#ifdef FF_GPF_TCPIP +/******************************************************************************* + + + $Function: M_WAP_MMI_CONTROL_IND + + $Description: + + $Returns: + + $Arguments: parameter - Data block + +*******************************************************************************/ + +void M_WAP_MMI_CONTROL_IND(T_WAP_MMI_CONTROL_IND *parameter) +{ + T_WAP_VIEW *View; + +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_WAP_MMI_CONTROL_IND"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); + TRACE_EVENT_P3( "Status, Error, Click: %d, %d, %d", parameter->status_code, parameter->error_code, + parameter->play_standard_click); +#endif + + View = ATB_wap_get_view(parameter->object_id); + + /* SPR#1816 - SH - Check if we're shutting down */ + + if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) + { + TRACE_EVENT("*** SHUTTING DOWN ***"); + return; + } + + /* Intercept fatal error */ + //if (parameter->error_code==8002) + //OUT OF MEMORY code 0x903 + if (parameter->error_code==2307) + { + AUI_error_dialog(View, parameter->error_code); + return; + } + + /* SPR#2086 - SH - Modified slightly to report status values + * correctly when downloading content using SAR */ + + /* If WSP session failed, try using second IP address */ + + if (parameter->error_code==1014 && !View->secondaryIP) + { + ATB_wap_secondary_IP(View); + return; + } + + /* For any other error, display the error dialog */ + + if (parameter->error_code!=0 && parameter->error_code != 0x20) + { + AUI_error_dialog(View, parameter->error_code); + return; + } + + /* Otherwise, report selected status values */ + + switch(parameter->status_code) + { + case 12: /* Data is being downloaded */ + ATB_wap_status_change(View, ATB_WAP_DOWNLOADING); + break; + + case 13: /* Data is no longer being downloaded */ + ATB_wap_status_change(View, ATB_WAP_NO_STATUS); + break; + + case 7: /* Content taken from network server */ + if (View->object_id==WAP_DOWNLOAD_VIEW) + { + ATB_wap_status_change(View, ATB_WAP_DOWNLOADING); + } + break; + + case 9: /* Content no longer being taken */ + if (View->object_id==WAP_DOWNLOAD_VIEW) + { + ATB_wap_status_change(View, ATB_WAP_NO_STATUS); + } + break; + } + + return; +} + +#else /* #ifdef FF_GPF_TCPIP */ + +/******************************************************************************* + + $Function: M_WAP_MMI_CONTROL_IND + + $Description: Send control information to MMI + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_WAP_MMI_CONTROL_IND(T_WAP_MMI_CONTROL_IND *parameter) +{ + T_WAP_VIEW *View; + +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_WAP_MMI_CONTROL_IND"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); + TRACE_EVENT_P3( "Status, Error, Click: %d, %d, %d", parameter->status_code, parameter->error_code, + parameter->play_standard_click); +#endif + + View = ATB_wap_get_view(parameter->object_id); + + /* Check if we're shutting down */ + + if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) + { + TRACE_EVENT("*** SHUTTING DOWN ***"); + return; + } + + /* Intercept fatal error */ + + if (parameter->error_code==8002) + + { + AUI_error_dialog(View, parameter->error_code); + return; + } + + /* For non-fatal error, do not report if there is no view open */ + + if (!View) + { + TRACE_EVENT("View is NULL"); + return; + } + + /* Data is being downloaded; update status display */ + + if (parameter->status_code==14) + { + ATB_wap_status_change(View, ATB_WAP_DOWNLOADING); + } + + /* Data is no longer being downloaded */ + + if (parameter->status_code==15) + { + ATB_wap_status_change(View, ATB_WAP_NO_STATUS); + } + + /* If WSP session failed, try using second IP address */ + + if (parameter->error_code==1014 && !View->secondaryIP) + { + ATB_wap_secondary_IP(View); + return; + } + + /* Create error dialog if required */ + + if (parameter->error_code!=0 && parameter->error_code != 0x20) + { + AUI_error_dialog(View, parameter->error_code); + + } + + return; +} + + +#endif /* ! #ifdef FF_GPF_TCPIP */ + +/******************************************************************************* + + + $Function: M_WAP_MMI_NEW_KEY_IND + + $Description: A new WAP key is to be created. + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_WAP_MMI_NEW_KEY_IND(T_WAP_MMI_NEW_KEY_IND *parameter) +{ + T_WAP_VIEW *View; + +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_WAP_MMI_NEW_KEY_IND"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); + TRACE_EVENT_P2( "Key ID, Key Type: %d, %d", parameter->keyId, parameter->key_type); + ATB_trace_ushort_string(parameter->Label, parameter->label_length); +#endif + + if (!(View = ATB_wap_get_view(parameter->object_id))) + return; + + /* SPR#1816 - SH - Check if we're shutting down */ + + if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) + { + TRACE_EVENT("*** SHUTTING DOWN ***"); + return; + } + + if (parameter->key_type == WAP_KEY_PREV) + AUI_wap_change_soft_key(View, parameter->Label, + (USHORT)parameter->label_length, parameter->keyId); + + return; +} + + +/******************************************************************************* + + + $Function: M_WAP_MMI_INPUT_DIALOG_REQ + + $Description: An input dialog is to be displayed. + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_WAP_MMI_INPUT_DIALOG_REQ(T_WAP_MMI_INPUT_DIALOG_REQ *parameter) +{ + T_WAP_VIEW *View; + +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_WAP_MMI_INPUT_DIALOG_REQ"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); + TRACE_EVENT_P2( "MMI dialog_id, is_password: %d, %d", parameter->dialog_id, parameter->is_password); + TRACE_EVENT_P3( "MMI empty_ok, visible, size: %d, %d, %d", parameter->empty_ok, +parameter->visible, parameter->size); + ATB_trace_ushort_string(parameter->Title, parameter->title_length); + ATB_trace_ushort_string(parameter->Input, parameter->input_length); + ATB_trace_ushort_string(parameter->Format, parameter->format_length); +#endif // TRACE_ATBWAPACI + + if (!(View = ATB_wap_get_view(parameter->object_id))) + return; + + /* SPR#1816 - SH - Check if we're shutting down */ + + if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) + { + TRACE_EVENT("*** SHUTTING DOWN ***"); + return; + } + +#ifdef FF_GPF_TCPIP + AUI_wap_input_dialog_open(parameter, View); +#else + AUI_wap_input_dialog_open(parameter); +#endif + + return; +} + + +/******************************************************************************* + + + $Function: M_WAP_MMI_PASSWORD_DIALOG_REQ + + $Description: A password dialog is to be displayed. + + $Returns: None + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_WAP_MMI_PASSWORD_DIALOG_REQ(T_WAP_MMI_PASSWORD_DIALOG_REQ *parameter) +{ + T_WAP_VIEW *View; + +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_WAP_MMI_PASSWORD_DIALOG_REQ"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); + TRACE_EVENT_P2( "MMI dialog_id, dialog_type: %d, %d", parameter->dialog_id, parameter->dialog_type); + /* SPR#2393 - SH - Changed password fields */ + ATB_trace_string(parameter->Realm, parameter->realm_length); +#endif + + if (!(View = ATB_wap_get_view(parameter->object_id))) + return; + + /* Check if we're shutting down */ + + if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) + { + TRACE_EVENT("*** SHUTTING DOWN ***"); + return; + } + +#ifdef FF_GPF_TCPIP + AUI_wap_password_dialog_open(parameter, View); +#else + AUI_wap_password_dialog_open(parameter); +#endif + + return; +} + + +/******************************************************************************* + + + $Function: M_WAP_MMI_CONFIRM_DIALOG_REQ + + $Description: A confirmation dialog is to be displayed. + + $Returns: None + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_WAP_MMI_CONFIRM_DIALOG_REQ(T_WAP_MMI_CONFIRM_DIALOG_REQ *parameter) +{ + T_WAP_VIEW *View; + +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_WAP_MMI_CONFIRM_DIALOG_REQ"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); + TRACE_EVENT_P1( "MMI dialog_id: %d", parameter->dialog_id); + ATB_trace_ushort_string(parameter->Message, parameter->message_length); + ATB_trace_ushort_string(parameter->Ok_key, parameter->ok_key_length); + ATB_trace_ushort_string(parameter->Cancel_key, parameter->cancel_key_length); +#endif + + if (!(View = ATB_wap_get_view(parameter->object_id))) + return; + + /* SPR#1816 - SH - Check if we're shutting down */ + + if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) + { + TRACE_EVENT("*** SHUTTING DOWN ***"); + return; + } + +#ifdef FF_GPF_TCPIP + AUI_wap_confirm_dialog_open(parameter, View); +#else + AUI_wap_confirm_dialog_open(parameter); +#endif + + return; +} + + +/******************************************************************************* + + + $Function: M_WAP_MMI_INFO_DIALOG_REQ + + $Description: An info/alert dialog is to be displayed. + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_WAP_MMI_INFO_DIALOG_REQ(T_WAP_MMI_INFO_DIALOG_REQ *parameter) +{ + T_WAP_VIEW *View; + +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_WAP_MMI_INFO_DIALOG_REQ"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); + TRACE_EVENT_P1( "MMI dialog_id: %d", parameter->dialog_id); + ATB_trace_ushort_string(parameter->Message, parameter->message_length); +#endif + + if (!(View = ATB_wap_get_view(parameter->object_id))) + return; + + /* SPR#1816 - SH - Check if we're shutting down */ + + if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) + { + TRACE_EVENT("*** SHUTTING DOWN ***"); + return; + } + +#ifdef FF_GPF_TCPIP + AUI_wap_info_dialog_open(parameter, View); +#else + AUI_wap_info_dialog_open(parameter); +#endif + + return; +} + + +/******************************************************************************* + + + $Function: M_WAP_MMI_NEW_CARD_IND + + $Description: A new card is to be created. + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_WAP_MMI_NEW_CARD_IND(T_WAP_MMI_NEW_CARD_IND *parameter) +{ + T_WAP_VIEW *View; +#ifdef CO_UDP_IP + UBYTE *History = (UBYTE *)parameter->History; + U32 historyPointer = History[4] + History[5]*0x100 + History[6]*0x10000 + History[7]*0x1000000; + /* Look at second history entry (bytes 4 to 7) - this is the previous card. + * If this is zero, then there shouldn't be a "back" key */ + USHORT historyIndex; +#endif + + +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_WAP_MMI_NEW_CARD_IND"); + TRACE_EVENT_P1("object ID: %d",parameter->object_id); + TRACE_EVENT_P1( "is_bookmarkable: %d", parameter->is_bookmarkable); + ATB_trace_ushort_string(parameter->Title, parameter->title_length); + ATB_trace_string(parameter->Url, parameter->url_length); +#endif + + if (!(View = ATB_wap_get_view(parameter->object_id))) + { + return; + } + + /* SPR#1816 - SH - Check if we're shutting down */ + + if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) + { + TRACE_EVENT("*** SHUTTING DOWN ***"); + return; + } + + /* SPR#1816 - SH - Store title, or "Untitled" if title is blank */ + + if (parameter->title_length > 0) + { + /* Copy a max of CARD_TITLE_MAX_LEN unicode characters */ + parameter->title_length = ATB_uc_text_copy(View->Title, parameter->Title, CARD_TITLE_MAX_LEN); + /* Convert to MMI unicode, store in View->Title */ + ATB_uc_text_convert(View->Title, parameter->title_length); + } + else + { + /* Use "Untitled" text tag */ + parameter->title_length = AUI_wap_stringID(View->Title, CARD_TITLE_MAX_LEN, WAP_STRING_UNTITLED); + } + + /* SPR#1816 - SH - Copy URL, making sure it's not too long */ + + strncpy(View->URL, parameter->Url, URL_MAX_LEN); + + /* Add card name & URL to top of history list + * SPR#1816 - SH - Do this before cropping title */ + +#ifdef FF_GPF_TCPIP + if (ATB_wap_profile_setting(WAP_STATUS_SAVEHISTORY)) + { +// xreddymn Dec-10-2004 MMI-SPR-26159 - Insert title only if insert URL was successful +#if(0) // If set to 1, allows duplicate URLs to be inserted into history list + ATB_wap_entry_insert(WAP_HISTORY_LIST, View->History, (char *)View->Title, 0); // Add as entry 0 (last entry lost) + ATB_wap_entry_insert(WAP_URL_LIST, View->HistoryURL, View->URL, 0); +#else // Insert title only if insert URL was successful + if(ATB_wap_entry_insert(WAP_URL_LIST, View->HistoryURL, View->URL, 0)!=WAP_FAIL) + ATB_wap_entry_insert(WAP_HISTORY_LIST, View->History, (char *)View->Title, 0); // Add as entry 0 (last entry lost) +#endif + } +//changes +#else + if (View->Status & WAP_STATUS_SAVEHISTORY) + { + ATB_wap_entry_insert(View->History, (char *)View->Title, 0); /* Add as entry 0 (last entry lost) */ + ATB_wap_entry_insert(View->HistoryURL, View->URL, 0); + + } +#endif +//changes + /* Crop title so it fits on screen */ + + ATB_uc_text_crop(View->Title, parameter->title_length, WAP_SCREEN_WIDTH-WAP_CHAR_WIDTH); + + /* Check to see if user can go back from this card */ + +#ifdef CO_UDP_IP + if (historyPointer != 0) + { + View->CanGoBack = TRUE; + } + else + { + View->CanGoBack = FALSE; + } +#else + View->CanGoBack = TRUE; +#endif + + View->CustSoftKeys = FALSE; /* Use default softkeys */ + + /* SPR#1575 - SH - New card is being read in */ + + ATB_wap_status_change(View, ATB_WAP_CARD_READING); + + return; +} + + +/******************************************************************************* + + + $Function: M_WAP_MMI_DRAW_CARD_IND + + $Description: Tell MMI to draw the card. + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_WAP_MMI_DRAW_CARD_IND(T_WAP_MMI_DRAW_CARD_IND *parameter) +{ + T_WAP_VIEW *View; + +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_WAP_MMI_DRAW_CARD_IND"); + TRACE_EVENT_P1("object ID: %d",parameter->object_id); + TRACE_EVENT_P2("contentWidth: %d, contentHeight: %d",parameter->contentWidth, parameter->contentHeight); + TRACE_EVENT_P2("contentPosX: %d, contentPosY: %d",parameter->contentPosX, parameter->contentPosY); +#endif + + if (!(View = ATB_wap_get_view(parameter->object_id))) + return; + + /* SPR#1816 - SH - Check if we're shutting down */ + + if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) + { + TRACE_EVENT("*** SHUTTING DOWN ***"); + return; + } + + View->cardWidth = parameter->contentWidth; + View->cardHeight = parameter->contentHeight; + View->cardXPosition = parameter->contentPosX; + View->cardYPosition = parameter->contentPosY; + + View->acceptUpdate = FALSE; + /* Set to FALSE as default, to ignore any attempts to redraw parts of the card + * rather than the whole card (e.g. when selecting an option). Only allows a card + * to be updated if M_WAP_MMI_CLEAR_CARD_IND is called. */ + + return; +} + + +/******************************************************************************* + + $Function: M_WAP_MMI_CLEAR_CARD_IND + + $Description: Clear the card display. Allows card to be updated. + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_WAP_MMI_CLEAR_CARD_IND(T_WAP_MMI_CLEAR_CARD_IND *parameter) +{ + T_WAP_VIEW *View; + +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_WAP_MMI_CLEAR_CARD_IND"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); +#endif + + if (!(View = ATB_wap_get_view(parameter->object_id))) + return; + + /* SPR#1816 - SH - Check if we're shutting down */ + + if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) + { + TRACE_EVENT("*** SHUTTING DOWN ***"); + return; + } + + View->acceptUpdate = TRUE; + + /* Clearing the card means we're going to update the whole thing, so this update + * is permitted (see M_WAP_MMI_DRAW_CARD_IND). */ + + return; +} + + +/******************************************************************************* + + + $Function: M_WAP_MMI_SEND_TEXT_IND + + + $Description: A text is to be displayed. + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_WAP_MMI_SEND_TEXT_IND(T_WAP_MMI_SEND_TEXT_IND *parameter) +{ + T_WAP_VIEW *View; + T_WAP_ELEMENT *Element; + T_WAP_MMI_SEND_TEXT_IND *copy; + +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_WAP_MMI_SEND_TEXT_IND"); + ATB_trace_ushort_string(parameter->Text, parameter->text_length); + ATB_trace_ushort_string(parameter->Formatstring, parameter->formatstring_length); +#endif + + if (!(View = ATB_wap_get_view(parameter->object_id))) + { +#ifdef FF_GPF_TCPIP + // xrashmic 20 Dec, 2005 OMAPS00061232 (on behalf of xreddymn) + // Need to free if the memory was allocated by us in wapadapter. + if(TRUE == parameter->free_flag) + { + T_MMI_WAP_MEM_FREE_IND free_mem_ind; + free_mem_ind.data = (UBYTE*)parameter->Text; + free_mem_ind.imageObject=FALSE; + M_MMI_WAP_FREE_MEM_IND(&free_mem_ind); + } +#endif + return; + } + /* SPR#1816 - SH - Check if we're shutting down */ + + if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) + { + TRACE_EVENT("*** SHUTTING DOWN ***"); +#ifdef FF_GPF_TCPIP + // xrashmic 20 Dec, 2005 OMAPS00061232 (on behalf of xreddymn) + // Need to free if the memory was allocated by us in wapadapter. + if(TRUE == parameter->free_flag) + { + T_MMI_WAP_MEM_FREE_IND free_mem_ind; + free_mem_ind.data = (UBYTE*)parameter->Text; + free_mem_ind.imageObject=FALSE; + M_MMI_WAP_FREE_MEM_IND(&free_mem_ind); + } +#endif + return; + } + + /* If an update is forbidden, ignore this event */ + + if (!View->acceptUpdate) + { +#ifdef FF_GPF_TCPIP + // xrashmic 20 Dec, 2005 OMAPS00061232 (on behalf of xreddymn) + // Need to free if the memory was allocated by us in wapadapter. + if(TRUE == parameter->free_flag) + { + T_MMI_WAP_MEM_FREE_IND free_mem_ind; + free_mem_ind.data = (UBYTE*)parameter->Text; + free_mem_ind.imageObject=FALSE; + M_MMI_WAP_FREE_MEM_IND(&free_mem_ind); + } +#endif + return; + } + + /* Allocate memory and copy the data */ + + Element = ATB_wap_buffer_add_element(View, WAP_TEXT); /* SPR#1921 - SH */ + + copy = (T_WAP_MMI_SEND_TEXT_IND *)AUI_wap_memory_alloc(sizeof(T_WAP_MMI_SEND_TEXT_IND)); + memcpy((void *)copy, (void *)parameter, sizeof(T_WAP_MMI_SEND_TEXT_IND)); + //xrashmic 12 May, 2005 MMI-SPR-30834 + //For input text box, adding of [] is moved from wap adapter to bmi + if(WAP_TEXT_INPUT == parameter->type) + { + if(parameter->text_length==0) + { + copy->text_length=2; + copy->Text = (USHORT *)AUI_wap_memory_alloc((copy->text_length+1)*sizeof(USHORT)); + } + else + { + copy->text_length=parameter->text_length+2; + copy->Text = (USHORT *)AUI_wap_memory_alloc((copy->text_length+1)*sizeof(USHORT)); + memcpy((void *)(copy->Text+1), (void *)parameter->Text, parameter->text_length*sizeof(USHORT)); + } + copy->Text[0] = (USHORT) '['; + copy->Text[copy->text_length-1] = (USHORT) ']'; + copy->Text[copy->text_length] = (USHORT) '\0'; + } + else + { + if (parameter->text_length != 0) + { + copy->Text = (USHORT *)AUI_wap_memory_alloc(parameter->text_length*sizeof(USHORT)); + memcpy((void *)copy->Text, (void *)parameter->Text, parameter->text_length*sizeof(USHORT)); + } + } + if (parameter->formatstring_length != 0) + { + copy->Formatstring = (USHORT *)AUI_wap_memory_alloc(parameter->formatstring_length*sizeof(USHORT)); + memcpy((void *)copy->Formatstring, (void *)parameter->Text, parameter->formatstring_length*sizeof(USHORT)); + } + + Element->data = (void *)copy; + +#ifdef FF_GPF_TCPIP + // xrashmic 20 Dec, 2005 OMAPS00061232 (on behalf of xreddymn) + // Need to free if the memory was allocated by us in wapadapter. + if(TRUE == parameter->free_flag) + { + T_MMI_WAP_MEM_FREE_IND free_mem_ind; + free_mem_ind.data = (UBYTE*)parameter->Text; + free_mem_ind.imageObject=FALSE; + M_MMI_WAP_FREE_MEM_IND(&free_mem_ind); + } +#endif + return; +} + +#ifdef FF_GPF_TCPIP +/******************************************************************************* + + + $Function: M_WAP_MMI_RADIO_BUTTON_IND + + + $Description: A radio button is to be displayed. + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_WAP_MMI_RADIO_BUTTON_IND(T_WAP_MMI_RADIO_BUTTON_IND *parameter) +{ + +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_WAP_MMI_RADIO_BUTTON_IND"); + TRACE_EVENT_P2("MMI object ID: %d, element ID: %d",parameter->object_id, parameter->element_id); + TRACE_EVENT_P2("MMI active, selected: %d, %d", parameter->active, parameter->selected); + TRACE_EVENT_P2("MMI pX, pY: %d, %d", parameter->pX, parameter->pY); + TRACE_EVENT_P2("MMI pWidth, pHeight: %d, %d", parameter->pWidth, parameter->pHeight); +#endif + + return; +} + +/******************************************************************************* + + + $Function: M_WAP_MMI_DRAW_BORDER_IND + + $Description: A border element is to be displayed. + //kyle 29 Jun, 2005 MMI-SPR-32462 + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_WAP_MMI_DRAW_BORDER_IND(T_WAP_MMI_DRAW_BORDER_IND *parameter) +{ + + T_WAP_VIEW *View; + T_WAP_ELEMENT *Element; + T_WAP_MMI_DRAW_BORDER_IND *copy; + +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_WAP_MMI_DRAW_BORDER_IND"); + TRACE_EVENT_P1("WAP object ID: %d",parameter->object_id); + TRACE_EVENT_P4("Bottom border pX, pY, pWidth, pHeight: %d, %d, %d, %d", parameter->borderBottom.pX, parameter->borderBottom.pY, parameter->borderBottom.pWidth, parameter->borderBottom.pHeight); + TRACE_EVENT_P4("Left border pX, pY, pWidth, pHeight: %d, %d, %d, %d", parameter->borderLeft.pX, parameter->borderLeft.pY, parameter->borderLeft.pWidth, parameter->borderLeft.pHeight); + TRACE_EVENT_P4("Right border pX, pY, pWidth, pHeight: %d, %d, %d, %d", parameter->borderRight.pX, parameter->borderRight.pY, parameter->borderRight.pWidth, parameter->borderRight.pHeight); + TRACE_EVENT_P4("Top border pX, pY, pWidth, pHeight: %d, %d, %d, %d", parameter->borderTop.pX, parameter->borderTop.pY, parameter->borderTop.pWidth, parameter->borderTop.pHeight); +#endif + + if (!(View = ATB_wap_get_view(parameter->object_id))) + return; + + /* SPR#1816 - SH - Check if we're shutting down */ + + if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) + { + TRACE_EVENT("*** SHUTTING DOWN ***"); + return; + } + + /* If an update is forbidden, ignore this event */ + + if (!View->acceptUpdate) + return; + + /* Allocate memory and copy the data */ + + Element = ATB_wap_buffer_add_element(View, WAP_BORDER); /* SPR#1921 - SH */ + + copy = (T_WAP_MMI_DRAW_BORDER_IND *)AUI_wap_memory_alloc(sizeof(T_WAP_MMI_DRAW_BORDER_IND)); + memcpy((void *)copy, (void *)parameter, sizeof(T_WAP_MMI_DRAW_BORDER_IND)); + + Element->data = (void *)copy; + + return; +} + +#endif + +/******************************************************************************* + + $Function: M_WAP_MMI_SEND_IMAGE_IND + + $Description: An image is to be displayed. + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_WAP_MMI_SEND_IMAGE_IND(T_WAP_MMI_SEND_IMAGE_IND *parameter) +{ + T_WAP_VIEW *View; + T_WAP_ELEMENT *Element; + T_WAP_MMI_SEND_IMAGE_IND *copy; +#ifdef FF_GPF_TCPIP + T_MMI_WAP_MEM_FREE_IND free_mem_ind; //xrashmic 30 Aug, 2005 MMI-SPR-34024(OMAPS00048918) mem leak fix +#endif + +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_WAP_MMI_SEND_IMAGE_IND"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); +#endif + + if (!(View = ATB_wap_get_view(parameter->object_id))) + { +#ifdef FF_GPF_TCPIP + // xrashmic 20 Dec, 2005 OMAPS00061232 (on behalf of xreddymn) + // Need to free if the memory was allocated for plugin image in wapadapter. + if(parameter->pluginImage) + { + free_mem_ind.data = parameter->ImageReq; + free_mem_ind.imageObject=TRUE; + M_MMI_WAP_FREE_MEM_IND(&free_mem_ind); + } +#endif + return; + } + + /* SPR#1816 - SH - Check if we're shutting down */ + + if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) + { + TRACE_EVENT("*** SHUTTING DOWN ***"); +#ifdef FF_GPF_TCPIP + // xrashmic 20 Dec, 2005 OMAPS00061232 (on behalf of xreddymn) + // Need to free if the memory was allocated for plugin image in wapadapter. + if(parameter->pluginImage) + { + free_mem_ind.data = parameter->ImageReq; + free_mem_ind.imageObject=TRUE; + M_MMI_WAP_FREE_MEM_IND(&free_mem_ind); + } +#endif + return; + } + + /* If an update is forbidden, ignore this event */ + + if (!View->acceptUpdate) + { +#ifdef FF_GPF_TCPIP + // xrashmic 20 Dec, 2005 OMAPS00061232 (on behalf of xreddymn) + // Need to free if the memory was allocated for plugin image in wapadapter. + if(parameter->pluginImage) + { + free_mem_ind.data = parameter->ImageReq; + free_mem_ind.imageObject=TRUE; + M_MMI_WAP_FREE_MEM_IND(&free_mem_ind); + } +#endif + return; + } +#ifdef FF_GPF_TCPIP + //xrashmic 21 Jan, 2005 MMI-SPR-28223 + //Saving the information passed by wap adapter if the image is from plugin or normal wap page. + if(parameter->pluginImage) + Element = ATB_wap_buffer_add_element(View, WAP_PLUGIN_IMAGE); /* SPR#1921 - SH */ + else +#endif + Element = ATB_wap_buffer_add_element(View, WAP_IMAGE); /* SPR#1921 - SH */ + copy = (T_WAP_MMI_SEND_IMAGE_IND *)AUI_wap_memory_alloc(sizeof(T_WAP_MMI_SEND_IMAGE_IND)); + if (copy) + { + memcpy((void *)copy, (void *)parameter, sizeof(T_WAP_MMI_SEND_IMAGE_IND)); + + +#ifdef FF_GPF_TCPIP + //xrashmic 30 Aug, 2005 MMI-SPR-34024(OMAPS00048918) mem leak fix + // Only for plugin images make a copy at bmi. + if(parameter->pluginImage) + { + if (parameter->image_length != 0) + { + copy->Image = (UBYTE *)AUI_wap_memory_alloc(parameter->image_length*sizeof(UBYTE)); + memcpy((void *)copy->Image, (void *)parameter->Image, parameter->image_length*sizeof(UBYTE)); + } + } + else + copy->Image = (UBYTE*)parameter->Image; +#else + if (parameter->image_length != 0) + { + copy->Image = (UBYTE *)AUI_wap_memory_alloc(parameter->image_length*sizeof(UBYTE)); + memcpy((void *)copy->Image, (void *)parameter->Image, parameter->image_length*sizeof(UBYTE)); + } +#endif + } + + Element->data = (void *)copy; + +#ifdef FF_GPF_TCPIP + //xrashmic 30 Aug, 2005 MMI-SPR-34024(OMAPS00048918) mem leak fix + //freeing ImageReq data in WAP memory only for plugin images. + if(parameter->pluginImage) + { + // xreddymn MMI-SPR-30834 May-14-2005: free ImageReq data in WAP memory + free_mem_ind.data = parameter->ImageReq; + // xrashmic 20 Dec, 2005 OMAPS00061232 (on behalf of xreddymn) + // Add this to differentiate between image objects and text objects to be freed in wap adapter + free_mem_ind.imageObject=TRUE; + M_MMI_WAP_FREE_MEM_IND(&free_mem_ind); + } +#endif + return; +} + + +/******************************************************************************* + + + $Function: M_WAP_MMI_SEND_TABLE_IND + + $Description: A table/fieldset is to be displayed. + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_WAP_MMI_SEND_TABLE_IND(T_WAP_MMI_SEND_TABLE_IND *parameter) +{ + T_WAP_VIEW *View; + T_WAP_ELEMENT *Element; + T_WAP_MMI_SEND_TABLE_IND *copy; + +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_WAP_MMI_SEND_TABLE_IND"); + TRACE_EVENT_P1("object ID: %d",parameter->object_id); + TRACE_EVENT_P2("Columns: %d, Rows: %d",parameter->cols_length, parameter->rows_length); + TRACE_EVENT_P4("pX: %d, pY: %d, pWidth: %d, pHeight: %d",parameter->pX, parameter->pY, parameter->pWidth, parameter->pHeight); + ATB_trace_ushort_string(parameter->Title, parameter->title_length); +#endif + + if (!(View = ATB_wap_get_view(parameter->object_id))) + return; + + /* SPR#1816 - SH - Check if we're shutting down */ + + if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) + { + TRACE_EVENT("*** SHUTTING DOWN ***"); + return; + } + + /* If an update is forbidden, ignore this event */ + + if (!View->acceptUpdate) + return; + + /* Allocate memory and copy the data */ + + Element = ATB_wap_buffer_add_element(View, WAP_TABLE); /* SPR#1921 - SH */ + + copy = (T_WAP_MMI_SEND_TABLE_IND *)AUI_wap_memory_alloc(sizeof(T_WAP_MMI_SEND_TABLE_IND)); + memcpy((void *)copy, (void *)parameter, sizeof(T_WAP_MMI_SEND_TABLE_IND)); + + if (parameter->title_length != 0) + { + copy->Title = (USHORT *)AUI_wap_memory_alloc(parameter->title_length*sizeof(USHORT)); + memcpy((void *)copy->Title, (void *)parameter->Title, parameter->title_length*sizeof(USHORT)); + } + if (parameter->cols_length != 0) + { + copy->ColWidth = (SHORT *)AUI_wap_memory_alloc(parameter->cols_length*sizeof(SHORT)); + memcpy((void *)copy->ColWidth, (void *)parameter->ColWidth, parameter->cols_length*sizeof(SHORT)); + } + if (parameter->rows_length != 0) + { + copy->RowHeight = (SHORT *)AUI_wap_memory_alloc(parameter->rows_length*sizeof(SHORT)); + memcpy((void *)copy->RowHeight, (void *)parameter->RowHeight, parameter->rows_length*sizeof(SHORT)); + } + Element->data = (void *)copy; + + return; +} + + +/******************************************************************************* + + + $Function: M_WAP_MMI_CARD_DRAW_COMPLETED_IND + + $Description: Card drawing is completed, card may be displayed. + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_WAP_MMI_CARD_DRAW_COMPLETED_IND(T_WAP_MMI_CARD_DRAW_COMPLETED_IND *parameter) +{ + T_WAP_VIEW *View; + UBYTE temp; + // July 13 2005 REF: MMI-SPR-32012 x0012849 + // To change the functionality of RSK, when there is no page to go back +#ifdef FF_GPF_TCPIP + if(HISTORY_NOT_AVAILABLE== parameter->object_id) + { + ExitWAP(WAP_NONE); + return; + } + //xrashmic 17 Aug, 2005 MMI-SPR-31364 + //When it is detected that a very large page is being opened, the wap adapter sends this message. + //We need to exit wap and display a error dialog as we have memory constraints. + else if(OUT_OF_MEM_LARGE_PAGE == parameter->object_id ) + { + ExitWAP(WAP_OUT_OF_MEM); + return; + } + +#endif + if (!(View = ATB_wap_get_view(parameter->object_id))) + return; + + /* SPR#1816 - SH - Check if we're shutting down */ + + if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) + { + TRACE_EVENT("*** SHUTTING DOWN ***"); + return; + } + + temp = dspl_Enable(0); + +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_WAP_MMI_CARD_DRAW_COMPLETED_IND"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); +#endif + + /* If an update is forbidden, ignore this event */ + + if (!View->acceptUpdate) + { + dspl_Enable(temp); + return; + } + + /* Destroy the current card, and make the new buffered card the current card */ + + ATB_wap_buffer_clear(View); + View->ElementHeader = View->NewElementHeader; + View->NewElementHeader = NULL; + + AUI_wap_card_show_req(View); + dspl_Enable(temp); + + return; +} + + +/******************************************************************************* + + + $Function: M_WAP_MMI_CONNECT_REQ + + $Description: The connection (GSM or GPRS) can now be made. + The GSM connection occurs in this function. + The GPRS attachment is made in this function. Once GPRS is + attached, the connection proceeds in function connect_gprs() below. + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ +#ifdef FF_GPF_TCPIP + +extern void M4_DebugStringMessage(char *in_string, UINT8 ucNumber,unsigned long para); +// xreddymn Mar-05-2005 MMI-SPR-26144: This function is called to check if +// a MMS send operation was cancelled by the user +extern UBYTE AUI_mms_cancel_status(void); + +void M_WAP_MMI_CONNECT_REQ(T_WAP_MMI_CONNECT_REQ *parameter) +{ + T_WAP_VIEW *View; + char temp[NUMBER_MAX_LEN+1]; + T_ACI_BS_SPEED speed; + + + T_SOCK_BEARER_INFO bearer_data; + T_SOCKET_NODE *bearer_node = NULL; + T_SOCK_RESULT result; + + +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_WAP_MMI_CONNECT_REQ"); + TRACE_EVENT_P2("MMI object ID: %d, bearer status: %d", parameter->object_id, parameter->bearer_status); +#endif + + // xreddymn Feb-23-2005 MMI-SPR-26144: If the user has pressed Cancel, do not connect + if(AUI_mms_cancel_status()) return; + + if (!(View = ATB_wap_get_view(parameter->object_id))) + return; + + /* SPR#1816 - SH - Check if we're shutting down */ + + if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) + { + TRACE_EVENT("*** SHUTTING DOWN ***"); + return; + } + + + + if(parameter->bearer_status == 1) + { + + TRACE_EVENT("SAPI_BEARER_REQUEST"); + + bearer_data.bearer_handle = 0; + bearer_data.app_handle = parameter->wap_app_handle; + + switch (View->Profile->AccessType) + { + case WAP_CS_DATA: + { + bearer_data.bearer_type = SOCK_BEARER_GSM; + bearer_data.phone_nr_valid = TRUE; + bearer_data.cid = 1; + bearer_data.user_id_valid = TRUE; + bearer_data.password_valid = TRUE; + strcpy(bearer_data.phone_nr, View->Profile->DialupNumber); + strcpy(bearer_data.user_id, View->Profile->Username); + strcpy(bearer_data.password, View->Profile->Password); + bearer_data.precedence = 0; + bearer_data.delay = 0; + bearer_data.reliability = 0; + bearer_data.peak_throughput = 0; + bearer_data.mean_througput = 0; + + bearer_data.ip_address = SOCK_IPADDR_ANY; + bearer_data.dns1 = SOCK_IPADDR_ANY; + bearer_data.dns2 = SOCK_IPADDR_ANY; + bearer_data.gateway = SOCK_IPADDR_ANY; + bearer_data.authtype = SOCK_AUTH_NO; + bearer_data.data_compr = FALSE; + bearer_data.header_comp = FALSE; + bearer_data.shareable = FALSE; + + break; + } +#ifdef GPRS + case WAP_GPRS_DATA: + { + bearer_data.bearer_type = SOCK_BEARER_GPRS; + bearer_data.apn_valid = TRUE; + bearer_data.cid = 1; + bearer_data.user_id_valid = TRUE; + bearer_data.password_valid = TRUE; + strcpy(bearer_data.apn, View->Profile->APN); + strcpy(bearer_data.user_id, View->Profile->Username); + strcpy(bearer_data.password, View->Profile->Password); + bearer_data.precedence = 0; + bearer_data.delay = 0; + bearer_data.reliability = 0; + bearer_data.peak_throughput = 0; + bearer_data.mean_througput = 0; + bearer_data.user_id_valid = TRUE; + bearer_data.password_valid = TRUE; + + bearer_data.ip_address = SOCK_IPADDR_ANY; + bearer_data.dns1 = SOCK_IPADDR_ANY; + bearer_data.dns2 = SOCK_IPADDR_ANY; + bearer_data.gateway = SOCK_IPADDR_ANY; + bearer_data.authtype = SOCK_AUTH_NO; + bearer_data.data_compr = FALSE; + bearer_data.header_comp = FALSE; + bearer_data.shareable = FALSE; + + break; + } + } +#endif + + bearer_node = (T_SOCKET_NODE *)parameter->node; + + if(bearer_node == NULL) + { + TRACE_ERROR("Error: M_WAP_MMI_CONNECT_REQ()"); + return; + } + + result = sock_open_bearer((T_SOCK_API_INSTANCE)parameter->instance, SOCK_BEARER_AS_SPECIFIED, 0,&bearer_data, wap_sock_app_callback, bearer_node); + + if(result != SOCK_RESULT_OK) + { + TRACE_ERROR("M_WAP_MMI_CONNECT_REQ(): error in sock_open_bearer()"); + TRACE_EVENT_P1("result: %d", result); + return; + } + else + { + TRACE_EVENT_P1("sock_open_bearer(): socket_api_instance: %d", result); + } + } + else + { + TRACE_ERROR("M_WAP_MMI_CONNECT_REQ(): Unknown bearer status"); + } + + + + return; +} + + +/******************************************************************************* + + $Function: connect + + $Description: Connect + SPR#2086 - Added + + $Returns: None + + $Arguments: object_id - the current session + +*******************************************************************************/ + +void connect(UBYTE object_id) +{ + T_WAP_VIEW *View; + char temp[NUMBER_MAX_LEN+1]; + T_ACI_BS_SPEED speed; + + char TraceBuffer[100]; + + + sprintf(TraceBuffer, "connect called"); + //M4_DebugStringMessage( TraceBuffer,(strlen(TraceBuffer)), 0); + + if (!(View = ATB_wap_get_view(object_id))) + return; + + switch (View->Profile->AccessType) + { + case WAP_CS_DATA: + /* CSD call - connect straight away */ + + sAT_PercentPPP(0,1,View->Profile->Username, View->Profile->Password, USE_NO_PPP_FOR_AAA); + sAT_PercentWAP(0,0); + sAT_PercentWAP(0,1); + + /* Set the connection speed */ + + switch(View->Profile->ConnectionSpeed) + { + case WAP_ANALOGUE: + speed = BS_SPEED_AUTO; + break; + case WAP_ISDN9600: + speed = BS_SPEED_9600_V110; + break; + case WAP_ISDN14400: + speed = BS_SPEED_14400_V110; + break; + default: + speed = BS_SPEED_9600_V34; + break; + } + //Nov 02, 2005 DR OMAPS00052132 xdeepadh + //The usage of ATI enum is put under the flag FF_ATI +#ifdef FF_ATI + sAT_PlusCBST(CMD_SRC_ATI_1, speed, CBST_NAM_Asynch, CBST_CE_NonTransparent); + /* Make the call */ + sprintf(temp, "=%s", View->Profile->DialupNumber); + atD(temp,CMD_SRC_ATI_1); +#endif //FF_ATI + break; + +#ifdef GPRS + case WAP_GPRS_DATA: + { + /* GPRS call - attach now. If attached, connect. + * If not, wait until attach succeeds */ + + T_CGATT_STATE regstate; + + /* Check to see if attached */ + + qAT_PlusCGATT ( CMD_SRC_LCL, ®state ); +#ifdef TRACE_ATBWAPACI + TRACE_EVENT_P1("Reg state: %d", regstate); +#endif + + /* If we're not attached, attempt to do so */ + + if (regstate!=CGATT_STATE_ATTACHED) + { + /* Display status "attaching" */ + ATB_wap_status_change(View, ATB_WAP_ATTACHING); + /* Attempt to attach */ + sAT_PlusCGATT ( CMD_SRC_LCL, CGATT_STATE_ATTACHED ); + } + /* Otherwise, go straight to GPRS connection */ + else + { + connect_gprs(object_id); + } + } + break; +#endif + + default: + TRACE_EVENT("ERROR: Illegal access type!"); + AUI_error_dialog(View, ERROR_CALL_DISCONNECTED); + break; + } +} + +#else /* #ifdef FF_GPF_TCPIP */ + +void M_WAP_MMI_CONNECT_REQ(T_WAP_MMI_CONNECT_REQ *parameter) +{ + T_WAP_VIEW *View; + char temp[NUMBER_MAX_LEN+1]; + T_ACI_BS_SPEED speed; + +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_WAP_MMI_CONNECT_REQ"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); +#endif + + if (!(View = ATB_wap_get_view(parameter->object_id))) + return; + + /* Check if we're shutting down */ + + if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) + { + TRACE_EVENT("*** SHUTTING DOWN ***"); + return; + } + + switch (View->Profile->AccessType) + { + case WAP_CS_DATA: + /* CSD call - connect straight away */ + + sAT_PercentPPP(0,1,View->Profile->Username, View->Profile->Password, USE_NO_PPP_FOR_AAA); + sAT_PercentWAP(0,0); + sAT_PercentWAP(0,1); + + /* Set the connection speed */ + + switch(View->Profile->ConnectionSpeed) + { + case WAP_ANALOGUE: + speed = BS_SPEED_AUTO; + break; + case WAP_ISDN9600: + speed = BS_SPEED_9600_V110; + break; + case WAP_ISDN14400: + speed = BS_SPEED_14400_V110; + break; + default: + speed = BS_SPEED_9600_V34; + break; + } + //Nov 02, 2005 DR OMAPS00052132 xdeepadh + //The usage of ATI enum is put under the flag FF_ATI +#ifdef FF_ATI + sAT_PlusCBST(CMD_SRC_ATI_1, speed, CBST_NAM_Asynch, CBST_CE_NonTransparent); + /* Make the call */ + sprintf(temp, "=%s", View->Profile->DialupNumber); + atD(temp,CMD_SRC_ATI_1); +#endif //FF_ATI + break; + +#ifdef GPRS + case WAP_GPRS_DATA: + { + /* GPRS call - attach now. If attached, connect. + * If not, wait until attach succeeds */ + + T_CGATT_STATE regstate; + + /* Check to see if attached */ + + qAT_PlusCGATT ( CMD_SRC_LCL, ®state ); +#ifdef TRACE_ATBWAPACI + TRACE_EVENT_P1("Reg state: %d", regstate); +#endif + + /* If we're not attached, attempt to do so */ + + if (regstate!=CGATT_STATE_ATTACHED) + { + /* Display status "attaching" */ + ATB_wap_status_change(View, ATB_WAP_ATTACHING); + /* Attempt to attach */ + sAT_PlusCGATT ( CMD_SRC_LCL, CGATT_STATE_ATTACHED ); + } + /* Otherwise, go straight to GPRS connection */ + else + { + connect_gprs(parameter->object_id); + } + } +#endif + } + + return; +} + + +#endif /* ! #ifdef FF_GPF_TCPIP */ + +#ifdef GPRS +#ifdef FF_GPF_TCPIP +extern void M4_DebugStringMessage(char *in_string, UINT8 ucNumber,unsigned long para); +void PowerOnGPRSAttach(void) +{ + T_CGATT_STATE regstate; + char temp[50]; + + /* Modified to detect if GPRS attach fails. Check to see if attached */ + qAT_PlusCGATT ( CMD_SRC_LCL, ®state ); + + sprintf(temp, "PowerOnGPRSAttach called!"); + //M4_DebugStringMessage( temp,(strlen(temp)), 0); + + /* If we're not attached, attempt to do so */ + if (regstate!=CGATT_STATE_ATTACHED) + { + sprintf(temp, "sAT_PlusCGATT called!"); + //M4_DebugStringMessage( temp,(strlen(temp)), 0); + + /* Attempt to attach */ + sAT_PlusCGATT ( CMD_SRC_LCL, CGATT_STATE_ATTACHED ); + } +} + +void mms_gprs_deattach(void) +{ + T_CGATT_STATE regstate; + char temp[50]; + + sprintf(temp, "mms_gprs_deattach called!"); + //M4_DebugStringMessage( temp,(strlen(temp)), 0); + + qAT_PlusCGATT ( CMD_SRC_LCL, ®state ); + + if (regstate == CGATT_STATE_ATTACHED) + { + sprintf(temp, "mms_gprs_deattach need to deattach!"); + //M4_DebugStringMessage( temp, (strlen(temp)), 0); + + /* Attempt to deattach */ + sAT_PlusCGATT ( CMD_SRC_LCL, CGATT_STATE_DETACHED ); + rvf_delay(100); + } + + return; +} + +void mms_gprs_attach(void) +{ + T_CGATT_STATE regstate; + char temp[50]; + UINT8 i; + UINT8 ucAttachTime; + + /* Modified to detect if GPRS attach fails. Check to see if attached */ + qAT_PlusCGATT ( CMD_SRC_LCL, ®state ); + TRACE_EVENT_P1("Reg state: %d", regstate); + + sprintf(temp, "mms_gprs_attach called!"); + //M4_DebugStringMessage( temp,(strlen(temp)), 0); + + /* If we're not attached, attempt to do so */ + if (regstate!=CGATT_STATE_ATTACHED) + { + sprintf(temp, "sAT_PlusCGATT called!"); + //M4_DebugStringMessage( temp,(strlen(temp)), 0); + + /* Attempt to attach */ + sAT_PlusCGATT ( CMD_SRC_LCL, CGATT_STATE_ATTACHED ); + + ucAttachTime = 24; + + for (i = 0;i < ucAttachTime;i++)//120s for GPRS + { + qAT_PlusCGATT ( CMD_SRC_LCL, ®state ); + if (regstate == CGATT_STATE_ATTACHED) + { + break; + } + + /*delay 5s*/ + rvf_delay(1000); + } + + if (i == ucAttachTime) + { + sprintf(temp, "mms_gprs_attach failed after 5s %03d* ",ucAttachTime); + //M4_DebugStringMessage( temp,(strlen(temp)), 0); + } + else + { + sprintf(temp, "mms_gprs_attach success!"); + //M4_DebugStringMessage( temp,(strlen(temp)), i); + } + } + +} + +/******************************************************************************* + + + $Function: connect_gprs + + $Description: GPRS is attached; now activate PDP context + SPR#1982 - SH + - Tidy up variables a little. + - Change '1' to GPRS_CID_1 + - Put traces inside #ifdefs + + $Returns: None. + + $Arguments: View - the current view + +*******************************************************************************/ + +void connect_gprs(UBYTE object_id) +{ + SHORT cids[MAX_CID_PLUS_EINS]; + BOOL states[MAX_CID_PLUS_EINS]; + T_GPRS_CONT_REC context; + T_ACI_RETURN ret; + T_WAP_VIEW *View; + SHORT contextId; + SHORT arrayPos; + char dialString[10]; + + TRACE_FUNCTION("connect_gprs()"); + + if (!(View = ATB_wap_get_view(object_id))) + return; + + /* Select the context ID */ + + contextId = GPRS_CID_1; + + + if (object_id==WAP_PUSH_VIEW) + { + contextId = GPRS_CID_2; + } + + + /* Check to see if context already active */ + memset (states, FALSE, sizeof(states)); + memset (cids, 0, sizeof(cids)); + + qAT_PlusCGACT ( CMD_SRC_LCL, states, cids ); + + if (contextId==cids[0] || cids[0]==INVALID_CID) + arrayPos = 0; + else + arrayPos = 1; + +#ifdef TRACE_ATBWAPACI + TRACE_EVENT_P1("Context 0: %d", cids[0]); +#endif + + /* If context doesn't exist, define it + * Use GPRS_CID_1 rather than number '1'*/ + + if ( cids[arrayPos] == INVALID_CID) + { +#ifdef TRACE_ATBWAPACI + TRACE_EVENT("Defining new context."); +#endif + + states[arrayPos] = FALSE; + + strncpy((char *)context.apn, View->Profile->APN, MAX_APN_LEN); + strcpy((char*)context.pdp_type, "IP"); + memset(context.pdp_addr, '\0', MAX_PDP_ADDR_LEN); + context.d_comp = CGDCONT_D_COMP_OMITTED; + context.h_comp = CGDCONT_H_COMP_OMITTED; + memset(&context.qos, 0, sizeof(T_QOS)); + memset(&context.min_qos, 0 ,sizeof(T_QOS)); + + ret = sAT_PlusCGDCONT(CMD_SRC_LCL, contextId, &context); + +#ifdef TRACE_ATBWAPACI + TRACE_EVENT_P1("CGDCONT Return = %d",ret); +#endif + + if (ret==AT_FAIL) + { + ATB_wap_data_call_disconnected(View); + AUI_error_dialog(View, ERROR_GPRS_NOT_SUPPORTED); + return; + } + } + + /* Removed duplicate call to qAT_PlusCGACT. + * If context isn't activated, call CGPCO */ + + if (states[arrayPos]) + { +#ifdef TRACE_ATBWAPACI + TRACE_EVENT("Context is activated."); +#endif + ATB_data_call_connected(View); /* SPR#2086 */ + } + else + { +#ifdef TRACE_ATBWAPACI + TRACE_EVENT("Context not activated."); +#endif + + ret = sAT_PercentCGPCO ( + CMD_SRC_LCL, + contextId, + ACI_PCO_AUTH_PROT_PAP, + (CHAR *)View->Profile->Username, + (CHAR *)View->Profile->Password, + NULL, + NULL);//liuyu add NULL for build + +#ifdef TRACE_ATBWAPACI + TRACE_EVENT_P1("CGPCO Return = %d", ret); +#endif + + if (ret==AT_FAIL) + { + ATB_wap_data_call_disconnected(View); /* SPR#2086 */ + AUI_error_dialog(View, ERROR_GPRS_NOT_SUPPORTED); + return; + } + + //sprintf(dialString, "*98**1*%d#", contextId); + //"*98*1#" + //sAT_Dn(CMD_SRC_LCL,"*98*1#",D_CLIR_OVRD_Default,D_CUG_CTRL_NotPresent,D_TOC_Data); + ret = sAT_Dn( + CMD_SRC_LCL, + //dialString, + "*98*1#", + D_CLIR_OVRD_Default, + D_CUG_CTRL_NotPresent, + D_TOC_Data); + + switch (ret) + { + case (AT_CMPL): /*operation completed*/ + case (AT_EXCT): + break; + + default: + ATB_wap_data_call_disconnected(View); + AUI_error_dialog(View, ERROR_CALL_DISCONNECTED); + #ifdef TRACE_ATBWAPACI + TRACE_EVENT("Error occurred in connection."); + #endif + return; + break; + } + } + + return; + } +#else /* #ifdef FF_GPF_TCPIP */ + +void connect_gprs(UBYTE object_id) +{ + SHORT cids[MAX_CID_PLUS_EINS]; + BOOL states[MAX_CID_PLUS_EINS]; + T_GPRS_CONT_REC context; + T_ACI_RETURN ret; + UBYTE minsize; + T_WAP_VIEW *View; + + TRACE_FUNCTION("connect_gprs()"); + + if (!(View = ATB_wap_get_view(object_id))) + return; + + /* Check to see if context already active */ + memset (states, FALSE, sizeof(states)); + memset (cids, 0, sizeof(cids)); + + qAT_PlusCGACT ( CMD_SRC_LCL, states, cids ); + +#ifdef TRACE_ATBWAPACI + TRACE_EVENT_P1("Context 0: %d", cids[0]); +#endif + + /* If context doesn't exist, define it */ + + if ( cids[0] == INVALID_CID) + { +#ifdef TRACE_ATBWAPACI + TRACE_EVENT("Defining new context."); +#endif + /* SPR#2138 - SH - If context not defined, it is not activated */ + states[0] = FALSE; + } + + /* SPR#2415 - SH - Define context, whether or not it was defined before */ + + minsize = (MAX_APN_LEN<(URL_MAX_LEN+1))?MAX_APN_LEN:(URL_MAX_LEN+1); + memset(&context.apn,'\0',MAX_APN_LEN); + memcpy(&context.apn,&View->Profile->APN,minsize); + strcpy((char*)context.pdp_type,"IP"); + minsize = (MAX_PDP_ADDR_LEN<(IPADDRESS_MAX_LEN+1))?MAX_PDP_ADDR_LEN:(IPADDRESS_MAX_LEN+1); + memset(&context.pdp_addr,'\0',MAX_PDP_ADDR_LEN); + context.d_comp = CGDCONT_D_COMP_OMITTED; + context.h_comp = CGDCONT_H_COMP_OMITTED; + memset(&context.qos,0,sizeof(T_QOS)); + memset(&context.min_qos,0,sizeof(T_QOS)); + + ret = sAT_PlusCGDCONT(CMD_SRC_LCL,GPRS_CID_1,&context); + +#ifdef TRACE_ATBWAPACI + TRACE_EVENT_P1("CGDCONT Return = %d",ret); +#endif + + if (ret==AT_FAIL) + { + AUI_error_dialog(View, ERROR_GPRS_NOT_SUPPORTED); + return; + } + + /* Removed duplicate call to qAT_PlusCGACT. + * If context isn't activated, call CGPCO */ + + if (states[0]) + { +#ifdef TRACE_ATBWAPACI + TRACE_EVENT("Context is activated."); +#endif + ATB_data_call_connected(); /* SPR#2138 */ + } + else + { +#ifdef TRACE_ATBWAPACI + TRACE_EVENT("Context not activated."); +#endif + + ret = sAT_PercentCGPCO ( + CMD_SRC_LCL, + GPRS_CID_1, + ACI_PCO_AUTH_PROT_PAP, + (CHAR *)View->Profile->Username, + (CHAR *)View->Profile->Password, + NULL, + NULL + ); + +#ifdef TRACE_ATBWAPACI + TRACE_EVENT_P1("CGPCO Return = %d", ret); +#endif + + if (ret==AT_FAIL) + { + AUI_error_dialog(View, ERROR_GPRS_NOT_SUPPORTED); + return; + } + + ret = sAT_Dn(CMD_SRC_LCL,"*98*1#",D_CLIR_OVRD_Default,D_CUG_CTRL_NotPresent,D_TOC_Data); + + switch (ret) + { + case (AT_CMPL): /*operation completed*/ + case (AT_EXCT): + break; + + default: + AUI_error_dialog(View, ERROR_CALL_DISCONNECTED); + #ifdef TRACE_ATBWAPACI + TRACE_EVENT("Error occurred in connection."); + #endif + return; + break; + } + + return; + } +} + +#endif /* #ifdef FF_GPF_TCPIP */ +#endif + +// xreddymn May-15-2005 MMI-SPR-30962: external functions +extern void MMS_set_WAP_busy(void); +extern void MMS_reset_WAP_busy(void); +extern void MMS_process_push_queue(void); + +/******************************************************************************* + + + $Function: M_WAP_MMI_DISCONNECTED_IND + + $Description: A disconnection has occurred. + + $Returns: None + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_WAP_MMI_DISCONNECTED_IND(T_WAP_MMI_DISCONNECTED_IND *parameter) +{ + T_WAP_VIEW *View; + +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_WAP_MMI_DISCONNECTED_IND"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); +#endif +#ifdef FF_GPF_TCPIP + // xreddymn Feb-23-2005 MMI-SPR-26144 + AUI_mms_cancel_status(); +#endif + if (!(View = ATB_wap_get_view(parameter->object_id))) + return; + + /* SPR#1816 - SH - Check if we're shutting down */ + + if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN)) + { + TRACE_EVENT("*** SHUTTING DOWN ***"); + return; + } + +#ifdef FF_GPF_TCPIP + // xreddymn Feb-17-2005 MMI-SPR-26144: Disabled info dialogs + // as they appear when sending MMS + if(ATB_WAP_ATTACH_FAILED == parameter->error) + { + //xrashmic 08 Feb, 2005 MMI-SPR-27853 + //Need to indicate the BMI when there are GPRS errors + ATB_wap_status_change(View, ATB_WAP_ATTACH_FAILED); + } + else if(ATB_WAP_ACTIVATE_FAILED == parameter->error) + { + //xrashmic 08 Feb, 2005 MMI-SPR-27853 + //Need to indicate the BMI when there are GPRS errors + ATB_wap_status_change(View, ATB_WAP_ACTIVATE_FAILED); + } +#endif + + /* SPR#1574 - SH - Removed parameter */ + ATB_wap_status_change(View,ATB_WAP_ONLINE_CONNECTION_CLOSED); + +#ifdef FF_GPF_TCPIP + // xreddymn May-15-2005 MMI-SPR-30962: If MMS transaction is complete, + // clear WAP busy state. + MMS_reset_WAP_busy(); + MMS_process_push_queue(); +#endif + + return; +} + + +/******************************************************************************* + + + $Function: M_WAP_MMI_READY_CNF + + $Description: SPR#1569 - SH - Added this function + Confirm that WAP has completed the operation. + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_WAP_MMI_READY_CNF(T_WAP_MMI_READY_CNF *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_WAP_MMI_READY_CNF"); + TRACE_EVENT_P1("Event id = %d", parameter->event_id); +#endif + + switch (parameter->event_id) + { + case WAP_START_IND_ID: + ATB_wap_start_done(); + break; + case WAP_NEW_VIEW_IND_ID: + ATB_wap_new_view_done(); + break; + case WAP_CLOSE_VIEW_IND_ID: + ATB_wap_close_view_done(); + break; + case WAP_TERMINATE_IND_ID: + ATB_wap_terminate_done(); + break; + /* SPR#1824 - SH - Cache is prepared */ + case WAP_CACHE_PREPARE_IND_ID: + ATB_wap_cache_prepare_done(); + break; + } + return; +} + + +/******************************************************************************* + + $Function: disconnect_wap_call + + $Description: Disconnect GPRS WAP call in progress. + + $Returns: SPR#1982 - SH + TRUE if connection is disconnected, FALSE if disconnection in progress + + $Arguments: access_type - WAP_GPRS_DATA or WAP_CS_DATA + +*******************************************************************************/ + +UBYTE disconnect_wap_call(UBYTE access_type) +{ + UBYTE disconnected; + T_ACI_RETURN ret; +#ifdef GPRS + SHORT cids[MAX_CID_PLUS_EINS] = {GPRS_CID_1, INVALID_CID}; +#endif + + TRACE_FUNCTION("disconnect_wap_call()"); + + disconnected = TRUE; + +#ifdef GPRS + if (access_type==WAP_GPRS_DATA) + { + /* SPR#1875 - SH - Update data counter */ + + sAT_PercentSNCNT(CMD_SRC_LCL, TRUE); + + ret = sAT_PlusCGACT(CMD_SRC_LCL, CGACT_STATE_DEACTIVATED, cids); + +#ifdef TRACE_ATBWAPACI + TRACE_EVENT_P1("Result of sAT_PlusCGACT = %d", ret); +#endif + + /* If detaching will take a little time, show a please wait dialog */ + + if (ret==AT_EXCT) + { + disconnected = FALSE; + } + } +#endif + return disconnected; +} + +#ifdef FF_GPF_TCPIP +/******************************************************************************* + + + $Function: M_WAP_MMI_CONFIG_REQ + + $Description: SPR#2086 - SH - SAR + + $Returns: None + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_WAP_MMI_CONFIG_REQ(T_WAP_MMI_CONFIG_REQ *parameter) +{ + T_MMI_WAP_CONFIG_CNF parameter2; + T_WAP_VIEW *View; + T_WAP_PROFILE *httpClientProfile; + + +#ifdef TRACE_WAP_WAPMMI + TRACE_EVENT("M_WAP_MMI_CONFIG_REQ"); + TRACE_EVENT_P1("MMI object ID: %d",parameter->object_id); +#endif + + parameter2.object_id = parameter->object_id; + + /* Check if any view exists, create a new invisible view if not */ + + if (!(View = ATB_wap_get_view(parameter->object_id))) + { + View = ATB_wap_new_view_invisible(parameter->object_id); + ATB_wap_change_view(parameter->object_id); + } + + ATB_wap_profile_send(View); + + /* Set default channel */ + ATB_wap_config_int(View, configDEFAULT_CHANNEL, View->channel); + + /* Setup stack mode */ + httpClientProfile = View->Profile; + if (httpClientProfile->Port1 == 9201) + { + ATB_wap_conn_config_int(View, configCONNECTION_TYPE, CONNECTION_TYPE_WSP_CO); + TRACE_EVENT("CONNECTION_TYPE_WSP_CO at the location 2 called"); + } + else + { + ATB_wap_conn_config_int(View, configCONNECTION_TYPE, CONNECTION_TYPE_TCP); + TRACE_EVENT("CONNECTION_TYPE_TCP at the location 2 called"); + } + + + /* Set connection port */ + ATB_wap_conn_config_int(View, configCLIENT_PORT, WAP_DOWNLOAD_LOCAL_PORT); + + /* Set online status (FALSE = not always online) */ + //ATB_wap_conn_config_int(View, configONLINE, FALSE); + + parameter2.success = TRUE; + + M_MMI_WAP_CONFIG_CNF(¶meter2); + + return; +} + + +/******************************************************************************* + + $Function: M_WAP_MMI_CONTENT_IND + + $Description: SPR#2086 - SH - SAR + + $Returns: None + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_WAP_MMI_CONTENT_IND(T_WAP_MMI_CONTENT_IND *parameter) +{ + T_MMI_WAP_CONTENT_CNF parameter2; + +#ifdef TRACE_WAP_WAPMMI + TRACE_EVENT("W_WAP_MMI_CONTENT_IND"); + TRACE_EVENT_P2("URL ID: %d, data length = %d", parameter->urlID, parameter->data_length); + TRACE_EVENT_P2("moreData: %d, totalSize = %d", parameter->moreData, parameter->totalSize); +#endif + + ATB_wap_content( + parameter->urlID, + parameter->Data, + parameter->data_length, + parameter->moreData | parameter->moreSegments, + parameter->ContentType, + parameter->contentType_length, + parameter->totalSize, + parameter->errorNo + ); + + if (parameter->moreSegments==FALSE && parameter->moreData==TRUE) + { + TRACE_EVENT("Fetching more data"); + parameter2.urlID = parameter->urlID; + M_MMI_WAP_CONTENT_CNF(¶meter2); + } + + return; +} + +/******************************************************************************* + + $Function: M_WAP_MMI_CONTENT_POST_CNF + + $Description: SPR#2086 - SH - SAR + + $Returns: None + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_WAP_MMI_CONTENT_POST_CNF(T_WAP_MMI_CONTENT_POST_CNF *parameter) +{ + extern void mms_proc_content_post_cnf(UINT8 urlID); + +#ifdef TRACE_WAP_WAPMMI + TRACE_EVENT("M_WAP_MMI_CONTENT_POST_CNF"); + TRACE_EVENT_P1("urlID = %d", parameter->urlID); +#endif + + //TISHMMS Project + ////xmzhou_trace_string_value("M_WAP_MMI_CONTENT_POST_CNF called parameter->urlID = ", parameter->urlID); + mms_proc_content_post_cnf(parameter->urlID); + return; +} + +/******************************************************************************* + + $Function: copy_IP_address + + $Description: Copies IP address from one string to another. Ensures that the + destination string is in the form: AAA.BBB.CCC.DDD + + $Returns: None + + $Arguments: dst: Pointer to the destination string. On returning from this + function, this will contain the form: AAA.BBB.CCC.DDD + src: Pointer to the source string. This is a string representing + an IP address, where each field is seperated by a Dot (.) + + xreddymn Jan-24-2005 MMI-SPR-28135: WAP_OTA + +*******************************************************************************/ + +void copy_IP_address(char *dst, char *src, S32 length) +{ + S32 i=0, j, k=0, count, number; + U8 number_string[8]; + for(count=0;count<4;count++) + { + j=0; + while((src[i]!='\0') && (src[i]!='.') && (j<4)) + { + number_string[j]=src[i]; + i++; + j++; + } + if(src[i]=='.') i++; + number_string[j]='\0'; + number=atoi((char*)number_string); + if(count==3) sprintf((char*)&dst[k],"%03d",number); + else sprintf((char*)&dst[k],"%03d.",number); + k+=4; + } +} + +void M_WAP_MMI_BROWSER_SET_CSD_IND(T_WAP_MMI_BROWSER_SET_CSD_IND *parameter) +{ + T_WAP_PROFILE new_profile; + S32 length; +#ifdef TRACE_WAP_WAPMMI + TRACE_EVENT("M_WAP_MMI_BROWSER_SET_CSD_IND"); + TRACE_EVENT_P1("Profile name = %s", parameter->OTA_profileName); + TRACE_EVENT_P1("Homepage URL = %s", parameter->OTA_homepageUrl); + TRACE_EVENT_P1("Dialstring = %s", parameter->OTA_CSD_dialstring); + TRACE_EVENT_P1("Proxy = %s", parameter->OTA_proxy); + TRACE_EVENT_P1("Port = %d", parameter->OTA_port); +#endif + // xreddymn Jan-24-2005 MMI-SPR-28135: WAP_OTA settings saved in WAP profiles + new_profile.AccessType=WAP_CS_DATA; + if(parameter->OTA_profileName_length==0) + { + ATB_convert_String((char*)"No name", MFW_ASCII, strlen("No name"), + (char*)new_profile.Title, MFW_DCS_UCS2, CARD_TITLE_MAX_LEN, TRUE); + } + else + { + ATB_convert_String((char*)parameter->OTA_profileName, MFW_ASCII, parameter->OTA_profileName_length, + (char*)new_profile.Title, MFW_DCS_UCS2, CARD_TITLE_MAX_LEN, TRUE); + } + length=parameter->OTA_homepageUrl_length; + if(length>(URL_MAX_LEN+1)) length=URL_MAX_LEN+1; + strncpy(new_profile.Homepage,parameter->OTA_homepageUrl,length); + new_profile.ConnectionType=WAP_CONTINUOUS; + if((strncmp(parameter->OTA_CSD_callType,"ISDN",parameter->OTA_CSD_callType_length)==0) || (strncmp(parameter->OTA_CSD_callType,"isdn",parameter->OTA_CSD_callType_length)==0)) + { + new_profile.ConnectionSpeed=WAP_ISDN9600; + } + else + { + new_profile.ConnectionSpeed=WAP_ANALOGUE; + } + new_profile.ResponseTimer=60; + new_profile.Port1=parameter->OTA_port; + new_profile.Port2=parameter->OTA_port; + length=parameter->OTA_proxy_length; + if(length>(IPADDRESS_MAX_LEN+1)) length=IPADDRESS_MAX_LEN+1; + copy_IP_address(new_profile.IPAddress1,parameter->OTA_proxy,length); + copy_IP_address(new_profile.IPAddress2,parameter->OTA_proxy,length); + length=parameter->OTA_CSD_dialstring_length; + if(length>(NUMBER_MAX_LEN+1)) length=NUMBER_MAX_LEN+1; + strncpy(new_profile.DialupNumber,parameter->OTA_CSD_dialstring,length); + length=parameter->OTA_PPP_username_length; + if(length==0) + { + strcpy(new_profile.Username,""); + } + else + { + if(length>(USERNAME_MAX_LEN+1)) length=USERNAME_MAX_LEN+1; + strncpy(new_profile.Username,parameter->OTA_PPP_username,length); + } + length=parameter->OTA_PPP_password_length; + if(length==0) + { + strcpy(new_profile.Password,""); + } + else + { + if(length>(PASSWORD_MAX_LEN+1)) length=PASSWORD_MAX_LEN+1; + strncpy(new_profile.Password,parameter->OTA_PPP_password,length); + } + new_profile.Security=FALSE; + strcpy(new_profile.NameServer1,""); + strcpy(new_profile.NameServer2,""); + new_profile.PPGAuthentication=FALSE; + new_profile.WirelessProfiledHTTP=TRUE; + ATB_wap_profile_add(&new_profile); + return; +} + +void M_WAP_MMI_BROWSER_SET_GPRS_IND(T_WAP_MMI_BROWSER_SET_GPRS_IND *parameter) +{ + T_WAP_PROFILE new_profile; + S32 length; +#ifdef TRACE_WAP_WAPMMI + TRACE_EVENT("M_WAP_MMI_BROWSER_SET_GPRS_IND"); + TRACE_EVENT_P1("Profile name = %s", parameter->OTA_profileName); + TRACE_EVENT_P1("Homepage URL = %s", parameter->OTA_homepageUrl); + TRACE_EVENT_P1("APN = %s", parameter->OTA_GPRS_APN); + TRACE_EVENT_P1("Proxy = %s", parameter->OTA_proxy); + TRACE_EVENT_P1("Port = %d", parameter->OTA_port); +#endif + // xreddymn Jan-24-2005 MMI-SPR-28135: WAP_OTA settings saved in WAP profiles + new_profile.AccessType=WAP_GPRS_DATA; + if(parameter->OTA_profileName_length==0) + { + ATB_convert_String((char*)"No name", MFW_ASCII, strlen("No name"), + (char*)new_profile.Title, MFW_DCS_UCS2, CARD_TITLE_MAX_LEN, TRUE); + } + else + { + ATB_convert_String((char*)parameter->OTA_profileName, MFW_ASCII, parameter->OTA_profileName_length, + (char*)new_profile.Title, MFW_DCS_UCS2, CARD_TITLE_MAX_LEN, TRUE); + } + length=parameter->OTA_homepageUrl_length; + if(length>(URL_MAX_LEN+1)) length=URL_MAX_LEN+1; + strncpy(new_profile.Homepage,parameter->OTA_homepageUrl,length); + new_profile.ConnectionType=WAP_CONTINUOUS; + new_profile.ResponseTimer=60; + new_profile.Port1=parameter->OTA_port; + new_profile.Port2=parameter->OTA_port; + length=parameter->OTA_proxy_length; + if(length>(IPADDRESS_MAX_LEN+1)) length=IPADDRESS_MAX_LEN+1; + copy_IP_address(new_profile.IPAddress1,parameter->OTA_proxy,length); + copy_IP_address(new_profile.IPAddress2,parameter->OTA_proxy,length); + length=parameter->OTA_GPRS_APN_length; + if(length>(URL_MAX_LEN+1)) length=URL_MAX_LEN+1; + strncpy(new_profile.APN,parameter->OTA_GPRS_APN,length); + length=parameter->OTA_proxy_username_length; + if(length==0) + { + strcpy(new_profile.Username,""); + } + else + { + if(length>(USERNAME_MAX_LEN+1)) length=USERNAME_MAX_LEN+1; + strncpy(new_profile.Username,parameter->OTA_proxy_username,length); + } + length=parameter->OTA_proxy_password_length; + if(length==0) + { + strcpy(new_profile.Password,""); + } + else + { + if(length>(PASSWORD_MAX_LEN+1)) length=PASSWORD_MAX_LEN+1; + strncpy(new_profile.Password,parameter->OTA_proxy_password,length); + } + new_profile.Security=FALSE; + strcpy(new_profile.NameServer1,""); + strcpy(new_profile.NameServer2,""); + new_profile.PPGAuthentication=FALSE; + new_profile.WirelessProfiledHTTP=TRUE; + ATB_wap_profile_add(&new_profile); + return; +} + + +void M_WAP_MMI_MMS_SET_CSD_IND(T_WAP_MMI_MMS_SET_CSD_IND *parameter) +{ + +#ifdef TRACE_WAP_WAPMMI + TRACE_EVENT("M_WAP_MMI_MMS_SET_CSD_IND"); + TRACE_EVENT_P1("Profile name = %s", parameter->OTA_profileName); + TRACE_EVENT_P1("MMSC URL = %s", parameter->OTA_mmsUrl); + TRACE_EVENT_P1("Dialstring = %s", parameter->OTA_CSD_dialstring); + TRACE_EVENT_P1("Proxy = %s", parameter->OTA_proxy); + TRACE_EVENT_P1("Port = %d", parameter->OTA_port); +#endif + + return; +} + +void M_WAP_MMI_MMS_SET_GPRS_IND(T_WAP_MMI_MMS_SET_GPRS_IND *parameter) +{ + +#ifdef TRACE_WAP_WAPMMI + TRACE_EVENT("M_WAP_MMI_MMS_SET_GPRS_IND"); + TRACE_EVENT_P1("Profile name = %s", parameter->OTA_profileName); + TRACE_EVENT_P1("MMSC URL = %s", parameter->OTA_mmsUrl); + TRACE_EVENT_P1("APN = %s", parameter->OTA_GPRS_APN); + TRACE_EVENT_P1("Proxy = %s", parameter->OTA_proxy); + TRACE_EVENT_P1("Port = %d", parameter->OTA_port); +#endif + + return; +} + +void M_WAP_MMI_BROWSER_BOOKMARKS_IND(T_WAP_MMI_BROWSER_BOOKMARKS_IND *parameter) +{ + +#ifdef TRACE_WAP_WAPMMI + TRACE_EVENT("M_WAP_MMI_BROWSER_BOOKMARKS_IND"); + TRACE_EVENT_P1("Number of bookmarks = %d", parameter->OTA_numberOfBookmarks); + TRACE_EVENT_P1("First bookmark name = %s", parameter->OTA_bookmarkName_1); + TRACE_EVENT_P1("First bookmark url = %s", parameter->OTA_bookmarkUrl_1); +#endif + + return; +} +void M_WAP_MMI_SYNCML_GENERAL_SET_IND(T_WAP_MMI_SYNCML_GENERAL_SET_IND *parameter) +{ + +#ifdef TRACE_WAP_WAPMMI + TRACE_EVENT("M_WAP_MMI_SYNCML_GENERAL_SET_IND"); + TRACE_EVENT_P1("Host address = %s", parameter->OTASYNC_HostAddr); + TRACE_EVENT_P1("Database URI = %s", parameter->OTASYNC_URI); + TRACE_EVENT_P1("Connection port = %d", parameter->OTASYNC_Port); +#endif + + return; +} + +void M_WAP_MMI_SYNCML_CONTENT_SET_IND(T_WAP_MMI_SYNCML_CONTENT_SET_IND *parameter) +{ + +#ifdef TRACE_WAP_WAPMMI + TRACE_EVENT("M_WAP_MMI_SYNCML_CONTENT_SET_IND"); + TRACE_EVENT_P1("Content type = %s", parameter->OTASYNC_CTType); + TRACE_EVENT_P1("Content version = %s", parameter->OTASYNC_CTVer); +#endif + + return; +} +/******************************************************************************* + + $Function: M_WAP_MMI_PUSH_NEW_SI_IND + + $Description: New SI is received + SPR#2086 - Added + + $Returns: None + + $Arguments: parameter - Data block + +*******************************************************************************/ + +void M_WAP_MMI_PUSH_NEW_SI_IND(T_WAP_MMI_PUSH_NEW_SI_IND *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_EVENT("M_WAP_MMI_PUSH_NEW_SI_IND"); +#endif + + ATB_wap_push_SI_new( + parameter->id, + parameter->created, + parameter->expires, + parameter->Message, + parameter->message_length, + parameter->expired, + parameter->Url, + parameter->url_length, + parameter->priority, + parameter->InitURL, + parameter->initURL_length, + parameter->applicationType, + parameter->newChannelId ); + + return; +} + +/******************************************************************************* + + $Function: M_WAP_MMI_PUSH_SI_INFO_IND + + $Description: SI info is received + SPR#2086 - Added + + $Returns: None + + $Arguments: parameter - Data block + +*******************************************************************************/ + +void M_WAP_MMI_PUSH_SI_INFO_IND(T_WAP_MMI_PUSH_SI_INFO_IND *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_EVENT("M_WAP_MMI_PUSH_SI_INFO_IND"); +#endif + + ATB_wap_push_SI_info( + parameter->id, + parameter->status, + parameter->created, + parameter->expires, + parameter->Message, + parameter->message_length, + parameter->expired, + parameter->Url, + parameter->url_length, + parameter->priority, + parameter->InitURL, + parameter->initURL_length); + + return; +} + +/******************************************************************************* + + $Function: M_WAP_MMI_PUSH_NEW_SL_IND + + $Description: New SL is received + SPR#2086 - Added + + $Returns: None + + $Arguments: parameter - Data block + +*******************************************************************************/ + +void M_WAP_MMI_PUSH_NEW_SL_IND(T_WAP_MMI_PUSH_NEW_SL_IND *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_EVENT("M_WAP_MMI_PUSH_NEW_SL_IND"); +#endif + + // xreddymn Mar-22-2005 MMI-SPR-29767: Modified handling of SL messages + // xreddymn Mar-11-2005 MMI-SPR-29510: Enabled support for SL messages + ATB_wap_push_SL_new( + parameter->id, + parameter->Url, + parameter->url_length, + parameter->priority, + parameter->InitURL, + parameter->initURL_length, + parameter->applicationType, + parameter->newChannelId ); + + return; +} + +/******************************************************************************* + + $Function: M_WAP_MMI_PUSH_SL_INFO_IND + + $Description: SL info is received + SPR#2086 - Added + + $Returns: None + + $Arguments: parameter - Data block + +*******************************************************************************/ + +void M_WAP_MMI_PUSH_SL_INFO_IND(T_WAP_MMI_PUSH_SL_INFO_IND *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_EVENT("M_WAP_MMI_PUSH_SL_INFO_IND"); +#endif + + + return; +} + +/******************************************************************************* + + $Function: M_WAP_MMI_PUSH_MESSAGE_CHANGE_IND + + $Description: A message status has changed + SPR#2086 - Added + + $Returns: None + + $Arguments: parameter - Data block + +*******************************************************************************/ + +void M_WAP_MMI_PUSH_MESSAGE_CHANGE_IND(T_WAP_MMI_PUSH_MESSAGE_CHANGE_IND *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_EVENT("M_WAP_MMI_PUSH_MESSAGE_CHANGE_IND"); +#endif + + return; +} + + +/******************************************************************************* + + $Function: M_WAP_MMI_PUSH_REPOSITORY_FULL_IND + + $Description: The push repository is full + SPR#2086 - Added + + $Returns: None + + $Arguments: parameter - Data block + +*******************************************************************************/ + +void M_WAP_MMI_PUSH_REPOSITORY_FULL_IND(T_WAP_MMI_PUSH_REPOSITORY_FULL_IND *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_EVENT("M_WAP_MMI_PUSH_REPOSITORY_FULL_IND"); +#endif + + return; +} + + +/******************************************************************************* + + $Function: M_WAP_MMI_PUSH_CONNECTION_REQ + + $Description: A request to set up the push connection + SPR#2086 - Added + + $Returns: None + + $Arguments: parameter - Data block + +*******************************************************************************/ + +void M_WAP_MMI_PUSH_CONNECTION_REQ(T_WAP_MMI_PUSH_CONNECTION_REQ *parameter) +{ + T_MMI_WAP_PUSH_CONNECTION_CNF parameter2; + T_WAP_VIEW *View; + ULONG IPAddressLong; + +#ifdef TRACE_WAP_WAPMMI + TRACE_EVENT("M_WAP_MMI_PUSH_CONNECTION_REQ"); +#endif + + /* Check if any view exists, create a new invisible view if not */ + + if (!(View = ATB_wap_get_view(PUSH_USER_AGENT))) + { + View = ATB_wap_new_view_invisible(PUSH_USER_AGENT); + } + + /* Setup stack mode */ + ATB_wap_conn_config_int(View, configACCESS_TYPE, parameter->stackMode); + + /* Setup access type- CSD by default */ + if (parameter->accessType!=BEARER_ANY) + { + ATB_wap_conn_config_int(View, configACCESS_TYPE, parameter->accessType); + } + else + { + ATB_wap_conn_config_int(View, configACCESS_TYPE, BEARER_GSM_CSD); + } + + /* Setup gateway address */ + ATB_conv_str_to_IP(parameter->Address, parameter->address_length, &IPAddressLong); + ATB_wap_conn_config_str(View, configPROXY_ADDRESS, (CHAR *)&IPAddressLong, sizeof(ULONG)); + + /* Set connection port */ + ATB_wap_conn_config_int(View, configCLIENT_PORT, WAP_LOCAL_PORT); + + /* Set online status (FALSE = not always online) */ + //ATB_wap_conn_config_int(View, configONLINE, FALSE); + + /* Setup timeout */ + ATB_wap_conn_config_int(View, configTIMEOUT, WAP_DEFAULT_RESPONSE_TIME); + + /* Set connection port 1 */ + ATB_wap_conn_config_int(View, WAP_setPort1, WAP_DEFAULT_PORT); + + /* Set connection port 2 */ + ATB_wap_conn_config_int(View, WAP_setPort2, WAP_DEFAULT_PORT); + + ATB_wap_config_int(View, configPPG_AUTHENTICATION_REQUIRED, 0); + + parameter2.siaId = parameter->siaId; + parameter2.channelId = WAP_CHANNEL_ID; + parameter2.success = TRUE; + + M_MMI_WAP_PUSH_CONNECTION_CNF(¶meter2); + + return; +} + + +/******************************************************************************* + + $Function: M_WAP_MMI_PUSH_UNLOADED_MSG_CNF + + $Description: Indicates if there are unloaded messages in the Push inbox + SPR#2086 - Added + + $Returns: None + + $Arguments: parameter - Data block + +*******************************************************************************/ + +void M_WAP_MMI_PUSH_UNLOADED_MSG_CNF(T_WAP_MMI_PUSH_UNLOADED_MSG_CNF *parameter) +{ + TRACE_FUNCTION("M_WAP_MMI_PUSH_UNLOADED_MSG_CNF"); + + return; +} + + +/******************************************************************************* + + $Function: M_WAP_MMI_PUSH_SMS_SEND_IND + + $Description: Request for MMI to send an SMS + SPR#2086 - Added + + $Returns: None + + $Arguments: parameter - Data block + +*******************************************************************************/ + +void M_WAP_MMI_PUSH_SMS_SEND_IND(T_WAP_MMI_PUSH_SMS_SEND_IND *parameter) +{ +#ifdef TRACE_WAP_WAPMMI + TRACE_EVENT("M_WAP_MMI_PUSH_SMS_SEND_IND"); + TRACE_EVENT_P1("destination_length: %d", parameter->destination_length); + TRACE_EVENT_P1("data_length: %d", parameter->data_length); +#endif + + ATB_wap_push_SMS_send( + parameter->Smsc, + parameter->smsc_length, + parameter->Destination, + parameter->destination_length, + parameter->Data, + parameter->data_length); + + return; +} + +// xreddymn Mar-25-2005 MMI-SPR-26144: send data indication +// this is used to update progress when sending MMS +/******************************************************************************* + + $Function: M_WAP_MMI_NET_SEND_IND + + $Description: NET SEND indication + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_WAP_MMI_NET_SEND_IND(T_WAP_MMI_NET_SEND_IND *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_FUNCTION("M_WAP_MMI_NET_SEND_IND"); +#endif +#ifdef FF_GPF_TCPIP + AUI_wap_net_send_ind(); +#endif +} + +// xreddymn MMI-SPR-30834 May-14-2005 +/******************************************************************************* + + $Function: M_MMI_WAP_FREE_MEM_IND + + $Description: Called by MMI to free data in WAP memory + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_MMI_WAP_FREE_MEM_IND(T_MMI_WAP_MEM_FREE_IND *parameter) +{ +#ifdef TRACE_ATBWAPACI + TRACE_EVENT("M_MMI_WAP_FREE_MEM_IND"); +#endif + + mmi_coder(WAP_MEM_FREE_IND_ID, (void *)parameter); + + return; +} + +// xreddymn Jun-21-2005 MMI-SPR-30291 +/******************************************************************************* + + $Function: M_MMI_WAP_SEND_PROFILE_IND + + $Description: Sends profile data from MMI to WAP adapter + + $Returns: None. + + $Arguments: parameter - data block + +*******************************************************************************/ + +void M_MMI_WAP_SEND_PROFILE_IND(T_MMI_WAP_SEND_PROFILE_IND *parameter) +{ +#ifdef TRACE_WAP_WAPMMI + TRACE_EVENT("M_MMI_WAP_SEND_PROFILE_IND"); +#endif + + mmi_coder(WAP_SEND_PROFILE_IND_ID, (void *)parameter); + + return; +} + +#endif +/* #ifdef FF_GPF_TCPIP */