?? w_menumode.c
字號:
#define _W_MENUMODE_C_
#include "BUxx_setuptable.h"
#include "BUxx_demoset.h"
#include "BUxx_Sample.h"
#include "BUxx_DRV.h"
#include "BUxx_aDRT.h"
#include "BUxx_aDSC.h"
#include "BUxx_mem.h"
#include "W_MenuMode.h"
static void Menu(void)
{
static u8 u8SelectedFuncID = 1;
if (gl_menu_first_show == 1)
{
ShowMenu(u8SelectedFuncID);
gl_menu_first_show = 0;
}
switch (gl_keydisp)
{
case KEY3: // top button ON
MenuMoveUp(&u8SelectedFuncID);
break;
case KEY5: // bottom button ON
MenuMoveDown(&u8SelectedFuncID);
break;
case KEY8: // enter button ON
gl_function_id = u8SelectedFuncID;
break;
default:
break;
} //switch(gl_keydisp)
gl_keydisp = 0;
}
static void Preview(void)
{
static int filter_select = sDISABLE;
static UINT8 u8OverlayOpen = 0;
static UINT16 u16OvlTime = 0;
static int i8Step = 0;
static UINT8 u8ExOvlPos = 16;
reg_write(INDEX, OVL_CNT);
if ((reg_read(REG) & 0x0003) != 0)
{
if (u16OvlTime >= 1000)
{
u16OvlTime = 0;
data_write(OVL_FRMST1, (u8ExOvlPos << 8) | 140); //95,60
data_write(OVL_FRMST2, (114 << 8) | (u8ExOvlPos + 16)); //95,60
if (u8ExOvlPos == 98)
i8Step = -1;
else if (u8ExOvlPos == 16)
i8Step = 1;
u8ExOvlPos += i8Step;
}
else
{
u16OvlTime++;
}
}
if (gl_first_action == 1)
{
sStartPreview();
gl_first_action = 0;
}
switch (gl_keystate)
{
case KEY1:
gl_keydisp = 0;
gl_keystate = 0x0000;
sZoomPreview(ZOOM_IN);
break;
case KEY7:
gl_keydisp = 0;
gl_keystate = 0x0000;
sZoomPreview(ZOOM_OUT);
break;
default:
break;
}
switch (gl_keydisp)
{
case KEY0:
if (filter_select < sNEGA)
{
filter_select++;
}
else
{
filter_select = sDISABLE;
}
sFilterSet(filter_select);
break;
case KEY1:
u8OverlayOpen = 1 - u8OverlayOpen;
if (u8OverlayOpen == 1)
{
sOverlayPreview();
}
else
{
sStartPreview();
}
break;
case KEY2:
u8OverlayOpen = 1 - u8OverlayOpen;
if (u8OverlayOpen == 1)
{
// aDSC_ExOvlmemory_write(OvlFrame_dat);
data_write(OVL_FRMST1, (u8ExOvlPos << 8) | 140); //95,60
data_write(OVL_FRMST2, (114 << 8) | (u8ExOvlPos + 16)); //95,60
data_write(OVL_CNT, 0x0013);
}
else
{
data_write(OVL_CNT, 0x0000);
}
break;
case KEY8: // enter button ON
gl_function_id = 0;
gl_menu_first_show = 1;
gl_first_action = 1;
aDSC_Quit_Preview();
break;
default:
break;
} //switch(gl_keydisp)
gl_keydisp = 0;
}
static void StillJpeg(void)
{
UINT32 jpeg_size = JPEG_BUFFER;
static UINT8 u8OverlayOpen = 0;
static UINT16 u16OvlTime = 0;
static int i8Step = 0;
static UINT8 u8ExOvlPos = 16;
reg_write(INDEX, OVL_CNT);
if ((reg_read(REG) & 0x0003) != 0)
{
if (u16OvlTime >= 1000)
{
u16OvlTime = 0;
data_write(OVL_FRMST1, (u8ExOvlPos << 8) | 140); //95,60
data_write(OVL_FRMST2, (114 << 8) | (u8ExOvlPos + 16)); //95,60
if (u8ExOvlPos == 98)
i8Step = -1;
else if (u8ExOvlPos == 16)
i8Step = 1;
u8ExOvlPos += i8Step;
}
else
{
u16OvlTime++;
}
}
if (gl_first_action == 1)
{
gl_first_action = 0;
sStartPreview();
}
switch (gl_keydisp)
{
case KEY0:
aDSC_whiteled_on_off(sPWMWHT_ENABLE, 0x3f, 0x3f);
sJPEGFEncode((UINT16 *) BASE_ADDRESS, &jpeg_size);
aDSC_whiteled_on_off(sPWMWHT_DISABLE, 0x3f, 0x3f);
wait(500);
aDSC_fmemory_clear(0, 0, M_LCD_WSIZE, M_LCD_HSIZE,0x0000);
aDSC_data_trans_st(0, 0, M_LCD_WSIZE, M_LCD_HSIZE);
wait(500);
break;
case KEY1:
data_write(OVL_CNT, 0x0000);
sJPEGDecode((unsigned short *) BASE_ADDRESS, &jpeg_size);
break;
case KEY2:
u8OverlayOpen = 1 - u8OverlayOpen;
if (u8OverlayOpen == 1)
{
sOverlayPreview();
// aDSC_ExOvlmemory_write(OvlFrame_dat);
data_write(OVL_FRMST1, (u8ExOvlPos << 8) | 140); //95,60
data_write(OVL_FRMST2, (114 << 8) | (u8ExOvlPos + 16)); //95,60
data_write(OVL_CNT, 0x0013);
}
else
{
data_write(OVL_CNT, 0x0000);
sStartPreview();
}
break;
case KEY3:
/*
aDSC_whiteled_on_off(sPWMWHT_ENABLE, 0x3f, 0x3f);
sJPEGCEncode((UINT16 *) BASE_ADDRESS, &jpeg_size);
aDSC_whiteled_on_off(sPWMWHT_DISABLE, 0x3f, 0x3f);
wait(1000);
RecParamSet(&l_Lcd, 0, 0, M_LCD_WSIZE, M_LCD_HSIZE);
LcdRectWrite(&l_Lcd, 0, 0, 0);
*/
break;
case KEY8: // enter button ON
gl_function_id = 0;
gl_menu_first_show = 1;
gl_first_action = 1;
aDSC_Quit_Preview();
break;
default:
break;
} //switch(gl_keydisp)
gl_keydisp = 0;
}
static void Jpeg4Frame(void)
{
UINT16 *multidata[4];
UINT32 multisize[4];
UINT8 i;
multidata[0] = (UINT16 *) BASE_ADDRESS;
multidata[1] = multidata[0] + MULTI_JPEG_BUFFER / 2;
multidata[2] = multidata[1] + MULTI_JPEG_BUFFER / 2;
multidata[3] = multidata[2] + MULTI_JPEG_BUFFER / 2;
for (i = 0; i < 4; i++)
{
multisize[i] = MULTI_JPEG_BUFFER;
}
if (gl_first_action == 1)
{
gl_first_action = 0;
sStartPreview();
}
switch (gl_keydisp)
{
case KEY0:
sMultiShot(multidata[0], multisize);
break;
case KEY8: // enter button ON
gl_function_id = 0;
gl_menu_first_show = 1;
gl_first_action = 1;
aDSC_Quit_Preview();
break;
default:
break;
} //switch(gl_keydisp)
gl_keydisp = 0;
}
static void MotionJpeg(void)
{
UINT16 *mjdata;
static UINT32 mjsize = MJPEG_BUFFER;
mjdata = (UINT16 *) BASE_ADDRESS;
if (gl_first_action == 1)
{
gl_first_action = 0;
sMotionJPEG_Preview();
}
switch (gl_keydisp)
{
case KEY0:
sMjEncode(mjdata, &mjsize);
break;
case KEY1:
sMjDecode(mjdata, &mjsize);
break;
case KEY8: // enter button ON
gl_function_id = 0;
gl_menu_first_show = 1;
gl_first_action = 1;
aDSC_Quit_Preview();
break;
default:
break;
} //switch(gl_keydisp)
gl_keydisp = 0;
}
static void RingBufferJpeg(void)
{
static UINT16 u16CstX = 0, u16CstY = 0;
static UINT8 u8Step = 16;
if (gl_first_action == 0)
{
gl_first_action = 1;
sStartPreview();
}
switch (gl_keystate)
{
case KEY1:
gl_keydisp = 0;
gl_keystate = 0x0000;
if (u16CstX >= u8Step)
u16CstX -= u8Step;
else
u16CstX = 0;
sJPEGCameraDecode((UINT16 *) BASE_ADDRESS, u16CstX, u16CstY);
break;
case KEY3:
gl_keydisp = 0;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -