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

📄 settingmenu3api.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 "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 + -