📄 main.h
字号:
/*++
Copyright (c) 2001 Sunplus Technology Co., Ltd.
Module Name:
main.h
Abstract:
Header file related to main functions
Environment:
Keil C51 Compiler
Revision History:
09/18/2001 Chamber created
--*/
#if (SIMULATE == 1)
#define bdata // WMP3
extern unsigned char SCON0;
extern unsigned char PCON;
extern unsigned char TI;
#endif
//------------------------------------------------------------------------------
//Constant
//------------------------------------------------------------------------------
#define gbBitRate ((G_Mpeg_Status>>(7+8))&0x0f)
#define gbSampleRate ((G_Mpeg_Status>>(5+8))&0x03)
#define gbMPEGType ((G_Mpeg_Status>>(14+8))&0x03)
#define gbLayer ((G_Mpeg_Status>>(12+8))&0x03)
//USB mode
#define K_UISTATUS_USBMODE 0x2000
#define K_UISTATUS_USBMODE_PCCAM 0x2100
#define K_UISTATUS_USBMODE_MASS 0x2200
//Firmware Version
#define K_FIRMWARE_VERSION ((UCHAR)0x32)
#define K_FIRMWARE_RELEASE ((UCHAR)0x00)
#define K_FIRMWARE_SEQUENCE ((UCHAR)0x00)
#define K_FIRMWARE_CHIPNUMBER ((UCHAR)0x04) //SPCA533
//Size of Buffer
#define K_CtrlCommandSize 8 //size of G_ucCtrlCommand
#define K_CtrlDataSize 64 //size of G_ucCtrlData
#define K_StorCommandSize 64 //size of G_ucStorCommand
#define K_StorDataSize (512+16) //size of G_ucStorData
#define K_DMA_MaxSize 1024 //maximun size of DMA //ada@0118
/*++
#define K_Stor2CommandSize 64 //size of G_ucStor2Command
#define K_Stor2DataSize (512+16) //size of G_ucStor2Data
--*/
//Interface Index
#define K_VideoInterface 0
#define K_StorageInterface1 1
#define K_AudioControlInterface 2
#define K_AudioStreamingInterface 3
#define K_StorageInterface2 4
//
//-------UI Operation Mode ---
#define KUI_MP3_MODE 0x00
#define KUI_DVRD_MODE 0x01
#define KUI_DVRE_MODE 0x02 // DVR Encode Mode
//-------DSP Operation Mode ---
#define KDSP_MP3_MODE 0x00
#define KDSP_WMA_MODE 0x03
#define KDSP_DVRE_MODE 0x04 // DVR Encode Mode
#define KDSP_DVRD_MODE 0x05 // DVR Decode Mode
#define KDSP_AAC_MODE 0x06
//-------DSP Operation Mode Under Play---
#define KDSP_PlayFast 0x00 // None
#define KDSP_PlayVolume 0x01 // Set Volume
#define KDSP_PlayDPC 0x02 // Set DPC
#define KDSP_PlayEQ 0x03 // Set Fast Forware/Backward
//------DSP DVR MODDE ------
#define KDVR_ADPCM_4bit 0x00
#define KDVR_ADPCM_5bit 0x01
#define KDVR_ADPCM_6bit 0x02
#define KDVR_PCM 0x03
#define KDVR_uLAW 0x04
#define KDVR_G723_5K 0x05
#define KDVR_G723_6K 0x06
#define KDVR_NONE 0xFF
//cytsai@1211
//use in main loop
//capture
//delete
#define K_DELETE_ALL 0
//playback
//upload
#define K_UPLOAD_ObjectCount 0
#define K_UPLOAD_ObjectFDBs 1
#define K_UPLOAD_OneObject 2
#define K_Card_PageSize ((WORD) 0x0200)
#define K_Card_PageSizeShift ((BYTE) 9)
#define K_MainEventMax 4
#define K_DSPModeMax 3
#define K_FileModeMax 6
#define K_DVRQualityMax 3
#define K_PlayMODEMax 4
#define K_PlayEQModeMax 5
#define K_DSP_VolumeMax 31
#define K_DSP_DPCMax 24
#define K_DSP_PlayEQMax 5
//States //define by programmer
#define STATE_IDLE 0x01
#define STATE_PLAY 0x02
#define STATE_FF 0x03
#define STATE_FR 0x04
#define STATE_PLAY_PAUSE 0x05
#define STATE_DVRE_PAUSE 0x06
#define STATE_RECORD 0x07
#define STATE_FileMenu 0x08
#define STATE_WaitDEL 0x09
#define STATE_WaitFormat 0x0a
#define STATE_FLASH_FULL 0x0b
#define STATE_SLEEP 0x0c
#define STATE_DVR_ModeSelect 0x0d
#define STATE_VOXSensitive_Adjust 0x0e
#define STATE_APPO 0x0f
#define STATE_IDLE_PLAY 0x10
//Events //define by programmer
#define MP3 0x43
#define ADPCM 0x45
#define P_PLAY 0x50
#define R_PLAY 0x51
#define P_FF 0x52
#define R_FF 0x53
#define P_FR 0x54
#define R_FR 0x55
#define P_VOLUP 0x56
#define R_VOLUP 0x57
#define P_VOLDOWN 0x58
#define R_VOLDOWN 0x59
#define P_AB 0x5A
#define R_AB 0x5B
#define P_REC 0x5C
#define R_REC 0x5D
#define P_STOP 0x5E
#define R_STOP 0x5F
#define P_MODE 0x60
#define R_MODE 0x61
#define P_ShowDelay 0x62
#define R_ShowDelay 0x63
#define P_PAUSE 0x64
#define R_PAUSE 0x65
#define P_MENU 0x66
#define R_MENU 0x67
#define P_REP 0x68
#define R_REP 0x69
#define P_DEL 0x6a
#define R_DEL 0x6b
#define P_VOS 0x6c
#define R_VOS 0x6d
#define P_Null 0x00
#define R_Null 0x00
#define POWEROFF_TIMEOUT 0x70
#define FFFR_TIMEOUT 0x71
#define VOL_TIMEOUT 0x72
#define AB_TIMEOUT 0x73
#define REC_TIMEOUT 0x74
#define SUBMENU_FOLD 1
#define SUBMENU_APPO 2
//#define SUBMENU_SCOPE 3
#define SUBMENU_LOCK 3
#define SUBMENU_LAST 3
//#define SCOPE_FAR 0x10
//#define SCOPE_NEAR 0x00
//------------------------------------------------------------------------------
//External Link
//------------------------------------------------------------------------------
/*============================================================*/
//extern UCHAR bdata MainLoop_Event ;
/*============================================================*/
extern bit _UIEvent;
/*============================================================*/
extern UCHAR bdata TimerLoop_Event ;
/*============================================================*/
extern bit _TClock;
extern bit _SecBase;
extern bit _G_USB_PowerPlug_Interrupt;
extern bit _G_DispUSBBSY;
extern bit _G_Storage_Full;
extern bit _G_USB_or_Batt_Power;
extern bit _G_USB_Setup_Ack;
extern bit _G_USB_Setup_Interrupt1;
extern bit _G_USB_LockTG0, _G_USB_LockTG1;
extern bit SPL10_Disp_Event;
extern bit G_DisplayEvent_Happened;
extern bit G_USB_Interrupt_Flag;
extern bit _G_LowBatt_State;
extern bit G_FileLock; //sgjm add
extern bit G_FileLockTemp;
//------------------------------------
//End of definition of Bit Variables
//------------------------------------
extern data BIT G_btSoftwareResetFlag;
extern data BIT G_btStopStream;
extern data BIT _G_KeyScanTg;
extern data BIT _G_Storage_Error;
extern data BIT _GPlayPause;
extern data UCHAR G_bRequestLock;
extern data UCHAR G_bRequestLog;
extern data UCHAR MCUSTDAdress;
extern data UCHAR G_DSPPrimeMODE;
extern data UCHAR G_DSPMinorMODE;
extern data USHORT G_wIndexLock;
extern data USHORT G_wValueLock;
extern xdata UCHAR G_ucStorageType;
extern xdata UCHAR G_ucCtrlCommand[];
extern xdata UCHAR G_ucCtrlData[];
extern xdata UCHAR G_ucStorCommand[];
extern xdata UCHAR G_ucStorData[];
extern xdata UCHAR G_ucStoreFAT[];
extern xdata UCHAR G_ucStorData_C_Area[];
extern UCHAR *G_pucCtrlDataPointer; //for both CODE and DATA AREA
extern xdata UCHAR *G_pucStorDataPointer;
extern xdata UCHAR G_ucPktStorIntrf;
extern xdata UCHAR G_ucStorIntrf1Class;
extern xdata UCHAR G_ucStorIntrf2Class;
extern xdata UCHAR G_PLAY_SeqMode;
extern xdata USHORT G_FileCurrentIndex;
extern xdata ULONG G_Mpeg_Status;
extern xdata USHORT G_FileTotalSecond;
//sgjm add
extern xdata UCHAR G_RecMode;
extern xdata UCHAR G_SubMenu;
extern xdata UCHAR G_AppoMinute;
extern xdata UCHAR G_Scope;
extern xdata UCHAR G_VOS;
extern xdata UCHAR G_DelMode;
//--------------------
//L1 global variables
//ISP
//--------------------
extern code UCHAR DSPMainMODEMenu[];
extern code UCHAR DSP_MenuMODE[];
extern xdata UCHAR G_ISP;
extern xdata ULONG G_ISPDRAMAddr;
extern xdata ULONG G_ISPROMAddr;
extern xdata ULONG G_ISPSecAddr;
extern xdata USHORT G_ISPSecCnt;
extern xdata UCHAR G_EVENT;
extern xdata UCHAR G_STATE;
extern xdata UCHAR G_DSP_Volume;
extern xdata UCHAR G_UIMODE;
extern xdata UCHAR G_DISPLAY_Min;
extern xdata UCHAR G_DISPLAY_Sec;
extern xdata UCHAR G_DISPLAY_Trk;
extern xdata UCHAR G_Time_SecBase;
extern xdata UCHAR G_PLAY_DPC;
extern xdata UCHAR G_Play_EQ;
extern xdata USHORT G_W_OldTime;
//----
//USB
//----
extern data BIT _GOneTim;
extern data BIT G_btEP0Intr;
extern data BIT G_btBulkIntr;
extern xdata UCHAR G_LastBulk;
extern xdata UCHAR G_UI_USBConnect;
extern xdata USHORT G_UIStatus;
extern xdata ULONG G_BulkSize;
extern xdata ULONG G_BulkOutSize;
extern xdata ULONG G_BulkDRAMAddr;
extern xdata ULONG G_BulkFlash;
extern xdata ULONG G_BulkFlashAddr;
extern xdata ULONG G_BulkSRAMAddr;
extern xdata ULONG G_AccessRevBlockPhyAddr;
//---------------------------------
//local define for other model use
//---------------------------------
extern data BIT _G_USBConnect;
extern data BIT _G_ucSuspend;
extern data BIT _G_USBSuspendPermit;
//extern xdata UCHAR G_LCDPanel_GroupNum;
extern xdata UCHAR G_Battery_GroupNum;
extern code UCHAR G_Battery_GroupValue[][4];
extern xdata UCHAR G_LowBatt_SecondCount;
extern xdata UCHAR G_Battery_Level;
extern xdata UCHAR G_LCDTMoutCnt;
extern xdata UCHAR G_AB_Cnt;
extern xdata UCHAR G_Powerstate;
extern data bit _G_StudyFunc;
//extern xdata UCHAR lstimer;//hxdls
extern xdata UCHAR Current_Dvr_Dir; //hxd030516 add
//
//patch4.5@richie@mlun begin
extern xdata UCHAR G_ucMSDC_MLUN;
//patch4.5@richie@mlun end
//patch4.5@richie@vender info begin
extern xdata UCHAR G_ucMSDC_CARD;
extern xdata UCHAR G_ucMSDC_BUILT_IN;
/*
extern xdata UCHAR G_ScsiVendorInformation[];
extern xdata UCHAR G_ScsiProductIdentification[];
extern xdata UCHAR G_ScsiProductRevisionLevel[];
*/
//patch4.5@richie@vender info end
#if (USBVendor_OPTION==1)
//state and error code
extern xdata UCHAR G_ucState;
extern xdata UCHAR G_ucState2; //cch@10/15
#endif
//---------------------------------
//other model define for local use
//---------------------------------
extern data BIT _G_UIPostError;//The Error flag of UI post-processor for Audio Engine, such as Open file fail, initial fail etc.
extern xdata UCHAR G_Busy_Timer;//xyq 021217
extern xdata UCHAR G_SPL_BlinkTimer;//xyq 021116
extern xdata UCHAR G_SPL_BattBlinkTimer;
extern xdata UCHAR G_Power_Off_Timer;//xyq 021218
extern xdata UCHAR G_LED_Blink_On_Timer;//xyq 021218
extern xdata UCHAR G_Battery_Detect_Timer;//xyq 021218
extern xdata UCHAR G_AutoRepTimer;//xyq 030319
extern xdata UCHAR G_USB_PlugInTimeOut; // Chamber 030301
extern xdata UCHAR G_USBReadWriteCount;
extern xdata UCHAR L10_disp_Count;
extern unsigned char xdata G_StudyRepTimes;
extern unsigned char xdata G_VOXSensitiveLevel;
extern unsigned char xdata G_VOXDetectTime;
//===================
//Function Prototype
//===================
void main(void);
void spca757main(void);
void MAIN_LockLoop(void);
void MAIN_PreDpc(void);
void MAIN_PostDpc(void);
void MAIN_EventPreDpc(void);
void MAIN_EventPostDpc(void);
void STROBE_Charge(void); // WWWW0409
void AudioDSP_DecodeBitStream(USHORT FileIndex, UCHAR DecoderMODE, UCHAR MinorMODE);
void AudioDSP_EncoderBitStream(UCHAR MinorMODE);
void Variable_init();
void USB_Suspend_Process(void);
void USB_Intr_Suspend_Process(void);
void UI_GetFileAttr(void);
UCHAR USBMSDC_ReadWriteData(void);
UCHAR USBMSDC_SendStatus(void);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -