?? w_menumode.c
字號:
gl_keystate = 0x0000;
if (u16CstY >= u8Step)
u16CstY -= u8Step;
else
u16CstY = 0;
sJPEGCameraDecode((UINT16 *) BASE_ADDRESS, u16CstX, u16CstY);
break;
case KEY5:
gl_keydisp = 0;
gl_keystate = 0x0000;
if ((u16CstY + u8Step + M_LCD_HSIZE) < CAM_VSIZE)
u16CstY += u8Step;
else
u16CstY = CAM_VSIZE - M_LCD_HSIZE - 1;
sJPEGCameraDecode((UINT16 *) BASE_ADDRESS, u16CstX, u16CstY);
break;
case KEY7:
gl_keydisp = 0;
gl_keystate = 0x0000;
if ((u16CstX + u8Step + M_LCD_WSIZE) < CAM_HSIZE)
u16CstX += u8Step;
else
u16CstX = CAM_HSIZE - M_LCD_WSIZE - 2;
sJPEGCameraDecode((UINT16 *) BASE_ADDRESS, u16CstX, u16CstY);
break;
default:
break;
}
switch (gl_keydisp)
{
case KEY0:
sJPEGCEncode((UINT16 *) BASE_ADDRESS, 12);
/*
aDSC_Quit_Preview();
bit_write(CLKCNT, bLCDFREN | bSCKEN, LOW);
clk_div1_set(0x000f);
bit_write(CLKCNT, bLCDFREN | bSCKEN, HIGH);
// aDSC_i2c_set(sDEV_7BIT, 0x6e, 0x92, 0x10, 0x0f, sSERI_WRITE);
// aDSC_i2c_set(sDEV_7BIT, 0x6e, 0x81, 0x94, 0x0f, sSERI_WRITE);
// aDSC_i2c_set(sDEV_7BIT, 0x6e, 0x99, 0x01, 0x0f, sSERI_WRITE);
// aDSC_i2c_set(sDEV_7BIT, 0x6e, 0x9A, 0x10, 0x0f, sSERI_WRITE);
bit_write(CLKCNT, bLCDFREN | bSCKEN, LOW);
clk_div1_set(0x0000);
bit_write(CLKCNT, bLCDFREN | bSCKEN, HIGH);
// sStartPreview();
// wait(1000);
sJPEGCEncode((UINT16 *) BASE_ADDRESS,12);
bit_write(CLKCNT, bLCDFREN | bSCKEN, LOW);
clk_div1_set(0x000f);
bit_write(CLKCNT, bLCDFREN | bSCKEN, HIGH);
// aDSC_i2c_set(sDEV_7BIT, 0x6e, 0x92, 0x40, 0x0f, sSERI_WRITE);
// aDSC_i2c_set(sDEV_7BIT, 0x6e, 0x99, 0x03, 0x0f, sSERI_WRITE);
// aDSC_i2c_set(sDEV_7BIT, 0x6e, 0x9A, 0xF0, 0x0f, sSERI_WRITE);
bit_write(CLKCNT, bLCDFREN | bSCKEN, LOW);
clk_div1_set(0x0000);
bit_write(CLKCNT, bLCDFREN | bSCKEN, HIGH);
*/
break;
case KEY4:
u8Step += 4;
u8Step %= 44;
break;
case KEY6:
sJPEGCameraDecode((UINT16 *) BASE_ADDRESS, u16CstX, u16CstY);
break;
case KEY8:
aDSC_Quit_Preview();
gl_function_id = 0;
gl_menu_first_show = 1;
gl_first_action = 0;
break;
default:
break;
}
gl_keydisp = 0;
}
static void RotJpeg(void)
{
UINT32 u32RgbBufferSize = 153600 + 4; //320*240*2+4
if (gl_first_action == 0)
{
gl_first_action = 1;
sStartPreview();
}
switch (gl_keydisp)
{
case KEY0:
sJPEGCEncode2((UINT16 *) BASE_ADDRESS + u32RgbBufferSize, 2);
sJPEGCameraDecode2((UINT16 *) BASE_ADDRESS + u32RgbBufferSize, 128, 96);
break;
case KEY1:
memset((UINT8 *) BASE_ADDRESS, 0, u32RgbBufferSize);
aDSC_fmemory_clear(0, 0, 144, 176, 0x0); //test 20050519
sJPEGHostDec((UINT16 *) BASE_ADDRESS + u32RgbBufferSize, (UINT16 *) BASE_ADDRESS);
// sRgbRot((UINT16 *) BASE_ADDRESS, u32RgbBufferSize);
// sJPEGHostEnc((UINT16 *) BASE_ADDRESS+u32RgbBufferSize,12);
// sJPEGCameraDecode2((UINT16 *) BASE_ADDRESS+u32RgbBufferSize, 96, 128);
break;
case KEY8:
aDSC_Quit_Preview();
gl_function_id = 0;
gl_menu_first_show = 1;
gl_first_action = 0;
break;
default:
break;
}
gl_keydisp = 0;
}
#ifdef _BU1563API_INTERFACE_
static void CamFunc(void)
{
static c_SetBase **pp_CurSetData = (c_SetBase **) cBase;
if (gl_first_action == 0)
{
fPreview();
gl_first_action = 1;
}
switch (gl_keystate)
{
case KEY0:
gl_keydisp = 0;
gl_keystate = 0x0000;
fZoom(ZOOM_IN);
break;
case KEY6:
gl_keydisp = 0;
gl_keystate = 0x0000;
fZoom(ZOOM_OUT);
break;
default:
break;
}
switch (gl_keydisp)
{
case KEY1:
if (pp_CurSetData == (c_SetBase **) cBase)
pp_CurSetData = (c_SetBase **) (cBase + gv_SetMaxNum - 1);
else
pp_CurSetData--;
(*pp_CurSetData)->fSet(*pp_CurSetData);
gl_first_action = 0;
break;
case KEY7:
if (pp_CurSetData == (c_SetBase **) (cBase + gv_SetMaxNum - 1))
pp_CurSetData = (c_SetBase **) cBase;
else
pp_CurSetData++;
(*pp_CurSetData)->fSet(*pp_CurSetData);
gl_first_action = 0;
break;
case KEY3:
if ((*pp_CurSetData)->u16CurIndex == 0)
{
(*pp_CurSetData)->u16CurIndex = (*pp_CurSetData)->u16MaxNum - 1;
}
else
{
(*pp_CurSetData)->u16CurIndex--;
}
(*pp_CurSetData)->fSet(*pp_CurSetData);
gl_first_action = 0;
break;
case KEY5:
if ((*pp_CurSetData)->u16CurIndex == (*pp_CurSetData)->u16MaxNum - 1)
{
(*pp_CurSetData)->u16CurIndex = 0;
}
else
{
(*pp_CurSetData)->u16CurIndex++;
}
(*pp_CurSetData)->fSet(*pp_CurSetData);
gl_first_action = 0;
break;
case KEY4:
fJpegEnc();
fJpegDec();
break;
case KEY2:
gl_first_action = 0;
break;
case KEY8:
gl_menu_first_show = 1;
gl_first_action = 0;
aDSC_Quit_Preview();
break;
default:
break;
}
gl_keydisp = 0;
}
#endif //#ifdef _BU1563API_INTERFACE_
static void MenuMoveUp(u8 * p_u8SelectedFuncID)
{
u8 u8FuncMaxItem = sizeof(tMenu) / 36;
if (*p_u8SelectedFuncID == 1)
{
*p_u8SelectedFuncID = u8FuncMaxItem - 1;
}
else
{
(*p_u8SelectedFuncID)--;
}
ShowMenu(*p_u8SelectedFuncID);
}
static void MenuMoveDown(u8 * p_u8SelectedFuncID)
{
u8 u8FuncMaxItem = sizeof(tMenu) / 36;
if (*p_u8SelectedFuncID == (u8FuncMaxItem - 1))
{
*p_u8SelectedFuncID = 1;
}
else
{
(*p_u8SelectedFuncID)++;
}
ShowMenu(*p_u8SelectedFuncID);
}
static void ShowMenu(u8 u8SelectedFuncID)
{
u8 u8CurrentFuncStartY = 0;
u8 u8DisplayMaxItem = (M_LCD_HSIZE - 2 * PICT_SIZE) / PICT_SIZE;
u8 u8DisplayBlank = (M_LCD_HSIZE - 2 * PICT_SIZE) % PICT_SIZE / 2;
if (gl_menu_first_show == 1)
{
aDSC_lcdaccess_set(sMAIN_ACS);
aDSC_fmemory_clear(0, 0, M_LCD_WSIZE, PICT_SIZE,
((MLCD_BCOL_RU & 0xf8) << 8) | ((MLCD_BCOL_GU & 0xfc) << 3) | ((MLCD_BCOL_BU & 0xf8) >> 3));
aDSC_fmemory_clear(0, M_LCD_HSIZE - PICT_SIZE, M_LCD_WSIZE,PICT_SIZE,
((MLCD_BCOL_RU & 0xf8) << 8) | ((MLCD_BCOL_GU & 0xfc) << 3) | ((MLCD_BCOL_BU & 0xf8) >> 3));
aDSC_fmemory_clear(0, PICT_SIZE, M_LCD_WSIZE, M_LCD_HSIZE - 2 * PICT_SIZE,
((MLCD_BCOL_RC & 0xf8) << 8) | ((MLCD_BCOL_GC & 0xfc) << 3) | ((MLCD_BCOL_BC & 0xf8) >> 3));
u8CurrentFuncStartY = PICT_SIZE * u8DisplayMaxItem / 2 + u8DisplayBlank;
aDSC_fmemory_clear(0, u8CurrentFuncStartY, M_LCD_WSIZE, PICT_SIZE,
((0x00 & 0xf8) << 8) | ((0xfc & 0xfc) << 3) | ((0xf8 & 0xf8) >> 3));
StringWrite(tMenu[u8SelectedFuncID].szFuncName, 6,
u8CurrentFuncStartY);
}
else
{
u8CurrentFuncStartY = PICT_SIZE * u8DisplayMaxItem / 2 + u8DisplayBlank;
aDSC_fmemory_clear(0, u8CurrentFuncStartY, M_LCD_WSIZE, PICT_SIZE,
((0x00 & 0xf8) << 8) | ((0xfc & 0xfc) << 3) | ((0xf8 & 0xf8) >> 3));
StringWrite(tMenu[u8SelectedFuncID].szFuncName, 6, u8CurrentFuncStartY);
}
aDSC_data_trans_st(0, 0, M_LCD_WSIZE, M_LCD_HSIZE);
}
static void StringWrite(const char *string, u16 u16StartPosX, u16 u16StartPosY)
{
UINT8 space = 2;
UINT16 st_x = u16StartPosX;
UINT16 st_y = u16StartPosY;
int font_cnt;
const UINT16 *font_data;
for (font_cnt = 0; (font_cnt < 10) || (*string != '\0'); font_cnt++)
{
if (*string != '\0')
{
font_data = fonttable[*string];
aDSC_transparent_write_rgb565(font_data, st_x + (space + 6) *
font_cnt, st_y, 0xffff, 0x0000);
// aDSC_fmemory_write_rgb565(font_data, st_x + (space + 4) * font_cnt, st_y);
string++;
}
}
}
/*
static void NumberWrite(int s32Number, u16 u16StartPosX, u16 u16StartPosY)
{
u8 u8String[16], u8StrTemp[16];
u8 i = 0, j;
while ((s32Number / 10 != 0) && (i <= 15))
{
u8StrTemp[i++] = s32Number % 10 + '0';
s32Number /= 10;
}
u8StrTemp[i++] = s32Number + '0';
u8StrTemp[i] = 0;
for (j = 0; j < i; j++)
{
u8String[j] = u8StrTemp[i - j - 1];
}
u8String[j] = 0;
StringWrite((char *) u8String, u16StartPosX, u16StartPosY);
}
*/
#undef _W_MENUMODE_C_
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -