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

📄 main.h

📁 凌阳MP3 spSPCA755yuanma
💻 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 + -