📄 sdinterf.h
字号:
#define SET_REGION 0x01
#define GET_REGION 0x02
#define GET_COUNTER_A 0x03
#define GET_COUNTER_B 0x04
#define RESET_BOARD 0x05
interface IRegionCodeControl: public IUnknown
{
public:
/* IRegionCodeControl methods */
STDMETHOD(RegionCodeControl) (THIS_ DWORD dwFunctionCode, BYTE *pbReturnCode) PURE;
};
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// interface IREALmagicProfile used to save / retrieve REALmagic settings.
interface IREALmagicProfile : public IUnknown
{
public:
STDMETHOD(GetInt)(LPCTSTR lpszSection, LPCTSTR lpszEntry, int nDefault, int *pValue) PURE;
STDMETHOD(WriteInt)(LPCTSTR lpszSection, LPCTSTR lpszEntry, int nValue) PURE;
STDMETHOD(GetString)(LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszDefault, LPSTR szString, int iSize) PURE;
STDMETHOD(WriteString)(LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszValue) PURE;
STDMETHOD(GetREALmagicID)() PURE;
STDMETHOD(GetHardwareFlags)() PURE;
STDMETHOD(UpdateDisplaySize)() PURE; // Update display resolution
STDMETHOD(GetDisplayInt)(LPCTSTR lpszEntry, int nDefault, int *pValue) PURE;
STDMETHOD(WriteDisplayInt)(LPCTSTR lpszEntry, int nValue) PURE;
STDMETHOD(CalibrationDone)(BOOL *bDone) PURE; // Check if calibration has been done for the current resolution
};
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// The different audio output format
#ifndef _Quasar_AudioOutputType
#define _Quasar_AudioOutputType
typedef enum
{
DIGITAL_AUDIO, // Through On-board DAC
PCM_AUDIO, // Through Quasar SpDiff channel, no AC-3
AC3_AUDIO // Through Quasar SpDiff channel
} AUDIO_OUTPUT, *PAUDIO_OUTPUT;
#endif
// Audio channel
#ifndef _Quasar_AudioOutputMode
#define _Quasar_AudioOutputMode
typedef enum
{
STEREO,
LEFT_ONLY, // Right channel output on both speakers
RIGHT_ONLY // Left channel output on both speakers
} AUDIO_CHANNEL, *PAUDIO_CHANNEL;
#endif
/////////////////////////////////////////////////////////////////////////////
// interface IAudioOutput used to get/set audio output (Digital, PCM or AC3)
interface IAudioOutput : public IUnknown
{
public:
STDMETHOD(GetOutput)(PAUDIO_OUTPUT pAudioOutput) PURE;
STDMETHOD(SetOutput)(AUDIO_OUTPUT AudioOutput) PURE;
STDMETHOD(GetChannel)(PAUDIO_CHANNEL pAudioChannel) PURE;
STDMETHOD(SetChannel)(AUDIO_CHANNEL AudioChannel) PURE;
};
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// interface IOverlayConfig used to adjust overlay parameters
interface IOverlayConfig : public IUnknown
{
public:
// Set and get overlay mode
STDMETHOD(put_OverlayMode)(THIS_ OVERLAY_MODE OverlayMode) PURE;
STDMETHOD(get_OverlayMode)(THIS_ OVERLAY_MODE FAR* pOverlayMode) PURE;
// Set and get overlay position
STDMETHOD(put_OverlayPosition)(THIS_ RECT rcDestination) PURE;
STDMETHOD(get_OverlayPosition)(THIS_ RECT FAR* prcDestination) PURE;
// Methods to set and get the different settings
STDMETHOD(put_TopBorder)(THIS_ ULONG ulYOffset) PURE;
STDMETHOD(get_TopBorder)(THIS_ ULONG FAR* pulYOffset) PURE;
STDMETHOD(put_LeftBorder)(THIS_ ULONG ulXOffset) PURE;
STDMETHOD(get_LeftBorder)(THIS_ ULONG FAR* pulXOffset) PURE;
STDMETHOD(put_VgaCorrection)(THIS_ ULONG ulVgaCorrection) PURE;
STDMETHOD(get_VgaCorrection)(THIS_ ULONG FAR* pulVgaCorrection) PURE;
STDMETHOD(put_JitterAdjustment)(THIS_ ULONG ulJitterAdjustment) PURE;
STDMETHOD(get_JitterAdjustment)(THIS_ ULONG FAR* pulJitterAdjustment) PURE;
STDMETHOD(put_VgaFineAdjustment)(THIS_ ULONG ulVgaFineAdjustment) PURE;
STDMETHOD(get_VgaFineAdjustment)(THIS_ ULONG FAR* pulVgaFineAdjustment) PURE;
// Let WDM know the current resolution
STDMETHOD(UpdateResolution)() PURE;
// Methods to auto-calibrate
STDMETHOD(AutoCalibrate)(THIS_ IREALmagicProfile *pProfile) PURE;
STDMETHOD(StartAutoCalibration)() PURE;
STDMETHOD(StopAutoCalibration)() PURE;
STDMETHOD(CalibrateTopBorder)() PURE;
STDMETHOD(CalibrateLeftBorder)() PURE;
STDMETHOD(CalibrateCorrection)() PURE;
STDMETHOD(CalibrateColorLimits)(THIS_ PCOLOR_LIMITS pColorLimits) PURE;
STDMETHOD(put_CalibrationParameters)(THIS_ CALIBRATION_PARAMETERS FAR* pCalParams) PURE;
STDMETHOD(get_CalibrationParameters)(THIS_ CALIBRATION_PARAMETERS FAR* pCalParams) PURE;
};
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// Flags for the different TV out formats
#ifndef SET_VGA
#define SET_VGA 0x0000 // Unused. Need to mask with ~SET_TV
#define SET_TV 0x0001 // Forces output to TV (instead of VGA)
#define SET_HDTV 0x0020
#define SET_NTSC 0x0000 // Unused. Need to mask with ~(SET_PAL | SET_PAL60)
#define SET_PAL 0x0002 // Set TV output to PAL (720*576*25fps)
#define SET_PAL60 0x0008 // Set TV output to PAL60 (720*480*30fps)
#define SET_PALM 0x000A // Not supported yet
#define SET480P 0x0100 // Ouput on Component RGB special connector
#define SET_ONETOONE 0x0000 // Unused. Need to mask with ~SET_SCALE
#define SET_SCALE 0x0004
#define SET_TV_AS_SOURCE 0x0010 // Override SET_NTSC and SET_PALxxx flags
#define COMPOSITE 0x0000 // Ouput on Composite/SVideo connector
#define COMPONENT_YUV 0x0080 // Ouput on Component YUV special connector
#define COMPONENT_RGB 0x00C0 // Ouput on Component RGB special connector
#define COMPONENT_RGB_SCART 0x00C0 // Ouput on RGB Scart Connector
#endif
// Enumeration of the different video format
typedef enum
{
TVSRC_UNDEFINED, // No file opened or not PAL/NTSC
TVSRC_NTSC, // Video is 352*240 or a multiple, 29.97 frames per sec
TVSRC_PAL // Video is 352*288 or a multiple, 25 frames per sec
} TV_SOURCE_FORMATS, *PTV_SOURCE_FORMATS;
/////////////////////////////////////////////////////////////////////////////
// interface ITvVgaOutput used to set output to VGA or TV in different
// TV standards (PAL, NTSC....). DirectShow maintains its own TV output
// settings which are different then the one from MCI or DVD station. The
// only common settings between the 3 is TV standard and TV output (Connector
// type).
interface ITvVgaOutput : public IUnknown
{
public:
STDMETHOD(GetTvOutput)(THIS_ PDWORD pdwOutFlags) PURE;
STDMETHOD(SetTvOutput)(THIS_ DWORD dwOutFlags) PURE;
STDMETHOD(GetTvSource)(THIS_ PTV_SOURCE_FORMATS pTvSrcFormat) PURE;
};
/////////////////////////////////////////////////////////////////////////////
// interface ITvVgaOutput2 used to set output to VGA or TV in different
// TV standards (PAL, NTSC....) or in HDTV mode. The first 3 methods are
// 100% compatible with the ITvVgaOutput interface.
// The HDTV added functionality is only used to set Video through the VGA
// Sub-D connector and is different than the component RGB coming out of the
// TV connector. The dwRegistryHDTVMode parameter used to set the HDTV mode
// is using the HDTV mode list found in:
// HKEY_LOCAL_MACHINE\Software\Sigma Designs\REALmagic\xx\Progressive
// (Mode0 through Mode7).
// Be extremly cautious when modifying this list since wrong values may
// hang the system and eventually cause damage to external HDTV devices.
// To exit HDTV mode, simply use the SetTvOutput.
interface ITvVgaOutput2 : public IUnknown
{
public:
STDMETHOD(GetTvOutput)(THIS_ PDWORD pdwOutFlags) PURE;
STDMETHOD(SetTvOutput)(THIS_ DWORD dwOutFlags) PURE;
STDMETHOD(GetTvSource)(THIS_ PTV_SOURCE_FORMATS pTvSrcFormat) PURE;
STDMETHOD(GetHDTVMode)(THIS_ PDWORD pdwRegistryHDTVMode) PURE;
STDMETHOD(SetHDTVMode)(THIS_ DWORD dwRegistryHDTVMode) PURE;
};
/////////////////////////////////////////////////////////////////////////////
// interface ITvVgaOutput3 used to set output to VGA or TV in different
// TV standards (PAL, NTSC....) or in HDTV mode. The first 3 methods are
// 100% compatible with the ITvVgaOutput interface and the last 2 with
// ITvVgaOutput2 interface.
// We added support for Preferred TV format when not provided on the video
// input pin using the MPEG2VIDEOINFO structure (FORMAT_MPEG2Video format).
// Note that the MPEG2VIDEOINFO structure will superseed this default
// settings.
// Enumeration of the different video format
typedef enum
{
TVMODE_NORMAL_OR_WIDE = 0, // 4:3 -> 4:3 and 16:9 -> 16:9
TVMODE_PAN_SCAN, // 4:3 -> 4:3 and 16:9 -> 4:3 pan & scan
TVMODE_LETTER_BOX // 4:3 -> 4:3 and 16:9 -> 4:3 letter box
} TV_PREFERRED_MODES, *PTV_PREFERRED_MODES;
interface ITvVgaOutput3 : public IUnknown
{
public:
STDMETHOD(GetTvOutput)(THIS_ PDWORD pdwOutFlags) PURE;
STDMETHOD(SetTvOutput)(THIS_ DWORD dwOutFlags) PURE;
STDMETHOD(GetTvSource)(THIS_ PTV_SOURCE_FORMATS pTvSrcFormat) PURE;
STDMETHOD(GetTvPreferredMode)(THIS_ PTV_PREFERRED_MODES pTvPrefMode) PURE;
STDMETHOD(SetTvPreferredMode)(THIS_ TV_PREFERRED_MODES TvPrefMode) PURE;
STDMETHOD(GetHDTVMode)(THIS_ PDWORD pdwRegistryHDTVMode) PURE;
STDMETHOD(SetHDTVMode)(THIS_ DWORD dwRegistryHDTVMode) PURE;
STDMETHOD(GetHDTVSubDMode)(THIS_ PDWORD pdwRegistryHDTVMode) PURE;
STDMETHOD(SetHDTVSubDMode)(THIS_ DWORD dwRegistryHDTVMode) PURE;
};
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// interface IMPEGTimeInfo used to retrieve information about the PTSs and
// STC.
interface IMPEGTimeInfo : public IUnknown
{
public:
STDMETHOD(GetSTC)(THIS_ MPEG_SYSTEM_TIME *pmstSTC) PURE;
STDMETHOD(GetNextPTSToDecode)(THIS_ MPEG_STREAM_TYPE StreamType,
THIS_ MPEG_SYSTEM_TIME *pmstSTC) PURE;
STDMETHOD(GetDisplayedPTS)(THIS_ MPEG_STREAM_TYPE StreamType,
THIS_ MPEG_SYSTEM_TIME *pmsPTS) PURE;
STDMETHOD(GetLastPTSReceived)(THIS_ MPEG_STREAM_TYPE StreamType,
THIS_ MPEG_SYSTEM_TIME *pmsPTS) PURE;
};
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -