?? bdaiface.cs
字號:
#region license
/*
DirectShowLib - Provide access to DirectShow interfaces via .NET
Copyright (C) 2006
http://sourceforge.net/projects/directshownet/
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#endregion
using System;
using System.Runtime.InteropServices;
namespace DirectShowLib.BDA
{
#region Declarations
#if ALLOW_UNTESTED_INTERFACES
/// <summary>
/// From KSPROPERTY_IPSINK
/// </summary>
public enum KSPropertyIPSink
{
MulticastList,
AdapterDescription,
AdapterAddress
}
/// <summary>
/// From PID_MAP
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public class PIDMap
{
public int ulPID;
public MediaSampleContent MediaSampleContent;
}
#endif
/// <summary>
/// From BDA_CHANGE_STATE
/// </summary>
public enum BDAChangeState
{
ChangesComplete = 0,
ChangesPending
}
/// <summary>
/// From BDA_MULTICAST_MODE
/// </summary>
public enum MulticastMode
{
PromiscuousMulticast = 0,
FilteredMulticast,
NoMulticast
}
/// <summary>
/// From MEDIA_SAMPLE_CONTENT
/// </summary>
public enum MediaSampleContent
{
TransportPacket,
ElementaryStream,
Mpeg2PSI,
TransportPayload
}
/// <summary>
/// From BDANODE_DESCRIPTOR
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public struct BDANodeDescriptor
{
public int ulBdaNodeType;
public Guid guidFunction;
public Guid guidName;
}
#endregion
#region Interfaces
#if ALLOW_UNTESTED_INTERFACES
[ComImport,
Guid("fd501041-8ebe-11ce-8183-00aa00577da2"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IBDA_NetworkProvider
{
[PreserveSig]
int PutSignalSource([In] int ulSignalSource);
[PreserveSig]
int GetSignalSource([Out] out int pulSignalSource);
[PreserveSig]
int GetNetworkType([Out] out Guid pguidNetworkType);
[PreserveSig]
int PutTuningSpace([In, MarshalAs(UnmanagedType.LPStruct)] Guid guidTuningSpace);
[PreserveSig]
int GetTuningSpace([Out] out Guid pguidTuingSpace);
[PreserveSig]
int RegisterDeviceFilter(
[In, MarshalAs(UnmanagedType.Interface)] object pUnkFilterControl,
[Out] out int ppvRegisitrationContext
);
[PreserveSig]
int UnRegisterDeviceFilter([In] int pvRegistrationContext);
}
[ComImport,
Guid("71985F46-1CA1-11d3-9CC8-00C04F7971E0"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IBDA_VoidTransform
{
[PreserveSig]
int Start();
[PreserveSig]
int Stop();
}
[ComImport,
Guid("DDF15B0D-BD25-11d2-9CA0-00C04F7971E0"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IBDA_NullTransform
{
[PreserveSig]
int Start();
[PreserveSig]
int Stop();
}
[ComImport,
Guid("afb6c2a2-2c41-11d3-8a60-0000f81e0e4a"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IEnumPIDMap
{
[PreserveSig]
int Next(
[In] int cRequest,
[Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] PIDMap[] pPIDMap,
[Out] out int pcReceived
);
[PreserveSig]
int Skip([In] int cRecords);
[PreserveSig]
int Reset();
[PreserveSig]
int Clone([Out] out IEnumPIDMap ppIEnumPIDMap);
}
[ComImport,
Guid("0DED49D5-A8B7-4d5d-97A1-12B0C195874D"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IBDA_PinControl
{
[PreserveSig]
int GetPinID([Out] out int pulPinID);
[PreserveSig]
int GetPinType([Out] out int pulPinType);
[PreserveSig]
int RegistrationContext([Out] out int pulRegistrationCtx);
}
#endif
[ComImport,
Guid("1347D106-CF3A-428a-A5CB-AC0D9A2A4338"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IBDA_SignalStatistics
{
[PreserveSig]
int put_SignalStrength([In] int lDbStrength);
[PreserveSig]
int get_SignalStrength([Out] out int plDbStrength);
[PreserveSig]
int put_SignalQuality([In] int lPercentQuality);
[PreserveSig]
int get_SignalQuality([Out] out int plPercentQuality);
[PreserveSig]
int put_SignalPresent([In, MarshalAs(UnmanagedType.U1)] bool fPresent);
[PreserveSig]
int get_SignalPresent([Out, MarshalAs(UnmanagedType.U1)] out bool pfPresent);
[PreserveSig]
int put_SignalLocked([In, MarshalAs(UnmanagedType.U1)] bool fLocked);
[PreserveSig]
int get_SignalLocked([Out, MarshalAs(UnmanagedType.U1)] out bool pfLocked);
[PreserveSig]
int put_SampleTime([In] int lmsSampleTime);
[PreserveSig]
int get_SampleTime([Out] out int plmsSampleTime);
}
[ComImport,
Guid("79B56888-7FEA-4690-B45D-38FD3C7849BE"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IBDA_Topology
{
[PreserveSig]
int GetNodeTypes(
[Out] out int pulcNodeTypes,
[In] int ulcNodeTypesMax,
[Out, MarshalAs(UnmanagedType.LPArray, ArraySubType=UnmanagedType.I4, SizeParamIndex=1)] int[] rgulNodeTypes
);
[PreserveSig]
int GetNodeDescriptors(
[Out] out int ulcNodeDescriptors,
[In] int ulcNodeDescriptorsMax,
[Out, MarshalAs(UnmanagedType.LPArray, ArraySubType=UnmanagedType.LPStruct, SizeParamIndex=1)] BDANodeDescriptor[] rgNodeDescriptors
);
[PreserveSig]
int GetNodeInterfaces(
[In] int ulNodeType,
[Out] out int pulcInterfaces,
[In] int ulcInterfacesMax,
[Out, MarshalAs(UnmanagedType.LPArray, ArraySubType=UnmanagedType.LPStruct, SizeParamIndex=2)] Guid[] rgguidInterfaces
);
[PreserveSig]
int GetPinTypes(
[Out] out int pulcPinTypes,
[In] int ulcPinTypesMax,
[Out, MarshalAs(UnmanagedType.LPArray, ArraySubType=UnmanagedType.I4, SizeParamIndex=1)] int[] rgulPinTypes
);
[PreserveSig]
int GetTemplateConnections(
[Out] out int pulcConnections,
[In] int ulcConnectionsMax,
[Out, MarshalAs(UnmanagedType.LPArray, ArraySubType=UnmanagedType.LPStruct, SizeParamIndex=1)] BDATemplateConnection [] rgConnections
);
[PreserveSig]
int CreatePin(
[In] int ulPinType,
[Out] out int pulPinId
);
[PreserveSig]
int DeletePin([In] int ulPinId);
[PreserveSig]
int SetMediaType(
[In] int ulPinId,
[In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType pMediaType
);
[PreserveSig]
int SetMedium(
[In] int ulPinId,
[In] RegPinMedium pMedium
);
[PreserveSig]
int CreateTopology(
[In] int ulInputPinId,
[In] int ulOutputPinId
);
[PreserveSig]
int GetControlNode(
[In] int ulInputPinId,
[In] int ulOutputPinId,
[In] int ulNodeType,
[Out, MarshalAs(UnmanagedType.IUnknown)] out object ppControlNode // IUnknown
);
}
[ComImport,
Guid("06FB45C1-693C-4ea7-B79F-7A6A54D8DEF2"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IFrequencyMap
{
[PreserveSig]
int get_FrequencyMapping(
[Out] out int ulCount,
[Out] out IntPtr ppulList
);
[PreserveSig]
int put_FrequencyMapping(
[In] int ulCount,
[In, MarshalAs(UnmanagedType.LPArray, ArraySubType=UnmanagedType.I4)] int[] pList
);
[PreserveSig]
int get_CountryCode([Out] out int pulCountryCode);
[PreserveSig]
int put_CountryCode([In] int ulCountryCode);
[PreserveSig]
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -