📄 textphonecontrol.c
字号:
{
#ifndef __CTM_DEBUG
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MYQUEUE Message;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
/* ClearInputEventHandler(MMI_DEVICE_ALL); */
Message.oslSrcId = MOD_MMI;
Message.oslDestId = MOD_L4C;
Message.oslMsgId = MSG_ID_MMI_CTM_CLOSE_REQ;
Message.oslDataPtr = NULL;
Message.oslPeerBuffPtr = NULL;
SetProtocolEventHandler(mmi_ctm_close_rsp_hdlr, MSG_ID_MMI_CTM_CLOSE_RSP);
OslMsgSendExtQueue(&Message);
#else /* __CTM_DEBUG */
StartTimer(CM_ALERT_NOTIFYDURATION_TIMER, 2000, (FuncPtr) mmi_ctm_close_rsp_hdlr);
#endif /* __CTM_DEBUG */
PRINT_INFORMATION(("\n CTM CLOSE REQ\n"));
}
/*****************************************************************************
* FUNCTION
* mmi_ctm_send_connect_req
* DESCRIPTION
*
* PARAMETERS
* void
* void(?) [IN] *
* RETURNS
* void
*****************************************************************************/
void mmi_ctm_send_connect_req(void)
{
#ifndef __CTM_DEBUG
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MYQUEUE Message;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
ClearInputEventHandler(MMI_DEVICE_ALL);
Message.oslSrcId = MOD_MMI;
Message.oslDestId = MOD_L4C;
Message.oslMsgId = MSG_ID_MMI_CTM_CONNECT_REQ;
Message.oslDataPtr = NULL;
Message.oslPeerBuffPtr = NULL;
SetProtocolEventHandler(mmi_ctm_connect_rsp_hdlr, MSG_ID_MMI_CTM_CONNECT_RSP);
OslMsgSendExtQueue(&Message);
#else /* __CTM_DEBUG */
StartTimer(CM_NOTIFYDURATION_TIMER, 2000, (FuncPtr) mmi_ctm_connect_rsp_hdlr);
#endif /* __CTM_DEBUG */
PRINT_INFORMATION(("\n CTM CONNECT REQ\n"));
}
/*****************************************************************************
* FUNCTION
* mmi_ctm_send_text_req
* DESCRIPTION
*
* PARAMETERS
* text [IN]
* length [IN]
* void(?) [IN] *
* RETURNS
* void
*****************************************************************************/
void mmi_ctm_send_text_req(PS8 text, U16 length)
{
#ifndef __CTM_DEBUG
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MYQUEUE Message;
mmi_ctm_send_text_req_struct *param;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
ClearInputEventHandler(MMI_DEVICE_ALL);
Message.oslSrcId = MOD_MMI;
Message.oslDestId = MOD_L4C;
Message.oslMsgId = MSG_ID_MMI_CTM_SEND_TEXT_REQ;
param = (mmi_ctm_send_text_req_struct*) OslConstructDataPtr(sizeof(mmi_ctm_send_text_req_struct));
if (length > CTM_SEND_TEXT_CHAR_MAX_NUM)
{
param->num_of_char = CTM_SEND_TEXT_CHAR_MAX_NUM;
pfnUnicodeStrncpy((PS8) param->text, text, CTM_SEND_TEXT_CHAR_MAX_NUM);
}
else
{
param->num_of_char = length;
pfnUnicodeStrcpy((PS8) param->text, text);
}
ctm_p->sent_len = param->num_of_char;
Message.oslDataPtr = (oslParaType*) param;
Message.oslPeerBuffPtr = NULL;
SetProtocolEventHandler(mmi_ctm_send_text_rsp_hdlr, MSG_ID_MMI_CTM_SEND_TEXT_RSP);
OslMsgSendExtQueue(&Message);
#else /* __CTM_DEBUG */
if (length > CTM_SEND_TEXT_CHAR_MAX_NUM)
{
ctm_p->sent_len = CTM_SEND_TEXT_CHAR_MAX_NUM;
}
else
{
ctm_p->sent_len = length;
}
StartTimer(CM_NOTIFYDURATION_TIMER, 2000, (FuncPtr) mmi_ctm_send_text_rsp_hdlr);
#endif /* __CTM_DEBUG */
PRINT_INFORMATION(("\n CTM SEND TEXT REQ\n"));
}
/*****************************************************************************
* FUNCTION
* mmi_ctm_send_set_default_req
* DESCRIPTION
*
* PARAMETERS
* on_off [IN]
* mode [IN]
* void(?) [IN] *
* RETURNS
* void
*****************************************************************************/
void mmi_ctm_send_set_default_req(pBOOL on_off, U8 mode)
{
#ifndef __CTM_DEBUG
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MYQUEUE Message;
mmi_ctm_set_default_req_struct *param;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
ClearInputEventHandler(MMI_DEVICE_ALL);
Message.oslSrcId = MOD_MMI;
Message.oslDestId = MOD_L4C;
Message.oslMsgId = MSG_ID_MMI_CTM_SET_DEFAULT_REQ;
param = (mmi_ctm_set_default_req_struct*) OslConstructDataPtr(sizeof(mmi_ctm_set_default_req_struct));
param->is_turn_on = on_off;
switch (mode)
{
case MMI_CTM_SETTING_BAUDOT:
param->ctm_interface = CTM_BAUDOT_MODE;
break;
case MMI_CTM_SETTING_HCO:
param->ctm_interface = CTM_HCO_MODE;
break;
case MMI_CTM_SETTING_VCO:
param->ctm_interface = CTM_VCO_MODE;
break;
default:
param->ctm_interface = CTM_DIRECT_MODE;
break;
}
Message.oslDataPtr = (oslParaType*) param;
Message.oslPeerBuffPtr = NULL;
SetProtocolEventHandler(mmi_ctm_set_default_rsp_hdlr, MSG_ID_MMI_CTM_SET_DEFAULT_RSP);
OslMsgSendExtQueue(&Message);
#else /* __CTM_DEBUG */
StartTimer(CM_NOTIFYDURATION_TIMER, 2000, (FuncPtr) mmi_ctm_set_default_rsp_hdlr);
#endif /* __CTM_DEBUG */
PRINT_INFORMATION(("\n CTM SEND SET DEFAULT REQ\n"));
}
/*****************************************************************************
* FUNCTION
* mmi_ctm_send_get_default_req
* DESCRIPTION
*
* PARAMETERS
* void
* void(?) [IN] *
* RETURNS
* void
*****************************************************************************/
void mmi_ctm_send_get_default_req(void)
{
#ifndef __CTM_DEBUG
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MYQUEUE Message;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
Message.oslSrcId = MOD_MMI;
Message.oslDestId = MOD_L4C;
Message.oslMsgId = MSG_ID_MMI_CTM_GET_DEFAULT_REQ;
Message.oslDataPtr = NULL;
Message.oslPeerBuffPtr = NULL;
SetProtocolEventHandler(mmi_ctm_get_default_rsp_hdlr, MSG_ID_MMI_CTM_GET_DEFAULT_RSP);
OslMsgSendExtQueue(&Message);
#else /* __CTM_DEBUG */
StartTimer(CM_NOTIFYDURATION_TIMER, 2000, (FuncPtr) mmi_ctm_get_default_rsp_hdlr);
#endif /* __CTM_DEBUG */
PRINT_INFORMATION(("\n CTM SEND GET DEFAULT REQ\n"));
}
/*****************************************************************************
* FUNCTION
* mmi_ctm_connect
* DESCRIPTION
*
* PARAMETERS
* void
* void(?) [IN] *
* RETURNS
* void
*****************************************************************************/
void mmi_ctm_connect(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (ctm_p->state == MMI_CTM_STATE_OPENED)
{
mmi_ctm_set_state(MMI_CTM_STATE_CONNECTING);
mmi_ctm_send_connect_req();
entry_ctm_connect_animation();
}
else if (ctm_p->state == MMI_CTM_STATE_CONNECTED)
{
/* back to active screen to direct to chat screen */
GoBackHistory();
}
}
/*****************************************************************************
* FUNCTION
* mmi_ctm_edit_done
* DESCRIPTION
*
* PARAMETERS
* void
* void(?) [IN] *
* RETURNS
* void
*****************************************************************************/
void mmi_ctm_edit_done(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
ctm_p->pending_len += pfnUnicodeStrlen((PS8) ctm_p->editor_buffer);
pfnUnicodeStrcat((PS8) ctm_p->pending_buffer, (PS8) ctm_p->editor_buffer);
memset(ctm_p->editor_buffer, 0, MAX_CTM_EDITOR_BUFFER_LEN);
if (ctm_p->sent_len == 0)
{
mmi_ctm_send_text_req((PS8) ctm_p->pending_buffer, ctm_p->pending_len);
}
if (IsScreenPresent(SCR_CM_ACTIVECALLSCREEN))
{
GoBackToHistory(SCR_CM_ACTIVECALLSCREEN);
}
else if (IsScreenPresent(SCR_CTM_TALKING))
{
GoBackToHistory(SCR_CTM_TALKING);
}
else
{
ASSERT(0);
}
}
/*****************************************************************************
* FUNCTION
* mmi_ctm_toggle_mode
* DESCRIPTION
*
* PARAMETERS
* void
* void(?) [IN] *
* RETURNS
* void
*****************************************************************************/
void mmi_ctm_toggle_mode(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
S16 error;
U16 str_id;
pBOOL old;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
old = mmi_ctm_is_tty_on();
if (ctm_p->status == TRUE)
{
ctm_p->status = FALSE;
}
else
{
ctm_p->status = TRUE;
}
WriteValue(NVRAM_CTM_MODE, &ctm_p->status, DS_BYTE, &error);
mmi_ctm_send_set_default_req(ctm_p->status, ctm_p->mode_setting);
if (ctm_p->status == TRUE)
{
/* off -> on */
str_id = STR_CTM_ON_SELECTED;
ShowStatusIcon(STATUS_ICON_TTY_INDICATOR);
/* with earphone, take as TTY */
ctm_p->tty_status = isEarphonePlugged;
if (isEarphonePlugged == TRUE && mmi_ctm_is_tty_on())
{
str_id = STR_CTM_HEADSET_TO_TTY;
/* deactivate earphone mode, Tim */
mmi_profiles_earphone_plug_out_callback();
#if (defined (__MMI_STATUS_ICON_EN_EARPHONE__) || defined(__MMI_BT_SUPPORT__))
IdleResetStatusIcon(STATUS_ICON_EARPHONE_INDICATOR);
#endif
}
}
else
{
/* on -> off */
str_id = STR_CTM_OFF_SELECTED;
HideStatusIcon(STATUS_ICON_TTY_INDICATOR);
ctm_p->tty_status = FALSE;
if (isEarphonePlugged == TRUE && old == TRUE)
{
str_id = STR_CTM_TTY_TO_HEADSET;
/* activate earphone mode, Tim */
mmi_profiles_earphone_plug_in_callback();
#if (defined (__MMI_STATUS_ICON_EN_EARPHONE__) || defined(__MMI_BT_SUPPORT__))
IdleSetStatusIcon(STATUS_ICON_EARPHONE_INDICATOR);
#endif
}
}
DisplayPopup((PU8) GetString(str_id), IMG_GLOBAL_ACTIVATED, 1, 2000, SUCCESS_TONE);
/*
* hint_ctm_mode(GetCurrHiliteID());
* RedrawCategoryFunction();
* highlight_ctm_mode();
*/
}
/*****************************************************************************
* FUNCTION
* mmi_ctm_setting_select
* DESCRIPTION
*
* PARAMETERS
* void
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -