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

📄 wgui_ems_categories.c

📁 The font library converting tool MCT mainly introduces the process of the font formats to give us a
💻 C
📖 第 1 页 / 共 5 页
字号:
			textBuffer[OffsetToText+0]=(U8)(c>>8);
#else
			textBuffer[OffsetToText]=(U8)(c&0xff);
			textBuffer[OffsetToText+1]=(U8)(c>>8);
#endif
		}
//		if(ForwardCurrentPosition(data,1)!=1) break;
		data->CurrentPosition.OffsetToText += 2;

	}
	}
	else
	{	while((OffsetToText=data->CurrentPosition.OffsetToText)<textBufferLength)
		{
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
			c=(U16)(textBuffer[OffsetToText+1]|(textBuffer[OffsetToText]<<8));
#else
			c=(U16)(textBuffer[OffsetToText]|(textBuffer[OffsetToText+1]<<8));
#endif
			// if(c==EMS_EURO_CHARACTER_UCS2) c=EMS_EURO_CHARACTER;
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
			textBuffer[OffsetToText+1]=(U8)(c&0xff);
			textBuffer[OffsetToText+0]=(U8)(c>>8);
#else
			textBuffer[OffsetToText]=(U8)(c&0xff);
			textBuffer[OffsetToText+1]=(U8)(c>>8);
#endif
//			if(ForwardCurrentPosition(data,1)!=1) break;
			data->CurrentPosition.OffsetToText += 2;

		}
	}
	ResetCurrentPosition(data);
}

/*	Call before EMSPack	*/
void EMS_ConvertAsciiEncodingToGSM7BitDefaultWithExtended(EMSData *data)
{	U16 c,OffsetToText;
	U8* textBuffer=data->textBuffer;
	U16 textBufferLength=data->textLength;
	if(textBuffer==NULL) return;
	ResetCurrentPosition(data);
	if(data->dcs==SMSAL_DEFAULT_DCS)
	{
	while((OffsetToText=data->CurrentPosition.OffsetToText)<textBufferLength)
	{
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
		c=(U16)(textBuffer[OffsetToText+1]|(textBuffer[OffsetToText]<<8));
#else
		c=(U16)(textBuffer[OffsetToText]|(textBuffer[OffsetToText+1]<<8));
#endif
		if((c&0xff00)==0)
		{
			if(c==EMS_ESCAPE_CHARACTER)
			{
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
				textBuffer[OffsetToText+1]=(U8)(c&0xff);
				textBuffer[OffsetToText+0]=(U8)(c>>8);
#else
				textBuffer[OffsetToText]=(U8)(c&0xff);
				textBuffer[OffsetToText+1]=(U8)(c>>8);
#endif
				//if(ForwardCurrentPosition(data,1)!=1) break;
				data->CurrentPosition.OffsetToText += 2;
				if((OffsetToText=data->CurrentPosition.OffsetToText)>=textBufferLength) break;
				OffsetToText=data->CurrentPosition.OffsetToText;

#if(EMS_BYTE_ORDER_BIG_ENDIAN)
				c=(U16)(textBuffer[OffsetToText+1]|(textBuffer[OffsetToText]<<8));
#else
				c=(U16)(textBuffer[OffsetToText]|(textBuffer[OffsetToText+1]<<8));
#endif
				c=ExtendedAsciiToDefaultArray[c];
			}
			else
			{
				c=AsciiToDefaultArray[c];
			}
		}
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
		textBuffer[OffsetToText+1]=(U8)(c&0xff);
		textBuffer[OffsetToText+0]=(U8)(c>>8);
#else
		textBuffer[OffsetToText]=(U8)(c&0xff);
		textBuffer[OffsetToText+1]=(U8)(c>>8);
#endif
//		if(ForwardCurrentPosition(data,1)!=1) break;
		data->CurrentPosition.OffsetToText += 2;
	}
	}
	else
	{	while((OffsetToText=data->CurrentPosition.OffsetToText)<textBufferLength)
		{
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
			c=(U16)(textBuffer[OffsetToText+1]|(textBuffer[OffsetToText]<<8));
#else
			c=(U16)(textBuffer[OffsetToText]|(textBuffer[OffsetToText+1]<<8));
#endif
			// if(c==EMS_EURO_CHARACTER) c=EMS_EURO_CHARACTER_UCS2;
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
			textBuffer[OffsetToText+1]=(U8)(c&0xff);
			textBuffer[OffsetToText+0]=(U8)(c>>8);
#else
			textBuffer[OffsetToText]=(U8)(c&0xff);
			textBuffer[OffsetToText+1]=(U8)(c>>8);
#endif
//			if(ForwardCurrentPosition(data,1)!=1) break;
			data->CurrentPosition.OffsetToText += 2;
		}
	}
	ResetCurrentPosition(data);
}

