📄 sdinterf.pas
字号:
function put_Contrast(lContrast : LongInt):HResult; stdcall;
function get_Contrast(out plContrast : LongInt):HResult; stdcall;
end;
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// interface IRegionCodeControl used for region code.
// Return Codes
const NO_EEPROM = $AA;
const EEPROM_TAMPERED = $EE;
// Region Code Functions
const SET_REGION = $01;
const GET_REGION = $02;
const GET_COUNTER_A = $03;
const GET_COUNTER_B = $04;
const RESET_BOARD = $05;
//interface IRegionCodeControl: public IUnknown
type IRegionCodeControl = interface(IUnknown)
['{FC5F1820-527B-11d2-A86E-0040054237F6}']
{ IRegionCodeControl methods }
function RegionCodeControl(dwFunctionCode:DWORD;out pbReturnCode:Byte):HResult;stdcall;
end;
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// interface IREALmagicProfile used to save / retrieve REALmagic settings.
//interface IREALmagicProfile : public IUnknown
type IREALmagicProfile= interface(IUnknown)
['{4246FA00-52E2-11d2-BD98-0080ADB67301}']
function GetInt(lpszSection:LPCTSTR; lpszEntry:LPCTSTR; nDefault:Integer; out pValue : Integer):HResult;stdcall;
function WriteInt(lpszSection:LPCTSTR; lpszEntry:LPCTSTR; nValue:Integer):HResult;stdcall;
function GetString(lpszSection:LPCTSTR; lpszEntry:LPCTSTR; lpszDefault:LPCTSTR; szString:LPSTR; iSize:Integer):HResult;stdcall;
function WriteString(lpszSection:LPCTSTR; lpszEntry:LPCTSTR; lpszValue:LPCTSTR) :HResult;stdcall;
function GetREALmagicID:HResult;stdcall;
function GetHardwareFlags:HResult;stdcall;
function UpdateDisplaySize:HResult;stdcall; // Update display resolution
function GetDisplayInt(lpszEntry:LPCTSTR ; nDefault:Integer; out pValue:Integer) :HResult;stdcall;
function WriteDisplayInt(lpszEntry:LPCTSTR ;nValue:Integer):HResult;stdcall;
function CalibrationDone(out bDone : Boolean) :HResult;stdcall; // Check if calibration has been done for the current resolution
end;
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// The different audio output format
//#ifndef _Quasar_AudioOutputType
//#define _Quasar_AudioOutputType
//typedef enum
type AUDIO_OUTPUT =
(
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
type PAUDIO_OUTPUT = ^AUDIO_OUTPUT;
// Audio channel
//#ifndef _Quasar_AudioOutputMode
//#define _Quasar_AudioOutputMode
//typedef enum
//type PAUDIO_CHANNEL = ^AUDIO_CHANNEL;
type AUDIO_CHANNEL =
(
STEREO,
LEFT_ONLY, // Right channel output on both speakers
RIGHT_ONLY // Left channel output on both speakers
); //AUDIO_CHANNEL, *PAUDIO_CHANNEL;
//#endif
type PAUDIO_CHANNEL = ^AUDIO_CHANNEL;
/////////////////////////////////////////////////////////////////////////////
// interface IAudioOutput used to get/set audio output (Digital, PCM or AC3)
//interface IAudioOutput : public IUnknown
type IAudioOutput=interface(IUnknown)
['{AEB23DA0-54BB-11d2-BD98-0080ADB67301}']
function GetOutput(out AudioOutput:AUDIO_OUTPUT): Hresult; stdcall;
function SetOutput(AudioOutput:AUDIO_OUTPUT): Hresult; stdcall;
function GetChannel(out AudioChannel:AUDIO_CHANNEL): Hresult; stdcall;
function SetChannel(AudioChannel:AUDIO_CHANNEL ): Hresult; stdcall;
end;
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// interface IOverlayConfig used to adjust overlay parameters
//interface IOverlayConfig : public IUnknown
type IOverlayConfig = interface(IUnknown)
['{F1906E01-D722-11d2-B2AC-00400542D89C}']
// Set and get overlay mode
function put_OverlayMode(OverlayMode:OVERLAY_MODE): HResult; stdcall;
function get_OverlayMode(out pOverlayMode:OVERLAY_MODE): HResult; stdcall;
// Set and get overlay position
function put_OverlayPosition(rcDestination:TRECT): HResult; stdcall;
function get_OverlayPosition(out prcDestination:TRECT): HResult; stdcall;
// Methods to set and get the different settings
function put_TopBorder(ulYOffset:ULONG): HResult; stdcall;
function get_TopBorder(out pulYOffset:ULONG): HResult; stdcall;
function put_LeftBorder(ulXOffset:ULONG): HResult; stdcall;
function get_LeftBorder(out pulXOffset:ULONG): HResult; stdcall;
function put_VgaCorrection(ulVgaCorrection:ULONG): HResult; stdcall;
function get_VgaCorrection(out pulVgaCorrection:ULONG): HResult; stdcall;
function put_JitterAdjustment(ulJitterAdjustment:ULONG): HResult; stdcall;
function get_JitterAdjustment(out pulJitterAdjustment:ULONG): HResult; stdcall;
function put_VgaFineAdjustment(ulVgaFineAdjustment:ULONG): HResult; stdcall;
function get_VgaFineAdjustment(out pulVgaFineAdjustment:ULONG): HResult; stdcall;
// Let WDM know the current resolution
function UpdateResolution: HResult; stdcall;
// Methods to auto-calibrate
function AutoCalibrate(out pProfile:IREALmagicProfile): HResult; stdcall;
function StartAutoCalibration: HResult; stdcall;
function StopAutoCalibration: HResult; stdcall;
function CalibrateTopBorder: HResult; stdcall;
function CalibrateLeftBorder: HResult; stdcall;
function CalibrateCorrection: HResult; stdcall;
function CalibrateColorLimits(pColorLimits:PCOLOR_LIMITS): HResult; stdcall;
function put_CalibrationParameters(out pCalParams:CALIBRATION_PARAMETERS): HResult; stdcall;
function get_CalibrationParameters(out pCalParams:CALIBRATION_PARAMETERS): HResult; stdcall;
end;
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// Flags for the different TV out formats
//#ifndef SET_VGA
const SET_VGA = $0000; // Unused. Need to mask with ~SET_TV
const SET_TV = $0001; // Forces output to TV (instead of VGA)
const SET_HDTV = $0020;
const SET_NTSC = $0000; // Unused. Need to mask with ~(SET_PAL | SET_PAL60)
const SET_PAL = $0002; // Set TV output to PAL (720*576*25fps)
const SET_PAL60 = $0008; // Set TV output to PAL60 (720*480*30fps)
const SET_PALM = $000A; // Not supported yet
const SET480P = $0100; // Ouput on Component RGB special connector
const SET_ONETOONE = $0000; // Unused. Need to mask with ~SET_SCALE
const SET_SCALE = $0004;
const SET_TV_AS_SOURCE = $0010; // Override SET_NTSC and SET_PALxxx flags
const COMPOSITE = $0000; // Ouput on Composite/SVideo connector
const COMPONENT_YUV = $0080; // Ouput on Component YUV special connector
const COMPONENT_RGB = $00C0; // Ouput on Component RGB special connector
const COMPONENT_RGB_SCART = $00C0; // Ouput on RGB Scart Connector
//#endif
// Enumeration of the different video format
//typedef enum
type TV_SOURCE_FORMATS =
(
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;
type PTV_SOURCE_FORMATS = ^TV_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
type ITvVgaOutput=interface(IUnknown)
['{34860D40-488F-11d3-9E5F-0090272CFCC9}']
function GetTvOutput(pdwOutFlags:PDWORD): HResult; stdcall;
function SetTvOutput(dwOutFlags:DWORD): HResult; stdcall;
function GetTvSource(pTvSrcFormat:PTV_SOURCE_FORMATS): HResult; stdcall;
end;
/////////////////////////////////////////////////////////////////////////////
// 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
type ITvVgaOutput2=interface(IUnknown)
['{0229D3E0-162E-11d5-9E5F-0090272CFCC9}']
function GetTvOutput(pdwOutFlags:PDWORD): Hresult; stdcall;
function SetTvOutput(dwOutFlags:DWORD): Hresult; stdcall;
function GetTvSource(pTvSrcFormat:PTV_SOURCE_FORMATS): Hresult; stdcall;
function GetHDTVMode(pdwRegistryHDTVMode:PDWORD): Hresult; stdcall;
function SetHDTVMode(dwRegistryHDTVMode:DWORD): Hresult; stdcall;
end;
/////////////////////////////////////////////////////////////////////////////
// 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
type TV_PREFERRED_MODES =
(
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;
type PTV_PREFERRED_MODES = ^TV_PREFERRED_MODES;
//interface ITvVgaOutput3 : public IUnknown
type ITvVgaOutput3 = interface(IUnknown)
['{7425EEB6-FE67-4984-875D-2B3D939F8773}']
function GetTvOutput(pdwOutFlags:PDWORD): Hresult; stdcall;
function SetTvOutput(dwOutFlags:DWORD) : Hresult; stdcall;
function GetTvSource(pTvSrcFormat:PTV_SOURCE_FORMATS): Hresult; stdcall;
function GetTvPreferredMode(pTvPrefMode:PTV_PREFERRED_MODES): Hresult; stdcall;
function SetTvPreferredMode(TvPrefMode:TV_PREFERRED_MODES): Hresult; stdcall;
function GetHDTVMode(pdwRegistryHDTVMode:PDWORD): Hresult; stdcall;
function SetHDTVMode(dwRegistryHDTVMode:DWORD): Hresult; stdcall;
function GetHDTVSubDMode(pdwRegistryHDTVMode:PDWORD): Hresult; stdcall;
function SetHDTVSubDMode(dwRegistryHDTVMode:DWORD): Hresult; stdcall;
end;
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// interface IMPEGTimeInfo used to retrieve information about the PTSs and
// STC.
type MPEG_SYSTEM_TIME=Longword ;
type MPEG_STREAM_TYPE=
(
MpegSystemStream = 1,
MpegAudioStream,
MpegVideoStream,
MpegSubpictureStream,
MpegPCIStream
);
type PMPEG_STREAM_TYPE=^MPEG_STREAM_TYPE;
//interface IMPEGTimeInfo : public IUnknown
type IMPEGTimeInfo = interface(IUnknown)
['{28029D11-F764-11d4-9C1A-0090272CFCC9}']
function GetSTC(out pmstSTC:MPEG_SYSTEM_TIME): HResult; stdcall;
function GetNextPTSToDecode(StreamType:MPEG_STREAM_TYPE;
out pmstSTC:MPEG_SYSTEM_TIME): HResult; stdcall;
function GetDisplayedPTS(StreamType:MPEG_STREAM_TYPE;
out pmsPTS:MPEG_SYSTEM_TIME): HResult; stdcall;
function GetLastPTSReceived(StreamType:MPEG_STREAM_TYPE;
out pmsPTS:MPEG_SYSTEM_TIME): HResult; stdcall;
end;
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
{#endif }
implementation
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -