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

📄 mmidc_review_wintab.c

📁 手机Camera部分上层软件代码
💻 C
📖 第 1 页 / 共 2 页
字号:
/*****************************************************************************
** File Name:      mmidc_review_wintab.c                                     *
** Author:                                                                   *
** Date:           2005-8	                                                 *
** Copyright:      2003 Spreadtrum, Incorporated. All Rights Reserved.         *
** Description:    This file is used to describe dc review window table      *
*****************************************************************************
**                         Important Edit History                            *
** --------------------------------------------------------------------------*
** DATE           NAME             DESCRIPTION                               *
** 08/2005       Bruce.Chi           Create									 *
*****************************************************************************/

//#ifndef  _MMIDC_REVIEW_WINTAB_C_
//#define _MMIDC_REVIEW_WINTAB_C_

/**--------------------------------------------------------------------------*
 **                         Include Files                                    *
 **--------------------------------------------------------------------------*/
#include "mmidc_internal.h"
#include "window_parse.h"
#include "mmidisplay_data.h"
#include "mmi_appmsg.h"
#include "mmi_pubwin.h"
#include "mmi_default.h"
#include "mmi_common.h"
#include "mmiset.h"
#include "mmimp3.h"
/**--------------------------------------------------------------------------*
 **                         MACRO DEFINITION                                 *
 **--------------------------------------------------------------------------*/
#ifdef LCD_176_220
#define MMIDC_REVIEW_OK_TEXT_WIDTH  32      
#define MMIDC_REVIEW_CANCEL_TEXT_WIDTH  32 
#define MMIDC_REVIEW_OK_TEXT_HEIGHT 16
#define MMIDC_REVIEW_CANCEL_TEXT_HEIGHT 16

#elif defined(_LCD_QVGA_)
#define MMIDC_REVIEW_OK_TEXT_WIDTH  32      
#define MMIDC_REVIEW_CANCEL_TEXT_WIDTH  32 
#define MMIDC_REVIEW_OK_TEXT_HEIGHT 16
#define MMIDC_REVIEW_CANCEL_TEXT_HEIGHT 16

#elif defined LCD_128_160
#define MMIDC_REVIEW_OK_TEXT_WIDTH  32      
#define MMIDC_REVIEW_CANCEL_TEXT_WIDTH  32 
#define MMIDC_REVIEW_OK_TEXT_HEIGHT 16
#define MMIDC_REVIEW_CANCEL_TEXT_HEIGHT 16
#endif

/**--------------------------------------------------------------------------*
 **                         STATIC DEFINITION                                *
 **--------------------------------------------------------------------------*/
LOCAL BOOLEAN s_is_in_dc_review = FALSE;

/*---------------------------------------------------------------------------*/
/*                          TYPE AND CONSTANT                                */
/*---------------------------------------------------------------------------*/

/**--------------------------------------------------------------------------*
 **                         EXTERNAL DECLARE                                 *
 **--------------------------------------------------------------------------*/
 extern RECT_T                           s_osd_char_disp_rect;
 
/**-------------------------------------------------------------------------*
 **                         GLOBAL DEFINITION                                *
 **--------------------------------------------------------------------------*/
extern PUBLIC void MMIDEFAULT_AllowBackLight(
                                      BOOLEAN allow_light //[IN] TRUE:允许BackLight, FALSE: 不允许BackLight
                                      );


/*---------------------------------------------------------------------------*/
/*                          LOCAL FUNCTION DECLARE                           */
/*---------------------------------------------------------------------------*/
/*****************************************************************************/
// 	Description : to handle the message of browser win      
//	Global resource dependence : 
//  Author:lin.lin
//	Note: 
/*****************************************************************************/
LOCAL MMI_RESULT_E  HandleReviewWinMsg(
                                MMI_WIN_ID_T win_id, 
                                MMI_MESSAGE_ID_E msg_id, 
                                DPARAM param
                                );

/*****************************************************************************/
// 	Description : 读文件等待窗口处理函数
//	Global resource dependence : 
//  Author:bruce.chi
//	Note: 
/*****************************************************************************/
MMI_RESULT_E  HandleReadPhotoFileWaitWinMsg(
                                MMI_WIN_ID_T     win_id, 
                                MMI_MESSAGE_ID_E    msg_id, 
                                DPARAM              param
                                );

/*****************************************************************************/
// 	Description : Handle_TP_Button_Register
//         
//	Global resource dependence : 
//   Author:        bown.zhang
//	Note:   
/*****************************************************************************/
LOCAL void Handle_TP_Button_Register(MMI_WIN_ID_T	win_id);

/*****************************************************************************/
// 	Description : alert read result
//	Global resource dependence : 
//  Author:
//	Note: 
/*****************************************************************************/
LOCAL void AlertReadResult(MMIDC_FFS_READ_RESULT_E e_read_result);

// the  photo browser window
WINDOW_TABLE( MMIDC_BROWSER_WIN_TAB ) = 
{
    CLEAR_LCD,
    WIN_PRIO( WIN_ONE_LEVEL ),
    WIN_FUNC( (uint32)HandleReviewWinMsg ),    
    WIN_ID( MMIDC_BROWSER_WIN_ID ),
    END_WIN
};


/*****************************************************************************/
// 	Description : open review window     
//	Global resource dependence : 
//  Author:lin.lin
//	Note: 
/*****************************************************************************/
BOOLEAN OpenPhotoBrowserWin(uint32 arr_index)
{
    MMISET_StopAllRing(FALSE);
    MMK_CreateWin((uint32*)MMIDC_BROWSER_WIN_TAB, (ADD_DATA)arr_index);
     
     return TRUE;
}


/*****************************************************************************/
// 	Description : to handle the message of browser win      
//	Global resource dependence : 
//  Author:lin.lin
//	Note: 
/*****************************************************************************/
#define PHOTO_REVIEW_MOVE_STEP 16
LOCAL MMI_RESULT_E  HandleReviewWinMsg(
                                MMI_WIN_ID_T win_id, 
                                MMI_MESSAGE_ID_E msg_id, 
                                DPARAM param
                                )
{
	BOOLEAN         recode = MMI_RESULT_TRUE;

	MMIDC_FFS_READ_RESULT_E e_read_result = 0;
	static uint32			s_photo_index = 0;
	static BOOLEAN			s_is_read_done = FALSE;
	static uint32			s_photo_width = 0;
	static uint32			s_photo_height = 0;

	static MMIDC_REVIEW_PHOTO_INFO_T	s_st_review_info = {0};

	MMIDC_FFS_ASY_READ_RESULT_T			*read_result_ptr = PNULL;


	MMIDC_PHOTO_INFO_AFTER_REVIEW_T		photo_info_reviewed = {0};
	const MMIDC_ALBUM_OPEN_FROM			*album_open_from_ptr = PNULL;

	MMIMULTIM_SELECTED_RETURN_T			return_info = {0};
	uint32								total_photo_num = 0;

	switch(msg_id)
   	{
	case MSG_OPEN_WINDOW:
            s_is_in_dc_review = TRUE;
            //suspend mp3
#ifdef	MMI_BLUETOOTH_A2DP
        MMIMP3_BtSuspendMp3(TRUE,TRUE);
#else
		MMIMP3_SuspendMp3(TRUE);
#endif
            if (MMIMP3_IsMp3SuspendAndContinue())
            {
                SCI_Sleep(10); //为了切频
            }
            
		//init globle
		s_photo_index = 0;
		s_is_read_done = FALSE;

		SCI_MEMSET(&s_st_review_info, 0, sizeof(s_st_review_info));
		s_st_review_info.i_lcd				= MAIN_LCD_ID;
		s_st_review_info.e_review_type		= REVIEW_WHOLE_PHOTO;
		
		album_open_from_ptr = GetAlbumOpenStatus();
		if (album_open_from_ptr->is_from_mms)
		{
			s_st_review_info.e_review_from	= PHOTO_REVIEW_FROM_MMS;
		}
		else
		{
			s_st_review_info.e_review_from	= PHOTO_REVIEW_FROM_DC_ALBUM;
		}

        // 不允许背光关闭
        MMIDEFAULT_AllowBackLight(FALSE); 

		//DC_Open
		DCAdap_DCOpen();

		//alloc jpg file cache
		s_photo_index = (uint32)MMK_GetWinAddDataPtr(win_id);
		s_st_review_info.photo_len = DCSaveInfo_GetPhotoSize(s_photo_index);
		s_st_review_info.photo_ptr = MMIDC_AllocJpegMemory(s_st_review_info.photo_len);

		//read file
		e_read_result = DCSaveInfo_AsyRead(
			win_id,
			s_photo_index,
			s_st_review_info.photo_ptr,
			s_st_review_info.photo_len
			);

		if (e_read_result == DCFFS_READ_SUCCEED)
		{
			SCI_ASSERT(FALSE);
		}
		else if (e_read_result == DCFFS_READ_FAIL)
		{
			MMIDC_OpenPhotoOptionWin(FALSE, FALSE, s_photo_index, s_st_review_info.photo_ptr, s_st_review_info.photo_len);
			MMK_CloseWin(win_id);
		}
		else if (e_read_result == DC_FFS_READ_TOOBIG)
		{
			MMIDC_OpenPhotoOptionWin(FALSE, FALSE, s_photo_index, s_st_review_info.photo_ptr, s_st_review_info.photo_len);
			MMK_CloseWin(win_id);
		}
		else if (e_read_result == DCFFS_READ_PANDING)
		{
			//do nothing
		}

		AlertReadResult(e_read_result);
	    break;

    case MSG_FULL_PAINT:
        MMIDEFAULT_AllowBackLight(FALSE);
        break;

    case MSG_DC_FILE_READ_DONE:
        SCI_TRACE_LOW("mmidc_review_wintab.c:HandleReviewWinMsg.c MSG_DC_FILE_READ_DONE");
		
		DC_ASSERT_LOW(param != 0);
		read_result_ptr = (MMIDC_FFS_ASY_READ_RESULT_T *)param;
		
		//save read status
		s_is_read_done = TRUE;

            if (MMK_IsFocusWin(win_id))
            {
		if (read_result_ptr->e_read_result == DCFFS_READ_SUCCEED)
		{
			album_open_from_ptr = GetAlbumOpenStatus();

			//begin to review
			s_st_review_info.photo_ptr = read_result_ptr->buf_ptr;
			s_st_review_info.photo_len = read_result_ptr->read_size;
			SCI_TRACE_LOW("mmidc_review_winab.c:HandleReviewWinMsg, s_photo_ptr=%x, s_phot_len=%d", s_st_review_info.photo_ptr, s_st_review_info.photo_len);
			
			if (album_open_from_ptr->is_from_mms)
			{
				s_st_review_info.e_review_from	= PHOTO_REVIEW_FROM_MMS;
			}
			else
			{
				s_st_review_info.e_review_from	= PHOTO_REVIEW_FROM_DC_ALBUM;
			}
			s_st_review_info.e_review_type	= REVIEW_WHOLE_PHOTO;

			//draw background in mainlcd
			DrawDefaultBackGroud(MAIN_LCD_ID);

			if (!MMIDC_ReviewPhoto(&s_st_review_info))
			{
				SCI_TRACE_LOW("mmidc_review_winab.c:HandleReviewWinMsg review failed");

				if (album_open_from_ptr->is_from_mms)
				{
					//alert review failed
					PUBWIN_OpenPromptAlertWin(
						PUBWIN_SOFTKEY_ONE,
						TXT_MP3_NO_SUPPORT,
						IMAGE_PROMPT_ICON_FAIL,
						MMI_3SECONDS,
						PNULL
						);
					//close this review window and album window
					MMK_CloseWin(MMIDC_ALBUM_WIN_ID);
					MMK_CloseWin(win_id);
				}
				else
				{
					MMIDC_OpenPhotoOptionWin(FALSE, FALSE, s_photo_index, s_st_review_info.photo_ptr, s_st_review_info.photo_len);
					//alert review failed
					PUBWIN_OpenPromptAlertWin(
						PUBWIN_SOFTKEY_ONE,
						TXT_MP3_NO_SUPPORT,
						IMAGE_PROMPT_ICON_FAIL,
						MMI_3SECONDS,
						PNULL
						);
					//close this review window
					MMK_CloseWin(win_id);
				}
                
				break;
			}
            Handle_TP_Button_Register(win_id);
			photo_info_reviewed = MMIDC_GetPhotoInfoAfterReview();
			s_photo_width = photo_info_reviewed.width;
			s_photo_height = photo_info_reviewed.height;
			//save the photo info in global
			DCSaveInfo_SetPhotoSize(s_photo_index, s_photo_width, s_photo_height);
		}
		else
		{
			//create another option menu , photo_data is invalid
			MMIDC_OpenPhotoOptionWin(FALSE, FALSE, s_photo_index, s_st_review_info.photo_ptr, s_st_review_info.photo_len);
			//alert read result
			AlertReadResult(read_result_ptr->e_read_result);

			MMK_CloseWin(win_id);
		}
            }
        break;

/*	
	case MSG_APP_WEB:
#ifdef WIN32
	case MSG_KEYDOWN_GREEN:
#endif
		if (s_is_read_done)
		{
			//REVIEW_WHOLE_PHOTO
			if (s_st_review_info.e_review_type == REVIEW_WHOLE_PHOTO)
			{
				s_st_review_info.e_review_type = REVIEW_PART_PHOTO;
			}
			else if (s_st_review_info.e_review_type == REVIEW_PART_PHOTO)
			{
				s_st_review_info.e_review_type = REVIEW_WHOLE_PHOTO;
			}
			else
			{
				DC_ASSERT_LOW(0);
			}

			//draw background in mainlcd
			DrawDefaultBackGroud(MAIN_LCD_ID);

			MMIDC_ReviewPhoto(&s_st_review_info);
		}
		break;
*/

	case MSG_APP_DOWN:
		if (s_is_read_done)
		{
			if (s_st_review_info.e_review_type == REVIEW_PART_PHOTO)
			{
				if (s_st_review_info.y_start + PHOTO_REVIEW_MOVE_STEP + MMIDC_MAINSCREEN_HEIGHT <= s_photo_height)
				{
					s_st_review_info.y_start += PHOTO_REVIEW_MOVE_STEP;
					MMIDC_ReviewPhoto(&s_st_review_info);
				}
			}

⌨️ 快捷键说明

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