📄 mmisatinput.c
字号:
$Returns: none
$Arguments: txt - text info
destination - text destination
source - text source
*******************************************************************************/
static void sat_UCODE_to_TEXT (T_SAT_TXT * txt, UBYTE * destination, cp_wstring_t source)
{
UBYTE * temp_buffer;
UBYTE size;
UBYTE outLen;
switch( txt->code )
{
case MFW_DCS_7bits:
size = (source->length/sizeof(wchar_t))+1;
temp_buffer = (UBYTE *)ALLOC_MEMORY(size);
string_UCS2_to_GSM(
MFW_DCS_7bits, // gsm format
(wstring_t *)source,// source unicode string, includes own length
size, // maximum output size
temp_buffer, // destination byte array
&outLen // actual length in bytes is stored here.
);
txt->len = utl_cvt8To7 (temp_buffer, outLen, destination, 0);
FREE_MEMORY ((U8 *)temp_buffer, size);
break;
case MFW_DCS_8bits:
string_UCS2_to_GSM(
MFW_DCS_7bits, // gsm format
(wstring_t *)source,// source unicode string, includes own length
size, // maximum output size
destination, // destination byte array
&txt->len // actual length in bytes is stored here.
);
break;
case MFW_DCS_UCS2:
txt->len = source->length*sizeof(wchar_t); // txt count is in number of bytes
memcpy(destination, source, txt->len);
break;
default:
string_UCS2_to_GSM(
MFW_DCS_7bits, // gsm format
(wstring_t *)source,// source unicode string, includes own length
size, // maximum output size
destination, // destination byte array
&txt->len // actual length in bytes is stored here.
);
TRACE_EVENT("sat_UCODE_to_TEXT() unexp. DCS");
break;
}
}
#endif /* INTEGRATION_SEPT00 */
/*******************************************************************************
$Function: sat_get_key_send_result
$Description:
$Returns: none
$Arguments: data - key info
*******************************************************************************/
static void sat_get_key_send_result (T_sat_get_key * data)
{
T_SAT_RES sat_res;
struct
{
T_SAT_TXT txt;
UBYTE buffer[SAT_GET_KEY_BUFFER_SIZE]; /* buffer for result */
} buf; /* NOTE: txt and buffer shall be packed */
/* update the output parameter */
/* set the required DCS for the result to be returned */
if( (data->sat_command->qual & SAT_M_INKEY_UCS2) NEQ 0 )
{
buf.txt.code = MFW_DCS_UCS2;
}
else
{
buf.txt.code = MFW_DCS_8bits; /* use the SMS default alphabet */
}
buf.txt.text = sizeof(T_SAT_TXT);
buf.txt.len = 1;
/* convert and send the result */
sat_ASCII_to_TEXT(&buf.txt, buf.buffer, (UBYTE *)data->edt_buffer);
sat_res[SAT_ERR_INDEX] = SatResSuccess;
sat_res[SAT_AI_INDEX] = SatResAiNoCause;
satString (data->sat_command, &buf.txt, sat_res, sizeof(T_SAT_RES));
}
/*******************************************************************************
$Function: sat_get_string_send_result
$Description:
$Returns: none
$Arguments: data - string info
*******************************************************************************/
static void sat_get_string_send_result (T_sat_get_string * data)
{
T_SAT_RES sat_res;
T_sat_get_string_result * buf;
U16 length;
U16 size;
/* allocate sufficient temporary space to return the result (avoid huge stack usage) */
length = strlen(data->edt_buffer);
size = sizeof(T_sat_get_string_result) + length;
buf = (T_sat_get_string_result *) ALLOC_MEMORY(size);
/* update the output parameter */
/* set the required DCS for the result to be returned */
if( (data->sat_command->qual & SAT_M_INPUT_UCS2) NEQ 0 )
{
buf->txt.code = MFW_DCS_UCS2;
}
else if( (data->sat_command->qual & SAT_M_INPUT_PACKING) NEQ 0 )
{
buf->txt.code = MFW_DCS_7bits; /* use the packed SMS alphabet */
}
else
{
buf->txt.code = MFW_DCS_8bits; /* use the SMS default alphabet */
}
buf->txt.text = sizeof(T_SAT_TXT);
buf->txt.len = length;
/* convert and send the result */
sat_ASCII_to_TEXT(&buf->txt, buf->buffer, (UBYTE *)data->edt_buffer);
sat_res[SAT_ERR_INDEX] = SatResSuccess;
sat_res[SAT_AI_INDEX] = SatResAiNoCause;
satString (data->sat_command, &buf->txt, sat_res, sizeof(T_SAT_RES));
FREE_MEMORY((U8 *)buf, size);
}
/*******************************************************************************
$Function: sat_editor_cb
$Description: Sat editor call back function.
$Returns: none
$Arguments: win - window
Identifier - unique id
event - event id
*******************************************************************************/
static void sat_editor_cb (T_MFW_HND win, USHORT Identifier, USHORT event)
{
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_SAT_RES sat_res;
TRACE_EVENT ("sat_editor_cb()");
{
/* 2004/04/12 sunsj remove */
//char temp[60];
//sprintf(temp,"event number %d",event);
//TRACE_EVENT(temp);
}
if( (win EQ NULL) || (win_data EQ NULL) )
return;
switch( Identifier )
{
case SAT_GET_KEY:
{
T_sat_get_key * data = (T_sat_get_key *)win_data->user;
if( data EQ NULL )
return;
switch( event )
{
case INFO_KCD_LEFT: /* OK or single digit key or YES */
/* update the output parameter */
if( (data->sat_command->qual & SAT_M_INKEY_YES_NO) NEQ 0 )
{
data->edt_buffer[0] = 0x01; /* means YES */
data->edt_buffer[1] = 0x00; /* means YES */
}
sat_get_key_send_result (data);
//editor_destroy(data->key_editor);
sat_get_key_destroy (data->win);
break;
case INFO_KCD_ALTERNATELEFT: /* help */
sat_res[SAT_ERR_INDEX] = SAT_RES_USER_HELP;
sat_res[SAT_AI_INDEX] = SatResAiNoCause;
sat_done (data->sat_command, sat_res, sizeof(T_SAT_RES));
//editor_destroy(data->key_editor);
sat_get_key_destroy (data->win);
break;
case INFO_KCD_RIGHT: /* back or NO */
if( (data->sat_command->qual & SAT_M_INKEY_YES_NO) NEQ 0 )
{
data->edt_buffer[0] = 0x00; /* means NO */
data->edt_buffer[1] = 0x00; /* means NO */
sat_get_key_send_result (data);
}
else
{
sat_res[SAT_ERR_INDEX] = SAT_RES_USER_BACK;
sat_res[SAT_AI_INDEX] = SatResAiNoCause;
sat_done (data->sat_command, sat_res, sizeof(T_SAT_RES));
}
//editor_destroy(data->key_editor);
sat_get_key_destroy (data->win);
break;
case INFO_KCD_CLEAR: /* clear on empty buffer or long clear */
case INFO_KCD_HUP:
sat_res[SAT_ERR_INDEX] = SAT_RES_USER_ABORT;
sat_res[SAT_AI_INDEX] = SatResAiNoCause;
sat_done (data->sat_command, sat_res, sizeof(T_SAT_RES));
//editor_destroy(data->key_editor);
sat_get_key_destroy (data->win);
break;
case INFO_TIMEOUT: /* timeout */
sat_res[SAT_ERR_INDEX] = SAT_RES_USER_NO_RESP;
sat_res[SAT_AI_INDEX] = SatResAiNoCause;
sat_done (data->sat_command, sat_res, sizeof(T_SAT_RES));
sat_get_key_destroy (data->win);
break;
default:
TRACE_EVENT("sat_editor_cb()_key unexp. event");
break;
}
// sat_get_key_destroy (data->win);
}
break;
case SAT_GET_STRING:
{
T_sat_get_string * data = (T_sat_get_string *)win_data->user;
if( data EQ NULL )
return;
switch( event )
{
case INFO_KCD_LEFT: /* OK */
sat_get_string_send_result (data);
// editor_destroy(data->string_editor);
sat_get_string_destroy (data->win);
break;
case INFO_KCD_ALTERNATELEFT: /* help */
sat_res[SAT_ERR_INDEX] = SAT_RES_USER_HELP;
sat_res[SAT_AI_INDEX] = SatResAiNoCause;
sat_done (data->sat_command, sat_res, sizeof(T_SAT_RES));
// editor_destroy(data->string_editor);
sat_get_string_destroy (data->win);
break;
case INFO_KCD_RIGHT: /* back */
sat_res[SAT_ERR_INDEX] = SAT_RES_USER_BACK;
sat_res[SAT_AI_INDEX] = SatResAiNoCause;
sat_done (data->sat_command, sat_res, sizeof(T_SAT_RES));
// editor_destroy(data->string_editor);
sat_get_string_destroy (data->win);
break;
case INFO_KCD_CLEAR: /* clear on empty buffer or long clear */
case INFO_KCD_HUP:
sat_res[SAT_ERR_INDEX] = SAT_RES_USER_ABORT;
sat_res[SAT_AI_INDEX] = SatResAiNoCause;
sat_done (data->sat_command, sat_res, sizeof(T_SAT_RES));
// editor_destroy(data->string_editor);
sat_get_string_destroy (data->win);
break;
case INFO_TIMEOUT: /* timeout */
sat_res[SAT_ERR_INDEX] = SAT_RES_USER_NO_RESP;
sat_res[SAT_AI_INDEX] = SatResAiNoCause;
sat_done (data->sat_command, sat_res, sizeof(T_SAT_RES));
sat_get_string_destroy (data->win);
break;
default:
TRACE_EVENT("sat_editor_cb()_STRING unexp. event");
break;
}
//sat_get_string_destroy (data->win);
}
break;
case SAT_DISPLAY_TEXT:
{
T_sat_display_text * data = (T_sat_display_text *)win_data->user;
switch( event )
{
case INFO_KCD_RIGHT: /* back */
sat_res[SAT_ERR_INDEX] = SAT_RES_USER_BACK;
sat_res[SAT_AI_INDEX] = SatResAiNoCause;
sat_done (data->sat_command, sat_res, sizeof(T_SAT_RES));
// editor_destroy(data->display_editor); //zhaowm 2002.12.05
break;
case INFO_TIMEOUT: /* timeout */
sat_res[SAT_ERR_INDEX] = SatResSuccess;
sat_res[SAT_AI_INDEX] = SatResAiNoCause;
sat_done (data->sat_command, sat_res, sizeof(T_SAT_RES));
break;
case INFO_KCD_LEFT: /* OK */
sat_res[SAT_ERR_INDEX] = SatResSuccess;
sat_res[SAT_AI_INDEX] = SatResAiNoCause;
sat_done (data->sat_command, sat_res, sizeof(T_SAT_RES));
// editor_destroy(data->display_editor);
break;
case INFO_KCD_CLEAR: /* abort */
case INFO_KCD_HUP:
sat_res[SAT_ERR_INDEX] = SAT_RES_USER_ABORT;
sat_res[SAT_AI_INDEX] = SatResAiNoCause;
sat_done (data->sat_command, sat_res, sizeof(T_SAT_RES));
// editor_destroy(data->display_editor);
break;
default:
TRACE_EVENT("sat_editor_cb() unexp. event");
break;
}
sat_display_text_destroy (data->win);
}
break;
case SAT_DISPLAY_TEXT_WAIT:
{
T_sat_display_text * data = (T_sat_display_text *)win_data->user;
switch( event )
{
case INFO_TIMEOUT: /* timeout */
sat_res[SAT_ERR_INDEX] = SAT_RES_USER_NO_RESP;
sat_res[SAT_AI_INDEX] = SatResAiNoCause;
sat_done (data->sat_command, sat_res, sizeof(T_SAT_RES));
break;
case INFO_KCD_LEFT: /* OK */
sat_res[SAT_ERR_INDEX] = SatResSuccess;
sat_res[SAT_AI_INDEX] = SatResAiNoCause;
sat_done (data->sat_command, sat_res, sizeof(T_SAT_RES));
// editor_destroy(data->display_editor);
break;
case INFO_KCD_RIGHT: /* back */
sat_res[SAT_ERR_INDEX] = SAT_RES_USER_BACK;
sat_res[SAT_AI_INDEX] = SatResAiNoCause;
sat_done (data->sat_command, sat_res, sizeof(T_SAT_RES));
// editor_destroy(data->display_editor);
break;
case INFO_KCD_CLEAR: /* abort */
case INFO_KCD_HUP:
sat_res[SAT_ERR_INDEX] = SAT_RES_USER_ABORT;
sat_res[SAT_AI_INDEX] = SatResAiNoCause;
sat_done (data->sat_command, sat_res, sizeof(T_SAT_RES));
// editor_destroy(data->display_editor);
break;
default:
TRACE_EVENT("sat_editor_cb() unexp. event");
break;
}
sat_display_text_destroy (data->win);
}
break;
default:
TRACE_EVENT("sat_editor_cb() unexp. Identifier");
break;
}
return;
}
// end c014 rsa
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -