📄 clockalarmapi.c
字号:
//********************************************************************
// Name: mjpAPI.c
//
// Copyright (C) Sitronix TECHNOLOGY INC.
// All rights reserved by Sitronix TECHNOLOGY INC.
//
// Project: ST3110
// Author: Terry Wu
// Begin Date: 2008/01/01
// Last update: 2008/04/01
// $Header: $
// Description:
// motion jpg function
//
//
//********************************************************************
#include <intr6502.h>
#include "sys.h"
#include "img_position.h"
#include "ST3110_img_define.h"
#include "ClockAlarm.h"
#pragma codeseg(APP)
uint8 alarm_state,alarm_selection,alarm_fcous;
uint8 alarm_enable[2];
uint8 alarm_hr[2],alarm_min[2];
uint8 slide_bat_lv_idx,cur_bat_lv_icon_idx;
void _alarm_init(void);
void _alarm1_show(void);
void _alarm2_show(void);
void _alarm_show_update(void);
void _alarm_set(void);
void _exit_to_PhoBro(void);
void _show_battery(void);
uint8 _get_battery_icon_index(void);
void _alarm_init(void)
{
alarm_state = CLOCKALARM_STATE_BEGIN;
alarm_selection = 0;
alarm_fcous = 0;
alarm_enable[0] = API_SysReadValue(RAM_SETTING_ADR,SET_ALARM1_EN);
alarm_enable[1] = API_SysReadValue(RAM_SETTING_ADR,SET_ALARM2_EN);
alarm_hr[0] = API_SysReadValue(RAM_SETTING_ADR,SET_ALARM1_HOUR);
alarm_hr[1] = API_SysReadValue(RAM_SETTING_ADR,SET_ALARM2_HOUR);
alarm_min[0] = API_SysReadValue(RAM_SETTING_ADR,SET_ALARM1_MIN);
alarm_min[1] = API_SysReadValue(RAM_SETTING_ADR,SET_ALARM2_MIN);
API_LcmSetLanguage(CS_BIG5);
API_LcmSetCharForm(CHFS_16x16);
API_LcmSetCharColor(COLOR_WHITE,COLOR_DPF_BG);
API_LcmEnableKeepBackGround();
// show BG
API_LcmPutSysImage(IMG_BACKGD,0,0);
//show logo
API_LcmPutSysImage(IMG_HEADER_ALARM,POS_CLKALM_LOG_X,POS_CLKALM_LOG_Y);
//show battery
_show_battery();
slide_bat_lv_idx = _get_battery_icon_index();
cur_bat_lv_icon_idx = _get_battery_icon_index();
_alarm1_show();
_alarm2_show();
_alarm_set();
}
void _alarm1_show(void)
{
uint8 alarm_fcous_up_x[]={POS_CLKALM_1UP_FCOUS1_X,POS_CLKALM_1UP_FCOUS2_X,POS_CLKALM_1UP_FCOUS3_X};
uint8 alarm_fcous_up_y[]={POS_CLKALM_1UP_FCOUS1_Y,POS_CLKALM_1UP_FCOUS2_Y,POS_CLKALM_1UP_FCOUS3_Y};
uint8 alarm_fcous_down_x[]={POS_CLKALM_1DOWN_FCOUS1_X,POS_CLKALM_1DOWN_FCOUS2_X,POS_CLKALM_1DOWN_FCOUS3_X};
uint8 alarm_fcous_down_y[]={POS_CLKALM_1DOWN_FCOUS1_Y,POS_CLKALM_1DOWN_FCOUS2_Y,POS_CLKALM_1DOWN_FCOUS3_Y};
if(alarm_selection == 1)
{
if(alarm_state != CLOCKALARM_STATE_ADJUST)
{
// show selection bar
API_LcmPutSysImage(IMG_BAR_ON_BACKGD_BEST,POS_CLKALM_SELBAR1_X,POS_CLKALM_SELBAR1_Y);
// show left right fcous
API_LcmPutSysImage(IMG_BUTTON_LEFT,POS_CLKALM_1LEFT_FCOUS_X,POS_CLKALM_1LEFT_FCOUS_Y);
API_LcmPutSysImage(IMG_BUTTON_RIGHT,POS_CLKALM_1RIGHT_FCOUS_X,POS_CLKALM_1RIGHT_FCOUS_Y);
}
if(alarm_state == CLOCKALARM_STATE_SEL_FCOUS)
{
// show up/down fcous
API_LcmPutSysImage(IMG_BUTTON_UP,alarm_fcous_up_x[alarm_fcous],alarm_fcous_up_y[alarm_fcous]);
API_LcmPutSysImage(IMG_BUTTON_DOWN,alarm_fcous_down_x[alarm_fcous],alarm_fcous_down_y[alarm_fcous]);
}
// show alarm icon
API_LcmPutSysImage(IMG_ICON_ALARM1_DISABLE+alarm_enable[0],POS_CLKALM_ALARM1_ICON_X,POS_CLKALM_ALARM1_ICON_Y);
// show hour
API_LcmPutSysImage(IMG_NUMBER_0_ON+(alarm_hr[0]/10),POS_CLKALM_TIME1_H1_X,POS_CLKALM_TIME1_H1_Y);
API_LcmPutSysImage(IMG_NUMBER_0_ON+(alarm_hr[0]%10),POS_CLKALM_TIME1_H2_X,POS_CLKALM_TIME1_H2_Y);
// show colon
API_LcmPutSysImage(IMG_NUMBER_COLON_ON,POS_CLKALM_COLON1_X,POS_CLKALM_COLON1_Y);
// show minute
API_LcmPutSysImage(IMG_NUMBER_0_ON+(alarm_min[0]/10),POS_CLKALM_TIME1_M1_X,POS_CLKALM_TIME1_M1_Y);
API_LcmPutSysImage(IMG_NUMBER_0_ON+(alarm_min[0]%10),POS_CLKALM_TIME1_M2_X,POS_CLKALM_TIME1_M2_Y);
}
else
{
// clear selection bar
API_LcmPutSysImage(IMG_BAR_OFF_BACKGD_BEST,POS_CLKALM_SELBAR1_X,POS_CLKALM_SELBAR1_Y);
// show alarm icon
API_LcmPutSysImage(IMG_ICON_ALARM1_OFF+alarm_enable[0],POS_CLKALM_ALARM1_ICON_X,POS_CLKALM_ALARM1_ICON_Y);
// show hour
API_LcmPutSysImage(IMG_NUMBER_0_NORMAL+(alarm_hr[0]/10),POS_CLKALM_TIME1_H1_X,POS_CLKALM_TIME1_H1_Y);
API_LcmPutSysImage(IMG_NUMBER_0_NORMAL+(alarm_hr[0]%10),POS_CLKALM_TIME1_H2_X,POS_CLKALM_TIME1_H2_Y);
// show colon
API_LcmPutSysImage(IMG_NUMBER_COLON_NORMAL,POS_CLKALM_COLON1_X,POS_CLKALM_COLON1_Y);
// show minute
API_LcmPutSysImage(IMG_NUMBER_0_NORMAL+(alarm_min[0]/10),POS_CLKALM_TIME1_M1_X,POS_CLKALM_TIME1_M1_Y);
API_LcmPutSysImage(IMG_NUMBER_0_NORMAL+(alarm_min[0]%10),POS_CLKALM_TIME1_M2_X,POS_CLKALM_TIME1_M2_Y);
}
}
void _alarm2_show(void)
{
uint8 alarm_fcous_up_x[]={POS_CLKALM_2UP_FCOUS1_X,POS_CLKALM_2UP_FCOUS2_X,POS_CLKALM_2UP_FCOUS3_X};
uint8 alarm_fcous_up_y[]={POS_CLKALM_2UP_FCOUS1_Y,POS_CLKALM_2UP_FCOUS2_Y,POS_CLKALM_2UP_FCOUS3_Y};
uint8 alarm_fcous_down_x[]={POS_CLKALM_2DOWN_FCOUS1_X,POS_CLKALM_2DOWN_FCOUS2_X,POS_CLKALM_2DOWN_FCOUS3_X};
uint8 alarm_fcous_down_y[]={POS_CLKALM_2DOWN_FCOUS1_Y,POS_CLKALM_2DOWN_FCOUS2_Y,POS_CLKALM_2DOWN_FCOUS3_Y};
if(alarm_selection == 2)
{
if(alarm_state != CLOCKALARM_STATE_ADJUST)
{
// show selection bar
API_LcmPutSysImage(IMG_BAR_ON_BACKGD_BEST,POS_CLKALM_SELBAR2_X,POS_CLKALM_SELBAR2_Y);
// show left right fcous
API_LcmPutSysImage(IMG_BUTTON_LEFT,POS_CLKALM_2LEFT_FCOUS_X,POS_CLKALM_2LEFT_FCOUS_Y);
API_LcmPutSysImage(IMG_BUTTON_RIGHT,POS_CLKALM_2RIGHT_FCOUS_X,POS_CLKALM_2RIGHT_FCOUS_Y);
}
if(alarm_state == CLOCKALARM_STATE_SEL_FCOUS)
{
// show up down fcous
API_LcmPutSysImage(IMG_BUTTON_UP,alarm_fcous_up_x[alarm_fcous],alarm_fcous_up_y[alarm_fcous]);
API_LcmPutSysImage(IMG_BUTTON_DOWN,alarm_fcous_down_x[alarm_fcous],alarm_fcous_down_y[alarm_fcous]);
}
// show alarm icon
API_LcmPutSysImage(IMG_ICON_ALARM2_DISABLE+alarm_enable[1],POS_CLKALM_ALARM2_ICON_X,POS_CLKALM_ALARM2_ICON_Y);
// show hour
API_LcmPutSysImage(IMG_NUMBER_0_ON+(alarm_hr[1]/10),POS_CLKALM_TIME2_H1_X,POS_CLKALM_TIME2_H1_Y);
API_LcmPutSysImage(IMG_NUMBER_0_ON+(alarm_hr[1]%10),POS_CLKALM_TIME2_H2_X,POS_CLKALM_TIME2_H2_Y);
// show colon
API_LcmPutSysImage(IMG_NUMBER_COLON_ON,POS_CLKALM_COLON2_X,POS_CLKALM_COLON2_Y);
// show minute
API_LcmPutSysImage(IMG_NUMBER_0_ON+(alarm_min[1]/10),POS_CLKALM_TIME2_M1_X,POS_CLKALM_TIME2_M1_Y);
API_LcmPutSysImage(IMG_NUMBER_0_ON+(alarm_min[1]%10),POS_CLKALM_TIME2_M2_X,POS_CLKALM_TIME2_M2_Y);
}
else
{
// clear selection bar
API_LcmPutSysImage(IMG_BAR_OFF_BACKGD_BEST,POS_CLKALM_SELBAR2_X,POS_CLKALM_SELBAR2_Y);
// show alarm icon
API_LcmPutSysImage(IMG_ICON_ALARM2_OFF+alarm_enable[1],POS_CLKALM_ALARM2_ICON_X,POS_CLKALM_ALARM2_ICON_Y);
// show hour
API_LcmPutSysImage(IMG_NUMBER_0_NORMAL+(alarm_hr[1]/10),POS_CLKALM_TIME2_H1_X,POS_CLKALM_TIME2_H1_Y);
API_LcmPutSysImage(IMG_NUMBER_0_NORMAL+(alarm_hr[1]%10),POS_CLKALM_TIME2_H2_X,POS_CLKALM_TIME2_H2_Y);
// show colon
API_LcmPutSysImage(IMG_NUMBER_COLON_NORMAL,POS_CLKALM_COLON2_X,POS_CLKALM_COLON2_Y);
// show minute
API_LcmPutSysImage(IMG_NUMBER_0_NORMAL+(alarm_min[1]/10),POS_CLKALM_TIME2_M1_X,POS_CLKALM_TIME2_M1_Y);
API_LcmPutSysImage(IMG_NUMBER_0_NORMAL+(alarm_min[1]%10),POS_CLKALM_TIME2_M2_X,POS_CLKALM_TIME2_M2_Y);
}
}
void _alarm_show_update(void)
{
if(alarm_selection == 1)
_alarm1_show();
else
_alarm2_show();
}
//***************************************************************************
// Func: void _alarm_set(void)
// Input: alarm parameter from RAM Setting value
// Output: none
//
// Description: set near alarm time according to current time
//
//***************************************************************************
void _alarm_set(void)
{
uint8 alarm_enable[2];
uint8 alarm_hr[2],alarm_min[2];
uint8 hour,minute,alarm_select;
hour = API_TimeGetHour();
minute = API_TimeGetMinute();
alarm_enable[0] = API_SysReadValue(RAM_SETTING_ADR,SET_ALARM1_EN);
alarm_enable[1] = API_SysReadValue(RAM_SETTING_ADR,SET_ALARM2_EN);
alarm_hr[0] = API_SysReadValue(RAM_SETTING_ADR,SET_ALARM1_HOUR);
alarm_hr[1] = API_SysReadValue(RAM_SETTING_ADR,SET_ALARM2_HOUR);
alarm_min[0] = API_SysReadValue(RAM_SETTING_ADR,SET_ALARM1_MIN);
alarm_min[1] = API_SysReadValue(RAM_SETTING_ADR,SET_ALARM2_MIN);
if(alarm_enable[0] && alarm_enable[1]) // all alarm1 and alarm2 are on
{
if( (uint8)(alarm_hr[0]-hour) < (uint8)(alarm_hr[1]-hour) )//alarm1
{
alarm_select = 1;
}
else if( (alarm_hr[0]-hour) == (alarm_hr[1]-hour) )
{
if( (uint8)(alarm_min[0]-minute) < (uint8)(alarm_min[1]-minute) ) // alarm1
{
alarm_select = 1;
if(alarm_min[0]-minute == 0)
{
alarm_select = 2;
}
}
else if( (alarm_min[0]-minute) == (alarm_min[1]-minute) ) //both
{
alarm_select = 1;
}
else //alarm2
{
if(alarm_min[1]-minute == 0)
{
alarm_select = 1;
}
else
{
alarm_select = 2;
}
}
}
else //alarm2
{
alarm_select = 2;
}
}
else if(alarm_enable[0]) // alarm1
{
alarm_select = 1;
}
else if(alarm_enable[1]) // alarm2
{
alarm_select = 2;
}
if(alarm_enable[0] || alarm_enable[1])
{
API_TimeSetAlertHour(alarm_hr[alarm_select-1]);
API_TimeSetAlertMinute(alarm_min[alarm_select-1]);
}
}
void _exit_to_PhoBro(void)
{
// paint photo browser BG
API_SysWriteValue(RAM_SHARING_ADR,LAST_TASK,TASKID_CLOCKALARM);
//set photo browser parameter
#if RECORD_PATH
API_SysWriteValue(RAM_SHARING_ADR,PHO_PAINT_FLAG,3);
#else
API_SysWriteValue(RAM_SHARING_ADR,PHO_PAINT_FLAG,1);
#endif
API_OsSetCurrentTask(TASKID_PHOTOBROWSER);
}
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 + -