📄 settingtimedateapi.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 <string.h>
void _settimedate_init(void);
//void _settimedate_background(void);
//void _settimedate_item(void);
void _settimedate_value_update(void);
void _settimedate_up(void);
void _settimedate_down(void);
void _settimedate_left(void);
void _settimedate_right(void);
void _settimedate_play(void);
void _settimedate_mode(void);
void _show_battery(void);
uint8 _get_battery_icon_index(void);
uint8 item_selection;
uint8 time_format;
uint8 setting_state,set_time_fcous,set_date_fcous;
uint8 slide_bat_lv_idx,cur_bat_lv_icon_idx;
void _settimedate_init(void)
{
item_selection = API_SysReadValue(RAM_SHARING_ADR,SETTING_SEL);
set_time_fcous = 0;
set_date_fcous = 0;
time_format = API_SysReadValue(RAM_SETTING_ADR,SET_TIME_FORMAT);
API_LcmSetLanguage(CS_BIG5);
API_LcmSetCharForm(CHFS_16x16);
API_LcmSetCharColor(COLOR_WHITE,COLOR_DPF_BG);
API_LcmSetStringLenth(24);
API_LcmEnableKeepBackGround();
switch(item_selection)
{
case SETTINGMENU_ITEM_TIMESET:
setting_state = SETTING_STATE_TIME_ADJUST;
//set_time_fcous = 0;
break;
case SETTINGMENU_ITEM_DATESET:
setting_state = SETTING_STATE_DATE_ADJUST;
//set_date_fcous = 0;
break;
}
slide_bat_lv_idx = _get_battery_icon_index();
cur_bat_lv_icon_idx = _get_battery_icon_index();
}
void _settimedate_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_TIMESET:
//show time
if(time_format)
{
//show 24 HR time
API_LcmShowNumber(API_TimeGetHour(),POS_PHOMENU_VALUE_X+24,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*1),1);
API_LcmShowString(":",POS_PHOMENU_VALUE_X+40,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*1));
API_LcmShowNumber(API_TimeGetMinute(),POS_PHOMENU_VALUE_X+48,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*1),1);
//show date fcous
if(setting_state == SETTING_STATE_TIME_ADJUST)
{
switch(set_time_fcous)
{
case 0:
API_LcmPutSysImage(IMG_SELECT_UP,POS_PHOMENU_VALUE_X+28,POS_PHOMENU_VALUE_Y-5+(POS_PHOMENU_VALUE_GAP*1));
API_LcmPutSysImage(IMG_SELECT_DOWN,POS_PHOMENU_VALUE_X+28,POS_PHOMENU_VALUE_Y-5+20+(POS_PHOMENU_VALUE_GAP*1));
break;
case 1:
API_LcmPutSysImage(IMG_SELECT_UP,POS_PHOMENU_VALUE_X+52,POS_PHOMENU_VALUE_Y-5+(POS_PHOMENU_VALUE_GAP*1));
API_LcmPutSysImage(IMG_SELECT_DOWN,POS_PHOMENU_VALUE_X+52,POS_PHOMENU_VALUE_Y-5+20+(POS_PHOMENU_VALUE_GAP*1));
break;
}
}
}
else
{
//show 12 HR time
if(API_TimeGetHour() == 12 || API_TimeGetHour() == 0)
API_LcmShowNumber(12,POS_PHOMENU_VALUE_X+8,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*1),1);
else
API_LcmShowNumber(API_TimeGetHour()%12,POS_PHOMENU_VALUE_X+8,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*1),1);
API_LcmShowString(":",POS_PHOMENU_VALUE_X+24,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*1));
API_LcmShowNumber(API_TimeGetMinute(),POS_PHOMENU_VALUE_X+32,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*1),1);
if(API_TimeGetHour()/12)
API_LcmShowString("PM",POS_PHOMENU_VALUE_X+56,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*1));
else
API_LcmShowString("AM",POS_PHOMENU_VALUE_X+56,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*1));
//show date fcous
if(setting_state == SETTING_STATE_TIME_ADJUST)
{
switch(set_time_fcous)
{
case 0:
API_LcmPutSysImage(IMG_SELECT_UP,POS_PHOMENU_VALUE_X+12,POS_PHOMENU_VALUE_Y-5+(POS_PHOMENU_VALUE_GAP*1));
API_LcmPutSysImage(IMG_SELECT_DOWN,POS_PHOMENU_VALUE_X+12,POS_PHOMENU_VALUE_Y-5+20+(POS_PHOMENU_VALUE_GAP*1));
break;
case 1:
API_LcmPutSysImage(IMG_SELECT_UP,POS_PHOMENU_VALUE_X+36,POS_PHOMENU_VALUE_Y-5+(POS_PHOMENU_VALUE_GAP*1));
API_LcmPutSysImage(IMG_SELECT_DOWN,POS_PHOMENU_VALUE_X+36,POS_PHOMENU_VALUE_Y-5+20+(POS_PHOMENU_VALUE_GAP*1));
break;
case 2:
API_LcmPutSysImage(IMG_SELECT_UP,POS_PHOMENU_VALUE_X+60,POS_PHOMENU_VALUE_Y-5+(POS_PHOMENU_VALUE_GAP*1));
API_LcmPutSysImage(IMG_SELECT_DOWN,POS_PHOMENU_VALUE_X+60,POS_PHOMENU_VALUE_Y-5+20+(POS_PHOMENU_VALUE_GAP*1));
break;
}
}
}
break;
case SETTINGMENU_ITEM_DATESET:
//show date
API_LcmShowNumber2B(API_TimeGetYear(),POS_PHOMENU_VALUE_X,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*2));
API_LcmShowString("-",POS_PHOMENU_VALUE_X+32,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*2));
API_LcmShowNumber(API_TimeGetMonth(),POS_PHOMENU_VALUE_X+40,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*2),1);
API_LcmShowString("-",POS_PHOMENU_VALUE_X+56,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*2));
API_LcmShowNumber(API_TimeGetDay(),POS_PHOMENU_VALUE_X+64,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*2),1);
//show fcous
if(setting_state == SETTING_STATE_DATE_ADJUST)
{
switch(set_date_fcous)
{
case 0:
API_LcmPutSysImage(IMG_SELECT_UP,POS_PHOMENU_VALUE_X+12,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*2)-5);
API_LcmPutSysImage(IMG_SELECT_DOWN,POS_PHOMENU_VALUE_X+12,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*2)-5+20);
break;
case 1:
API_LcmPutSysImage(IMG_SELECT_UP,POS_PHOMENU_VALUE_X+44,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*2)-5);
API_LcmPutSysImage(IMG_SELECT_DOWN,POS_PHOMENU_VALUE_X+44,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*2)-5+20);
break;
case 2:
API_LcmPutSysImage(IMG_SELECT_UP,POS_PHOMENU_VALUE_X+68,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*2)-5);
API_LcmPutSysImage(IMG_SELECT_DOWN,POS_PHOMENU_VALUE_X+68,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*2)-5+20);
break;
}
}
break;
}
}
void _settimedate_up(void)
{
uint8 hour,min;
switch(setting_state)
{
case SETTING_STATE_TIME_ADJUST:
switch(set_time_fcous)
{
case 0: // hour
hour = API_TimeGetHour();
if(hour == 23)
hour = 0;
else
hour++;
API_TimeSetHour(hour);
break;
case 1: // mintue
min = API_TimeGetMinute();
if(min == 59)
min = 0;
else
min++;
API_TimeSetMinute(min);
break;
case 2: //AM/PM
hour = API_TimeGetHour();
if(hour>=12)
hour = hour - 12;
else
hour = hour + 12;
API_TimeSetHour(hour);
break;
}
_settimedate_value_update();
break;
case SETTING_STATE_DATE_ADJUST:
switch(set_date_fcous)
{
case 0: // year
API_TimeIncYear();
break;
case 1: // month
API_TimeIncMonth();
break;
case 2: //day
API_TimeIncDay();
break;
}
_settimedate_value_update();
break;
}
}
void _settimedate_down(void)
{
uint8 hour,min;
switch(setting_state)
{
case SETTING_STATE_TIME_ADJUST:
switch(set_time_fcous)
{
case 0: // hour
hour = API_TimeGetHour();
if(hour == 0)
hour = 23;
else
hour--;
API_TimeSetHour(hour);
break;
case 1: // mintue
min = API_TimeGetMinute();
if(min == 0)
min = 59;
else
min--;
API_TimeSetMinute(min);
break;
case 2: //AM/PM
hour = API_TimeGetHour();
if(hour>=12)
hour = hour - 12;
else
hour = hour + 12;
API_TimeSetHour(hour);
break;
}
_settimedate_value_update();
break;
case SETTING_STATE_DATE_ADJUST:
switch(set_date_fcous)
{
case 0: // year
API_TimeDecYear();
break;
case 1: // month
API_TimeDecMonth();
break;
case 2: //day
API_TimeDecDay();
break;
}
_settimedate_value_update();
break;
}
}
void _settimedate_left(void)
{
// update value
switch(item_selection)
{
case SETTINGMENU_ITEM_TIMESET:
if(setting_state == SETTING_STATE_TIME_ADJUST)
{
if(set_time_fcous > 0)
set_time_fcous--;
}
break;
case SETTINGMENU_ITEM_DATESET:
if(setting_state == SETTING_STATE_DATE_ADJUST)
{
if(set_date_fcous > 0)
set_date_fcous--;
}
break;
}
_settimedate_value_update();
}
void _settimedate_right(void)
{
// update value
uint8 time_fcous_max;
switch(item_selection)
{
case SETTINGMENU_ITEM_TIMESET:
if(setting_state == SETTING_STATE_TIME_ADJUST)
{
if(time_format) // 24HR format
time_fcous_max = 1;
else
time_fcous_max = 2;
if(set_time_fcous < time_fcous_max)
set_time_fcous++;
}
break;
case SETTINGMENU_ITEM_DATESET:
if(setting_state == SETTING_STATE_DATE_ADJUST)
{
if(set_date_fcous < 2)
set_date_fcous++;
}
break;
}
_settimedate_value_update();
}
void _settimedate_play(void)
{
API_SysWriteValue(RAM_SHARING_ADR,SETTING_SEL,item_selection);
API_OsSetCurrentTask(TASKID_SETTINGMENU2);
}
void _settimedate_mode(void)
{
API_SysWriteValue(RAM_SHARING_ADR,SETTING_SEL,item_selection);
API_OsSetCurrentTask(TASKID_SETTINGMENU2);
}
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 + -