📄 settingmenu3api.c
字号:
//********************************************************************
// Name: PhotoMenuAPI.c
//
// Copyright (C) Sitronix TECHNOLOGY INC.
// All rights reserved by Sitronix TECHNOLOGY INC.
//
// Project: ST3110
// Author: Terry Wu
// Begin Date: 2008/05/19
// Last update:
// $Header: $
// Description:
// photo menu API
//
//
//********************************************************************
#pragma codeseg(APP)
#include "sys.h"
#include "img_position.h"
#include "ST3110_img_define.h"
#include "multilanguage.h"
#include "SettingMenu.h"
#include "MusicPlayer.h"
#include <string.h>
void _setting_menu3_init(void);
void _setting_menu3_background(void);
void _setting_menu3_item(void);
void _setting_menu3_value_update(void);
void _setting_menu3_up(void);
void _setting_menu3_down(void);
void _setting_menu3_left(void);
void _setting_menu3_right(void);
void _setting_menu3_play(void);
void _setting_menu3_mode(void);
void _setting_show_string(uint32 txt_index, uint16 pos_x, uint16 pos_y);
void _setting_version_box(void);
void _setting_clear_version_box(void);
void _show_battery(void);
uint8 _get_battery_icon_index(void);
uint8 item_selection,last_item_selection;
uint8 repaint_flag,language;
uint8 restore_box_flag,is_restore;
uint8 version_box_flag;
uint8 string[255];
uint8 slide_bat_lv_idx,cur_bat_lv_icon_idx;
void _setting_menu3_init(void)
{
item_selection = API_SysReadValue(RAM_SHARING_ADR,SETTING_SEL);
last_item_selection = 0;
repaint_flag = TRUE;
version_box_flag = FALSE;
language = API_SysReadValue(RAM_SETTING_ADR,SET_LANGUAGE);
API_LcmSetLanguage(CS_UNICODE);
//API_LcmSetLanguage(CS_BIG5);
//API_LcmSetCharForm(CHFS_16x16);
//API_LcmSetCharColor(COLOR_WHITE,COLOR_DPF_BG);
//API_LcmSetStringLenth(24);
//API_LcmEnableKeepBackGround();
}
void _setting_menu3_background(void)
{
// paint screen
API_LcmPutSysImage(IMG_BACKGD,POS_PHOMENU_BG_X,POS_PHOMENU_BG_Y);
API_LcmPutSysImage(IMG_HEADER_SETTING,POS_SETTING_LOG_X,POS_SETTING_LOG_Y);
API_LcmPutSysImage(IMG_TEXT_HEADER_SETTING_EN+language,POS_SETTING_TITLE_X,POS_SETTING_TITLE_Y);
//show battery icon
_show_battery();
slide_bat_lv_idx = _get_battery_icon_index();
cur_bat_lv_icon_idx = _get_battery_icon_index();
//srcoll bar
API_LcmPutSysImage(IMG_MOVE_BAR,POS_MUSBRO_MOVBAR_X,POS_MUSBRO_MOVBAR_Y);
API_LcmPutSysImage(IMG_MOVE,POS_MUSBRO_EMOV_X,POS_MUSBRO_EMOV_Y);
}
void _setting_menu3_item(void)
{
uint8 i;
// clean last selection bar
API_LcmPutSysImage(IMG_NO_SELECT_BAR,POS_PHOMENU_SELBAR_X,POS_PHOMENU_SELBAR_Y+((last_item_selection%SETTINGMENU_ITEM_OF_PAGE)*POS_PHOMENU_SELBAR_GAP_Y));
// paint selection bar
API_LcmPutSysImage(IMG_SELECT_BAR,POS_PHOMENU_SELBAR_X,POS_PHOMENU_SELBAR_Y+((item_selection%SETTINGMENU_ITEM_OF_PAGE)*POS_PHOMENU_SELBAR_GAP_Y));
for(i=SETTINGMENU_ITEM_OF_PAGE*2;i<SETTINGMENU_ITEM_NUM;i++)
{
if( (repaint_flag) || (i == last_item_selection) || (i == item_selection) )
{
// show item text
_setting_show_string(NAND_TEXT_ADR+(language*TIDX_AMOUNT_OF_ONE_LANGUAGE)+TIDX_SET_LANGUAGE+i,POS_PHOMENU_ITEM_X,POS_PHOMENU_ITEM_Y+((i%SETTINGMENU_ITEM_OF_PAGE)*POS_PHOMENU_ITEM_GAP));
}
}
//paint arrow
if((item_selection != SETTINGMENU_ITEM_VERSION))
{
API_LcmPutSysImage(IMG_SELECT_LEFT,POS_PHOMENU_SELLEFT_X,POS_PHOMENU_SELLEFT_Y+((item_selection%SETTINGMENU_ITEM_OF_PAGE)*POS_PHOMENU_SELBAR_GAP_Y));
API_LcmPutSysImage(IMG_SELECT_RIGHT,POS_PHOMENU_SELRIGHT_X,POS_PHOMENU_SELRIGHT_Y+((item_selection%SETTINGMENU_ITEM_OF_PAGE)*POS_PHOMENU_SELBAR_GAP_Y));
}
//show item value
//show repeat mode 6
/*
if( (repaint_flag) || (last_item_selection == SETTINGMENU_ITEM_REPEAT) || (item_selection == SETTINGMENU_ITEM_REPEAT) )
{
//API_LcmShowString(repeat_text[repeat],POS_PHOMENU_VALUE_X,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*2));
_setting_show_string(NAND_TEXT_ADR+(language*TIDX_AMOUNT_OF_ONE_LANGUAGE)+TIDX_RE_ONE+repeat,POS_PHOMENU_VALUE_X,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*0));
}
*/
}
void _setting_menu3_value_update(void)
{
/*
//clean value text area
API_LcmPutSysImage(IMG_TEXT_BAR,POS_PHOMENU_TEXTBAR_X,POS_PHOMENU_TEXTBAR_Y+((item_selection%SETTINGMENU_ITEM_OF_PAGE)*POS_PHOMENU_TEXTBAR_GAP_Y));
// update value
switch(item_selection)
{
case SETTINGMENU_ITEM_REPEAT: //6
_setting_show_string(NAND_TEXT_ADR+(language*TIDX_AMOUNT_OF_ONE_LANGUAGE)+TIDX_RE_ONE+repeat,POS_PHOMENU_VALUE_X,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*0));
break;
case SETTINGMENU_ITEM_TIME_FORMAT: //9
_setting_show_string(NAND_TEXT_ADR+(language*TIDX_AMOUNT_OF_ONE_LANGUAGE)+TIDX_12H+time_format,POS_PHOMENU_VALUE_X,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*3));
break;
default:
break;
}
*/
}
void _setting_menu3_up(void)
{
if(version_box_flag)
return;
repaint_flag = FALSE;
last_item_selection = item_selection;
if(item_selection == SETTINGMENU_ITEM_OF_PAGE*2)
{
item_selection = (SETTINGMENU_ITEM_OF_PAGE*2)-1;
API_SysWriteValue(RAM_SHARING_ADR,SETTING_SEL,item_selection);
API_OsSetCurrentTask(TASKID_SETTINGMENU2);
}
else
{
item_selection--;
_setting_menu3_item();
}
}
void _setting_menu3_down(void)
{
if(version_box_flag)
return;
repaint_flag = FALSE;
last_item_selection = item_selection;
if(item_selection == SETTINGMENU_ITEM_NUM-1)
{
item_selection = 0;
API_SysWriteValue(RAM_SHARING_ADR,SETTING_SEL,item_selection);
API_OsSetCurrentTask(TASKID_SETTINGMENU1);
}
else
{
item_selection++;
_setting_menu3_item();
}
}
void _setting_menu3_left(void)
{
/*
// update value
switch(item_selection)
{
case SETTINGMENU_ITEM_REPEAT: //6
if(repeat > 0)
{
repeat--;
API_SysWriteValue(RAM_SETTING_ADR,SET_REPEAT,repeat);
_setting_menu3_value_update();
}
break;
case SETTINGMENU_ITEM_TIME_FORMAT: //9 Time format
time_format = !time_format;
API_SysWriteValue(RAM_SETTING_ADR,SET_TIME_FORMAT,time_format);
_setting_menu3_value_update();
API_LcmPutSysImage(IMG_TEXT_BAR_BG,POS_PHOMENU_TEXTBAR_X,(POS_PHOMENU_TEXTBAR_Y+POS_PHOMENU_TEXTBAR_GAP_Y));
_setting_show_time();
break;
case SETTINGMENU_ITEM_RESTORE:
if(restore_box_flag)
{
is_restore = TRUE;
_setting_restore_box(is_restore);
}
break;
}
*/
}
void _setting_menu3_right(void)
{
/*
switch(item_selection)
{
case SETTINGMENU_ITEM_REPEAT: //4
if(repeat < 2)
{
repeat++;
API_SysWriteValue(RAM_SETTING_ADR,SET_REPEAT,repeat);
_setting_menu3_value_update();
}
break;
case SETTINGMENU_ITEM_TIME_FORMAT: //9 Time format
time_format = !time_format;
API_SysWriteValue(RAM_SETTING_ADR,SET_TIME_FORMAT,time_format);
_setting_menu3_value_update();
API_LcmPutSysImage(IMG_TEXT_BAR_BG,POS_PHOMENU_TEXTBAR_X,(POS_PHOMENU_TEXTBAR_Y+POS_PHOMENU_TEXTBAR_GAP_Y));
_setting_show_time();
break;
case SETTINGMENU_ITEM_RESTORE:
if(restore_box_flag)
{
is_restore = FALSE;
_setting_restore_box(is_restore);
}
break;
}
//_setting_menu3_value_update();
*/
}
void _setting_menu3_play(void)
{
switch(item_selection)
{
case SETTINGMENU_ITEM_VERSION:
if(version_box_flag)
{
version_box_flag = FALSE;
_setting_clear_version_box();
}
else
{
_setting_version_box();
version_box_flag = TRUE;
}
break;
}
}
void _setting_menu3_mode(void)
{
if( (item_selection == SETTINGMENU_ITEM_VERSION) && (version_box_flag) )
{
version_box_flag = FALSE;
_setting_clear_version_box();
}
else
{
// paint photo browser BG
//API_SysWriteValue(RAM_SHARING_ADR,LAST_TASK,TASKID_SETTINGMENU2);
//cur_sel_icon ... already are recorded by PhoEvent
//API_SysWriteValue(RAM_SHARING_ADR,PHO_PAINT_FLAG,3);
API_OsSetCurrentTask(TASKID_CLOCKACLOCK);
//API_OsSetCurrentTask(TASKID_CLOCKDCLOCK);
}
}
void _setting_show_string(uint32 txt_index, uint16 pos_x, uint16 pos_y)
{
//uint8 string[64];
uint16 string_ptr;
string_ptr = (uint16)string;
API_SysLoadValue(txt_index,string_ptr,64);
API_LcmShowString(string,pos_x,pos_y);
}
void _setting_version_box(void)
{
//show del box BG
API_LcmPutSysImage(IMG_PHOTO_DIALOG_BACKGD,POS_PHOMENU_DELBOX_X,POS_PHOMENU_DELBOX_Y);
//show firmware version
API_LcmSetLanguage(CS_BIG5);
API_LcmShowString("Firmware version:",POS_PHOMENU_ITEM_X+80,POS_PHOMENU_ITEM_Y);
API_SysGetOTPVersion(string);
API_LcmShowString(string,POS_PHOMENU_ITEM_X+48,POS_PHOMENU_ITEM_Y+(1*POS_PHOMENU_ITEM_GAP));
API_SysGetOSVersion(string);
API_LcmShowString(string,POS_PHOMENU_ITEM_X+48,POS_PHOMENU_ITEM_Y+(2*POS_PHOMENU_ITEM_GAP));
API_LcmShowString("Application version:",POS_PHOMENU_ITEM_X+64,POS_PHOMENU_ITEM_Y+(3*POS_PHOMENU_ITEM_GAP));
API_LcmShowString(APP_VERSION,POS_PHOMENU_ITEM_X+96,POS_PHOMENU_ITEM_Y+(4*POS_PHOMENU_ITEM_GAP));
API_LcmSetLanguage(CS_UNICODE);
}
void _setting_clear_version_box(void)
{
repaint_flag = TRUE;
_setting_menu3_background();
_setting_menu3_item();
}
void _show_battery(void)
{
API_LcmPutSysImage(IMG_BATTERY_0+_get_battery_icon_index(),POS_MUSBRO_BATTERY_X,POS_MUSBRO_BATTERY_Y);
}
uint8 _get_battery_icon_index(void)
{
uint8 bat_lv_icon_index;
uint8 bat_lv;
bat_lv = API_SysGetVolLv();
if(BATTERY_LV4 <= bat_lv) // > LV4
bat_lv_icon_index = 4;
else if( BATTERY_LV3 <= bat_lv && bat_lv < BATTERY_LV4) // LV3<= <LV4
bat_lv_icon_index = 3;
else if( BATTERY_LV2 <= bat_lv && bat_lv < BATTERY_LV3) // LV2<= <LV3
bat_lv_icon_index = 2;
else if( BATTERY_LV1 <= bat_lv && bat_lv < BATTERY_LV2) // LV1<= <LV2
bat_lv_icon_index = 1;
else if( BATTERY_LV0 <= bat_lv && bat_lv < BATTERY_LV1) // LV0<= <LV1
bat_lv_icon_index = 0;
return bat_lv_icon_index;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -