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

📄 mmidc_storage_wintab.c

📁 手机Camera部分上层软件代码
💻 C
📖 第 1 页 / 共 5 页
字号:
//	Note:  
/*****************************************************************************/
PUBLIC void MMIDC_WritePhotoFileDoneCnf(DPARAM param)
{
    MMIDC_FFS_ASY_WRITE_RESULT_T *save_result_ptr = PNULL;

    uint32 photo_index = 0;
    MMIDC_PHOTO_INFO_AFTER_REVIEW_T	st_review_photo_info = {0};

    SCI_TRACE_LOW("mmidc_storage_wintab.c: MMIDC_WritePhotoFileDoneCnf() MSG_DC_FILE_WRITE_DONE");

    DC_ASSERT_LOW(param != 0);
    save_result_ptr = (MMIDC_FFS_ASY_WRITE_RESULT_T *)param;

    //save dc info step 2
    //fill photo width and height
    st_review_photo_info = MMIDC_GetPhotoInfoAfterReview();
    save_result_ptr->photo_detail.width = st_review_photo_info.width;
    save_result_ptr->photo_detail.height = st_review_photo_info.height;

    photo_index = DCSaveInfo_AsyAddStep2(save_result_ptr);

    //enter dc option win(if the saving win is lose focus, don't open option win)
    if ((save_result_ptr->write_result == DCFFS_WRITE_SUCCEED)
        && MMK_IsFocusWin(MMIDC_WRITE_FILE_WIN_ID)
        )
    {
        MMK_CloseWin(MMIDC_SHOOT_WIN_ID);
    
        MMIDC_OpenPhotoOptionWin(TRUE, TRUE, photo_index, save_result_ptr->buf_ptr, save_result_ptr->photo_detail.memory_size);

        //alert save result
        AlertSaveResult(save_result_ptr->write_result);
    }
    else
    {
        MMIDC_CloseCaptureWin();
    }

    //close input name win
    MMK_CloseWin(MMIDC_INPUT_PHOTO_NAME_WIN_ID);

    //close waiting win
    MMK_CloseWin(MMIDC_WRITE_FILE_WIN_ID);
}

/*****************************************************************************/
// 	Description : DC file delete done handling function(MSG_DC_FILE_DEL_DONE)
//	Global resource dependence : 
//  Author: wancan.you
//	Note:  
/*****************************************************************************/
PUBLIC void MMIDC_FileDelDoneCnf(DPARAM param)
{
    MMI_MENU_ID_T			menu_id = 0;
    MMI_MENU_GROUP_ID_T		group_id = 0;
    MMIDC_FFS_ASY_DEL_RESULT_T	*st_del_result_ptr = PNULL;
    uint32			photo_total_num = 0;
    uint32			photo_index = 0;
    MMIDC_FFS_DEL_RESULT_E		del_result = 0;

    PUBWIN_ClosePromptQueryWin();
    DC_ASSERT_LOW(param != 0);
    st_del_result_ptr = (MMIDC_FFS_ASY_DEL_RESULT_T*)param;

    if (MMK_IsOpenWin(MMIDC_PICOPTION_WIN_ID))
    {
        GUIMENU_GetRetID(MMIDC_PICOPTION_MENU_ID, &group_id, &menu_id);

        if(menu_id == ID_DC_OPT_DELETE)
        {
            //delete step2
            DCSaveInfo_AsyDeleteStep2(st_del_result_ptr);

            //alert del result
            AlertDeleteResult(st_del_result_ptr->e_del_result);		

            //modify album list
            if (st_del_result_ptr->e_del_result == DCFFS_DEL_SUCCEED)
            {
                if(MMK_IsOpenWin(MMIDC_ALBUM_WIN_ID))
                {
                    uint16 item_idx = 0;

                    item_idx = DCSaveInfo_GetPotoTotalNum() - st_del_result_ptr->photo_index;
                    GUILISTBOX_RemoveItemBasePos(MMIDC_ALBUM_LISTBOX_CTRL_ID,item_idx);
                }
            }

            //close waiting win
            PUBWIN_CloseWaitingMessageWin(MMIDC_DELETE_WAITING_WIN_ID);
            //close review win
            MMK_CloseWin(MMIDC_BROWSER_WIN_ID);
            //close this win
            MMK_CloseWin(MMIDC_PICOPTION_WIN_ID);
        }
        else if (menu_id == ID_DC_OPT_DELETEALL)
        {
            //delete step2
            DCSaveInfo_AsyDeleteStep2(st_del_result_ptr);

            //modify album list
            if (st_del_result_ptr->e_del_result == DCFFS_DEL_SUCCEED)
            {
                photo_total_num = DCSaveInfo_GetPotoTotalNum();
                if (photo_total_num > 0)
                {
                    if(MMK_IsOpenWin(MMIDC_ALBUM_WIN_ID))
                    {
                        uint16 item_idx = 0;

                        item_idx = DCSaveInfo_GetPotoTotalNum() - st_del_result_ptr->photo_index;
                        GUILISTBOX_RemoveItemBasePos(MMIDC_ALBUM_LISTBOX_CTRL_ID,item_idx);
                    }

                    photo_index = photo_total_num - 1;
                    del_result = DCSaveInfo_AsyDelete(MMIDC_PICOPTION_WIN_ID, photo_index);
                    if (del_result == DCFFS_DEL_SUCCEED)
                    {
                        //close waiting win
                        PUBWIN_CloseWaitingMessageWin(MMIDC_DELETE_WAITING_WIN_ID);
                        SCI_TRACE_LOW("mmidc:HandlePicOptionMenuWinMsg, del_result == DCFFS_DEL_SUCCEED");
                    }
                    else if (del_result == DCFFS_DEL_FAIL)
                    {
                        //alert del result
                        AlertDeleteResult(del_result);

                        //close waiting win
                        PUBWIN_CloseWaitingMessageWin(MMIDC_DELETE_WAITING_WIN_ID);
                        //close review win
                        MMK_CloseWin(MMIDC_BROWSER_WIN_ID);
                        //close this win
                        MMK_CloseWin(MMIDC_PICOPTION_WIN_ID);
                    }
                }
                else
                {
                    //delete all has been finished

                    //alert del result
                    AlertDeleteResult(st_del_result_ptr->e_del_result);		

                    //close waiting win
                    PUBWIN_CloseWaitingMessageWin(MMIDC_DELETE_WAITING_WIN_ID);
                    //close review win
                    MMK_CloseWin(MMIDC_BROWSER_WIN_ID);
                    //close this win
                    MMK_CloseWin(MMIDC_PICOPTION_WIN_ID);
                }
            }
            else if (st_del_result_ptr->e_del_result == DCFFS_DEL_FAIL)
            {
                //alert del result
                AlertDeleteResult(st_del_result_ptr->e_del_result);		

                //close waiting win
                PUBWIN_CloseWaitingMessageWin(MMIDC_DELETE_WAITING_WIN_ID);
                //close review win
                MMK_CloseWin(MMIDC_BROWSER_WIN_ID);
                //close this win
                MMK_CloseWin(MMIDC_PICOPTION_WIN_ID);
            }
        }
    }
    else //the win has been close, end delete
    {
        //delete step2
        DCSaveInfo_AsyDeleteStep2(st_del_result_ptr);

        //alert del result
        AlertDeleteResult(st_del_result_ptr->e_del_result);		

        //modify album list
        if (st_del_result_ptr->e_del_result == DCFFS_DEL_SUCCEED)
        {
            if(MMK_IsOpenWin(MMIDC_ALBUM_WIN_ID))
            {
                uint16 item_idx = 0;

                item_idx = DCSaveInfo_GetPotoTotalNum() - st_del_result_ptr->photo_index;
                GUILISTBOX_RemoveItemBasePos(MMIDC_ALBUM_LISTBOX_CTRL_ID,item_idx);
            }
        }

        //close waiting win
        PUBWIN_CloseWaitingMessageWin(MMIDC_DELETE_WAITING_WIN_ID);
        //close review win
        MMK_CloseWin(MMIDC_BROWSER_WIN_ID);
        //close this win
        MMK_CloseWin(MMIDC_PICOPTION_WIN_ID);
    }
}

/*****************************************************************************/
// 	Description : 写文件等待窗口处理函数
//	Global resource dependence : 
//  Author:
//	Note: 
/*****************************************************************************/
LOCAL MMI_RESULT_E  HandleWritePhotoFileWaitWinMsg(
                                MMI_WIN_ID_T     win_id, 
                                MMI_MESSAGE_ID_E    msg_id, 
                                DPARAM              param
                                )
{
    MMI_RESULT_E        result = MMI_RESULT_TRUE;

    switch(msg_id)
    {
        case MSG_APP_RED:
            break;

        case MSG_APP_FLIP:
            MMIDEFAULT_HandleFlipKey(FALSE);
            break;

        default:
            result = PUBWIN_HandleWaitingMessageWinMsg(win_id, msg_id, param);
            break;
    }
    
    return (result);
}


/*****************************************************************************/
// 	Description : open waiting win to save jpg
//	Global resource dependence : 
//  Author:
//	Note: 
/*****************************************************************************/
LOCAL BOOLEAN OpenSaveingWin(MMI_WIN_ID_T win_id)
{
    MMI_STRING_T        prompt_str = {0};

    MMI_GetLabelTextByLang(TXTSYS_WAITING, &prompt_str);

    //等待窗口
    PUBWIN_OpenWaitingMessageWin(
                                                        win_id,
                                                        WIN_ONE_LEVEL,
                                                        PUBWIN_SOFTKEY_NONE,
                                                        &prompt_str,
                                                        PNULL,
                                                        IMAGE_EXCEPTIVE_WAIT_ANIMA,
                                                        0,
                                                        PNULL,
                                                        HandleWritePhotoFileWaitWinMsg
                                                        );

    return TRUE;
}

/*****************************************************************************/
// 	Description : alert save result
//	Global resource dependence : 
//  Author:
//	Note: 
/*****************************************************************************/
LOCAL void AlertSaveResult(MMIDC_FFS_WRITE_RESULT_E ffs_result)
{
	if (ffs_result == DCFFS_WRITE_SUCCEED)
	{
		//save success
		PUBWIN_OpenPromptAlertWin(
			PUBWIN_SOFTKEY_ONE, 
			TXT_MMI_SAVESUCC, 
			IMAGE_PROMPT_ICON_SUCCESS, 
			MMI_3SECONDS, 
			PNULL
			);
	}
	else if (ffs_result == DCFFS_NOT_ENOUGH_SPACE)
	{
		//not enough space
		PUBWIN_OpenPromptAlertWin(
			PUBWIN_SOFTKEY_ONE, 
			TXT_DC_NOEMPTYSPACE, 
			IMAGE_PROMPT_ICON_WRONG, 
			MMI_3SECONDS, 
			PNULL
			);
	}
	else if (ffs_result == DCFFS_LIST_FULL)
	{
		//list full
		PUBWIN_OpenPromptAlertWin(
			PUBWIN_SOFTKEY_ONE, 
			TXT_VC_FULL, 
			IMAGE_PROMPT_ICON_WRONG, 
			MMI_3SECONDS, 
			PNULL
			);
	}
	else if (ffs_result == DCFFS_WRITE_FAIL)
	{
		//fs wrong
		PUBWIN_OpenPromptAlertWin(
			PUBWIN_SOFTKEY_ONE, 
			TXT_MMI_SAVEFAILED, 
			IMAGE_PROMPT_ICON_WRONG, 
			MMI_3SECONDS, 
			PNULL
			);
	}
	else
	{
		//do nothing
	}

}



/*****************************************************************************/
// 	Description : alert delete result
//	Global resource dependence : 
//  Author:
//	Note: 
/*****************************************************************************/
LOCAL void AlertDeleteResult(MMIDC_FFS_DEL_RESULT_E ffs_result)
{
    if (!MMK_IsFocusWin(MMIDC_DELETE_WAITING_WIN_ID))
    {
        return;
    }

	if (ffs_result == DCFFS_DEL_SUCCEED)
	{
		//del success
		PUBWIN_OpenPromptAlertWin(
			PUBWIN_SOFTKEY_ONE, 
			TXT_VC_DELETESUCC, 
			IMAGE_PROMPT_ICON_SUCCESS, 
			MMI_3SECONDS, 
			PNULL
			);
	}
	else if (ffs_result == DCFFS_DEL_FAIL)
	{
		//fs wrong
		PUBWIN_OpenPromptAlertWin(
			PUBWIN_SOFTKEY_ONE, 
			TXT_MMIMULTIM_FILESYSTEM_ERROR, 
			IMAGE_PROMPT_ICON_WRONG, 
			MMI_3SECONDS, 
			PNULL
			);
	}
	else
	{
		//do nothing
	}

}


/*****************************************************************************/
// 	Description : open album window
//	Global resource dependence : 
//  Author:

⌨️ 快捷键说明

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