📄 uiflow.c
字号:
/********************************************************************************
Copyright (c) 2002 Sunplus Technology Co., Ltd.
Module Name: uiflow.c
Function : The UI flow related functions
Environment: Keil C51 Compiler
Creation : 2002/04/18 yichang
***********************************************************************************/
//version4.0@yichang@0513 for new UI of SPCA533 turnkey
#include "general.h"
#include "main.h"
#include "dosusr.h"
#include "dosvar.h"
//#include "cardvar.h"
#include "cardlink.h"
#include "initio.h"
#include "storage.h"
#include "dpof.h"
#include "quantdef.h"
#include "img533.h"
#include "exiffunc.h"
#include "lcdtv.h"
#include "uiflow.h"
#include "playback.h"
#include "audiorw.h"
#include "sidcinit.h"
//version4.0@ada@0513
#include "sdramhw.h"
//version4.0@ada@0513 for Card Write Protect
#include "cardusr.h"
//patch4.4@yichang@0624 for OSD, begin
#include "ui.h"
//patch4.4@yichang@0624 for OSD, end
//patch4.4@yichang@0624 for WB/SHARP UI, begin
#include "l1_3a.h"
//patch4.4@yichang@0624 for WB/SHARP UI, end
//patch4.4@richie@cisp test
//testtest
#include "initio.h"
//patch4.5@richie@mlun
#include "usbmsdc2.h"
//patch4.4@ada@MP3 begin
#if (MP3_OPTION)
#include "mp3.h"
#include "ui.h"
#endif
//patch4.4@ada@MP3 end
#include "timer.h"
//patch4.4@ada@DPOF skip AVI & WAV begin
#include "dosusr.h"
//patch4.4@ada@DPOF skip AVI & WAV end
#include "string.h"// Davis:patch3.11 add
extern data UCHAR G_ucISPCheck2;
extern xdata UCHAR isFirstRun;
void L1_InitPreviewForUiflow(UCHAR OnOff) ;
void L1_InitPreview1(UCHAR OnOff) ;
UCHAR CARD_ISP(void);
extern int Tidx;
extern unsigned long Ylevel,Yreff,Ylayer,Kback;//patch4.4@jhyu@release_getavglum
code unsigned char *TOO_DARK[]={
"Too Dark",
"Trop sombre",
"zu dunkel",
"Troppo scuro",
"Demasiado oscuro",
"\x01\x8c\x01\x8d\x01\xd6\x01\xd7\x01\xd8\x01\xd9\x01\xda\x01\xdb\x01\xdc\x01\xdd\x01\xde\x01\xdf",//J
"\x01\x4a\x01\x4b\x01\xd8\x01\xd9\x01\x6a\x01\x6b\x01\xda\x01\xdb",
"\x01\x4a\x01\x4b\x92\x93\x01\x6a\x01\x6b\x01\xda\x01\xdb"
};
//Joe@2003.2.25 10:12 add begin
#include "JoeToEvb.h" //joe add for function from turnkey
extern xdata UCHAR AEtype;//patch4.5@jhyu@50HzTable
extern unsigned char G_OLD_PICTURE_WB_Flag;
extern void ChangeTable(int index);//patch4.4@jhyu@50/60HzTable
//Joe@2003.2.25 10:12 add end
extern void Playback_DownInitial(void);
extern void Playback_UpInitial(void);
extern void WaitOsd(void);
extern void SetManualWB(USHORT wb_index);
void UI_SetMenuPalette_1(void);
//wendy@2004/10/20
UCHAR L2_SetColorPalette_1(UCHAR index, UCHAR r, UCHAR g, UCHAR b);
UCHAR L2_SetFOSDIndex_1(UCHAR y, UCHAR x, USHORT value);
UCHAR L2_SetFOSDAttr_1(UCHAR y, UCHAR x, USHORT value);
//wendy@2004/10/20
extern void L2_TurnOnOffDisplayFrist(void);
void UI_DestroyMenu();
sbit VIDEO_DET = P3^5;
//=============================================================================
//Symbol
//=============================================================================
//patch4.2@yichang@0524 for EV UI
extern UCHAR G_AE_com_index;
//version4.3@richie@zo
extern xdata UCHAR G_ucZoomFactor;
//patch5.0@richie@sdram mapping begin
//patch4.5@richie@smooth zoom
extern xdata USHORT G_usZoomX;
//patch5.0@richie@sdram mapping end
xdata USHORT G_usZoomOSDTimer;
extern xdata ULONG G_AutoTimeInSec;
extern code unsigned char *LOW_BATTERY[];
//-----------------------------------------------------------------------------
//Constant
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//Variable
//-----------------------------------------------------------------------------
xdata UCHAR G_Timer0StopFlag;
xdata UCHAR G_UI_USBConnect;
xdata UCHAR G_IsKeyRelease;
xdata USHORT G_UIStatus;
xdata USHORT G_UIStatusH;//wendy
xdata USHORT CardNumber;
xdata UCHAR G_UIAction;
xdata USHORT G_TIMER;
//xdata USHORT L_KFOCUS;
//xdata USHORT L_KFOCUS1;
xdata UCHAR G_RTCBitOffset;
xdata UCHAR G_OptionYesNo;
xdata CameraOption G_CameraOptions;
xdata dateTime G_defaultTime;
xdata AutoTime G_autoTime;
//patch4.4@yichang@0624 for OSD, begin
xdata UCHAR G_FlashStatus;
xdata UCHAR G_BatteryStatus;
xdata UCHAR G_ExtCardStatus;
//patch4.4@yichang@0624 for OSD, end
//patch4.4@ada@MP3 begin
#if (MP3_OPTION)
#define K_MP3_MAX_VOLUME ((UCHAR)10)
xdata USHORT G_MP3SelectItem;
xdata UCHAR G_NoMp3Song;
xdata USHORT UI_Mp3NowFileIndex,UI_Mp3NewFileIndex;
xdata UCHAR G_MP3_Mode;
xdata UCHAR G_Mp3KeyState;
#endif
//patch4.4@ada@MP3 end
//herb for TVoutput debug @03/04/18 start
extern xdata UCHAR SmallSizeAvi;
//herb for TVoutput debug @03/04/18 end
//patch4.3@yichang@0611 for version B/C chip co-exist
sfr MemStretch = 0x8E;
//Maximum Menu String Length
//patch5.0@richie@avi size begin 14->11
#define UI_MENU_MAXLEN_PRE ((UCHAR)22)
//patch5.0@richie@avi size end
#define UI_MENU_MAXLEN_IMGSIZE ((UCHAR)22)
#define UI_MENU_MAXLEN_TIMEOUT ((UCHAR)22)//11)
#define UI_MENU_MAXLEN_SELF ((UCHAR)22)//11)
#define UI_MENU_MAXLEN_AETYPE ((UCHAR)22)
#define UI_MENU_MAXLEN_LANGUAGE ((UCHAR)22)
#define UI_MENU_MAXLEN_FLASH ((UCHAR)22)
#define UI_MENU_MAXLEN_EXPOSURE ((UCHAR)22)
#define UI_MENU_MAXLEN_AWB ((UCHAR)22)
#define UI_MENU_MAXLEN_TVOUT ((UCHAR)22)
//Joe@2003.3.21 12:51 add end
#define UI_MENU_MAXLEN_PLAY ((UCHAR)22)
#define UI_MENU_MAXLEN_THUMB ((UCHAR)22)
#define UI_MENU_MAXLEN_ERASEONE ((UCHAR)22)
#define UI_MENU_MAXLEN_ERASEALL ((UCHAR)0x22)
#define UI_MENU_MAXLEN_FORMAT ((UCHAR)0x22)//hx@2003.5.28 add
#define UI_MENU_MAXLEN_VIDEO ((UCHAR)22)
//#define UI_MENU_MAXLEN_VIDEO_SIZE ((UCHAR)22)
#define UI_MENU_MAXLEN_VIDEO_TIME ((UCHAR)22)
#define UI_MENU_MAXLEN_AUDIO ((UCHAR)22)
#define UI_MENU_MAXLEN_AUDIO_PLAY ((UCHAR)22)
//#define UI_MENU_MAXLEN_WB ((UCHAR)14)
//#define UI_MENU_MAXLEN_SHARP ((UCHAR)14)
//patch4.4@yichang@0624 for OSD, end
//Joe@2003.3.22 18:54 add begin
//Davis_peng@2004/8/18 modify begin
//MAXLEN all be 22
#define UI_MENU_MAXLEN_FUNCTION_C ((UCHAR)22)
#define UI_MENU_MAXLEN_MANUAL_C ((UCHAR)22)
#define UI_MENU_MAXLEN_IMGSIZE_C ((UCHAR)22)
#define UI_MENU_MAXLEN_IMGQTY_C ((UCHAR)22)
#define UI_MENU_MAXLEN_POWER_C ((UCHAR)22)
#define UI_MENU_MAXLEN_RTC_C ((UCHAR)22)
#define UI_MENU_MAXLEN_TVOUT_C ((UCHAR)22)
#define UI_MENU_MAXLEN_AETYPE_C ((UCHAR)22)
#define UI_MENU_MAXLEN_LANGUAGE_C ((UCHAR)22)
#define UI_MENU_MAXLEN_ZOOM_C ((UCHAR)22)
#define UI_MENU_MAXLEN_EXIT_C ((UCHAR)22)
#define UI_MENU_MAXLEN_ERASE_C ((UCHAR)22)
#define UI_MENU_MAXLEN_ERASE2_C ((UCHAR)22)//hx@2003.5.28 add
#define UI_MENU_MAXLEN_DPOF_C ((UCHAR)22)
#define UI_MENU_MAXLEN_ROTATION_C ((UCHAR)22)
#define UI_MENU_MAXLEN_STORAGE_C ((UCHAR)22)
#define UI_MENU_MAXLEN_EV_C ((UCHAR)22)
#define UI_MENU_MAXLEN_ERASE1_C ((UCHAR)22)
#define UI_MENU_MAXLEN_WB_C ((UCHAR)22)
#define UI_MENU_MAXLEN_SHARP_C ((UCHAR)22)
//Davis_peng@2004/8/18 modify end
//Joe@2003.3.21 18:54 add end
//patch4.4@yichang@0624 for continue-shotting, begin
#define K_CONTINUE_SNAP_NUM ((UCHAR)0x05)
//patch4.4@yichang@0624 for continue-shotting, end
//English
code PUCHAR CAPMenu[] =
{
"Flash",
"Self-Timer",
"Size",
"Timeout",
"Exposure",
"White balance",
"Tv output",
"Language",
"Frequency",
"Beep" //Davis@2004/9/6
};
code PUCHAR ExposureMenu[] =
{
"+2",//Davis@2004/8/26
"+1",
"0",
"-1",
"-2",
};
code PUCHAR SELFMenu[] =
{
"On(10S)",
"Off",
};
code PUCHAR TIMEOUTMenu[] =
{
"Off",
"On(60S)",
};
code PUCHAR AETypeMenu[] =
{
"50Hz",
"60Hz",
};
code PUCHAR FLASHMenu[] =
{
"On",
"Off",
"Auto",
};
code PUCHAR WHITEMenu[] =
{
"Auto",
"Daylight",
"Cloudy",
"Tungsten",
"Fluorescent",
};
code PUCHAR SIZEMenu[] =
{
"2048X1536",
"1600X1200",
"800X600",
};
code PUCHAR TVMenu[] =
{
"NTSC",
"PAL",
};
code PUCHAR LanguageMenu[] =
{
"English",
"French",
"Italian",
"German",
"Spanish",
"Japanese",
"Chinese simplify",
"Chinese traditional",
};
code PUCHAR PLAYMenu[] =
{
"Delete last",
"Delete all",
"Format",
"Thumbnail",
};
code PUCHAR EraseOneMenu[] =
{
"Yes",
"No",
};
code PUCHAR EraseAllMenu[] =
{
"Yes",
"No",
};
code PUCHAR FormatMenu[] =
{
"Yes",
"No",
};
code PUCHAR ThumbnailMenu[] =
{
"SINGLE",
"3x3",
};
code PUCHAR VideoMenu[] =
{
"Date/Time",
};
code PUCHAR VideoTimeMenu[] =
{
"set",
};
code PUCHAR AudioMenu[] =
{
"Record",
};
code PUCHAR AudioRecordMenu[] =
{
"Yes",
"No",
};
code UCHAR PCCamera[] =
{
"PC CAMERA",
};
code PUCHAR BUZMenu[]={//Davis@2004/9/6
"Off",
"On"
};
//english end
//french begin
code PUCHAR CAPMenuF[] =
{
"Flash",
"Retardat.Auto",
"Taille Image",
"Arret Auto",
"Compens.Expo.",
"Bal.De Balancs",
"Tv",
"Langue",
"Frequency",
"Beep"
};
code PUCHAR ExposureMenuF[] =
{
"+2",//Davis@2004/8/26
"+1",
"0",
"-1",
"-2",
}
;
code PUCHAR SELFMenuF[] =
{
"Marche(10S)",
"Arret",
};
code PUCHAR TIMEOUTMenuF[] =
{
"Arret",
"Marche(60S)",
};
code PUCHAR AETypeMenuF[] =
{
"50Hz",
"60Hz",
};
code PUCHAR FLASHMenuF[] =
{
"Marche",
"Arret",
"Auto",
};
code PUCHAR WHITEMenuF[] =
{
"Auto",
"Exterieur",
"Ombre",
"Lampe",
"Fluorescent",
};
code PUCHAR SIZEMenuF[] =
{
"2048X1536",
"1600X1200",
"800X600",
};
code PUCHAR TVMenuF[] =
{
"NTSC",
"PAL",
};
code PUCHAR LanguageMenuF[] =
{
"Anglais",
"Francais",
"Italien",
"Allenmand",
"Espagnol",
"Japanais",
"Chinois Simplifiez",
"Chinois Traditionnel",
};
code PUCHAR PLAYMenuF[] =
{
"Cette Photo",//Davis:patch3.1 modify(string is too long)
"Effacer Tout",
"Format",
"Thumbnail",
};
code PUCHAR EraseOneMenuF[] =
{
"Oui",
"Non",
};
code PUCHAR EraseAllMenuF[] =
{
"Oui",
"Non",
};
code PUCHAR FormatMenuF[] =
{
"Oui",
"Non",
};
code PUCHAR ThumbnailMenuF[] =
{
"Simple",
"3x3",
};
code PUCHAR VideoMenuF[] =
{
"Date Heure",
};
code PUCHAR VideoTimeMenuF[] =
{
"set",
};
code PUCHAR AudioMenuF[] =
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -