📄 cqsrbrd.h
字号:
/****************************************************************************** cqsrbrd.h : Implementation of IDecoderBoard interface* REALmagic Quasar Hardware Library* Created by Aurelia Popa-Radu* Copyright Sigma Designs Inc* Sigma Designs Proprietary and confidential* Created on 8/27/99* Description:*****************************************************************************/#ifndef __CQUASARBOARD_H__#define __CQUASARBOARD_H__#include "cobject.h"#include "cquasar.h"#define FRAMES_SKIPPED_ADDRESS 0x30E// PIOs used for I2C#define I2C_PIO_CLOCK PIO0#define I2C_PIO_DATA PIO1#define SECOND_I2C_DATA_PIO PIO4#define SECOND_I2C_PIO_CLOCK PIO5// internal defines for scaling on TV#define MPEG_SCALED_TO_FIT_NTSCTV 0#define MPEG_NOT_SCALED_ON_NTSCTV 1#define MPEG_SCALED_TO_FIT_PALTV 2#define MPEG_NOT_SCALED_ON_PALTV 3#define NTSC_ACTIVE_VIDEO_WIDTH 720#define PAL_ACTIVE_VIDEO_WIDTH 720#define NTSC_ACTIVE_VIDEO_HEIGHT 480#define PAL_ACTIVE_VIDEO_HEIGHT 576// internal flags#define HORIZONTAL_CENTER_43IN169 0x0010#define VERTICAL_CENTER_43IN169 0x0020#define VISIBLE_VIDEO_INDEPENDENT 0x0080#define VIDEO_VALID_ENABLE 0x0100typedef enum{eVgaInfo = 0,eTvInfo,eHdtvInfo}ModeInfo;#define CMD_ON 0x00000001#define CMD_OFF 0x00000000#define STATUS_ON CMD_ON#define STATUS_OFF CMD_OFF// common defines#define CMD_FIELD_VALID 0x00000001#define STANDARD_FIELD_VALID 0x00000004#define CONNECTOR_FIELD_VALID 0x00000008#define CUSTOM_FIELD_VALID 0x00000010#define SCART_FIELD_VALID 0x00000020// TV specific defines#define TVASSOURCE_FIELD_VALID 0x00000100#define TVNOSCALING_FIELD_VALID 0x00000200#define VGA_INFO_VERSION_0 0x00000000#define TV_INFO_VERSION_0 0x00000000#define HDTV_INFO_VERSION_0 0x00000000typedef struct tagVGA_INFO{ BYTE bStructureVersion; // VGA_INFO_VERSION_0 BYTE bOutputType; // eVgaInfo BYTE bOutputId; // 0 = EM84xx+1stVga, 1= EM84xx+2ndVga ... BYTE bForceUpdate; // Value ON, OFF DWORD dwValidFields; BYTE bCmdStatus; // ENABLE_FIELD_VALID : ON, OFF}VGA_INFO;typedef struct tagTV_INFO{ BYTE bStructureVersion; // TV_INFO_VERSION_0 BYTE bOutputType; // eTvInfo BYTE bOutputId; // 0 = EM84xx+1stTv, 1= EM84xx+2ndTv ... BYTE bForceUpdate; // Value ON, OFF DWORD dwValidFields; BYTE bCmdStatus; // CMD_FIELD_VALID : ON, OFF BYTE bStandard; // STANDARD_FIELD_VALID : Ntsc, Pal, Pal60, PalM BYTE bConnector; // CONNECTOR_FIELD_VALID : Composite SVideo, Yuv, Rgb, Off BYTE bTvAsSource; // TVASSOURCE_FIELD_VALID : 0, 1 BYTE bTvNoScaling; // TVNOSCALING_FIELD_VALID : 0, 1 1:1 BYTE bScart; // 16:9, 4:3, disable HDTV_MODE TvCustomMode; // CUSTOM_FIELD_VALID}TV_INFO;typedef struct tagHDTV_INFO{ BYTE bStructureVersion; // HDTV_INFO_VERSION_0 BYTE bOutputType; // eHdtvInfo BYTE bOutputId; // 0 = EM84xx+1stHdtv, 1= EM84xx+2ndHdtv ... BYTE bForceUpdate; // Value ON, OFF DWORD dwValidFields; BYTE bCmdStatus; // CMD_FIELD_VALID : ON, OFF BYTE bStandard; // STANDARD_FIELD_VALID : CustomHdtv, 480P, 720P, 480I, 1080I BYTE bConnector; // CONNECTOR_FIELD_VALID : Composite SVideo, Yuv, Rgb, Off HDTV_MODE HdtvCustomMode; // CUSTOM_FIELD_VALID}HDTV_INFO;typedef struct tagSCANCONV_INFO{ BYTE bStructureVersion; // 0 BYTE bOutputType; // e??? BYTE bOutputId; // 0 = EM84xx+1stScanConv, 1= EM84xx+2ndScanConv ... BYTE bForceUpdate; // Value ON, OFF DWORD dwValidFields; BYTE bCmdStatus; // ENABLE_FIELD_VALID : ON, OFF BYTE bStandard; // STANDARD_FIELD_VALID : Ntsc, Pal, 480P BYTE bConnector; // CONNECTOR_FIELD_VALID : Composite SVideo, Yuv, Rgb, Off BYTE bScart; // 16:9, 4:3, disable}SCANCONV_INFO;#define NPpmCoef 20//////////////////////////////////////////////////////////////////////////////// CQuasarBoard Object#define CQuasarBoard_MEMBER\ IDecoderBoardVtbl VTable;\ HWLIB_CONFIG HwLibConf;\ DWORD DeviceId; /* Quasar Device Id: 13=H+ DragonDVD, 14=Malibu, 15=V+, 17=SVCD*/\ DWORD SubId; /* Quasar Device SubId*/\ DWORD BoardVersion;\ DWORD QuasarVersion; /* Quasar chip Version: 1, 2, 3, 4 */\ void* pQ;\ DWORD MicrocodeType;\ WORD PciDeviceID;\ WORD PciSubsystemID; /* Quasar SubsystemId: FF, F0...F3 ...*/\ DWORD PciSubsystemVendorID;\ DWORD BoardCapabilities;\ IDecoder* m_pIDecoder;\ IEeprom* m_pIEeprom;\ ITvEncoder* m_pITvEncoder; /* TvEncoder used on board: one of m_pIExtTv or m_pISigmaTv */\ ITvEncoder* m_pIExtTv;\ ITvEncoder* m_pISigmaTv;\ IScanConverter* m_pIScanConverter;\ IVideoDecoder* m_pIVideoDecoder; \ IMpegEncoder* m_pIMpegEncoder; \ IDviTransmitter* m_pIDviTransmitter;\ ITvTuner* m_pITvTuner;\ IAnalogOverlay* m_pINova1;\ IAnalogOverlay* m_pINovaLite;\ II2C* m_pII2C;\ ISetI2CpIO* m_pISetI2CpIO;\ void* m_this; /* points to itself */\ DWORD RegControl; /* content of shift register */\ DWORD TvOut; /* one of SET_VGA, SET_TV, SET_HDTV */\ DWORD Standard_TvOut;\ DWORD EnableMacrovision;\ DWORD TvNoScaling;\ DWORD TvAsSource;\ DWORD TvDacsState;\ DWORD LetterBox;\ DWORD OldLetterBox;\ BOOL m_bEnableSync;\ BOOL bSpeedMotion;\ BOOL bIFrameMotion;\ BOOL FirstSystemSCR;\ BOOL m_bUpdateVideoPort; /* Indicates set a TV port setting has changed */\ MPEG_OVERLAY_MODE ModeReq;\ MPEG_DISPLAY_RESOLUTION DisplayResolution;\ MPEG_DISPLAY_RESOLUTION NewDisplayResolution;\ BOOL DisplayResolutionChanged;\ DWORD Speed;\ DWORD FrameRateIndex; /* frame rate index */\ DWORD VideoMode; /* ntsc or pal */\ DWORD AspectRatio; /* 16:9 or 4:3 */\ DWORD OutputAspect; /* 16:9 - letter box, pan/scan, wide */\ LONG Position; /* position in bytes */\ LONG FramePosition; /* position in frames */\ LONG RelativeFrameStart; /* frame at which the ucode is at when */\ WND RealDestWnd;\ WND SrcWnd;\ WND AcqWnd;\ WND DstWnd;\ WND OsdWnd;\ WND OsdHiLiWnd;\ WND MaxDisplayWnd;\ WND ValidWnd;\ eviParams_type VideoInParams;\ DWORD Vc_config;\ BOOL Vc_Vip20Input;\ DWORD OverlayFlags;\ DWORD NewOverlayFlags;\ MASTERPARAMS MasterParamsNtsc;\ MASTERPARAMS MasterParamsPal;\ MASTERPARAMS MasterParams;\ SHORT XOffset;\ SHORT YOffset;\ DWORD Correction;\ DWORD DefCorrection;\ DWORD HFrequency;\ DWORD DefHFrequency;\ BOOL IsInterlaced;\ REGISTRY_TABLE* pInternRegistry;\ REGISTRY_TABLE* pRegistry;\ PPROPERTY_SET_ITEM pPropSetList;\ DWORD RefFreqForPLL23; /* used only in WideTvCalc to program PLL2=pixel clock in SET_HDTV mode*/\ HDTV_MODE HdtvMode;\ evDigOvOnlyParams_type DigOvOnlyParams;\ DWORD BoardAudioRate; /**/\ DWORD ScartStatus; /**/\ DWORD ReqOutputFormat; /*used only by Ne2000TV*/\ DWORD ReqYcYuvRgb; /*Xcard should switch on RGB for fullscreen mode*/\ VGA_INFO VgaInfo;\ TV_INFO TvInfo;\ HDTV_INFO HdtvInfo;\ SCANCONV_INFO ScanConvInfo;\ REGISTRY_ITEM CommonRegistryList[eCommonRegMax];\ REGISTRY_ITEM HdtvRegistryList[eHdtvRegMax];\ REGISTRY_ITEM VgaVendorRegistryList[eVgaVendorRegMax];\ PROPERTY_ITEM BoardInfoPropertyList[eBoardInfoMax];\ PROPERTY_ITEM VideoPropertyList[evMax];\ PROPERTY_ITEM VideoInPropertyList[eviMax];\ PROPERTY_ITEM AudioInPropertyList[eAudioInMax];\ PROPERTY_ITEM AudioPropertyList[eaMax];\ PROPERTY_ITEM SubpicturePropertyList[eSubpictureMax];\ PROPERTY_ITEM TimePropertyList[etimMax];\ PROPERTY_ITEM OsdPropertyList[eOsdMax]; \ PROPERTY_ITEM HwTestPropertyList[ehwTestMax];\ int iPpmCoef[NPpmCoef];\ int iPpmIndex;\ int iPpmAvg;\ int iPpmRange;\ int iDeltaSCR_APTS;\ DWORD dwRecoveryTime; /* = log2(TimeRecovery/200us) = 16 for 13.1072sec*/\ HW_VCXO HwVcxo;\ DWORD VOPTimeIncrRes;\ DWORD VideoCTSTimeScale;\ DWORD AudioCTSTimeScale;\ DWORD PioAccessedByUser;\ DWORD PioDirState;\ DWORD PioDataState;\ DWORD VideoByteCounter;\ DWORD AudioByteCounter;\ HWLIB_PENDING_STACK PendingStack;\ DWORD FieldFrameAtPause;\ QVideoState VideoState;\ DWORD DigitalVideoDataNBits;\ DWORD PixelClockPolarity;\ evVideoHwPlay_type VideoHwPlayType;\ eAudioInParams_type AudioInParams;\ AudioInOutConfig_type AudioInOutConfig;\ DWORD VideoClipEnable;\
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -