⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 atbwapaci.c

📁 GSM手机设计软件代码
💻 C
📖 第 1 页 / 共 3 页
字号:


 $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;
}



/*******************************************************************************


 $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;
}


/*******************************************************************************


 $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;

	/* 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;

	/* Check if we're shutting down */

	if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN))
	{
		TRACE_EVENT("*** SHUTTING DOWN ***");
		return;
	}
	
	AUI_wap_input_dialog_open(parameter);

	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);
	ATB_trace_ushort_string(parameter->Message, parameter->message_length);
	ATB_trace_string(parameter->Input, parameter->input_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;
	}
	
	AUI_wap_password_dialog_open(parameter);

	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;

	/* Check if we're shutting down */

	if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN))
	{
		TRACE_EVENT("*** SHUTTING DOWN ***");
		return;
	}
	
	AUI_wap_confirm_dialog_open(parameter);

	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;

	/* Check if we're shutting down */

	if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN))
	{
		TRACE_EVENT("*** SHUTTING DOWN ***");
		return;
	}
	
	AUI_wap_info_dialog_open(parameter);

	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;
	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;

#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;
	}

	/* Check if we're shutting down */

	if (ATB_wap_status_get(View, ATB_WAP_SHUTTING_DOWN))
	{
		TRACE_EVENT("*** SHUTTING DOWN ***");
		return;
	}
	
	/* 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);	
	}

	/* 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 */

	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);
	}
	
	/* 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 */

	if (historyPointer != 0)
	{
		View->CanGoBack = TRUE;
	}
	else
	{
		View->CanGoBack = FALSE;
	}
	
	View->CustSoftKeys = FALSE;		/* Use default softkeys */

	/* 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;
	
	/* 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;

	/* 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)))
		return;

	/* 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_TEXT);
 
	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));

	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));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -