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

📄 settingmenu2api.c

📁 C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码
💻 C
📖 第 1 页 / 共 2 页
字号:
//********************************************************************
// 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>

#define REPAET_NUM      3

void _setting_menu2_init(void);
void _setting_menu2_background(void);
void _setting_menu2_item(void);
void _setting_menu2_value_update(void);
void _setting_menu2_up(void);
void _setting_menu2_down(void);
void _setting_menu2_left(void);
void _setting_menu2_right(void);
void _setting_menu2_play(void);
void _setting_menu2_mode(void);
void _setting_show_string(uint32 txt_index, uint16 pos_x, uint16 pos_y);
void _setting_restore_box(uint8 is_restore);
void _setting_show_time(void);
void _show_battery(void);
uint8 _get_battery_icon_index(void);

uint8 item_selection,last_item_selection;
uint8 repaint_flag,language,repeat,time_format;
uint8 setting_state;
uint8 restore_box_flag,is_restore,is_nand_sd,source;
uint8 string[255];
uint8 slide_bat_lv_idx,cur_bat_lv_icon_idx;

void _setting_menu2_init(void)
{
  item_selection = API_SysReadValue(RAM_SHARING_ADR,SETTING_SEL);
  last_item_selection = 0;
  repaint_flag = TRUE;
  setting_state = SETTING_STATE_SELECT;
  restore_box_flag = FALSE;
  is_restore = FALSE;
  is_nand_sd = API_SysReadValue(RAM_SHARING_ADR,IS_NAND_SD);
  source = is_nand_sd;
  //set_time_fcous = 0;
  //set_date_fcous = 0;
  language = API_SysReadValue(RAM_SETTING_ADR,SET_LANGUAGE);
  repeat = API_SysReadValue(RAM_SETTING_ADR,SET_REPEAT); //repeat 0~2
  time_format = API_SysReadValue(RAM_SETTING_ADR,SET_TIME_FORMAT);
  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_menu2_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_2MOV_X,POS_MUSBRO_2MOV_Y);
}

void _setting_menu2_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;i<SETTINGMENU_ITEM_OF_PAGE*2;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_RESTORE) && (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));
  }
  //show time 7
  if( (repaint_flag) || (last_item_selection == SETTINGMENU_ITEM_TIMESET) || (item_selection == SETTINGMENU_ITEM_TIMESET) )
  {
    _setting_show_time();
  }
  //show date 8
  if( (repaint_flag) || (last_item_selection == SETTINGMENU_ITEM_DATESET) || (item_selection == SETTINGMENU_ITEM_DATESET) )
  {
    API_LcmSetLanguage(CS_BIG5);
    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); 
    API_LcmSetLanguage(CS_UNICODE);
  }
  
  
  // show time format 9
  if( (repaint_flag) || (last_item_selection == SETTINGMENU_ITEM_TIME_FORMAT) || (item_selection == SETTINGMENU_ITEM_TIME_FORMAT) )
  {
    //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_12H+time_format,POS_PHOMENU_VALUE_X,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*3));
  }
  
  // show source 10
  if( (repaint_flag) || (last_item_selection == SETTINGMENU_ITEM_SOURCE) || (item_selection == SETTINGMENU_ITEM_SOURCE) )
  {
    _setting_show_string(NAND_TEXT_ADR+(language*TIDX_AMOUNT_OF_ONE_LANGUAGE)+TIDX_INTERNAL+source,POS_PHOMENU_VALUE_X,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*4));
  }

}

void _setting_menu2_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;
   case SETTINGMENU_ITEM_SOURCE: //10
        _setting_show_string(NAND_TEXT_ADR+(language*TIDX_AMOUNT_OF_ONE_LANGUAGE)+TIDX_INTERNAL+source,POS_PHOMENU_VALUE_X,POS_PHOMENU_VALUE_Y+(POS_PHOMENU_VALUE_GAP*4));
        break;
   default:
        break;
 }
}

void _setting_menu2_up(void)
{
 if(restore_box_flag)
  return; 
 repaint_flag = FALSE;
 last_item_selection = item_selection;
 if(item_selection == SETTINGMENU_ITEM_OF_PAGE)
 {
  item_selection = SETTINGMENU_ITEM_OF_PAGE-1;
  API_SysWriteValue(RAM_SHARING_ADR,SETTING_SEL,item_selection);
  API_OsSetCurrentTask(TASKID_SETTINGMENU1);
 }
 else
 {
  item_selection--;
  _setting_menu2_item();
 }
}

void _setting_menu2_down(void)
{
 if(restore_box_flag)
  return;
 repaint_flag = FALSE;
 last_item_selection = item_selection;
 if(item_selection == (SETTINGMENU_ITEM_OF_PAGE*2)-1)
 {
  item_selection = (SETTINGMENU_ITEM_OF_PAGE*2);
  API_SysWriteValue(RAM_SHARING_ADR,SETTING_SEL,item_selection);
  API_OsSetCurrentTask(TASKID_SETTINGMENU3);
 }
 else
 {
  item_selection++;
  _setting_menu2_item();
 }
}

void _setting_menu2_left(void)
{
 // update value
 switch(item_selection)
 {
   case SETTINGMENU_ITEM_REPEAT: //6 
        if(repeat == 0)
         repeat = REPAET_NUM-1;
                else
         repeat--;
         // re-set music repaet mode
         switch(repeat)
         {
             case 0: //play one 
                API_MusicSetRepeatMode(RM_REP_1);
                break;
             case 1: //play all
                API_MusicSetRepeatMode(RM_REP_ALL);
                break;
             case 2: //play random
                API_MusicSetRepeatMode(RM_RAND);
                break;
         }
         API_SysWriteValue(RAM_SETTING_ADR,SET_REPEAT,repeat); 
         _setting_menu2_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_menu2_value_update();
        API_LcmPutSysImage(IMG_TEXT_BAR_BG,POS_PHOMENU_TEXTBAR_X,(POS_PHOMENU_TEXTBAR_Y+POS_PHOMENU_TEXTBAR_GAP_Y));
        _setting_show_time();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -