📄 camwin_style2.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 + -