📄 menu.c
字号:
/******************************************************************************
* Copyright (c) 2006 Primax Corporation,Ltd. All rights reserved.
*
* Author: Junny Fu
*
* Description:
*
* Revision History:
* Date Author Description
******************************************************************************/
#include "Standard.h"
#include "Nucleus.h"
#include "Uifax.h"
#include "Menu.h"
#include "Smfm.h"
#include "Uilcdnew.h"
#include "RTC.h"
#include "Message.h"
#include "Uinew.h"
#include "Bios.h"
#include "UI_Execute.h" //add by shaohua
#include "speaker.h"
#include "../fax/faxjob.h"
#include "../fax/faxapi.h"
#include "../fax/Oswrap.h"
Uint16 min,max,udefault,utemp;
Bool newnumber = TRUE;
Bool modechange = FALSE;
Bool copyparaerr = FALSE;
DateTimeSct datetime;
DateTimeSct datetimetmp;
char datetimebuf[21];
Uint8 ampm; //am,0/pm,1
Uint8 monthday[] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};//leapyear
Uint8 monthday2[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};//not leapyear
Uint16 monthdays[] = {0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366};//leapyear
Uint16 monthdays2[] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365};//not leapyear
Uint16 daysofyear[] = { 0, 366, 731, 1096, 1461,
1827, 2192, 2557, 2922,
3288, 3653, 4018, 4383,
4749, 5114, 5479, 5844,
6210, 6575, 6940, 7305,
7671, 8036, 8401, 8766,
9132, 9497, 9862, 10227,
10593, 10958, 11323, 11688,
12054, 12419, 12784, 13149,
13515, 13880, 14245, 14610,
14976, 15341, 15706, 16071,
16437, 16802, 17167, 17532,
17898, 18263, 18628, 18993,
19359, 19724, 20089, 20454,
20820, 21185, 21550, 21915,
22281, 22646, 23011, 23376,
23742, 24107, 24472, 24837,
25203, 25568, 25933, 26298,
26664, 27029, 27394, 27759,
28125, 28490, 28855, 29220,
29586, 29951, 30316, 30681,
31047, 31412, 31777, 32142,
32508, 32873, 33238, 33603,
33969, 34334, 34699, 35064,
35430, 35795, 36160, 36525,
};
FAX_MAINTENANCE FaxMaintenanceSetting;
#ifdef NEWPANELDRIVER
char *diamond[] ={ "\x3C\xB0\xB0\xB0\xB0\xB0\x3E",
"\x3C\xB1\xB0\xB0\xB0\xB0\x3E",
"\x3C\xB1\xB1\xB0\xB0\xB0\x3E",
"\x3C\xB1\xB1\xB1\xB0\xB0\x3E",
"\x3C\xB1\xB1\xB1\xB1\xB0\x3E",
"\x3C\xB1\xB1\xB1\xB1\xB1\x3E",
};
char *diamond2[] = { "\x3C\xB0\xB0\xB0\x3E",
"\x3C\xB1\xB0\xB0\x3E",
"\x3C\xB1\xB1\xB0\x3E",
"\x3C\xB1\xB1\xB1\x3E",
};
#else
char *diamond[] ={ "\x3C\x91\x91\x91\x91\x91\x3E",
"\x3C\xFF\x91\x91\x91\x91\x3E",
"\x3C\xFF\xFF\x91\x91\x91\x3E",
"\x3C\xFF\xFF\xFF\x91\x91\x3E",
"\x3C\xFF\xFF\xFF\xFF\x91\x3E",
"\x3C\xFF\xFF\xFF\xFF\xFF\x3E",
};
char *diamond2[] = { "\x3C\x91\x91\x91\x3E",
"\x3C\xFF\x91\x91\x3E",
"\x3C\xFF\xFF\x91\x3E",
"\x3C\xFF\xFF\xFF\x3E",
};
#endif
extern P_MENUDATA gpMenudata;
extern Bool setconfirm;
extern UIMaintain gUIMain;
extern MFPSETTING gMFPSettingNvram;
extern Uint8 inputindex;
extern char inputbuf[DIAL_NUMBER_MAX+1];
extern CHAR_SYMBOL_TABLE chSymTbl[13];
extern Uint8 curindex;
extern Uint8 presscount;
extern Uint16 ut2;
extern char firstlinebuf[LINE_BUF_LENGTH];
extern char secondlinebuf[LINE_BUF_LENGTH];
extern char* mesg_eng[];
extern char* mesg_usfrn[];
extern char* mesg_usspn[];
extern char* mesg_uspor[];
extern NU_SEMAPHORE gDateTimeSem;
extern Uint8 step;
extern long UI_EXe_msgQue_id;
extern RECVFORWARD recvforwardtemp;
extern NU_MAILBOX UI_MailBox;
extern Uint8 copypage;
extern void ConvertDateTime2tm(P_DateTimeSct dt, struct tm *p);
void *val[] = {
&gUIMain.copysetting.Copynumber, // 0
&gUIMain.copysetting.Contrast,
&gUIMain.copysetting.Imagequality,
&gUIMain.copysetting.Layoutmode,
&gUIMain.copysetting.Presetratio,
// &gUIMain.copysetting.COriginalsize,
// &gUIMain.copysetting.Reduenlarge,
&gUIMain.copysetting.Zoomratio, //5
&gUIMain.scansetting.Scandes,
&gUIMain.scansetting.Scancolor,
&gUIMain.scansetting.Scanquality,
&gUIMain.scansetting.IOriginalsize,
&gUIMain.papersetting.Papersize, //10
&gUIMain.papersetting.Papertype,
// &gUIMain.papersetting.PaperTray,
&gUIMain.commonsetting.Language,
&gUIMain.commonsetting.Alarmvolume,
&gUIMain.commonsetting.Autocleantime,
&gUIMain.commonsetting.ClockMode, //15
&gUIMain.commonsetting.Powersavertime,
&gUIMain.commonsetting.Pressvolume,
&gUIMain.commonsetting.Ringer,
&gUIMain.commonsetting.country,
&gUIMain.commonsetting.Speaker, //20
&gUIMain.commonsetting.Tonersavermode,
&gUIMain.commonsetting.zIDName,
&gUIMain.commonsetting.zIDTelNumber,
&gUIMain.faxsetting.Txresolution,
&gUIMain.faxsetting.Txcontrast, //25
&gUIMain.faxsetting.Onhookdial,
&gUIMain.faxsetting.Ringtoasw,
&gUIMain.faxsetting.Receivemode,
&gUIMain.faxsetting.RedialDly,
&gUIMain.faxsetting.RedialAtempt, //30
&gUIMain.faxsetting.Msgconf,
&gUIMain.faxsetting.Autoreport,
// &gUIMain.faxsetting.Discardsize,
&gUIMain.faxsetting.TTI,
&gUIMain.faxsetting.Receivecode,
&gUIMain.faxsetting.DRPDmode, //35
&gUIMain.faxsetting.Recvforward.RecvOnoff,
// &gUIMain.faxsetting.Tollsave.TollOnoff,
// &gUIMain.faxsetting.JunkfaxStp.JunkOnoff,
&gUIMain.faxsetting.StmpRcvdname,
&gUIMain.faxsetting.ECMmode,
&gUIMain.faxsetting.Txspeed,
&gUIMain.faxsetting.Rcvdisable, //40
&gUIMain.faxsetting.Prefixdial,
&gUIMain.faxsetting.SecureRecv,
&gUIMain.faxsetting.FTRingtime,
&gUIMain.faxsetting.Autoreduction,
&gMFPSettingNvram.Copy.Copynumber, //45
&gMFPSettingNvram.Copy.Contrast,
&gMFPSettingNvram.Copy.Imagequality,
&gMFPSettingNvram.Copy.Layoutmode,
&gMFPSettingNvram.Copy.Presetratio,
// &gMFPSettingNvram.Copy.COriginalsize,
// &gMFPSettingNvram.Copy.Reduenlarge,
&gMFPSettingNvram.Copy.Zoomratio, //50
&gMFPSettingNvram.Scan.Scandes,
&gMFPSettingNvram.Scan.Scancolor,
&gMFPSettingNvram.Scan.Scanquality,
&gMFPSettingNvram.Scan.IOriginalsize,
&gMFPSettingNvram.Paper.Papersize, //55
&gMFPSettingNvram.Paper.Papertype,
// &gMFPSettingNvram.Paper.PaperTray,
&gMFPSettingNvram.Common.Language,
&gMFPSettingNvram.Common.Alarmvolume,
&gMFPSettingNvram.Common.Autocleantime,
&gMFPSettingNvram.Common.ClockMode, //60
&gMFPSettingNvram.Common.Powersavertime,
&gMFPSettingNvram.Common.Pressvolume,
&gMFPSettingNvram.Common.Ringer,
//&gMFPSettingNvram.Common.Scanpowerstime,
&gMFPSettingNvram.Common.country,
&gMFPSettingNvram.Common.Speaker, //65
&gMFPSettingNvram.Common.Tonersavermode,
&gMFPSettingNvram.Common.zIDName,
&gMFPSettingNvram.Common.zIDTelNumber,
&gMFPSettingNvram.Fax.Txresolution,
&gMFPSettingNvram.Fax.Txcontrast, //70
&gMFPSettingNvram.Fax.Onhookdial,
&gMFPSettingNvram.Fax.Ringtoasw,
&gMFPSettingNvram.Fax.Receivemode,
&gMFPSettingNvram.Fax.RedialDly,
&gMFPSettingNvram.Fax.RedialAtempt, //75
&gMFPSettingNvram.Fax.Msgconf,
&gMFPSettingNvram.Fax.Autoreport,
// &gMFPSettingNvram.Fax.Discardsize,
&gMFPSettingNvram.Fax.TTI,
&gMFPSettingNvram.Fax.Receivecode,
&gMFPSettingNvram.Fax.DRPDmode, //80
&gMFPSettingNvram.Fax.Recvforward.RecvOnoff,
// &gMFPSettingNvram.Fax.Tollsave.TollOnoff,
// &gMFPSettingNvram.Fax.JunkfaxStp.JunkOnoff,
&gMFPSettingNvram.Fax.StmpRcvdname,
&gMFPSettingNvram.Fax.ECMmode,
&gMFPSettingNvram.Fax.Txspeed,
&gMFPSettingNvram.Fax.Rcvdisable, //85
&gMFPSettingNvram.Fax.Prefixdial,
&gMFPSettingNvram.Fax.SecureRecv,
&gMFPSettingNvram.Fax.FTRingtime,
&gMFPSettingNvram.Fax.Autoreduction,
&gUIMain.Dialnumber, //90
&FaxMaintenanceSetting.Rxlevel,
&FaxMaintenanceSetting.Txlevel,
&FaxMaintenanceSetting.CEqualizer,
&FaxMaintenanceSetting.TrainRetry,
&FaxMaintenanceSetting.Encoding, //95
&FaxMaintenanceSetting.T0Timer,
&FaxMaintenanceSetting.T1Timer,
&FaxMaintenanceSetting.T4Timer,
&FaxMaintenanceSetting.SDetectTime,
&FaxMaintenanceSetting.CngTDetectTime, //100
&FaxMaintenanceSetting.CngCycle,
&FaxMaintenanceSetting.ToneSoundMon,
&FaxMaintenanceSetting.StopClearKey,
// &FaxMaintenanceSetting.RedialInteral,
// &FaxMaintenanceSetting.Redialing,
&FaxMaintenanceSetting.OverSeaComm,
&FaxMaintenanceSetting.MinTimeLength, //105
// &FaxMaintenanceSetting.ToneSignalTTL,
&FaxMaintenanceSetting.MinPauseToneDial,
&FaxMaintenanceSetting.AttenuatorPRBL,
&FaxMaintenanceSetting.DTMFlevel,
&FaxMaintenanceSetting.DTMFDelta,
&FaxMaintenanceSetting.WaitTime, //110
&FaxMaintenanceSetting.TimeOutLength,
&FaxMaintenanceSetting.BTSetting,
&FaxMaintenanceSetting.BTFrequency,
&FaxMaintenanceSetting.BTlevel,
&FaxMaintenanceSetting.BTCadence, //115
&FaxMaintenanceSetting.RTNRate,
&FaxMaintenanceSetting.V34Modem,
&FaxMaintenanceSetting.V17Modem,
&FaxMaintenanceSetting.Equalizer,
&FaxMaintenanceSetting.VRedialing, //120
&FaxMaintenanceSetting.FirstTXSpeed,
&FaxMaintenanceSetting.SymbolRate
};
void MenuProcess(Uint8 action)
{
switch(gUIMain.UIstate)
{
case STANDBY:
StandbyMode(action);
break;
case COPY_IDLE:
CopyIdleMode(action);
break;
case SCAN_IDLE:
ScanIdleMode(action);
break;
case FACTORY_MODE:
case MENU:
MenuMode(action);
break;
case SERVICE_MODE:
ServiceMode(action);
break;
case QUICKCOPY:
QuickCopy(action);
break;
case QUICKFAX:
QuickFax(action);
break;
default:
break;
}
}
char * GetMsgData(Uint16 id)
{
if ( (id >= SCAN_APP_NAME_ID) && (id < (SCAN_APP_NAME_ID+MAX_APP_NUMBER)) )
{
return gUIMain.scansetting.Scan2PCAPI.ApplicRecord[id-SCAN_APP_NAME_ID].ApplicationName;
}
switch(gUIMain.commonsetting.Language)
{
case LT_ENGLISH:
return mesg_eng[id];
break;
case LT_FRENCH:
return mesg_usfrn[id];
break;
case LT_SPANISH:
return mesg_usspn[id];
break;
// case LT_PORTUGUESE:
// return mesg_uspor[id];
// break;
default:
break;
}
return NULL;
}
Uint8 GetDateTimeCursorXPos(Uint8 step)
{
Uint x;
// mm/dd/yyyy
switch (step)
{
case 0: x = 0; break; // mm
case 1: x = 1; break; // mm
case 2: x = 3; break; // dd
case 3: x = 4; break; // dd
case 4: x = 8; break; // yy
case 5: x = 9; break; // yy
case 6: x = 16; break; // hh
case 7: x = 17; break; // hh
case 8: x = 19; break; // mm
case 9: x = 20; break; // mm
case 10: x= 22;break; // am/pm
}
return x;
}
void DateTimeDisplay(DateTimeSct dt)
{
char monbuf[2],datebuf[2];
char yearbuf[2],hourbuf[2];
char minbuf[2];
monbuf[0] = dt.Month/10 + '0';
monbuf[1] = dt.Month%10 + '0';
datebuf[0] = dt.Date/10 + '0';
datebuf[1] = dt.Date%10 + '0';
yearbuf[0] = dt.Year/10 + '0';
yearbuf[1] = dt.Year%10 + '0';
//mm/dd/yyyy
sprintf(firstlinebuf,"%2.2s/%2.2s/20%2.2s[MDY]",monbuf,datebuf,yearbuf);
minbuf[0] = dt.Minute/10 + '0';
minbuf[1] = dt.Minute%10 + '0';
if(gMFPSettingNvram.Common.ClockMode == 1)
{
hourbuf[0] = dt.Hour/10 + '0';
hourbuf[1] = dt.Hour%10 + '0';
sprintf(secondlinebuf,"%2.2s:%2.2s",hourbuf,minbuf);
}
else
{
if(ampm == 1)
{
hourbuf[0] = (dt.Hour-12)/10 + '0';
hourbuf[1] = (dt.Hour-12)%10 + '0';
sprintf(secondlinebuf,"%2.2s:%2.2s(PM)",hourbuf,minbuf);
}
else
{
hourbuf[0] = (dt.Hour)/10 + '0';
hourbuf[1] = (dt.Hour)%10 + '0';
sprintf(secondlinebuf,"%2.2s:%2.2s(AM)",hourbuf,minbuf);
}
}
}
void EditorMultiInput(Uint8 num,P_MAIN_MENU_LIST menu)
{
Uint32 curtime;
curtime = TaskGetSystemMilliTicks();
if((curtime - gUIMain.LastPressTime)>2*1000)
newnumber = TRUE;
gUIMain.LastPressTime = curtime;
if(!newnumber)
{
udefault = udefault*10 + num;
if(max<udefault*10)
newnumber = TRUE;
}
else// if(num!= PANEL_NUM0)
{
udefault = num;
if(max>=udefault*10)
newnumber = FALSE;
}
sprintf(secondlinebuf,"[%d-%d]>%d",menu->item_min,menu->item_max,udefault);
}
void EditorMultiInput2(Uint8 num)
{
Uint32 curtime;
if(gUIMain.UIstate == STANDBY)
{
if(num == PANEL_NUM0)
{
gUIMain.UIstate = QUICKFAX;
CharSymbolTableInitial(chSymTbl, INPUT_NUM);
setconfirm= TRUE;
presscount = 0;
curindex = 0;
inputindex = 0;
EditorDialInput2(num);
return;
}
else
{
gUIMain.UIstate = QUICKCOPY;
modechange = TRUE;
setconfirm = TRUE;
gUIMain.LastPressTime = TaskGetSystemMilliTicks();
}
}
else if(gUIMain.UIstate == QUICKCOPY)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -