📄 dsextend.cs
字号:
[PreserveSig]
int put_Mode( AMTunerModeType lMode );
[PreserveSig]
int get_Mode( out AMTunerModeType plMode );
[PreserveSig]
int GetAvailableModes( out AMTunerModeType plModes );
[PreserveSig]
int RegisterNotificationCallBack( IAMTunerNotification pNotify, AMTunerEventType lEvents );
[PreserveSig]
int UnRegisterNotificationCallBack( IAMTunerNotification pNotify );
}
// ---------------------------------------------------------------------------------------
[ComVisible(true), ComImport,
Guid("211A8760-03AC-11d1-8D13-00AA00BD8339"),
InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
public interface IAMTunerNotification
{
[PreserveSig]
int OnEvent( AMTunerEventType Event );
}
// ---------------------------------------------------------------------------------------
[Flags, ComVisible(false)]
public enum AnalogVideoStandard
{
None = 0x00000000, // This is a digital sensor
NTSC_M = 0x00000001, // 75 IRE Setup
NTSC_M_J = 0x00000002, // Japan, 0 IRE Setup
NTSC_433 = 0x00000004,
PAL_B = 0x00000010,
PAL_D = 0x00000020,
PAL_G = 0x00000040,
PAL_H = 0x00000080,
PAL_I = 0x00000100,
PAL_M = 0x00000200,
PAL_N = 0x00000400,
PAL_60 = 0x00000800,
SECAM_B = 0x00001000,
SECAM_D = 0x00002000,
SECAM_G = 0x00004000,
SECAM_H = 0x00008000,
SECAM_K = 0x00010000,
SECAM_K1 = 0x00020000,
SECAM_L = 0x00040000,
SECAM_L1 = 0x00080000,
PAL_N_COMBO = 0x00100000 // Argentina
}
[ComVisible(false)]
public enum TunerInputType
{
Cable,
Antenna
}
// ---------------------------------------------------------------------------------------
[ComVisible(true), ComImport,
Guid("211A8766-03AC-11d1-8D13-00AA00BD8339"),
InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
public interface IAMTVTuner
{
#region "IAMTuner Methods"
[PreserveSig]
int put_Channel( int lChannel, AMTunerSubChannel lVideoSubChannel, AMTunerSubChannel lAudioSubChannel );
[PreserveSig]
int get_Channel( out int plChannel, out int plVideoSubChannel, out int plAudioSubChannel );
[PreserveSig]
int ChannelMinMax( out int lChannelMin, out int lChannelMax );
[PreserveSig]
int put_CountryCode( int lCountryCode );
[PreserveSig]
int get_CountryCode( out int plCountryCode );
[PreserveSig]
int put_TuningSpace( int lTuningSpace );
[PreserveSig]
int get_TuningSpace( out int plTuningSpace );
[PreserveSig]
int Logon( IntPtr hCurrentUser );
[PreserveSig]
int Logout();
[PreserveSig]
int SignalPresent( out AMTunerSignalStrength plSignalStrength );
[PreserveSig]
int put_Mode( AMTunerModeType lMode );
[PreserveSig]
int get_Mode( out AMTunerModeType plMode );
[PreserveSig]
int GetAvailableModes( out AMTunerModeType plModes );
[PreserveSig]
int RegisterNotificationCallBack( IAMTunerNotification pNotify, AMTunerEventType lEvents );
[PreserveSig]
int UnRegisterNotificationCallBack( IAMTunerNotification pNotify );
#endregion
[PreserveSig]
int get_AvailableTVFormats( out AnalogVideoStandard lAnalogVideoStandard );
[PreserveSig]
int get_TVFormat( out AnalogVideoStandard lAnalogVideoStandard );
[PreserveSig]
int AutoTune( int lChannel, out int plFoundSignal );
[PreserveSig]
int StoreAutoTune();
[PreserveSig]
int get_NumInputConnections( out int plNumInputConnections );
[PreserveSig]
int put_InputType( int lIndex, TunerInputType inputType );
[PreserveSig]
int get_InputType( int lIndex, out TunerInputType inputType );
[PreserveSig]
int put_ConnectInput( int lIndex );
[PreserveSig]
int get_ConnectInput( out int lIndex );
[PreserveSig]
int get_VideoFrequency( out int lFreq );
[PreserveSig]
int get_AudioFrequency( out int lFreq );
}
// ---------------------------------------------------------------------------------------
[ComVisible(true), ComImport,
Guid("C6E13380-30AC-11d0-A18C-00A0C9118956"),
InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
public interface IAMCrossbar
{
[PreserveSig]
int get_PinCounts(
[Out] out int OutputPinCount,
[Out] out int InputPinCount );
[PreserveSig]
int CanRoute(
[In] int OutputPinIndex,
[In] int InputPinIndex );
[PreserveSig]
int Route(
[In] int OutputPinIndex,
[In] int InputPinIndex );
[PreserveSig]
int get_IsRoutedTo(
[In] int OutputPinIndex,
[Out] out int InputPinIndex );
[PreserveSig]
int get_CrossbarPinInfo(
[In, MarshalAs(UnmanagedType.Bool)] bool IsInputPin,
[In] int PinIndex,
[Out] out int PinIndexRelated,
[Out] out PhysicalConnectorType PhysicalType
);
}
// ---------------------------------------------------------------------------------------
[ComVisible(true), ComImport,
Guid("54C39221-8380-11d0-B3F0-00AA003761C5"),
InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
public interface IAMAudioInputMixer
{
// This interface is only supported by the input pins, not the filter
// If disabled, this channel will not be mixed in as part of the
// recorded signal.
int put_Enable (
[In] bool fEnable); // TRUE=enable FALSE=disable
//Is this channel enabled?
int get_Enable (
[Out] out bool pfEnable);
// When set to mono mode, making a stereo recording of this channel
// will have both channels contain the same data... a mixture of the
// left and right signals
int put_Mono (
[In] bool fMono); // TRUE=mono FALSE=multi channel
//all channels combined into a mono signal?
int get_Mono (
[Out] out bool pfMono);
// !!! WILL CARDS BE ABLE TO BOOST THE GAIN?
//Set the record level for this channel
int put_MixLevel (
[In] double Level); // 0 = off, 1 = full (unity?) volume
// AMF_AUTOMATICGAIN, if supported,
// means automatic
//Get the record level for this channel
int get_MixLevel (
[Out] out double pLevel);
// For instance, when panned full left, and you make a stereo recording
// of this channel, you will record a silent right channel.
int put_Pan (
[In] double Pan); // -1 = full left, 0 = centre, 1 = right
//Get the pan for this channel
int get_Pan (
[Out] out double pPan);
// Boosts the bass of low volume signals before they are recorded
// to compensate for the fact that your ear has trouble hearing quiet
// bass sounds
int put_Loudness (
[In] bool fLoudness);// TRUE=on FALSE=off
int get_Loudness (
[Out] out bool pfLoudness);
// boosts or cuts the treble of the signal before it's recorded by
// a certain amount of dB
int put_Treble (
[In] double Treble); // gain in dB (-ve = attenuate)
//Get the treble EQ for this channel
int get_Treble (
[Out] out double pTreble);
// This is the maximum value allowed in put_Treble. ie 6.0 means
// any value between -6.0 and 6.0 is allowed
int get_TrebleRange (
[Out] out double pRange); // largest value allowed
// boosts or cuts the bass of the signal before it's recorded by
// a certain amount of dB
int put_Bass (
[In] double Bass); // gain in dB (-ve = attenuate)
// Get the bass EQ for this channel
int get_Bass (
[Out] out double pBass);
// This is the maximum value allowed in put_Bass. ie 6.0 means
// any value between -6.0 and 6.0 is allowed
int get_BassRange (
[Out] out double pRange); // largest value allowed
}
// ---------------------------------------------------------------------------------------
public enum VfwCompressDialogs
{
Config = 0x01,
About = 0x02,
QueryConfig = 0x04,
QueryAbout = 0x08
}
// ---------------------------------------------------------------------------------------
[ComVisible(true), ComImport,
Guid("D8D715A3-6E5E-11D0-B3F0-00AA003761C5"),
InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
public interface IAMVfwCompressDialogs
{
[PreserveSig]
// Bring up a dialog for this codec
int ShowDialog(
[In] VfwCompressDialogs iDialog,
[In] IntPtr hwnd );
// Calls ICGetState and gives you the result
int GetState(
[Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=1)] byte[] pState,
ref int pcbState );
// Calls ICSetState
int SetState(
[In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=1)] byte[] pState,
[In] int cbState );
// Send a codec specific message
int SendDriverMessage(
int uMsg,
long dw1,
long dw2 );
}
// ---------------------------------------------------------------------------------------
[StructLayout(LayoutKind.Sequential), ComVisible(false)]
public class VideoStreamConfigCaps // VIDEO_STREAM_CONFIG_CAPS
{
public Guid Guid;
public AnalogVideoStandard VideoStandard;
public Size InputSize;
public Size MinCroppingSize;
public Size MaxCroppingSize;
public int CropGranularityX;
public int CropGranularityY;
public int CropAlignX;
public int CropAlignY;
public Size MinOutputSize;
public Size MaxOutputSize;
public int OutputGranularityX;
public int OutputGranularityY;
public int StretchTapsX;
public int StretchTapsY;
public int ShrinkTapsX;
public int ShrinkTapsY;
public long MinFrameInterval;
public long MaxFrameInterval;
public int MinBitsPerSecond;
public int MaxBitsPerSecond;
}
// ---------------------------------------------------------------------------------------
[StructLayout(LayoutKind.Sequential), ComVisible(false)]
public class AudioStreamConfigCaps // AUDIO_STREAM_CONFIG_CAPS
{
public Guid Guid;
public int MinimumChannels;
public int MaximumChannels;
public int ChannelsGranularity;
public int MinimumBitsPerSample;
public int MaximumBitsPerSample;
public int BitsPerSampleGranularity;
public int MinimumSampleFrequency;
public int MaximumSampleFrequency;
public int SampleFrequencyGranularity;
}
} // namespace DShowNET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -