/***************************************************************************** * FUNCTION * format_asking_string * DESCRIPTION * Add mid_name and "?" into string. * PARAMETERS * string_id [IN] String ID * RETURNS * *****************************************************************************/ static PU8 format_asking_string(U16 string_id) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ kal_int32 string_len = mmi_ucs2strlen(GetString(string_id)); kal_wchar *mid_name = get_running_mid_name(); /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ if (mid_name == NULL) { mid_name = (kal_wchar*) GetString(STR_SCR_JAVA_CAPTION); } if (asking_string_buffer != NULL) { free_ctrl_buffer(asking_string_buffer); } asking_string_buffer = (kal_wchar*) get_ctrl_buffer((string_len + mmi_ucs2strlen((S8*) mid_name) + 2) << 1); mmi_ucs2cpy((S8*) asking_string_buffer, GetString(string_id)); mmi_ucs2cpy((S8*) (asking_string_buffer + string_len), (S8*) mid_name); string_len += mmi_ucs2strlen((S8*) mid_name); asking_string_buffer[string_len] = '?'; asking_string_buffer[string_len + 1] = 0; return (PU8) asking_string_buffer; }
/***************************************************************************** * FUNCTION * PmgDelExtMelodyByPathFileName * DESCRIPTION * * PARAMETERS * pathfileName [?] * RETURNS * *****************************************************************************/ pBOOL PmgDelExtMelodyByPathFileName(S8 *pathfileName) /* Finally, call PmgDelExtMelodyBySlot() */ { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ U8 slot = 0; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ if ((mmi_ucs2strlen(pathfileName) >= (MAX_EXT_MELODY_FULLNAME_WIDTH / ENCODING_LENGTH)) || (gPmgExtMelodyInfo.TotleNum == 0)) { return MMI_FALSE; } slot = PmgGetSlotByPathFileName(pathfileName); if (slot == PMG_INVAILD_SLOT) { return MMI_FALSE; } else { PmgDelExtMelodyBySlot(slot); } return MMI_TRUE; }
/***************************************************************************** * FUNCTION * DESCRIPTION * PARAMETERS * RETURNS *****************************************************************************/ void mmi_java_entry_cb_terminate_dialog_internal(void) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ U8 *guiBuffer; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ EntryNewScreen(SCR_JAVA_TERMINATE_DIALOG2, NULL, mmi_java_entry_cb_terminate_dialog_internal, NULL); guiBuffer = GetCurrGuiBuffer(SCR_JAVA_TERMINATE_DIALOG2); ShowCategory74Screen( STR_SCR_JAVA_CAPTION, mmi_java_get_title_icon(), STR_GLOBAL_YES, IMG_GLOBAL_YES, STR_GLOBAL_NO, IMG_GLOBAL_NO, (PU8) cb_terminate_string, mmi_ucs2strlen((PS8) cb_terminate_string), NULL); SetLeftSoftkeyFunction(mmi_java_cb_terminate_dialog_yes_hdlr, KEY_EVENT_UP); SetRightSoftkeyFunction(mmi_java_cb_terminate_dialog_no_hdlr, KEY_EVENT_UP); }
/***************************************************************************** * FUNCTION * mmi_java_entry_reset_rms_res * DESCRIPTION * Reset RMS Confirm screen Entry Function * PARAMETERS * void * RETURNS * void *****************************************************************************/ void mmi_java_entry_reset_rms_res(void) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ U8 *guiBuffer; U8 *str; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ EntryNewScreen(SCR_JAVA_RESET_RMS_CONFIRM, NULL, mmi_java_entry_reset_rms_res, NULL); /* playRequestedTone(WARNING_TONE); */ guiBuffer = GetCurrGuiBuffer(SCR_JAVA_RESET_RMS_CONFIRM); //mmi_asc_to_ucs2 ((PS8)gJavaPrintableStr, //"Do you want the new version application to be able to use the information stored by the old version application?"); str = (U8*) get_string(STR_JAVA_RESET_RMS_ASK); ShowCategory74Screen( STR_JAVA_KEEP_RMS, mmi_java_get_title_icon(), STR_GLOBAL_YES, IMG_GLOBAL_YES, STR_GLOBAL_NO, IMG_GLOBAL_NO, (PU8) str, mmi_ucs2strlen((PS8) str), NULL); SetLeftSoftkeyFunction(mmi_java_send_reset_rms_res_yes, KEY_EVENT_UP); SetRightSoftkeyFunction(mmi_java_send_reset_rms_res_no, KEY_EVENT_UP); }
/***************************************************************************** * FUNCTION * srv_ctm_med_send_text_req * DESCRIPTION * * PARAMETERS * text [IN] * RETURNS * void *****************************************************************************/ void srv_ctm_med_send_text_req(CHAR* text) { #ifndef __CTM_DEBUG /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ media_ctm_send_text_req_struct *param; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ MMI_TRACE(MMI_COMMON_TRC_G5_CALL, FUNC_SRV_CTM_MED_SEND_TEXT_REQ); ClearInputEventHandler(MMI_DEVICE_ALL); param = OslAllocDataPtr(media_ctm_send_text_req_struct); param->num_of_char = mmi_ucs2strlen(text); mmi_ucs2ncpy((CHAR*)param->text, text, CTM_SEND_TEXT_CHAR_MAX_NUM); SetProtocolEventHandler(srv_ctm_phdlr_send_text_rsp, MSG_ID_MEDIA_CTM_SEND_TEXT_CNF); mmi_frm_send_ilm(MOD_MED, MSG_ID_MEDIA_CTM_SEND_TEXT_REQ, (oslParaType*)param, NULL); #else /* __CTM_DEBUG */ StartTimer(CM_NOTIFYDURATION_TIMER, 2000, (FuncPtr) srv_ctm_phdlr_send_text_rsp); #endif /* __CTM_DEBUG */ }
/***************************************************************************** * FUNCTION * mmi_java_entry_force_terminate_dialog * DESCRIPTION * The entry function to ask if user real want to terminate java? (can not pause) * PARAMETERS * void * RETURNS * void *****************************************************************************/ void mmi_java_entry_force_terminate_dialog(void) /* called by JAVA adaptor, also in mmi task */ { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ EntryNewScreen(SCR_JAVA_FORCE_TERMINATE_DIALOG, NULL, mmi_java_entry_force_terminate_dialog, NULL); ShowCategory74Screen( STR_JAVA_TERMINATE, mmi_java_get_title_icon(), STR_GLOBAL_YES, IMG_GLOBAL_YES, STR_GLOBAL_NO, IMG_GLOBAL_NO, (PU8) GetString(STR_JAVA_FORCE_TERMINATE), mmi_ucs2strlen(GetString(STR_JAVA_FORCE_TERMINATE)), NULL); SetLeftSoftkeyFunction(mmi_java_force_terminate_dialog_yes_hdlr, KEY_EVENT_UP); SetRightSoftkeyFunction(mmi_java_force_terminate_dialog_no_hdlr, KEY_EVENT_UP); }
/***************************************************************************** * FUNCTION * PmgGetSlotByPathFileName * DESCRIPTION * * PARAMETERS * pathfileName [?] * RETURNS * *****************************************************************************/ U8 PmgGetSlotByPathFileName(S8 *pathfileName) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ U8 i; S8 tmpStr[MAX_EXT_MELODY_FULLNAME_WIDTH]; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ if (mmi_ucs2strlen(pathfileName) >= (MAX_EXT_MELODY_FULLNAME_WIDTH)) { return MMI_FALSE; } for (i = 0; i < MAXIMUM_EXT_MELODY_NUM; i++) { PmgConstructPathFileName( tmpStr, sizeof(tmpStr), (S8*) gPmgExtMelodyInfo.info[i].filepath, (S8*) gPmgExtMelodyInfo.info[i].filename); if (mmi_ucs2cmp(pathfileName, tmpStr) == 0) { return i; } } return PMG_INVAILD_SLOT; }
/***************************************************************************** * FUNCTION * PmgGetFileNameByFilePath * DESCRIPTION * * PARAMETERS * pathfileName [?] * RETURNS * *****************************************************************************/ S8 *PmgGetFileNameByFilePath(S8 *pathfileName) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ U16 NameLength = (U16) mmi_ucs2strlen(pathfileName); S16 *UniPathName = (S16*) pathfileName; U16 deter = '\\'; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ if (NameLength >= MAX_EXT_MELODY_NAME_WIDTH / ENCODING_LENGTH) { return NULL; } if ((NameLength & 0x1) == 1) { return NULL; } while (NameLength > 0) { NameLength -= 2; if (memcmp(UniPathName + NameLength, &deter, 2) == 0) { break; } } return (pathfileName + NameLength); }
/***************************************************************************** * FUNCTION * PmgReplaceExtMelodyBySlotPathFileName * DESCRIPTION * * PARAMETERS * pathfileName [?] * freeSlot [IN] * RETURNS * *****************************************************************************/ PMG_ADDFILE_ERRNO PmgReplaceExtMelodyBySlotPathFileName(S8 *pathfileName, U8 freeSlot) /* fileName is unicode */ { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ /* U8 freeSlot=0; */ S16 pError; U8 i; PMG_ADDFILE_ERRNO res = MMI_FALSE; DYNEXTMELODYELEM target; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ if (mmi_ucs2strlen(pathfileName) >= (MAX_EXT_MELODY_FULLNAME_WIDTH / ENCODING_LENGTH)) { return PMG_ADDFILE_ERR_STR_TOO_LONG; } res = PmgSeparateFilePathName( (S8*) pathfileName, (S8*) target.filepath, sizeof(target.filepath), (S8*) target.filename, sizeof(target.filename)); if (res != PMG_ADDFILE_ERR_SUCCESS) { return res; } /* check if it is shorname and mark it if possible */ if (is_target_short_filename) { MARK_EXTMELODY_SHORTNAME(target.filepath); } /* Check Duplicate */ for (i = 0; i < MAXIMUM_EXT_MELODY_NUM; i++) { if ((i != freeSlot) && (PmgIsEmptySlot(i) == MMI_FALSE) && (mmi_ucs2cmp((S8*) gPmgExtMelodyInfo.info[i].filepath, (S8*) target.filepath) == 0) && (mmi_ucs2cmp((S8*) gPmgExtMelodyInfo.info[i].filename, (S8*) target.filename) == 0)) { return PMG_ADDFILE_ERR_DUPLICATED; } } mmi_ucs2cpy((S8*) gPmgExtMelodyInfo.info[freeSlot].filepath, (S8*) target.filepath); mmi_ucs2cpy((S8*) gPmgExtMelodyInfo.info[freeSlot].filename, (S8*) target.filename); PMG_ASSERT(NVRAM_EF_EXT_MELODY_INFO_SIZE == sizeof(gPmgExtMelodyInfo)); WriteRecord(NVRAM_EF_EXT_MELODY_INFO_LID, 1, &gPmgExtMelodyInfo, sizeof(gPmgExtMelodyInfo), &pError); PMG_ASSERT(pError == NVRAM_WRITE_SUCCESS); return PMG_ADDFILE_ERR_SUCCESS; }
static pBOOL mmi_dailer_list_get_item(S32 item_index, UI_string_type str_buff, PU8 *img_buff_p, U8 str_img_mask) { unsigned short wtmp[50]; S32 index; U8 num_ascii[MAX_PB_NUMBER_LENGTH + 1 + 1]; U16 num_ascii_wchar[MAX_PB_NUMBER_LENGTH + 1 + 1]; S16 store_index; if (item_index > total_items) { return MMI_FALSE; } #if 0//(NEW_DIAL_SCREEN) // 第一个列表元素设为用户输入 if (item_index == FIRST_USER_INPUT_INDEX) { mmi_ucs2cpy((S8 *)str_buff, (S8 *)input_buffer); *img_buff_p = NULL; return MMI_TRUE; } #endif // 电话本处理 index = list_filter_index_array[item_index]; store_index = g_phb_name_index[index]; if (mmi_ucs2strlen((S8*) (PhoneBook[store_index].alpha_id.name))) { // name mmi_ucs2cpy((S8*) str_buff, (S8*) (PhoneBook[store_index].alpha_id.name)); //stretch_eight_chars_width(str_buff); // phone number #if 1 //>>luchongguang mod 2009-07-10 Bug #12887 存储+86的号码,然后待机界面输入号码前几位快速选择呼叫,字符“+”会被去掉,拨打电话失败 mmi_phb_convert_get_ucs2_number((S8*) num_ascii_wchar, store_index); #else mmi_phb_convert_to_digit_by_storage(num_ascii, PhoneBook[store_index].tel.number, MAX_PB_NUMBER_LENGTH + 1,MMI_NVRAM); mmi_asc_to_ucs2((S8 *)num_ascii_wchar, (S8 *)num_ascii); #endif /* Bug #12994 */ mmi_ucs2cat((S8*) str_buff, (S8 *)L" "); mmi_ucs2cat((S8 *)str_buff, (S8 *)num_ascii_wchar); } else { mmi_phb_convert_get_ucs2_number((S8*) str_buff, store_index); } *img_buff_p = NULL; return MMI_TRUE; }
/***************************************************************************** * FUNCTION * mmi_java_entry_mids_get_confirm * DESCRIPTION * The entry function to get any confirm from user * PARAMETERS * void * RETURNS * void *****************************************************************************/ void mmi_java_entry_mids_get_confirm(void) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ U8 *guiBuffer; S8 *str; U16 title; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ str = mmi_java_mids_get_confirm_ind_msg.confirm_msg; title = mmi_java_mids_get_confirm_ind_msg.confirm_title; EntryNewScreen(SCR_JAVA_GET_CONFIRM, NULL, mmi_java_entry_mids_get_confirm, NULL); guiBuffer = GetCurrGuiBuffer(SCR_JAVA_GET_CONFIRM); if (mmi_java_mids_get_confirm_ind_msg.window_category == JAVA_CONFIRM_NOTIFICATION_CATEGORY) { U16 image = mmi_java_mids_get_confirm_ind_msg.confirm_image; ShowCategory165Screen( STR_GLOBAL_YES, IMG_GLOBAL_YES, STR_GLOBAL_NO, IMG_GLOBAL_NO, (UI_string_type) str, image, guiBuffer); } else if (mmi_java_mids_get_confirm_ind_msg.window_category == JAVA_CONFIRM_TEXT_VIEW_CATEGORY) { ShowCategory74Screen( (U16) title, mmi_java_get_title_icon(), STR_GLOBAL_YES, IMG_GLOBAL_YES, STR_GLOBAL_NO, IMG_GLOBAL_NO, (U8*) str, mmi_ucs2strlen((PS8) str), NULL); } else { ASSERT(0); } SetKeyHandler(mmi_java_mids_get_confirm_cancel_hdlr, KEY_END, KEY_EVENT_DOWN); SetLeftSoftkeyFunction(mmi_java_mids_get_confirm_yes_hdlr, KEY_EVENT_UP); SetRightSoftkeyFunction(mmi_java_mids_get_confirm_no_hdlr, KEY_EVENT_UP); }
/***************************************************************************** * FUNCTION * mmi_vrsi_redial_dial_prompt_message * DESCRIPTION * This function prepare redial prompt message. * PARAMETERS * str_prompt [IN] Prompt string buffer * RETURNS * void *****************************************************************************/ void mmi_vrsi_redial_dial_prompt_message(S8 *str_prompt) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ LOG_CALL *redial_call = NULL; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ /* Append redial type, use first record only */ if (g_vrsi_redial_type == PHB_LND) { redial_call = &chis_p->dialedCalls[0]; mmi_ucs2cpy(str_prompt, GetString(STR_ID_VRSI_REDIAL_DIALED)); } else if (g_vrsi_redial_type == PHB_LNM) { redial_call = &chis_p->missedCalls[0]; mmi_ucs2cpy(str_prompt, GetString(STR_ID_VRSI_REDIAL_MISSED)); } else if (g_vrsi_redial_type == PHB_LNR) { redial_call = &chis_p->recvdCalls[0]; mmi_ucs2cpy(str_prompt, GetString(STR_ID_VRSI_REDIAL_RECEIVED)); } else { DisplayPopup( (U8*) GetString(STR_GLOBAL_ERROR), IMG_GLOBAL_ERROR, TRUE, UI_POPUP_NOTIFYDURATION_TIME, ERROR_TONE); return; } mmi_ucs2cat(str_prompt, (S8*) L" "); /* Append Name or Number */ if (mmi_ucs2strlen(redial_call->pbName)) { mmi_ucs2cat(str_prompt, redial_call->pbName); } else { mmi_ucs2cat(str_prompt, (S8*) redial_call->number); } /* Append dialing string */ mmi_ucs2cat(str_prompt, (S8*) L" "); mmi_ucs2cat(str_prompt, GetString(STR_ID_VRSI_DIALING_PROMPT)); }
/***************************************************************************** * FUNCTION * mmi_wprintf * DESCRIPTION * * PARAMETERS * mod_id [IN] * fmt [IN] * wstr [IN] * RETURNS * void *****************************************************************************/ void mmi_wprintf(module_type mod_id, U32 fmt, WCHAR *wstr) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ /* * MMI_FW_BUFFER_TRACE, MMI_COMMON_APP_BUFFER_TRACE, MMI_MEDIA_APP_BUFFER_TRACE, ... * will expand to xxxxx__enum, xxxxx_size when compile the C files */ switch (mod_id) { case MOD_MMI_FW: kal_buffer_trace(fmt, MMI_FW_BUFFER_TRACE, (mmi_ucs2strlen((S8 *)wstr)+1)*ENCODING_LENGTH, (kal_uint8*)wstr); break; case MOD_MMI_COMMON_APP: kal_buffer_trace(fmt, MMI_COMMON_APP_BUFFER_TRACE, (mmi_ucs2strlen((S8 *)wstr)+1)*ENCODING_LENGTH, (kal_uint8*)wstr); break; case MOD_MMI_MEDIA_APP: kal_buffer_trace(fmt, MMI_MEDIA_APP_BUFFER_TRACE, (mmi_ucs2strlen((S8 *)wstr)+1)*ENCODING_LENGTH, (kal_uint8*)wstr); break; case MOD_MMI_CONN_APP: kal_buffer_trace(fmt, MMI_CONN_APP_BUFFER_TRACE, (mmi_ucs2strlen((S8 *)wstr)+1)*ENCODING_LENGTH, (kal_uint8*)wstr); break; case MOD_MMI_INET_APP: kal_buffer_trace(fmt, MMI_INET_APP_BUFFER_TRACE, (mmi_ucs2strlen((S8 *)wstr)+1)*ENCODING_LENGTH, (kal_uint8*)wstr); break; default: kal_buffer_trace(fmt, MMI_BUFFER_TRACE, (mmi_ucs2strlen((S8 *)wstr)+1)*ENCODING_LENGTH, (kal_uint8*)wstr); } }
MMI_BOOL mmi_da_wps_session_auth_UCS2(wps_session_handle session, U16 *username, U16 *password) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ U8 *usr, *pwd; MMI_BOOL bret; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ ASSERT(username && password); usr = OslMalloc(mmi_ucs2strlen((S8*)username)+1); mmi_ucs2_to_asc((S8*)usr, (S8*)username); pwd = OslMalloc(mmi_ucs2strlen((S8*)password)+1); mmi_ucs2_to_asc((S8*)pwd, (S8*)password); bret = mmi_da_wps_session_auth(session, usr, pwd); OslMfree(usr); OslMfree(pwd); return bret; }
void gcj_StubPlatformRequest(unsigned short *url) { #ifdef JATAAYU_SUPPORT unsigned char urlstring [200]; UnicodeToAnsii(urlstring,url); gcj_TraceOut(0,"gcj_StubPlatformRequest URL :%s",urlstring); unsigned short *urldata = OslMalloc(mmi_ucs2strlen(url)*sizeof(unsigned short)+2) ; if (!urldata) abort(); UCS2Strncpy(urldata, url, mmi_ucs2strlen(url)); COS_EVENT evt; evt.nEventId = (unsigned int)MSG_ID_MMI_JAVA_RUN_WAP_REQ; evt.nParam1 = urldata; gcj_StubSendEvent(&evt,MOD_MMI); // gcj_media_semId = gcj_StubNewSemphone(); // gcj_StubTakeSemphone(gcj_media_semId); // gcj_SoundEnd = 1; #else #endif }
/***************************************************************************** * FUNCTION * mmi_java_entry_get_permission * DESCRIPTION * The entry function to get user's permission to use Network or some * resource. * PARAMETERS * void * RETURNS * void *****************************************************************************/ void mmi_java_entry_get_permission(void) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ U8 *guiBuffer; U16 strid = mmi_java_permission_strid(mmi_java_get_permission_msg.title_id); S8 *buffer; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ EntryNewScreen(SCR_JAVA_GET_PERMISSION, NULL, mmi_java_entry_get_permission, NULL); guiBuffer = GetCurrGuiBuffer(SCR_JAVA_GET_PERMISSION); mmi_java_get_permission_index = mmi_java_get_permission_msg.chosen_id; buffer = (S8*)subMenuData; kal_mem_set(buffer, 0, MAX_SUB_MENUS * MAX_SUB_MENU_SIZE); mmi_ucs2cpy((S8*)buffer, (S8*)GetString(strid)); if(mmi_java_get_permission_msg.appendix) { mmi_ucs2cat((S8*)buffer, (S8*)mmi_java_get_permission_msg.appendix); } ShowCategory74Screen( STR_JAVA_PERMISSION_TITLE, mmi_java_get_title_icon(), STR_GLOBAL_YES, IMG_GLOBAL_YES, STR_GLOBAL_NO, IMG_GLOBAL_NO, (PU8) buffer, mmi_ucs2strlen((PS8) buffer), NULL); SetLeftSoftkeyFunction(mmi_java_get_permission_lsk_hdlr, KEY_EVENT_UP); SetRightSoftkeyFunction(mmi_java_get_permission_rsk_hdlr, KEY_EVENT_UP); }
/***************************************************************************** * FUNCTION * srv_ctm_act_send_text * DESCRIPTION * * PARAMETERS * info [?] * RETURNS * void *****************************************************************************/ MMI_BOOL srv_ctm_act_send_text(void* info) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ srv_ctm_send_text_req_struct *msg = (srv_ctm_send_text_req_struct*)info; srv_ctm_rsp_struct rsp; U8 length; srv_ctm_rsp_cb_func_ptr cb; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ length = (U8)mmi_ucs2strlen((CHAR*)msg->text); if (!info || !msg->text || !length || (length > CTM_SEND_TEXT_CHAR_MAX_NUM)) { MMI_TRACE(MMI_COMMON_TRC_G5_CALL, TRC_SRV_CTM_ACT_SEND_TEXT_ERR); cb = srv_ctm_p->rsp_cb; srv_ctm_p->rsp_cb = NULL; srv_ctm_p->curr_act = SRV_CTM_ACT_IDLE; /* send rsp to ctm app */ if(cb) { rsp.result = MMI_FALSE; (*cb)(&rsp); } return MMI_FALSE; } srv_ctm_p->state = SRV_CTM_STATE_SENDING; srv_ctm_med_send_text_req((CHAR*)msg->text); return MMI_TRUE; }
/***************************************************************************** * FUNCTION * PmgRemoveFileDAFExt * DESCRIPTION * * PARAMETERS * buf [?] * RETURNS * void *****************************************************************************/ void PmgRemoveFileDAFExt(S8 *buf) /* Notice! This function will change the buffer context */ { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ U16 len = (U16) mmi_ucs2strlen(buf); S16 *pbuf = (S16*) buf; S16 deter = '.'; S16 ExtWord_U[5]; S16 ExtWord_L[5]; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ memset(ExtWord_U, 0, sizeof(ExtWord_U)); memset(ExtWord_L, 0, sizeof(ExtWord_L)); ExtWord_U[0] = 0x002E; ExtWord_L[0] = 0x002E; ExtWord_U[1] = 0x004D; ExtWord_L[1] = 0x006D; ExtWord_U[2] = 0x0050; ExtWord_L[2] = 0x0070; ExtWord_U[3] = 0x0033; ExtWord_L[3] = 0x0033; ExtWord_U[4] = 0x0000; ExtWord_L[4] = 0x0000; while (len > 0) { if (memcmp((pbuf + len), &deter, 2) == 0) { if ((mmi_ucs2ncmp((S8*) (pbuf + len), (S8*) ExtWord_U, 4) == 0) || (mmi_ucs2ncmp((S8*) (pbuf + len), (S8*) ExtWord_L, 4) == 0)) { *(pbuf + len) = 0x0000; } break; } len--; } }
/***************************************************************************** * FUNCTION * mmi_brw_stored_page_rename * DESCRIPTION * This func is used for getting the stored page properties * PARAMETERS * void * RETURNS * void *****************************************************************************/ void mmi_brw_stored_page_rename(void) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ if(!mmi_ucs2strlen((S8*)g_brw_current_title)) { DisplayPopup( (U8*) GetString(STR_ID_BRW_FILENAME_EMPTY), (U16) IMG_GLOBAL_ERROR, 0, UI_POPUP_NOTIFYDURATION_TIME, (U8) ERROR_TONE); DeleteNScrId(SCR_ID_BRW_STORED_PAGE_RENAME); return; } mmi_brw_stored_page_rename_saved_page_req((U8*)g_brw_current_title); }
/***************************************************************************** * FUNCTION * PmgRemoveFileExt * DESCRIPTION * * PARAMETERS * buf [?] * RETURNS * void *****************************************************************************/ void PmgRemoveFileExt(S8 *buf) /* Notice! This function will change the buffer context */ { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ U16 len = (U16) mmi_ucs2strlen(buf); S16 *pbuf = (S16*) buf; S16 deter = '.'; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ while (len > 0) { if (memcmp((pbuf + len), &deter, 2) == 0) { *(pbuf + len) = 0x0000; break; } len--; } }
/***************************************************************************** * FUNCTION * PmgGetFileExt * DESCRIPTION * * PARAMETERS * buf [?] * RETURNS * *****************************************************************************/ S8 *PmgGetFileExt(S8 *buf) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ U16 len = (U16) mmi_ucs2strlen(buf); S16 *pbuf = (S16*) buf; S16 deter = '.'; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ while (len > 0) { if (memcmp((pbuf + len), &deter, 2) == 0) { return (S8*) (pbuf + len + 1); } len--; } return NULL; }
/***************************************************************************** * FUNCTION * set_bidi_cursor_pos * DESCRIPTION * * PARAMETERS * input_str [?] * cursor_pos [IN] * cursor_mark [IN] * RETURNS * *****************************************************************************/ pBOOL set_bidi_cursor_pos(U8 *input_str, U16 cursor_pos, U16 cursor_mark) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ U16 sLen, iCount; U8 cTemp[2]; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ mmi_wc_to_ucs2(cursor_mark, (U8*) & sLen, cTemp); sLen = (U16) mmi_ucs2strlen((const S8*)input_str); if (sLen < cursor_pos) { return FALSE; } for (iCount = cursor_pos; iCount <= sLen; iCount++) { U8 cTempSwap; cTempSwap = input_str[iCount * BIDI_ENCODING_LENGTH]; input_str[iCount * BIDI_ENCODING_LENGTH] = cTemp[0]; cTemp[0] = cTempSwap; cTempSwap = input_str[iCount * BIDI_ENCODING_LENGTH + 1]; input_str[iCount * BIDI_ENCODING_LENGTH + 1] = cTemp[1]; cTemp[1] = cTempSwap; } input_str[iCount * BIDI_ENCODING_LENGTH] = cTemp[0]; input_str[iCount * BIDI_ENCODING_LENGTH + 1] = cTemp[1]; return TRUE; }
/***************************************************************************** * FUNCTION * mmi_java_display_push_busy * DESCRIPTION * Display VM is busy for timealarm push * PARAMETERS * void * RETURNS * void *****************************************************************************/ void mmi_java_display_push_busy(void) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ EntryNewScreen(SCR_JAVA_PUSH_BUSY, NULL, mmi_java_display_push_busy, NULL); ShowCategory74Screen( STR_JAVA_VM_BUSY, mmi_java_get_title_icon(), STR_GLOBAL_OK, IMG_GLOBAL_OK, (U16) 0, (U16) 0, (PU8) GetString(STR_JAVA_PUSH_BUSY), mmi_ucs2strlen(GetString(STR_JAVA_PUSH_BUSY)), NULL); SetLeftSoftkeyFunction(mmi_java_display_push_busy_ok_hdlr, KEY_EVENT_UP); }
/***************************************************************************** * FUNCTION * mmi_ucm_app_make_call_with_source * DESCRIPTION * Sample code * PARAMETERS * call_type [IN] Call type * num_uri [IN] Number or URI in unicode string * RETURNS * void *****************************************************************************/ MMI_BOOL mmi_ucm_app_make_call_with_source(mmi_ucm_module_origin_enum module_id, mmi_ucm_call_type_enum call_type, U8 *num_uri) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ S32 unicodeLen = 0; U8* num_uri_ascii = NULL; MMI_BOOL result = TRUE; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ if ((mmi_bootup_get_active_flight_mode())) { result = FALSE; return result; } #ifdef __MMI_WLAN_FEATURES__ else if ((mmi_netset_get_active_preferred_mode() == P_WLAN_ONLY) && (call_type != MMI_UCM_VOIP_CALL_TYPE)) { result = FALSE; return result; } #endif /* __MMI_WLAN_FEATURES__ */ else if (mmi_ucm_is_pending_action() == MMI_TRUE) { result = FALSE; return result; } unicodeLen = (MMI_UCM_MAX_NUM_URI_LEN > mmi_ucs2strlen((S8*)num_uri)) ? (mmi_ucs2strlen((S8*)num_uri)) : (MMI_UCM_MAX_NUM_URI_LEN - 1); num_uri_ascii = OslMalloc((unicodeLen + 1) * ENCODING_LENGTH); memset(num_uri_ascii, 0, (unicodeLen + 1) * ENCODING_LENGTH); mmi_ucs2_n_to_asc((S8*)num_uri_ascii, (S8*)num_uri, unicodeLen * ENCODING_LENGTH); /* do not check sos number for SAT call */ if ((module_id != MMI_UCM_FROM_SAT) && (mmi_ucm_is_sos_number(call_type, num_uri_ascii) == TRUE)) { if (mmi_ucm_is_sos_in_call_list() == FALSE) { #if defined(__MMI_DUAL_SIM_MASTER__) mmi_ucm_set_call_channel(call_type); #endif /* __MMI_DUAL_SIM_MASTER__ */ g_ucm_p->mo_info.module_id = module_id; g_ucm_p->mo_info.dial_type = call_type; memset(g_ucm_p->mo_info.dial_num.num_uri, 0, MMI_UCM_MAX_NUM_URI_LEN); mmi_ucs2_n_to_asc((S8*)g_ucm_p->mo_info.dial_num.num_uri, (S8*)num_uri, unicodeLen * ENCODING_LENGTH); /* If CSD number is ECC, the CSD call fails while ECC voice should be dialed. */ if (call_type & MMI_UCM_CSD_CALL_TYPE) { g_ucm_p->mo_info.dial_type = MMI_UCM_VOICE_CALL_TYPE; if (g_ucm_p->mo_info.module_id == MMI_UCM_FROM_ABM) { g_ucm_p->mo_info.module_id = MMI_UCM_FROM_IDLE; } result = FALSE; } else if (call_type & MMI_UCM_CSD_CALL_TYPE_SIM2) { g_ucm_p->mo_info.dial_type = MMI_UCM_VOICE_CALL_TYPE_SIM2; if (g_ucm_p->mo_info.module_id == MMI_UCM_FROM_ABM) { g_ucm_p->mo_info.module_id = MMI_UCM_FROM_IDLE; } result = FALSE; } if (mmi_ucm_app_total_call(MMI_UCM_CALL_TYPE_ALL) != 0) { PRINT_INFORMATION("\n[mmi_ucm_app_make_call_with_source] End All Calls before Dial SOS\n"); g_ucm_p->mo_info.is_wait_dial = TRUE; mmi_ucm_end_all_action(); } else { PRINT_INFORMATION("\n[mmi_ucm_app_make_call_with_source] Directly Dial SOS\n"); g_ucm_p->mo_info.is_wait_dial = TRUE; mmi_ucm_dial_action(); } } else /* not allow to dial this sos number */ { result = FALSE; } } else /* not a sos number */ { if (!strlen((S8*)num_uri_ascii)) /* empty number */ { result = FALSE; } else if ((!mmi_bootup_is_sim_valid()) && (call_type != MMI_UCM_VOIP_CALL_TYPE) && !(call_type & MMI_UCM_SIM2_CALL_TYPE_ALL)) { result = FALSE; } #if defined(__MMI_DUAL_SIM_MASTER__) else if ((!mmi_bootup_is_sim2_valid()) && (call_type & MMI_UCM_SIM2_CALL_TYPE_ALL)) { result = FALSE; } #endif /* __MMI_DUAL_SIM_MASTER__ */ /* Data/CSD call priority is lower than voice call priority. */ else if (mmi_ucm_app_total_call(MMI_UCM_CALL_TYPE_ALL) && (call_type & (MMI_UCM_CALL_TYPE_DATA_CSD_ALL))) { result = FALSE; } else if ((mmi_ucm_is_busy() == FALSE) && (mmi_ucm_dial_option() == TRUE)) { #if defined(__MMI_DUAL_SIM_MASTER__) mmi_ucm_set_call_channel(call_type); #endif /* __MMI_DUAL_SIM_MASTER__ */ g_ucm_p->mo_info.module_id = module_id; g_ucm_p->mo_info.dial_type = call_type; memset(g_ucm_p->mo_info.dial_num.num_uri, 0, MMI_UCM_MAX_NUM_URI_LEN); mmi_ucs2_n_to_asc((S8*)g_ucm_p->mo_info.dial_num.num_uri, (S8*)num_uri, unicodeLen * ENCODING_LENGTH); if ((g_ucm_p->mo_info.dial_type & MMI_UCM_VOICE_CALL_TYPE_ALL) && (SS_OPERATION == applib_ss_string_parsing((U8*)g_ucm_p->mo_info.dial_num.num_uri, (U8)strlen((S8*)g_ucm_p->mo_info.dial_num.num_uri)))) { /* dial directly if SS operation or SIM operation */ mmi_ucm_dial_action(); } else if (mmi_ucm_app_total_call(MMI_UCM_CALL_TYPE_DATA_CSD_ALL) && (g_ucm_p->mo_info.dial_type & MMI_UCM_CALL_TYPE_NO_DATA_CSD)) { /* normal call and data call cannot co-exist */ PRINT_INFORMATION("\n[mmi_ucm_app_make_call_with_source] End All Calls before Dial %d\n", g_ucm_p->mo_info.dial_type); g_ucm_p->mo_info.is_wait_dial = TRUE; mmi_ucm_end_all_action(); } else if (mmi_ucm_get_active_group(MMI_UCM_CALL_TYPE_ALL, FALSE, g_ucm_p->call_misc.index_list) == MMI_UCM_MAX_ACTIVE_TAB) { mmi_ucm_hold_and_dial_action(); } else { mmi_ucm_dial_action(); } result = TRUE; } else { result = FALSE; } } if (result == TRUE) { /* abort auto redial if necessary */ if (GetExitScrnID() == SCR_ID_UCM_AUTO_REDIAL || IsScreenPresent(SCR_ID_UCM_AUTO_REDIAL)) { StopTimer(UCM_AUTO_REDIAL_TIMER); ClearDelScrnIDCallbackHandler(SCR_ID_UCM_AUTO_REDIAL, NULL); if (GetExitScrnID() == SCR_ID_UCM_AUTO_REDIAL) { EntryNewScreen(GLOBAL_SCR_DUMMY, NULL, NULL, NULL); } DeleteScreenIfPresent(SCR_ID_UCM_AUTO_REDIAL); if (g_ucm_p->auto_redial.abort_hdlr) { g_ucm_p->auto_redial.abort_hdlr(); } memset(&g_ucm_p->auto_redial, 0, sizeof(mmi_ucm_auto_redial_struct)); } } OslMfree(num_uri_ascii); return result; }
/***************************************************************************** * FUNCTION * mmi_ucm_app_make_call * DESCRIPTION * Sample code * PARAMETERS * call_type [IN] Call type * num_uri [IN] Number or URI in unicode string * RETURNS * void *****************************************************************************/ void mmi_ucm_app_make_call(mmi_ucm_call_type_enum call_type, U8 *num_uri) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ S32 unicodeLen = 0; #ifdef __MMI_BG_SOUND_EFFECT__ U8 num_type = 0; #endif /* __MMI_BG_SOUND_EFFECT__ */ /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ unicodeLen = (MMI_UCM_MAX_NUM_URI_LEN > mmi_ucs2strlen((S8*)num_uri)) ? (mmi_ucs2strlen((S8*)num_uri)) : (MMI_UCM_MAX_NUM_URI_LEN - 1); g_ucm_p->mo_info.module_id = MMI_UCM_FROM_IDLE; g_ucm_p->mo_info.dial_type = call_type; memset(g_ucm_p->mo_info.dial_num.num_uri, 0, MMI_UCM_MAX_NUM_URI_LEN); mmi_ucs2_n_to_asc((S8*)g_ucm_p->mo_info.dial_num.num_uri, (S8*)num_uri, unicodeLen * ENCODING_LENGTH); #ifdef __MMI_BG_SOUND_EFFECT__ num_type = applib_ss_string_parsing((U8*)g_ucm_p->mo_info.dial_num.num_uri, (U8)unicodeLen); if (mmi_bgsnd_common_get_mo_bgs_permit_state() && ((call_type & MMI_UCM_VOICE_CALL_TYPE_ALL) || (call_type == MMI_UCM_VOIP_CALL_TYPE)) && mmi_ucm_app_total_call(MMI_UCM_CALL_TYPE_NO_CSD) == 0 && mmi_ucm_emergency_call_present() == FALSE && num_type == CC_OPERATION && #ifdef __CTM_SUPPORT__ (mmi_gsm_ctm_is_on() == FALSE) && #endif /* __CTM_SUPPORT__ */ mmi_ucm_is_sos_number(g_ucm_p->mo_info.dial_type, g_ucm_p->mo_info.dial_num.num_uri) == FALSE && mmi_bootup_get_active_flight_mode() == FLIGHTMODE_OFF) { if (g_ucm_p->call_misc.is_bgs_selected == FALSE) { /* select background sound effect */ mmi_ucm_entry_bgs_effect_select(); return; } else { /* reset the flag and continue outgoing call procedure */ g_ucm_p->call_misc.is_bgs_selected = FALSE; /* delete idle dial pad related screens */ mmi_idle_delete_dialpad_from_history(); } } #endif /* __MMI_BG_SOUND_EFFECT__ */ mmi_ucm_outgoing_call_sendkey(); /* abort auto redial if necessary */ if (GetExitScrnID() == SCR_ID_UCM_AUTO_REDIAL || IsScreenPresent(SCR_ID_UCM_AUTO_REDIAL)) { StopTimer(UCM_AUTO_REDIAL_TIMER); ClearDelScrnIDCallbackHandler(SCR_ID_UCM_AUTO_REDIAL, NULL); if (GetExitScrnID() == SCR_ID_UCM_AUTO_REDIAL) { EntryNewScreen(GLOBAL_SCR_DUMMY, NULL, NULL, NULL); } DeleteScreenIfPresent(SCR_ID_UCM_AUTO_REDIAL); if (g_ucm_p->auto_redial.abort_hdlr) { g_ucm_p->auto_redial.abort_hdlr(); } memset(&g_ucm_p->auto_redial, 0, sizeof(mmi_ucm_auto_redial_struct)); } }
static BOOL mmi_da_wps_send_http_req(U8 request_id, U8 http_method, S8 * url, S8 * post_data, PU16 file_path) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ wps_http_req_struct *http_req; wps_http_req_var_struct http_req_var; peer_buff_struct *peer_buff_ptr = NULL; U16 pdu_length; U16 len; FS_HANDLE hd; static S8 range_header[30]; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ DA_WPS_TRACE(MMI_DA_WPS_TRACE_GROUP, MMI_DA_OMA_SEND_HTTP_REQ, request_id); ASSERT(_da_wps_is_ready()); ASSERT(request_id < MMI_DA_WPS_REQUEST_ID_RANGE); http_req = (wps_http_req_struct *) construct_local_para(sizeof(wps_http_req_struct), TD_CTRL); http_req->channel_id = da_wps_context.channel_id; http_req->request_id = request_id + MMI_DA_WPS_REQUEST_ID_BASE; http_req->method = http_method; http_req->option = WPS_HTTP_OPTION_NO_CACHE; http_req_var.request_url_len = (kal_uint32) strlen(url); http_req_var.request_url = (kal_uint8 *) url; http_req_var.request_header_len = 0; http_req_var.request_header = NULL; if (http_method == WPS_HTTP_METHOD_POST) { ASSERT(post_data != NULL); http_req->reply_type = WPS_DATA_TYPE_BUFFER; http_req->reply_segment_len = 0; /* no use here */ http_req->post_type = WPS_DATA_TYPE_BUFFER; http_req->post_path[0] = '\0'; http_req->post_path[1] = '\0'; http_req->post_total_len = strlen(post_data); http_req->more_post = MMI_FALSE; http_req_var.post_segment_len = strlen(post_data); http_req_var.post_segment = (kal_uint8 *) post_data; http_req_var.request_header_len = strlen("Content-Type: text/plain; charset=UTF-8\r\n"); http_req_var.request_header = (kal_uint8 *)"Content-Type: text/plain; charset=UTF-8\r\n"; } else { ASSERT(file_path != NULL && mmi_ucs2strlen((S8 *) file_path) < 256); http_req->reply_type = WPS_DATA_TYPE_FILE; mmi_ucs2cpy((S8 *) http_req->reply_path, (S8 *) file_path); http_req->reply_segment_len = 0; /* no use here */ http_req->post_type = WPS_DATA_TYPE_BUFFER; http_req->post_path[0] = '\0'; http_req->post_path[1] = '\0'; http_req->post_total_len = 0; http_req->more_post = MMI_FALSE; http_req_var.post_segment_len = 0; http_req_var.post_segment = NULL; // If the target file exist, it means RESUME if ((hd = FS_Open((PU16)file_path, FS_READ_ONLY)) >= 0) { UINT file_size; FS_GetFileSize(hd, &file_size); sprintf(range_header, "Range:bytes=%d-", file_size); FS_Close(hd); http_req_var.request_header_len = strlen(range_header); http_req_var.request_header = (kal_uint8 *)range_header; } } pdu_length = wps_pun_var_part(WPS_PUN_SIZE, MSG_ID_WPS_HTTP_REQ, &http_req_var, NULL); if (pdu_length > 0) { peer_buff_ptr = construct_peer_buff(pdu_length, 0, 0, TD_RESET); if (wps_pun_var_part(WPS_PUN_PACK, MSG_ID_WPS_HTTP_REQ, &http_req_var, get_pdu_ptr(peer_buff_ptr, &len)) != pdu_length) { free_peer_buff(peer_buff_ptr); peer_buff_ptr = NULL; } } mmi_da_send_ilm(http_req, peer_buff_ptr, MSG_ID_WPS_HTTP_REQ, MOD_WPS); SetProtocolEventHandler((PsFuncPtr) mmi_da_wps_recv_http_rsp, MSG_ID_WPS_HTTP_RSP); SetProtocolEventHandler((PsFuncPtr) mmi_da_wps_recv_dl_progress_ind, MSG_ID_WPS_DL_PROGRESS_IND); SetProtocolEventHandler((PsFuncPtr) mmi_da_wps_recv_http_auth_ind, MSG_ID_WPS_HTTP_AUTH_IND); return MMI_TRUE; }
/***************************************************************************** * FUNCTION * mmi_netset_entry_user_ctrl_plmn_add_one * DESCRIPTION * * PARAMETERS * void * RETURNS * void *****************************************************************************/ void mmi_netset_entry_user_ctrl_plmn_add_one(void) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ U8 plmn_ansii[MAX_PLMN_LEN + 1], opname_asnii[MAX_LENGTH_DISPLAY_NAME]; U32 plmn_usr; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ if (mmi_ucs2strlen((S8*) gUserCtrlPlmnList.PlmnAddNumber) < MAX_PLMN_LEN - 1 || mmi_ucs2cmp((S8*) gUserCtrlPlmnList.PlmnAddString, (S8*) L"") == 0) { DisplayPopup( (PU8) GetString(STR_GLOBAL_UNFINISHED), IMG_GLOBAL_UNFINISHED, 1, UI_POPUP_NOTIFYDURATION_TIME, ERROR_TONE); DeleteScreenIfPresent(SCR_ID_NETSET_USER_CTRL_PLMN_OPTIONS); DeleteScreenIfPresent(SCR_ID_NETSET_USER_CTRL_PLMN_ADD); return; } mmi_ucs2_to_asc((S8*) plmn_ansii, (S8*) gUserCtrlPlmnList.PlmnAddNumber); mmi_ucs2_to_asc((S8*) opname_asnii, (S8*) gUserCtrlPlmnList.PlmnAddString); CloseCategory57Screen(); if (mmi_netset_retrieve_opname_from_plmn(plmn_ansii, NULL) >= 0) { /* duplicated */ DisplayPopup( (PU8) GetString(STR_ID_NETSET_DUPLICATED_PLMN), IMG_GLOBAL_UNFINISHED, 1, UI_POPUP_NOTIFYDURATION_TIME, ERROR_TONE); DeleteScreenIfPresent(SCR_ID_NETSET_USER_CTRL_PLMN_OPTIONS); DeleteScreenIfPresent(SCR_ID_NETSET_USER_CTRL_PLMN_ADD); return; } DisplayPopup( (U8*) GetString(STR_GLOBAL_DONE), IMG_GLOBAL_ACTIVATED, 1, UI_POPUP_NOTIFYDURATION_TIME, (U8) SUCCESS_TONE); DeleteScreenIfPresent(SCR_ID_NETSET_USER_CTRL_PLMN_OPTIONS); DeleteScreenIfPresent(SCR_ID_NETSET_USER_CTRL_PLMN_ADD); /* write data to nvram */ plmn_usr = mmi_netset_plmn_str_2_bcd_short(plmn_ansii); memset(gUserCtrlPlmnList.PrefPLMN[gUserCtrlPlmnList.PlmnListSize], 0, 24); memcpy(gUserCtrlPlmnList.PrefPLMN[gUserCtrlPlmnList.PlmnListSize], (char*)(&plmn_usr), sizeof(U32)); memcpy( gUserCtrlPlmnList.PrefPLMN[gUserCtrlPlmnList.PlmnListSize] + sizeof(U32), opname_asnii, strlen((S8*) opname_asnii)); gUserCtrlPlmnList.PlmnListSize++; mmi_netset_access_user_ctrl_plmn_nvram(1); RefreshNwProviderName(gPLMN); }
/***************************************************************************** * FUNCTION * jma_audio_recorder_start_record * DESCRIPTION * This function submit Record request to media task. * PARAMETERS * mma_type [IN] Int recorder * java_recorder [IN] * RETURNS * int - 0 *****************************************************************************/ kal_bool jma_mvm_audio_recorder_start_record(kal_int32 vm_id, kal_int32 java_recorder) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ mdi_result ret = MDI_AUDIO_FAIL; kal_int32 ticks = kal_milli_secs_to_ticks(200); /* 200 ms */ /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ kal_trace(TRACE_GROUP_4, FUNC_J2ME_JMA_MVM_AUDIO_RECORDER_START_RECORD, vm_id, java_recorder, audio_recorder[vm_id].state); JMA_CS_ENTER(vm_id, KAL_FALSE); if (audio_recorder[vm_id].id != java_recorder) { kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_RESOURCE_ERROR, audio_recorder[vm_id].id); JMA_CS_LEAVE(KAL_FALSE); } if (vm_id != jam_mvm_get_current_vm_id()) { JMA_CS_LEAVE(KAL_TRUE); } //#ifdef __MMI_BACKGROUND_CALL__ if (jma_media_player_is_in_background_call()) { JMA_CS_LEAVE(KAL_FALSE); } //#endif /* __MMI_BACKGROUND_CALL__ */ if (mmi_ucs2strlen((PS8) audio_recorder[vm_id].filename) == 0) { JMA_CS_LEAVE(KAL_FALSE); } if (audio_recorder[vm_id].state == JAVA_MEDIA_STATE_READY) { ret = mdi_audio_start_record(audio_recorder[vm_id].filename, audio_recorder[vm_id].format, 0, jma_audio_recorder_record_result_hdlr, NULL); } else if (audio_recorder[vm_id].state == JAVA_MEDIA_STATE_PAUSED) { ret = mdi_audio_resume(jma_audio_recorder_record_result_hdlr, NULL); } /* Handle result */ if (ret == MDI_AUDIO_SUCCESS) { kal_trace(TRACE_GROUP_4, J2ME_MMA_STATE_TRANSITION, vm_id, audio_recorder[vm_id].state, JAVA_MEDIA_STATE_RECORDING); audio_recorder[vm_id].state = JAVA_MEDIA_STATE_RECORDING; if (audio_recorder[vm_id].record_size_limit != -1) { kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_STACK_START_TIMER); stack_start_timer(&java_media_timer, JAVA_MEDIA_TIMER_AUDIO_RECORDER + vm_id, ticks); } JMA_CS_LEAVE(KAL_TRUE); } else { kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_MARKER_FAIL); kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_D, ret); JMA_CS_LEAVE(KAL_FALSE); } }
/***************************************************************************** * FUNCTION * jma_audio_recorder_set_record_location * DESCRIPTION * The function sets record location * PARAMETERS * mma_type [IN] * java_recorder [IN] * path [?] * RETURNS * int - 0 *****************************************************************************/ kal_bool jma_mvm_audio_recorder_set_record_location(kal_int32 vm_id, kal_int32 java_recorder, kal_char *path) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ kal_int32 file_handle; kal_int32 result, length; kal_wchar *ext_name; kal_char *file_name; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ kal_trace(TRACE_GROUP_4, FUNC_J2ME_JMA_MVM_AUDIO_RECORDER_SET_RECORD_LOCATION, vm_id, java_recorder, audio_recorder[vm_id].state); JMA_CS_ENTER(vm_id, KAL_FALSE); if (audio_recorder[vm_id].id != java_recorder) { kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_RESOURCE_ERROR, audio_recorder[vm_id].id); JMA_CS_LEAVE(KAL_FALSE); } mmi_ucs2ncpy((PS8) audio_recorder[vm_id].filename, (PS8) path, J2ME_PATH_BUFFER_SIZE); length = mmi_ucs2strlen((S8*) audio_recorder[vm_id].filename); if (length < 4) { JMA_CS_LEAVE(KAL_FALSE); } /* Drive name can not equal to SYSTEM DRIVE */ if ((int)audio_recorder[vm_id].filename[0] == SRV_FMGR_SYSTEM_DRV) { kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_MARKER_FAIL); JMA_CS_LEAVE(KAL_FALSE); } /* assign format */ ext_name = &audio_recorder[vm_id].filename[length - 4]; if (kal_wstrcmp(ext_name, L".amr") == 0 || kal_wstrcmp(ext_name, L".AMR") == 0) { audio_recorder[vm_id].format = MED_TYPE_AMR; } else if (kal_wstrcmp(ext_name, L".wav") == 0 || kal_wstrcmp(ext_name, L".WAV") == 0) { audio_recorder[vm_id].format = MED_TYPE_WAV; } #if defined (AMRWB_ENCODE) else if (kal_wstrcmp(ext_name, L".awb") == 0 || kal_wstrcmp(ext_name, L".AWB") == 0) { audio_recorder[vm_id].format = MED_TYPE_AMR_WB; } #endif #if defined (__VORBIS_ENCODE__) else if (kal_wstrcmp(ext_name, L".ogg") == 0 || kal_wstrcmp(ext_name, L".OGG") == 0) { audio_recorder[vm_id].format = MED_TYPE_VORBIS; } #endif else { kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_MARKER_FAIL); JMA_CS_LEAVE(KAL_FALSE); } kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_D, audio_recorder[vm_id].format); /* Check if valid file path and delete the file */ result = FS_GetDevStatus(audio_recorder[vm_id].filename[0], FS_MOUNT_STATE_ENUM); if (result == FS_NO_ERROR) { /* Check if valid file name */ file_name = kal_dchar_strrchr((S8*) audio_recorder[vm_id].filename, '\\'); if (file_name) { file_name += 2; if (!srv_fmgr_path_is_filename_valid((const WCHAR*)file_name)) { kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_MARKER_FAIL); JMA_CS_LEAVE(KAL_FALSE); } /* File name can not start with space: FS API restriction */ if (*file_name == ' ' && *(file_name + 1) == 0) { kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_MARKER_FAIL); JMA_CS_LEAVE(KAL_FALSE); } } else /* Do not contain '\\' */ { kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_MARKER_FAIL); JMA_CS_LEAVE(KAL_FALSE); } /* Check if dir exist or if valid dir */ *((kal_int16*)file_name) = 0; file_handle = FS_Open(audio_recorder[vm_id].filename, FS_OPEN_DIR | FS_READ_ONLY); if (file_handle > 0) { FS_Close(file_handle); } else { kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_MARKER_FAIL); JMA_CS_LEAVE(KAL_FALSE); } /* Copy again to repair audio_recorder.filename */ mmi_ucs2ncpy((PS8) audio_recorder[vm_id].filename, (PS8) path, J2ME_PATH_BUFFER_SIZE); /* Check if file exist */ file_handle = FS_Open(audio_recorder[vm_id].filename, FS_READ_ONLY); if (file_handle > 0) { result = FS_Close(file_handle); /* need to close file before delete */ result = FS_Delete(audio_recorder[vm_id].filename); if (result != FS_NO_ERROR) { kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_D, result); JMA_CS_LEAVE(KAL_FALSE); } } JMA_CS_LEAVE(KAL_TRUE); } else { kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_MARKER_FAIL); kal_trace(TRACE_GROUP_4, INFO_J2ME_MMA_D, result); JMA_CS_LEAVE(KAL_FALSE); } }
/***************************************************************************** * FUNCTION * csb_frm_select_folder_callback * DESCRIPTION * * PARAMETERS * U32 cat_ID * RETURNS * void *****************************************************************************/ void csb_frm_select_folder_callback(void *fullpath, int is_short) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ U8 csb_drive_phone_unicode[10]; U8 csb_drive_card_unicode[10]; U8 csb_default_folder_unicode[10]; U8 temp_ascii[5]; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ UI_UNUSED_PARAMETER(is_short); sprintf((S8*)temp_ascii, "%c%s", MMI_PUBLIC_DRV, ":\\"); mmi_asc_to_ucs2((PS8) csb_drive_phone_unicode, (PS8) temp_ascii); sprintf((S8*)temp_ascii, "%c%s", MMI_CARD_DRV, ":\\"); mmi_asc_to_ucs2((PS8) csb_drive_card_unicode, (PS8) temp_ascii); mmi_asc_to_ucs2((PS8) csb_default_folder_unicode, (PS8) "CSB\\"); /* If the file path returned by FileManager is longer than MAX, show error popup */ if(fullpath) { if((mmi_ucs2strlen((char*) fullpath)) > MAX_CSB_PATH_LENGTH) { DisplayPopup((PU8) GetString(STR_ID_CSB_FILE_PATH_TOO_LONG), IMG_GLOBAL_ERROR, 1, CSB_NOTIFY_DURATION, 0); } else if(!(mmi_ucs2cmp((PS8) fullpath, (PS8) csb_drive_phone_unicode))) { /* Store the path returned by CallBack in the Global variable */ mmi_ucs2cpy((PS8) g_CSB_struct.csb_settings.csb_screenshots_folder_path, (PS8)fullpath); mmi_ucs2cat((PS8) g_CSB_struct.csb_settings.csb_screenshots_folder_path, (PS8) csb_default_folder_unicode); /* Write the updated value in NVRAM */ csb_frm_write_in_nvram(); DisplayPopup((PU8) GetString(STR_GLOBAL_DONE), IMG_GLOBAL_ACTIVATED, 1, CSB_NOTIFY_DURATION, 0); } else if(!(mmi_ucs2cmp((PS8) fullpath, (PS8) csb_drive_card_unicode))) { /* Store the path returned by CallBack in the Global variable */ mmi_ucs2cpy((PS8) g_CSB_struct.csb_settings.csb_screenshots_folder_path, (PS8)fullpath); mmi_ucs2cat((PS8) g_CSB_struct.csb_settings.csb_screenshots_folder_path, (PS8) csb_default_folder_unicode); /* Write the updated value in NVRAM */ csb_frm_write_in_nvram(); DisplayPopup((PU8) GetString(STR_GLOBAL_DONE), IMG_GLOBAL_ACTIVATED, 1, CSB_NOTIFY_DURATION, 0); } else { /* Store the path returned by CallBack in the Global variable */ mmi_ucs2cpy((PS8) g_CSB_struct.csb_settings.csb_screenshots_folder_path, (PS8)fullpath); /* Write the updated value in NVRAM */ csb_frm_write_in_nvram(); DisplayPopup((PU8) GetString(STR_GLOBAL_DONE), IMG_GLOBAL_ACTIVATED, 1, CSB_NOTIFY_DURATION, 0); } } else { GoBackHistory(); } DeleteUptoScrID(SCR_ID_CSB_TESTTOOL_SCR_ID); }