#endif	/* defined(__MMI_SMART_MESSAGE_MO__) && !defined(__MMI_MESSAGES_EMS__) */
/* End : JP */

void EMS_ConvertGSM7BitDefaultEncodingToAsciiWithoutEMSlib(EMSData *data)
{	U16 c,OffsetToText;
	U8*	textBuffer=data->textBuffer;
	U16 textBufferLength=data->textLength;
	if(textBuffer==NULL) return;
       data->CurrentPosition.OffsetToText = 0;
	if(data->dcs==SMSAL_DEFAULT_DCS)
	{
	while((OffsetToText=data->CurrentPosition.OffsetToText)<textBufferLength)
	{
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
		c=(U16)(textBuffer[OffsetToText+1]|(textBuffer[OffsetToText]<<8));
#else
		c=(U16)(textBuffer[OffsetToText]|(textBuffer[OffsetToText+1]<<8));
#endif
		if((c&0xff00)!=0)
		{
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
			textBuffer[OffsetToText+1]=(U8)(c&0xff);
			textBuffer[OffsetToText+0]=(U8)(c>>8);
#else
			textBuffer[OffsetToText]=(U8)(c&0xff);
			textBuffer[OffsetToText+1]=(U8)(c>>8);
#endif
		}
		else if(c==EMS_ESCAPE_CHARACTER)
		{

			U16 tempOffsetToText = data->CurrentPosition.OffsetToText;

			while((tempOffsetToText+2) < textBufferLength)
			{
				textBuffer[tempOffsetToText] = textBuffer[tempOffsetToText+2];
				textBuffer[tempOffsetToText+1] = textBuffer[tempOffsetToText+3];				
				tempOffsetToText = tempOffsetToText + 2;
			}
			textBuffer[tempOffsetToText] = 0;
			textBuffer[tempOffsetToText+1] = 0;
			textBufferLength = textBufferLength -2;
			data->textLength = data->textLength -2;
			
		
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
			//textBuffer[OffsetToText+1]=(U8)(c&0xff);
			//textBuffer[OffsetToText+0]=(U8)(c>>8);

			if((data->CurrentPosition.OffsetToText+2)>textBufferLength) break;
			OffsetToText=data->CurrentPosition.OffsetToText;

			c=(U16)(textBuffer[OffsetToText+1]|(textBuffer[OffsetToText]<<8));
			c=DefaultToExtendedAsciiArray[c];

			textBuffer[OffsetToText+1]=(U8)(c&0xff);
			textBuffer[OffsetToText+0]=(U8)(c>>8);
#else
			//textBuffer[OffsetToText]=(U8)(c&0xff);
			//textBuffer[OffsetToText+1]=(U8)(c>>8);

			if((data->CurrentPosition.OffsetToText+2)>textBufferLength) break;
			OffsetToText=data->CurrentPosition.OffsetToText;

			c=(U16)(textBuffer[OffsetToText]|(textBuffer[OffsetToText+1]<<8));
			c=DefaultToExtendedAsciiArray[c];

			textBuffer[OffsetToText]=(U8)(c&0xff);
			textBuffer[OffsetToText+1]=(U8)(c>>8);
#endif
		}
		else
		{	c=DefaultToAsciiArray[c];
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
			textBuffer[OffsetToText+1]=(U8)(c&0xff);
			textBuffer[OffsetToText+0]=(U8)(c>>8);
#else
			textBuffer[OffsetToText]=(U8)(c&0xff);
			textBuffer[OffsetToText+1]=(U8)(c>>8);
#endif
		}
		data->CurrentPosition.OffsetToText += 2;
	}
	}
	else
	{	while((OffsetToText=data->CurrentPosition.OffsetToText)<textBufferLength)
		{
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
			c=(U16)(textBuffer[OffsetToText+1]|(textBuffer[OffsetToText]<<8));
#else
			c=(U16)(textBuffer[OffsetToText]|(textBuffer[OffsetToText+1]<<8));
#endif
			// if(c==EMS_EURO_CHARACTER_UCS2) c=EMS_EURO_CHARACTER;
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
			textBuffer[OffsetToText+1]=(U8)(c&0xff);
			textBuffer[OffsetToText+0]=(U8)(c>>8);
#else
			textBuffer[OffsetToText]=(U8)(c&0xff);
			textBuffer[OffsetToText+1]=(U8)(c>>8);
#endif
			data->CurrentPosition.OffsetToText += 2;
		}
	}
       data->CurrentPosition.OffsetToText = 0;
}


#else

/*	Call after EMSUnpack	*/
void EMS_ConvertGSM7BitDefaultEncodingToAscii(EMSData *data)
{	U16 c,OffsetToText;
	U8*	textBuffer=data->textBuffer;
	U16 textBufferLength=data->textLength;
	if(textBuffer==NULL) return;
	ResetCurrentPosition(data);
	if(data->dcs==SMSAL_DEFAULT_DCS)
	{
		while((OffsetToText=data->CurrentPosition.OffsetToText)<textBufferLength)
		{
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
			c=(U16)(textBuffer[OffsetToText+1]|(textBuffer[OffsetToText]<<8));
#else
			c=(U16)(textBuffer[OffsetToText]|(textBuffer[OffsetToText+1]<<8));
#endif
			if(c==EMS_ESCAPE_CHARACTER)
			{	c=EMS_SPACE_CHARACTER;
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
				textBuffer[OffsetToText+1]=(U8)(c&0xff);
				textBuffer[OffsetToText+0]=(U8)(c>>8);
#else
				textBuffer[OffsetToText]=(U8)(c&0xff);
				textBuffer[OffsetToText+1]=(U8)(c>>8);
#endif
			}
			else
			{	c=DefaultToAsciiArray[c];
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
				textBuffer[OffsetToText+1]=(U8)(c&0xff);
				textBuffer[OffsetToText+0]=(U8)(c>>8);
#else
				textBuffer[OffsetToText]=(U8)(c&0xff);
				textBuffer[OffsetToText+1]=(U8)(c>>8);
#endif
			}
			if(ForwardCurrentPosition(data,1)!=1) break;
		}
	}
	else
	{	while((OffsetToText=data->CurrentPosition.OffsetToText)<textBufferLength)
		{
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
			c=(U16)(textBuffer[OffsetToText+1]|(textBuffer[OffsetToText]<<8));
#else
			c=(U16)(textBuffer[OffsetToText]|(textBuffer[OffsetToText+1]<<8));
#endif
			// if(c==EMS_EURO_CHARACTER_UCS2) c=EMS_EURO_CHARACTER;
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
			textBuffer[OffsetToText+1]=(U8)(c&0xff);
			textBuffer[OffsetToText+0]=(U8)(c>>8);
#else
			textBuffer[OffsetToText]=(U8)(c&0xff);
			textBuffer[OffsetToText+1]=(U8)(c>>8);
#endif
			if(ForwardCurrentPosition(data,1)!=1) break;
		}
	}
	ResetCurrentPosition(data);
}

/*	Call before EMSPack	*/
void EMS_ConvertAsciiEncodingToGSM7BitDefault(EMSData *data)
{	U16 c,OffsetToText;
	U8* textBuffer=data->textBuffer;
	U16 textBufferLength=data->textLength;
	if(textBuffer==NULL) return;
	ResetCurrentPosition(data);
	if(data->dcs==SMSAL_DEFAULT_DCS)
	{	while((OffsetToText=data->CurrentPosition.OffsetToText)<textBufferLength)
		{
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
			c=(U16)(textBuffer[OffsetToText+1]|(textBuffer[OffsetToText]<<8));
#else
			c=(U16)(textBuffer[OffsetToText]|(textBuffer[OffsetToText+1]<<8));
#endif
			c=AsciiToDefaultArray[c];
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
			textBuffer[OffsetToText+1]=(U8)(c&0xff);
			textBuffer[OffsetToText+0]=(U8)(c>>8);
#else
			textBuffer[OffsetToText]=(U8)(c&0xff);
			textBuffer[OffsetToText+1]=(U8)(c>>8);
#endif
			if(ForwardCurrentPosition(data,1)!=1) break;
		}
	}
	else
	{	while((OffsetToText=data->CurrentPosition.OffsetToText)<textBufferLength)
		{
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
			c=(U16)(textBuffer[OffsetToText+1]|(textBuffer[OffsetToText]<<8));
#else
			c=(U16)(textBuffer[OffsetToText]|(textBuffer[OffsetToText+1]<<8));
#endif
			// if(c==EMS_EURO_CHARACTER) c=EMS_EURO_CHARACTER_UCS2;
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
			textBuffer[OffsetToText+1]=(U8)(c&0xff);
			textBuffer[OffsetToText+0]=(U8)(c>>8);
#else
			textBuffer[OffsetToText]=(U8)(c&0xff);
			textBuffer[OffsetToText+1]=(U8)(c>>8);
#endif
			if(ForwardCurrentPosition(data,1)!=1) break;
		}
	}
	ResetCurrentPosition(data);
}

/*	Call after EMSUnpack	*/
void EMS_ConvertGSM7BitDefaultEncodingToAsciiWithExtended(EMSData *data)
{	U16 c,OffsetToText;
	U8*	textBuffer=data->textBuffer;
	U16 textBufferLength=data->textLength;
	EMSObject* object;
	if(textBuffer==NULL) return;
	ResetCurrentPosition(data);
	if(data->dcs==SMSAL_DEFAULT_DCS)
	{	while((OffsetToText=data->CurrentPosition.OffsetToText)<textBufferLength)
		{
			if(pixtel_UI_EMS_input_box_get_next_object(data,&data->CurrentPosition,&c,&object)!=1)
			{
				continue;
			}
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
			c=(U16)(textBuffer[OffsetToText+1]|(textBuffer[OffsetToText]<<8));
#else
			c=(U16)(textBuffer[OffsetToText]|(textBuffer[OffsetToText+1]<<8));
#endif
			if(c==EMS_ESCAPE_CHARACTER)
			{
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
				textBuffer[OffsetToText+1]=(U8)(c&0xff);
				textBuffer[OffsetToText+0]=(U8)(c>>8);

				if(ForwardCurrentPosition(data,1)!=1) break;
				CancelCurrentPosition(data,1);
				OffsetToText=data->CurrentPosition.OffsetToText;

				c=(U16)(textBuffer[OffsetToText+1]|(textBuffer[OffsetToText]<<8));
				c=DefaultToExtendedAsciiArray[c];

				textBuffer[OffsetToText+1]=(U8)(c&0xff);
				textBuffer[OffsetToText+0]=(U8)(c>>8);
#else
				textBuffer[OffsetToText]=(U8)(c&0xff);
				textBuffer[OffsetToText+1]=(U8)(c>>8);

				if(ForwardCurrentPosition(data,1)!=1) break;
				CancelCurrentPosition(data,1);
				OffsetToText=data->CurrentPosition.OffsetToText;

				c=(U16)(textBuffer[OffsetToText]|(textBuffer[OffsetToText+1]<<8));
				c=DefaultToExtendedAsciiArray[c];

				textBuffer[OffsetToText]=(U8)(c&0xff);
				textBuffer[OffsetToText+1]=(U8)(c>>8);
#endif
			}
			else
			{	c=DefaultToAsciiArray[c];
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
				textBuffer[OffsetToText+1]=(U8)(c&0xff);
				textBuffer[OffsetToText+0]=(U8)(c>>8);
#else
				textBuffer[OffsetToText]=(U8)(c&0xff);
				textBuffer[OffsetToText+1]=(U8)(c>>8);
#endif
			}
			if(ForwardCurrentPosition(data,1)!=1) break;
		}
	}
	else
	{	while((OffsetToText=data->CurrentPosition.OffsetToText)<textBufferLength)
		{
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
			c=(U16)(textBuffer[OffsetToText+1]|(textBuffer[OffsetToText]<<8));
#else
			c=(U16)(textBuffer[OffsetToText]|(textBuffer[OffsetToText+1]<<8));
#endif
			// if(c==EMS_EURO_CHARACTER_UCS2) c=EMS_EURO_CHARACTER;
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
			textBuffer[OffsetToText+1]=(U8)(c&0xff);
			textBuffer[OffsetToText+0]=(U8)(c>>8);
#else
			textBuffer[OffsetToText]=(U8)(c&0xff);
			textBuffer[OffsetToText+1]=(U8)(c>>8);
#endif
			if(ForwardCurrentPosition(data,1)!=1) break;
		}
	}
	ResetCurrentPosition(data);
}

/*	Call before EMSPack	*/
void EMS_ConvertAsciiEncodingToGSM7BitDefaultWithExtended(EMSData *data)
{	U16 c,OffsetToText;
	U8* textBuffer=data->textBuffer;
	U16 textBufferLength=data->textLength;
	EMSObject* object;
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
	U8	ESC_string[]={0x00,0x1B};
#else
	U8	ESC_string[]={0x1B,0x00};
#endif
	if(textBuffer==NULL) return;
	ResetCurrentPosition(data);

	if(data->dcs==SMSAL_DEFAULT_DCS)
	{	while((OffsetToText=data->CurrentPosition.OffsetToText)<textBufferLength)
		{
			if(pixtel_UI_EMS_input_box_get_next_object(data,&data->CurrentPosition,&c,&object)!=1)
			{
				continue;
			}
#if(EMS_BYTE_ORDER_BIG_ENDIAN)
			c=(U16)(textBuffer[OffsetToText+1]|(textBuffer[OffsetToText]<<8));
#else
			c=(U16)(textBuffer[OffsetToText]|(textBuffer[OffsetToText+1]<<8));
#endif
			if(UI_TEST_GSM_EXTENDED(c))
			{	AddString(data,ESC_string,1,NULL);
				OffsetToText=data->CurrentPosition.OffsetToText;
				//MTK Elvis 20031126
				textBufferLength += ENCODING_LENGTH;

⌨️ 快捷键说明

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