📄 wgui_ems_categories.c
字号:
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 + -