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

📄 camwin_style2.h

📁 瑞星微公司RK27XX系列芯片的SDK开发包
💻 H
字号:

#if ROCK_CAMERA

#ifndef CAMWIN_STYLE2_H
#define CAMWIN_STYLE2_H


/*******************************************************************/

/* UI 坐标宏定义*/

/*
**********************
屏幕坐标体系

---->
|         x
|
| y
|
V
**********************
*/

/* 主菜单区域 */
#if ((CAM_OSD_LCD_H == 240) && (CAM_OSD_LCD_W == 320) )
#define CAM_OSD_ROOTMENU_X   0             /* 主菜单显示X起始 */
#define CAM_OSD_ROOTMENU_Y   186            /*  主菜单显示Y起始 */
#elif ((CAM_OSD_LCD_H == 272) && (CAM_OSD_LCD_W == 480) )
#define CAM_OSD_ROOTMENU_X   54             /* 主菜单显示X起始 */
#define CAM_OSD_ROOTMENU_Y   216
#endif

#define CAM_OSD_ROOTMENU_W   320            /* 主菜单宽度 */
#define CAM_OSD_ROOTMENU_H   54             /* 主菜单高度 */
#define CAM_OSD_ROOTMENU_ITEM_W   36        /* 主菜单单元项宽度 */
#define CAM_OSD_ROOTMENU_ITEM_H   35        /* 主菜单单元项高度 */
#define CAM_OSD_ROOTMENU_ITEM_X   (CAM_OSD_ROOTMENU_X+CAM_OSD_ROOTMENU_ITEM_W)
#define CAM_OSD_ROOTMENU_ITEM_Y   (CAM_OSD_ROOTMENU_Y+CAM_OSD_ROOTMENU_H-CAM_OSD_ROOTMENU_ITEM_H)


/* 二级菜单区域 */

#define CAM_OSD_SUBMENU_W   100              /*二级菜单宽度*/
#define CAM_OSD_SUBMENU_ITEM_H   16          /*二级菜单每一项高度*/
#define CAM_OSD_SUBMENU_X   CAM_OSD_ROOTMENU_ITEM_X   /*二级菜单x方向起始位置*/
#define CAM_OSD_SUBMENU_X2   (CAM_OSD_SUBMENU_X+180)
#define CAM_OSD_SUBMENU_Y   (CAM_OSD_ROOTMENU_ITEM_Y - CAM_OSD_SUBMENU_ITEM_H)   /*二级菜单y方向起始位置(递减)*/



/* 状态栏区域 */
#if ((CAM_OSD_LCD_H == 240) && (CAM_OSD_LCD_W == 320) )
#define CAM_OSD_STATEBAR_X	16
#define CAM_OSD_STATEBAR_Y	200

#define CAM_OSD_STATEBAR_W	288
#define CAM_OSD_STATEBAR_H	34
#elif ((CAM_OSD_LCD_H == 272) && (CAM_OSD_LCD_W == 480) )
#define CAM_OSD_STATEBAR_X	0
#define CAM_OSD_STATEBAR_Y	0

#define CAM_OSD_STATEBAR_W	240
#define CAM_OSD_STATEBAR_H	272
#endif

#if ((CAM_OSD_LCD_H == 240) && (CAM_OSD_LCD_W == 320) )
#define CAM_OSD_STATEICON_X   280
#define CAM_OSD_STATEICON_Y   108
#elif ((CAM_OSD_LCD_H == 272) && (CAM_OSD_LCD_W == 480) )
#define CAM_OSD_STATEICON_X   76
#define CAM_OSD_STATEICON_Y   6
#endif
#define CAM_OSD_STATEICON_W   32   /* Cam 状态DV/DC 图标宽度 */
#define CAM_OSD_STATEICON_H   32

#define CAM_DV_STATEICON_W   32    /* DV状态下PLAY/STOP图标的宽度 */
#define CAM_DV_STATEICON_H   34
#if ((CAM_OSD_LCD_H == 240) && (CAM_OSD_LCD_W == 320) )
#define CAM_DV_STATEICON_X   CAM_OSD_STATEBAR_X
#define CAM_DV_STATEICON_Y   CAM_OSD_STATEBAR_Y
#elif ((CAM_OSD_LCD_H == 272) && (CAM_OSD_LCD_W == 480) )
#define CAM_DV_STATEICON_X   76
#define CAM_DV_STATEICON_Y   228
#endif

#define CAM_OSD_STATEBAR_DVTIME_X	(CAM_DV_STATEICON_X + CAM_DV_STATEICON_W+4)
#define CAM_OSD_STATEBAR_DVTIME_Y	(CAM_DV_STATEICON_Y + CAM_DV_STATEICON_H/2 - 4)
#define CAM_OSD_STATEBAR_DVTIME_W   52
#define CAM_OSD_STATEBAR_DVTIME_H   32
#if ((CAM_OSD_LCD_H == 240) && (CAM_OSD_LCD_W == 320) )
#define CAM_DC_PIXELSTR_X   16         /* DC状态下图象分辨率字符串坐标 */
#define CAM_DC_PIXELSTR_Y   212
#elif ((CAM_OSD_LCD_H == 272) && (CAM_OSD_LCD_W == 480) )
#define CAM_DC_PIXELSTR_X   128         /* DC状态下图象分辨率字符串坐标 */
#define CAM_DC_PIXELSTR_Y   18
#endif

#if ((CAM_OSD_LCD_H == 240) && (CAM_OSD_LCD_W == 320) )
#define CAM_OSD_SETICON_W   CAM_OSD_STATEBAR_X     /* 设置小图标的宽度 */
#define CAM_OSD_SETICON_H    CAM_OSD_STATEBAR_Y
#endif

/*对话框位置*/
#if (CAM_DIALOG_METHOD == CAM_DIALOG_PIC)
#define CAM_DIALOG_W	80
#define CAM_DIALOG_H	56
#elif (CAM_DIALOG_METHOD == CAM_DIALOG_STR)
#define CAM_DIALOG_W	120
#define CAM_DIALOG_H	56
#endif

#define CAM_DIALOG_X    ((CAM_OSD_LCD_W - CAM_DIALOG_W)/2)
#define CAM_DIALOG_Y	((CAM_OSD_LCD_H- CAM_DIALOG_H)/2)

/* 进度条坐标 */
#if (CAM_DIALOG_METHOD == CAM_DIALOG_PIC)
#define CAM_PROCESSBAR_W   160
#define CAM_PROCESSBAR_H   20
#define CAM_PROCESSBAR_X   ((CAM_OSD_LCD_W - CAM_PROCESSBAR_W)/2)
#define CAM_PROCESSBAR_Y   ((CAM_OSD_LCD_H - CAM_PROCESSBAR_H)/2)
#elif (CAM_DIALOG_METHOD == CAM_DIALOG_STR)
#define CAM_PROCESSBAR_X   ((CAM_OSD_LCD_W - CAM_DIALOG_W)/2)
#define CAM_PROCESSBAR_Y   ((CAM_OSD_LCD_H- CAM_DIALOG_H)/2)
#endif

/*******************************************************************/
/* 二级菜单各个菜单项数 */

#define CAM_PIXEL_CNT		3
#define CAM_BLIGHT_CNT		3
#define CAM_ZOOM_CNT   3
#define CAM_MODE_CNT   6
#define CAM_SATURATION_CNT	3
#define CAM_BW_CNT			3
#define CAM_SCENMODE_CNT	3
#define CAM_STORAGE_CNT		1


#define DIALOG_NOEXIST_FLAG 0x80	/*对话框存在的标志*/

/* 进度条显示级数 */
#define CAM_PROCESS_STEP	5

/*******************************************************************/

typedef int   (*ITEMSELHOOK)(INT8U);

typedef enum CAM_STORAGE_TYPEtag
{
    eCamFlash,
    eCamCard,
}CAM_STORAGE_TYPE;

typedef enum CAM_SELECT_TYPEtag
{
    eNoSelect = 0,
    eSelect
}CAM_SELECT_TYPE;

/* OSD 控制状态
				pre				  menu
	eDv状态	<--------> eDc状态  <--------> eSetting状态
	  |			next	  |	  	  return
	  |				   	  |
	  |play		   		  |play
	  |				   	  |
	  V				   	  V
	 摄像			   	 拍照

*/
typedef enum CAMERA_STATEtag
{
    eOSD_Dc,
    eOSD_Setting,
    eOSD_Dv,
    eOSD_NULL
}CAMERA_STATE;

/* 提示对话框类型 (可以将这个类型的顺序同错误号匹配,从而调用方便)*/
typedef enum CAM_DIALOGtag
{
    eSaveSuccess,
    eNoSpace,
    eSaveFail,
    eEncodeError,
    eWait,
    eSensorError,
    eDialogMax
}CAM_DIALOG;

/*
	菜单结构:
	Root----(menulevel1)
		    |
	  	    分辨率  ---320*240-640*480-800*600-1024*768-1280*1024 - ...		(menulevel2)
			|
			亮度	---level 0-level 1-level 2-level 3 -level 4 - ... 		(menulevel2)
			|
			对比度  --- ...
			|
			饱和度  --- ...
			|
			变焦    --- ...
			|
			模式   	--- ...
			|
			效果	--- ...
			|
			质量  	--- ...
*/
/* 该结构体顺序必须同 CAM_SETTING_MENU 中菜单项一一对应 */


typedef struct CAMERA_CONFIGtag
{
#if (REGISTER_METHOD == eRegisterNew)
    UINT32 size;
    char  Name[32];
#endif
    INT8U  DcImagePixel;/*DC分辨率*/
    INT8U  backlight;    /*亮度*/
    INT8U  zoom;		 /*调焦*/
    INT8U  mode;		  /*拍摄模式*/
    INT8U  staturation; /*饱和度*/
    INT8U  bw;   /*白平衡*/
    INT8U  ScenMode; /*风景模式*/
    INT8U  Storage;  /*存储位置*/
}CAMERA_CONFIG;

typedef enum CAM_SETTING_ITEMtag
{
    eCamPixel = 0,	//分辨率
    eCamBrightness,	//亮度
    eCamZoom, 		//变焦
    eCamMode,		//模式
    eCamSaturation, //饱和度
    eCamBw,			//白平衡
    eCamScenMode,
    eCamStorage,
    eCamMax
}CAM_MENULEVEL1_ITEM;


/*******************************************************************/

/* 进度条结构体 */
typedef struct CAM_PROCESStag
{
#if 0
    struct CAMREStag *pCamResProcess;
#endif    
    HTIMER processHandle;
    char   curPoint;
    UHRECT rect;
}CAM_PROCESS;
/* 菜单结构体 */
typedef struct CAM_MENUtag
{
    char 		curItem;				//当前选中的菜单项
    char 		preItem;				//上次选中的菜单项(用于优化刷屏)
    char 		itemCnt;				//菜单项数
#if 0
    struct CAMREStag  *menuItemsRes; 			//菜单项资源
#endif
    INT16U  menuItemsRes;   //菜单
    ITEMSELHOOK itemSelectHook;			//菜单入口函数
}CAM_MENU;

typedef struct CAM_MENUResTag
{
    struct CAMREStag *array_ptr;
    INT8U itemCnt;
    char *str_ptr;
}CAM_MENURes;

/*******************************************************************/
int Cam_MainWin(void* Parent, char* InputParam, void* data);
void Cam_WinDialog( CAM_DIALOG dialogtype,  UINT8 tick );
void Cam_Reset(void);
void Cam_WinDrawTime(INT16U x, INT16U y, INT32U sTime );
void Cam_WinProcessStart(INT16U x, INT16U y);
void Cam_WinProcessStop(void);

#endif

#endif

⌨️ 快捷键说明

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