⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 settingtimedateapi.c

📁 C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码
💻 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 + -