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

📄 jmmscomposeutils.c

📁 MTK_MMI的部分源代码,从code中大致了解到MMI的执行流程
💻 C
📖 第 1 页 / 共 5 页
字号:
/* HIMANSHU 05122006 END */

/***************************************************************************** 
* Global Function
*****************************************************************************/
extern JC_INT32 GetColorValue(JC_INT8 *pColorString);
extern MMI_BOOL is_add_media_as_drm;

extern kal_wchar *mime_get_extension(kal_wchar *file_path);        // compiler warning removal
extern mdi_result mdi_audio_get_duration(void *file_name, U32 *time_p);  // compiler warning removal

extern void kal_get_time(kal_uint32 *ticks_ptr);

/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_compose_fill_default_values_slide_settings
 * DESCRIPTION
 *  Initialization function of MMS compose.
 * PARAMETERS
 *  void
 *  a(?)        [IN/OUT]        Nil(?)
 *  b(?)        [IN]            Nil(?)
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_jmms_compose_fill_default_values_slide_settings(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_jmms_context->compose_context->duration[g_jmms_context->compose_context->curr_page_index - 1].txt_dur_max_set = 1;
    g_jmms_context->compose_context->duration[g_jmms_context->compose_context->curr_page_index - 1].img_dur_max_set = 1;
    g_jmms_context->compose_context->duration[g_jmms_context->compose_context->curr_page_index - 1].audio_dur_max_set = 1;
    g_jmms_context->compose_context->duration[g_jmms_context->compose_context->curr_page_index - 1].video_dur_max_set = 1;

    g_jmms_context->compose_context->curr_slide_info.slide_prop.text_font.italic = 0;
    g_jmms_context->compose_context->curr_slide_info.slide_prop.text_font.bold = 0;
    g_jmms_context->compose_context->curr_slide_info.slide_prop.text_font.size = MEDIUM_FONT;
    g_jmms_context->compose_context->curr_slide_info.slide_prop.slide_time = 0;
    g_jmms_context->compose_context->curr_slide_info.slide_prop.text_color = g_jmms_color_RGB_list[COLOR_BLACK];
    g_jmms_context->compose_context->curr_slide_info.img_info.img_x = 0;
    g_jmms_context->compose_context->curr_slide_info.img_info.img_y = 0;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_compose_handle_error
 * DESCRIPTION
 *  error handling fn.
 * PARAMETERS
 *  ret_code        [IN]        
 *  is_page         [IN]        
 *  a(?)            [IN/OUT]        Nil(?)
 *  b(?)            [IN]            Nil(?)
 * RETURNS
 *  void
 *****************************************************************************/
JMMS_COMP_ERRCODE mmi_jmms_compose_handle_error(JC_RETCODE ret_code, U8 is_page)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    JMMS_COMP_ERRCODE err_code = JMMS_COMP_FAIL;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    PRINT_INFORMATION_2((MMI_TRACE_INFO, "%s", "mmi_jmms_compose_handle_error"));
    if( (ret_code == JC_ERR_MSG_MMS_AUDIO_EXISTS) || (ret_code == JC_ERR_MSG_MMS_IMAGE_EXISTS ) ||
        (ret_code == JC_ERR_MSG_MMS_VIDEO_EXISTS) || (ret_code == JC_ERR_MSG_MMS_MEDIA_TYPE_EXISTS))
    {
        U8 total_pages = 0; 
        mmi_jmms_jdi_get_total_pages(g_jmms_context->msg_handle, &total_pages);
        if( total_pages == mmi_jmms_compose_settings_max_no_pages())
        {
           is_page = 1;
           ret_code = JC_ERR_MSG_MAX_REACHED; 
        }
    }
    PRINT_INFORMATION_2((MMI_TRACE_INFO, "mmi_jmms_compose_handle_error = %d", ret_code));
    switch (ret_code)
    {
        case JC_OK:
            if (g_jmms_context->is_add_media_warning == 1 && !g_jmms_context->disable_warning_popup)
            {
                DisplayPopup(
                    (PU8) GetString(STR_ID_JMMS_WARNING_MODE_MEDIA),
                    IMG_GLOBAL_WARNING,
                    1,
                    JMMS_POPUP_TIME,
                    WARNING_TONE);
                err_code = JMMS_COMP_POPUP_OK;
            }
            else
            {
                err_code = JMMS_COMP_OK;
            }
            break;
        case JC_ERR_MSG_INVALID_HANDLE:
            DisplayPopup(
                (PU8) GetString(STR_ID_JMMS_INVALID_MESSAGE_HANDLE),
                IMG_GLOBAL_ERROR,
                1,
                JMMS_POPUP_TIME,
                ERROR_TONE);
            break;
        case JC_ERR_MSG_INVALID_PAGE_INDEX:
            DisplayPopup(
                (PU8) GetString(STR_ID_JMMS_INVALID_PAGE_INDEX),
                IMG_GLOBAL_ERROR,
                1,
                JMMS_POPUP_TIME,
                ERROR_TONE);
            break;
        case JC_ERR_MSG_INVALID_MEDIA_INDEX:
            DisplayPopup(
                (PU8) GetString(STR_ID_JMMS_INVALID_MEDIA_ID),
                IMG_GLOBAL_ERROR,
                1,
                JMMS_POPUP_TIME,
                ERROR_TONE);
            break;
        case JC_ERR_MSG_MEDIA_RESTRICTED:
            DisplayPopup(
                (PU8) GetString(STR_ID_JMMS_RESTRICTED_MODE_MEDIA),
                IMG_GLOBAL_ERROR,
                1,
                JMMS_POPUP_TIME,
                ERROR_TONE);
			err_code = JMMS_COMP_FAIL;
            break;
        case JC_ERR_MSG_MEDIA_WARNING:
			if (!g_jmms_context->disable_warning_popup)
			{
				DisplayPopup(
					(PU8) GetString(STR_ID_JMMS_WARNING_MODE_MEDIA),
					IMG_GLOBAL_WARNING,
					1,
					JMMS_POPUP_TIME,
					WARNING_TONE);
				err_code = JMMS_COMP_POPUP_OK;
			}
			else
			{
				err_code = JMMS_COMP_OK;
			}
            break;
        case JC_ERR_MSG_MAX_REACHED:

            if (is_page == 1)
            {
                DisplayPopup(
                    (PU8) GetString(STR_ID_JMMS_EDIT_CONTENT_MAX_SLIDE_REACHED),
                    IMG_GLOBAL_WARNING,
                    1,
                    JMMS_POPUP_TIME,
                    WARNING_TONE);
            }
            else
            {
                DisplayPopup(
                    (PU8) GetString(STR_ID_JMMS_MAX_MSG_REACHED),
                    IMG_GLOBAL_WARNING,
                    1,
                    JMMS_POPUP_TIME,
                    WARNING_TONE);
            }

            break;
        case JC_ERR_UNSUPPORTED:
            DisplayPopup(
                (PU8) GetString(STR_GLOBAL_UNSUPPORTED_FORMAT),
                IMG_GLOBAL_ERROR,
                1,
                JMMS_POPUP_TIME,
                ERROR_TONE);
            break;
        case JC_ERR_MSG_MMS_UNSUPPORTED_TYPE:
            DisplayPopup(
                (PU8) GetString(STR_ID_JMMS_INVALID_MEDIA_TYPE),
                IMG_GLOBAL_ERROR,
                1,
                JMMS_POPUP_TIME,
                ERROR_TONE);
            break;
        case JC_ERR_MSG_MMS_AUDIO_EXISTS:
            if (g_jmms_context->is_add_media_warning != 1)
            {
                DisplayPopup(
                    (PU8) GetString(STR_ID_JMMS_AUDIO_EXISTS_NEW_SLIDE),
                    IMG_GLOBAL_WARNING,
                    1,
                    JMMS_POPUP_TIME,
                    WARNING_TONE);
            }
            err_code = JMMS_COMP_NEW_SLIDE;
            break;
        case JC_ERR_MSG_MMS_IMAGE_EXISTS:
            if (g_jmms_context->is_add_media_warning != 1)
            {
                DisplayPopup(
                    (PU8) GetString(STR_ID_JMMS_IMAGE_EXISTS_NEW_SLIDE),
                    IMG_GLOBAL_WARNING,
                    1,
                    JMMS_POPUP_TIME,
                    WARNING_TONE);
            }
            err_code = JMMS_COMP_NEW_SLIDE;
            break;
        case JC_ERR_MSG_MMS_VIDEO_EXISTS:
            if (g_jmms_context->is_add_media_warning != 1)
            {
                DisplayPopup(
                    (PU8) GetString(STR_ID_JMMS_VIDEO_EXISTS_NEW_SLIDE),
                    IMG_GLOBAL_WARNING,
                    1,
                    JMMS_POPUP_TIME,
                    WARNING_TONE);
            }
            err_code = JMMS_COMP_NEW_SLIDE;
            break;
        case JC_ERR_MSG_MMS_MEDIA_TYPE_EXISTS:
            if (g_jmms_context->is_add_media_warning != 1)
            {
                DisplayPopup(
                    (PU8) GetString(STR_ID_JMMS_SAME_MEDIA_EXISTS_NEW_SLIDE),
                    IMG_GLOBAL_WARNING,
                    1,
                    JMMS_POPUP_TIME,
                    WARNING_TONE);
            }
            err_code = JMMS_COMP_NEW_SLIDE;
            break;
        case JC_ERR_MSG_INVALID_MEDIA_INFO:
            DisplayPopup(
                (PU8) GetString(STR_ID_JMMS_INVALID_MEDIA_INFO),
                IMG_GLOBAL_ERROR,
                1,
                JMMS_POPUP_TIME,
                ERROR_TONE);
            break;
        case JC_ERR_MSG_MMS_CONTENT_CLASS:
            err_code = JMMS_CONTENT_CLASS;
            break;
            /*
             * merge     case JC_ERR_MSG_MULTIPLE_REFERENCE: 
             * err_code=JMMS_COMP_OK;
             * break;
             */
		case JC_ERR_FILE_SYS_INIT:
        case JC_ERR_MEMORY_ALLOCATION:
            DisplayPopup((PU8) GetString(STR_ID_JMMS_OUT_OF_MEMORY), IMG_GLOBAL_ERROR, 1, JMMS_POPUP_TIME, ERROR_TONE);
            err_code = JMMS_COMP_OUT_MEMORY;
            break;
        case JC_ERR_NULL_POINTER:
            DisplayPopup(
                (PU8) GetString(STR_ID_JMMS_INVALID_POINTER),
                IMG_GLOBAL_ERROR,
                1,
                JMMS_POPUP_TIME,
                ERROR_TONE);
            break;
        default:
            /* DisplayPopup((PU8) GetString(STR_GLOBAL_ERROR), IMG_GLOBAL_ERROR, 1, JMMS_POPUP_TIME, ERROR_TONE); */
        {
            U8 error_str[20];
            S8 temp[10] = {0, };

            memset(error_str, 0x00, 20);
            sprintf((S8*) temp, "%d", ret_code);

            AnsiiToUnicodeString((PS8) (error_str), (PS8) temp);

            DisplayPopup((PU8) (error_str), IMG_GLOBAL_ERROR, 1, JMMS_POPUP_TIME, ERROR_TONE);

            break;
        }
    }

    if (g_jmms_context->is_add_media_warning == 1)
    {
        g_jmms_context->is_add_media_warning = 0;
    }

    return err_code;

}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_compose_new_mms
 * DESCRIPTION
 *  function of writing a new MMS
 * PARAMETERS
 *  void
 *  a(?)        [IN/OUT]        Nil(?)
 *  b(?)        [IN]            Nil(?)
 * RETURNS
 *  void
 *****************************************************************************/
JMMS_COMP_ERRCODE mmi_jmms_compose_new_mms(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    /* Deepali: use setting API's */
    JC_RETCODE ret_code = JC_OK;
    JMMS_COMP_ERRCODE err_code;
    U8 config_arg = JMMS_CONFIG_PREVIEW;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    PRINT_INFORMATION_2((MMI_TRACE_INFO, "%s", "mmi_jmms_compose_new_mms"));
    if (g_jmms_context->msg_handle != NULL)
    {
        ret_code = mmi_jmms_jdi_msg_deinit(g_jmms_context->msg_handle);
    }

    if (ret_code == JC_OK)
    {
        g_jmms_context->msg_handle = NULL;
        ret_code = mmi_jmms_jdi_msg_init(&(g_jmms_context->msg_handle), (void*)config_arg);
    }
    if (ret_code == JC_ERR_MEMORY_ALLOCATION)
    {
        PRINT_INFORMATION_2((MMI_TRACE_INFO, "%s", "Fail to create msg handle"));
        ret_code = JC_ERR_MEMORY_ALLOCATION;
        goto ERROR_HANDLE;
    }

    if (ret_code == JC_OK)
    {
        ret_code = mmi_jmms_jdi_set_content_class(g_jmms_context->msg_handle, MMS_SUPPORTED_CONTENT_CLASS);
    }
    if (ret_code == JC_OK)
    {
        ret_code = mmi_jmms_jdi_set_creation_mode(g_jmms_context->msg_handle, mmi_jmms_compose_settings_creation_mode());
    }
    if (ret_code == JC_OK)
    {
        ret_code = mmi_jmms_jdi_set_msg_type(g_jmms_context->msg_handle, E_TYPE_MMS);
    }
    if (ret_code == JC_OK)
    {
        ret_code = mmi_jmms_jdi_set_presentation_type(g_jmms_context->msg_handle, E_PRESENTATION_SMIL);
    }
    if (ret_code == JC_OK)
    {
        ret_code = mmi_jmms_jdi_set_max_pages(g_jmms_context->msg_handle, (U8) mmi_jmms_compose_settings_max_no_pages());
    }
    if (ret_code == JC_OK)
    {
        ret_code = mmi_jmms_jdi_msg_register_callback(
                    g_jmms_context->msg_handle,
                    E_CB_ERROR_IND,
                    (void*)mmi_jmms_error_ind_cb);
    }

  ERROR_HANDLE:
    PRINT_INFORMATION_2((MMI_TRACE_INFO, "Fail to create msg error= %d", ret_code));
    err_code = mmi_jmms_compose_handle_error(ret_code, 0);

    return err_code;

}


/*****************************************************************************
 * FUNCTION
 *  mmi_jmms_error_ind_cb
 * DESCRIPTION
 *  
 * PARAMETERS

⌨️ 快捷键说明

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