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

📄 sdinterf.pas

📁 这份源码已提供了神龙卡的控制接口的全部源码
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    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 + -