include: Add bdaiface.idl

André Hentschel nerv at dawncrow.de
Fri Nov 29 16:36:49 CST 2013


This was part of trying out a stubbed IBDA_NetworkProvider for pipelight, but it turned out not to be usefull.
Maybe it will in the future, so this is mostly for not loosing the effort (it took some hours to do this).

---
 include/Makefile.in      |   3 +
 include/bdaiface.idl     | 774 +++++++++++++++++++++++++++++++++++++++++++++++
 include/bdaiface_enums.h |  86 ++++++
 include/bdatypes.h       | 259 ++++++++++++++++
 4 files changed, 1122 insertions(+)
 create mode 100644 include/bdaiface.idl
 create mode 100644 include/bdaiface_enums.h
 create mode 100644 include/bdatypes.h

diff --git a/include/Makefile.in b/include/Makefile.in
index 2d91150..d10ffc5 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -12,6 +12,7 @@ PUBLIC_IDL_H_SRCS = \
 	audioclient.idl \
 	audiopolicy.idl \
 	austream.idl \
+	bdaiface.idl \
 	bits.idl \
 	bits1_5.idl \
 	bits3_0.idl \
@@ -161,6 +162,8 @@ SRCDIR_INCLUDES = \
 	basetsd.h \
 	basetyps.h \
 	bcrypt.h \
+	bdaiface_enums.h \
+	bdatypes.h \
 	binres.idl \
 	bitsmsg.h \
 	cderr.h \
diff --git a/include/bdaiface.idl b/include/bdaiface.idl
new file mode 100644
index 0000000..227f054
--- /dev/null
+++ b/include/bdaiface.idl
@@ -0,0 +1,774 @@
+/*
+ * Copyright 2013 André Hentschel
+ *
+ * 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
+ */
+
+import "unknwn.idl";
+import "strmif.idl";
+import "bdaiface_enums.h";
+
+
+[
+    object,
+    uuid(fd501041-8ebe-11ce-8183-00aa00577da2),
+    pointer_default(unique)
+]
+interface IBDA_NetworkProvider : IUnknown
+{
+    HRESULT PutSignalSource([in] ULONG ulSignalSource);
+    HRESULT GetSignalSource([in, out] ULONG *pulSignalSource);
+    HRESULT GetNetworkType([in, out] GUID *pguidNetworkType);
+    HRESULT PutTuningSpace([in] REFGUID guidTuningSpace);
+    HRESULT GetTuningSpace([in, out] GUID *pguidTuingSpace);
+    HRESULT RegisterDeviceFilter([in] IUnknown *pUnkFilterControl, [in, out] ULONG *ppvRegisitrationContext);
+    HRESULT UnRegisterDeviceFilter([in] ULONG pvRegistrationContext);
+}
+
+[
+    object,
+    uuid(71985F43-1CA1-11d3-9CC8-00C04F7971E0),
+    pointer_default(unique)
+]
+interface IBDA_EthernetFilter : IUnknown
+{
+    HRESULT GetMulticastListSize([in, out] ULONG *pulcbAddresses);
+    HRESULT PutMulticastList([in] ULONG ulcbAddresses, [in, size_is(ulcbAddresses)] BYTE pAddressList []);
+    HRESULT GetMulticastList([in, out] ULONG *pulcbAddresses, [in, out, size_is(*pulcbAddresses)] BYTE pAddressList[]);
+    HRESULT PutMulticastMode([in] ULONG ulModeMask);
+    HRESULT GetMulticastMode([out] ULONG *pulModeMask);
+}
+
+[
+    object,
+    uuid(71985F44-1CA1-11d3-9CC8-00C04F7971E0),
+    pointer_default(unique)
+]
+interface IBDA_IPV4Filter : IUnknown
+{
+    HRESULT GetMulticastListSize([in, out] ULONG *pulcbAddresses);
+    HRESULT PutMulticastList([in] ULONG ulcbAddresses, [in, size_is(ulcbAddresses)] BYTE pAddressList[]);
+    HRESULT GetMulticastList([in, out] ULONG *pulcbAddresses,[out, size_is(*pulcbAddresses)] BYTE pAddressList[]);
+    HRESULT PutMulticastMode([in] ULONG ulModeMask);
+    HRESULT GetMulticastMode([out] ULONG* pulModeMask);
+}
+
+[
+    object,
+    uuid(E1785A74-2A23-4fb3-9245-A8F88017EF33),
+    pointer_default(unique)
+]
+interface IBDA_IPV6Filter : IUnknown
+{
+    HRESULT GetMulticastListSize([in, out] ULONG *pulcbAddresses);
+    HRESULT PutMulticastList([in] ULONG ulcbAddresses, [in, size_is(ulcbAddresses)] BYTE pAddressList[]);
+    HRESULT GetMulticastList([in, out] ULONG *pulcbAddresses,[out, size_is(*pulcbAddresses)] BYTE pAddressList[]);
+    HRESULT PutMulticastMode([in] ULONG ulModeMask);
+    HRESULT GetMulticastMode([out] ULONG* pulModeMask);
+}
+
+[
+    object,
+    uuid(FD0A5AF3-B41D-11d2-9C95-00C04F7971E0),
+    pointer_default(unique)
+]
+interface IBDA_DeviceControl : IUnknown
+{
+    HRESULT StartChanges(void);
+    HRESULT CheckChanges(void);
+    HRESULT CommitChanges(void);
+    HRESULT GetChangeState([in, out] ULONG *pState);
+}
+
+[
+    object,
+    uuid(0DED49D5-A8B7-4d5d-97A1-12B0C195874D),
+    pointer_default(unique)
+]
+interface IBDA_PinControl : IUnknown
+{
+    HRESULT GetPinID([in, out] ULONG *pulPinID);
+    HRESULT GetPinType([in, out] ULONG *pulPinType);
+    HRESULT RegistrationContext([in, out] ULONG *pulRegistrationCtx);
+}
+
+[
+    object,
+    uuid(D2F1644B-B409-11d2-BC69-00A0C9EE9E16),
+    pointer_default(unique)
+]
+interface IBDA_SignalProperties : IUnknown
+{
+    HRESULT PutNetworkType([in] REFGUID guidNetworkType);
+    HRESULT GetNetworkType([in, out] GUID *pguidNetworkType);
+    HRESULT PutSignalSource([in] ULONG ulSignalSource);
+    HRESULT GetSignalSource([in, out] ULONG *pulSignalSource);
+    HRESULT PutTuningSpace([in] REFGUID guidTuningSpace);
+    HRESULT GetTuningSpace([in, out] GUID *pguidTuingSpace);
+}
+
+[
+    object,
+    uuid(1347D106-CF3A-428a-A5CB-AC0D9A2A4338),
+    pointer_default(unique)
+]
+interface IBDA_SignalStatistics : IUnknown
+{
+    HRESULT put_SignalStrength ([in] LONG lDbStrength);
+    HRESULT get_SignalStrength ([in, out] LONG *plDbStrength);
+    HRESULT put_SignalQuality ([in] LONG lPercentQuality);
+    HRESULT get_SignalQuality ([in, out] LONG *plPercentQuality);
+    HRESULT put_SignalPresent ([in] BOOLEAN fPresent);
+    HRESULT get_SignalPresent ([in, out] BOOLEAN *pfPresent);
+    HRESULT put_SignalLocked ([in] BOOLEAN fLocked);
+    HRESULT get_SignalLocked ([in, out] BOOLEAN *pfLocked);
+    HRESULT put_SampleTime ([in] LONG lmsSampleTime);
+    HRESULT get_SampleTime ([in, out] LONG *plmsSampleTime);
+}
+
+[
+    object,
+    uuid(79B56888-7FEA-4690-B45D-38FD3C7849BE),
+    pointer_default(unique)
+]
+interface IBDA_Topology : IUnknown
+{
+    HRESULT GetNodeTypes([in, out] ULONG *pulcNodeTypes,
+                         [in] ULONG ulcNodeTypesMax,
+                         [in, out, size_is (ulcNodeTypesMax)] ULONG rgulNodeTypes[]);
+    HRESULT GetNodeDescriptors([in, out] ULONG *ulcNodeDescriptors,
+                               [in] ULONG ulcNodeDescriptorsMax,
+                               [in, out, size_is(ulcNodeDescriptorsMax)] BDANODE_DESCRIPTOR rgNodeDescriptors[]);
+    HRESULT GetNodeInterfaces([in] ULONG ulNodeType,
+                              [in, out] ULONG *pulcInterfaces,
+                              [in] ULONG ulcInterfacesMax,
+                              [in, out, size_is (ulcInterfacesMax)] GUID rgguidInterfaces[]);
+    HRESULT GetPinTypes([in, out] ULONG *pulcPinTypes,
+                        [in] ULONG ulcPinTypesMax,
+                        [in, out, size_is (ulcPinTypesMax)] ULONG rgulPinTypes[]);
+    HRESULT GetTemplateConnections([in, out] ULONG *pulcConnections,
+                                   [in] ULONG ulcConnectionsMax,
+                                   [in, out, size_is (ulcConnectionsMax)] BDA_TEMPLATE_CONNECTION rgConnections[]);
+    HRESULT CreatePin([in] ULONG ulPinType, [in, out] ULONG *pulPinId);
+    HRESULT DeletePin([in] ULONG ulPinId);
+    HRESULT SetMediaType([in] ULONG ulPinId, [in] AM_MEDIA_TYPE *pMediaType);
+    HRESULT SetMedium([in] ULONG ulPinId, [in] REGPINMEDIUM *pMedium);
+    HRESULT CreateTopology([in] ULONG ulInputPinId, [in] ULONG ulOutputPinId);
+    HRESULT GetControlNode([in] ULONG ulInputPinId,
+                           [in] ULONG ulOutputPinId,
+                           [in] ULONG ulNodeType,
+                           [in, out] IUnknown **ppControlNode);
+}
+
+[
+    object,
+    uuid(71985F46-1CA1-11d3-9CC8-00C04F7971E0),
+    pointer_default(unique)
+]
+interface IBDA_VoidTransform : IUnknown
+{
+    HRESULT Start(void);
+    HRESULT Stop(void);
+}
+
+[
+    object,
+    uuid(DDF15B0D-BD25-11d2-9CA0-00C04F7971E0),
+    pointer_default(unique)
+]
+interface IBDA_NullTransform : IUnknown
+{
+    HRESULT Start(void);
+    HRESULT Stop(void);
+}
+
+[
+    object,
+    uuid(71985F47-1CA1-11d3-9CC8-00C04F7971E0),
+    pointer_default(unique)
+]
+interface IBDA_FrequencyFilter : IUnknown
+{
+    HRESULT put_Autotune([in] ULONG ulTransponder);
+    HRESULT get_Autotune([in, out] ULONG *pulTransponder);
+    HRESULT put_Frequency([in] ULONG ulFrequency);
+    HRESULT get_Frequency([in, out] ULONG *pulFrequency);
+    HRESULT put_Polarity([in] Polarisation Polarity);
+    HRESULT get_Polarity([in, out] Polarisation *pPolarity);
+    HRESULT put_Range([in] ULONG ulRange);
+    HRESULT get_Range([in, out] ULONG *pulRange);
+    HRESULT put_Bandwidth([in] ULONG ulBandwidth);
+    HRESULT get_Bandwidth([in, out] ULONG *pulBandwidth);
+    HRESULT put_FrequencyMultiplier([in] ULONG ulMultiplier);
+    HRESULT get_FrequencyMultiplier([in, out] ULONG *pulMultiplier);
+}
+
+[
+    object,
+    uuid(992CF102-49F9-4719-A664-C4F23E2408F4),
+    pointer_default(unique)
+]
+interface IBDA_LNBInfo : IUnknown
+{
+    HRESULT put_LocalOscilatorFrequencyLowBand([in] ULONG ulLOFLow);
+    HRESULT get_LocalOscilatorFrequencyLowBand([in, out] ULONG *pulLOFLow);
+    HRESULT put_LocalOscilatorFrequencyHighBand([in] ULONG ulLOFHigh);
+    HRESULT get_LocalOscilatorFrequencyHighBand([in, out] ULONG *pulLOFHigh);
+    HRESULT put_HighLowSwitchFrequency([in] ULONG ulSwitchFrequency);
+    HRESULT get_HighLowSwitchFrequency([in, out] ULONG *pulSwitchFrequency);
+}
+
+[
+    object,
+    uuid(F84E2AB0-3C6B-45e3-A0FC-8669D4B81F11),
+    pointer_default(unique)
+]
+interface IBDA_DiseqCommand : IUnknown
+{
+    HRESULT put_EnableDiseqCommands([in] BOOLEAN bEnable);
+    HRESULT put_DiseqLNBSource([in] ULONG ulLNBSource);
+    HRESULT put_DiseqUseToneBurst([in] BOOLEAN bUseToneBurst);
+    HRESULT put_DiseqRepeats([in] ULONG ulRepeats);
+    HRESULT put_DiseqSendCommand([in] ULONG ulRequestId,
+                                 [in] ULONG ulcbCommandLen,
+                                 [in, size_is(ulcbCommandLen)] BYTE *pbCommand);
+    HRESULT get_DiseqResponse([in] ULONG ulRequestId,
+                              [in, out] ULONG *pulcbResponseLen,
+                              [in, out, size_is(*pulcbResponseLen)] BYTE pbResponse[]);
+}
+
+[
+    object,
+    uuid(DDF15B12-BD25-11d2-9CA0-00C04F7971E0),
+    pointer_default(unique)
+]
+interface IBDA_AutoDemodulate : IUnknown
+{
+    HRESULT put_AutoDemodulate(void);
+}
+
+[
+    object,
+    uuid(34518D13-1182-48e6-B28F-B24987787326),
+    pointer_default(unique)
+]
+interface IBDA_AutoDemodulateEx : IBDA_AutoDemodulate
+{
+    HRESULT get_SupportedDeviceNodeTypes([in] ULONG ulcDeviceNodeTypesMax,
+                                         [out] ULONG *pulcDeviceNodeTypes,
+                                         [in, out] GUID *pguidDeviceNodeTypes);
+    HRESULT get_SupportedVideoFormats([out] ULONG *pulAMTunerModeType,
+                                      [out] ULONG *pulAnalogVideoStandard);
+    HRESULT get_AuxInputCount([in, out] ULONG *pulCompositeCount,
+                              [in, out] ULONG *pulSvideoCount);
+}
+
+[
+    object,
+    uuid(EF30F379-985B-4d10-B640-A79D5E04E1E0),
+    pointer_default(unique)
+]
+interface IBDA_DigitalDemodulator : IUnknown
+{
+    HRESULT put_ModulationType([in] ModulationType *pModulationType);
+    HRESULT get_ModulationType([in, out] ModulationType *pModulationType);
+    HRESULT put_InnerFECMethod([in] FECMethod *pFECMethod);
+    HRESULT get_InnerFECMethod([in, out] FECMethod *pFECMethod);
+    HRESULT put_InnerFECRate([in] BinaryConvolutionCodeRate *pFECRate);
+    HRESULT get_InnerFECRate([in, out] BinaryConvolutionCodeRate *pFECRate);
+    HRESULT put_OuterFECMethod([in] FECMethod *pFECMethod);
+    HRESULT get_OuterFECMethod([in, out] FECMethod *pFECMethod);
+    HRESULT put_OuterFECRate([in] BinaryConvolutionCodeRate *pFECRate);
+    HRESULT get_OuterFECRate([in, out] BinaryConvolutionCodeRate *pFECRate);
+    HRESULT put_SymbolRate([in] ULONG *pSymbolRate);
+    HRESULT get_SymbolRate([in, out] ULONG *pSymbolRate);
+    HRESULT put_SpectralInversion([in] SpectralInversion *pSpectralInversion);
+    HRESULT get_SpectralInversion([in, out] SpectralInversion *pSpectralInversion);
+}
+
+[
+    object,
+    uuid(525ED3EE-5CF3-4e1e-9A06-5368A84F9A6E),
+    pointer_default(unique)
+]
+interface IBDA_DigitalDemodulator2 : IBDA_DigitalDemodulator
+{
+    HRESULT put_GuardInterval([in] GuardInterval *pGuardInterval);
+    HRESULT get_GuardInterval([in, out] GuardInterval *pGuardInterval);
+    HRESULT put_TransmissionMode([in] TransmissionMode *pTransmissionMode);
+    HRESULT get_TransmissionMode([in, out] TransmissionMode *pTransmissionMode);
+    HRESULT put_RollOff([in] RollOff *pRollOff);
+    HRESULT get_RollOff([in, out] RollOff *pRollOff);
+    HRESULT put_Pilot([in] Pilot *pPilot);
+    HRESULT get_Pilot([in, out] Pilot *pPilot);
+}
+
+[
+    object,
+    uuid(13F19604-7D32-4359-93A2-A05205D90AC9),
+    pointer_default(unique)
+]
+interface IBDA_DigitalDemodulator3 : IBDA_DigitalDemodulator2
+{
+    HRESULT put_SignalTimeouts([in] BDA_SIGNAL_TIMEOUTS *pSignalTimeouts);
+    HRESULT get_SignalTimeouts([in, out] BDA_SIGNAL_TIMEOUTS *pSignalTimeouts);
+    HRESULT put_PLPNumber([in] ULONG *pPLPNumber);
+    HRESULT get_PLPNumber([in, out] ULONG *pPLPNumber);
+}
+
+[
+    object,
+    uuid(4B2BD7EA-8347-467b-8DBF-62F784929CC3),
+    helpstring("ICCSubStreamFiltering Interface"),
+    pointer_default(unique)
+]
+interface ICCSubStreamFiltering : IUnknown
+{
+    [propget, helpstring("property SubstreamTypes")] HRESULT SubstreamTypes([out, retval] long *pTypes);
+    [propput, helpstring("property SubstreamTypes")] HRESULT SubstreamTypes([in] long Types);
+}
+
+[
+    object,
+    uuid(3F4DC8E2-4050-11d3-8F4B-00C04F7971E2),
+    pointer_default(unique),
+    helpstring("Not supported - Use IBDA_IPSinkInfo instead")
+]
+interface IBDA_IPSinkControl : IUnknown
+{
+    HRESULT GetMulticastList([in, out] unsigned long *pulcbSize, [in, out] BYTE **pbBuffer);
+    HRESULT GetAdapterIPAddress ([in,out] unsigned long *pulcbSize, [in,out] BYTE **pbBuffer);
+}
+
+[
+    object,
+    uuid(A750108F-492E-4d51-95F7-649B23FF7AD7),
+    pointer_default(unique)
+]
+interface IBDA_IPSinkInfo : IUnknown
+{
+    HRESULT get_MulticastList([in, out] ULONG *pulcbAddresses,
+                              [out, size_is(*pulcbAddresses)] BYTE **ppbAddressList);
+    HRESULT get_AdapterIPAddress([out] BSTR *pbstrBuffer);
+    HRESULT get_AdapterDescription([out] BSTR *pbstrBuffer);
+}
+
+[
+    object,
+    uuid (afb6c2a2-2c41-11d3-8a60-0000f81e0e4a),
+    pointer_default(unique)
+]
+interface IEnumPIDMap : IUnknown
+{
+    HRESULT Next([in] ULONG cRequest,
+                 [in, out, size_is (cRequest)] PID_MAP *pPIDMap,
+                 [out] ULONG *pcReceived);
+    HRESULT Skip([in] ULONG cRecords);
+    HRESULT Reset(void);
+    HRESULT Clone([out] IEnumPIDMap **ppIEnumPIDMap);
+}
+
+[
+    object,
+    uuid (afb6c2a1-2c41-11d3-8a60-0000f81e0e4a),
+    pointer_default(unique)
+]
+interface IMPEG2PIDMap : IUnknown
+{
+    HRESULT MapPID([in] ULONG culPID,
+                   [in] ULONG *pulPID,
+                   [in] MEDIA_SAMPLE_CONTENT MediaSampleContent);
+    HRESULT UnmapPID([in] ULONG culPID, [in] ULONG *pulPID);
+    HRESULT EnumPIDMap([out] IEnumPIDMap **pIEnumPIDMap);
+}
+
+[
+    object,
+    uuid(06FB45C1-693C-4ea7-B79F-7A6A54D8DEF2),
+    helpstring("IFrequencyMap Interface"),
+    pointer_default(unique),
+    hidden, restricted
+]
+interface IFrequencyMap : IUnknown
+{
+    HRESULT get_FrequencyMapping([out] ULONG *ulCount, [out, size_is(1, *ulCount)] ULONG **ppulList);
+    HRESULT put_FrequencyMapping([in] ULONG ulCount, [in, size_is(ulCount)] ULONG pList[]);
+    HRESULT get_CountryCode([out] ULONG *pulCountryCode);
+    HRESULT put_CountryCode([in] ULONG ulCountryCode);
+    HRESULT get_DefaultFrequencyMapping([in] ULONG ulCountryCode,
+                                        [out] ULONG *pulCount,
+                                        [out, size_is(1, *pulCount)] ULONG **ppulList);
+    HRESULT get_CountryCodeList([out] ULONG* pulCount, [out, size_is(1, *pulCount)] ULONG **ppulList);
+}
+
+[
+    object,
+    uuid(D806973D-3EBE-46de-8FBB-6358FE784208),
+    helpstring("IBDA_EasMessage Interface"),
+    pointer_default(unique),
+    hidden, restricted
+]
+interface IBDA_EasMessage : IUnknown
+{
+    HRESULT get_EasMessage([in] ULONG ulEventID, [in, out] IUnknown **ppEASObject);
+}
+
+[
+    object,
+    uuid(8E882535-5F86-47AB-86CF-C281A72A0549),
+    helpstring("IBDA_TransportStreamInfo Interface"),
+    pointer_default(unique),
+    hidden, restricted
+]
+interface IBDA_TransportStreamInfo : IUnknown
+{
+    HRESULT get_PatTableTickCount([out] ULONG *pPatTickCount);
+}
+
+[
+    object,
+    uuid(CD51F1E0-7BE9-4123-8482-A2A796C0A6B0),
+    helpstring("IBDA_ConditionalAccess Interface"),
+    pointer_default(unique)
+]
+
+interface IBDA_ConditionalAccess : IUnknown
+{
+    HRESULT get_SmartCardStatus([out] SmartCardStatusType *pCardStatus,
+                                [out] SmartCardAssociationType *pCardAssociation,
+                                [out] BSTR *pbstrCardError,
+                                [out] VARIANT_BOOL *pfOOBLocked);
+    HRESULT get_SmartCardInfo([out] BSTR *pbstrCardName,
+                              [out] BSTR *pbstrCardManufacturer,
+                              [out] VARIANT_BOOL *pfDaylightSavings,
+                              [out] BYTE *pbyRatingRegion,
+                              [out] LONG *plTimeZoneOffsetMinutes,
+                              [out] BSTR *pbstrLanguage,
+                              [out] EALocationCodeType  *pEALocationCode);
+    HRESULT get_SmartCardApplications([in, out] ULONG *pulcApplications,
+                                      [in] ULONG ulcApplicationsMax,
+                                      [in, out, size_is(ulcApplicationsMax)] SmartCardApplication rgApplications[]);
+    HRESULT get_Entitlement([in] USHORT usVirtualChannel, [out] EntitlementType *pEntitlement);
+    HRESULT TuneByChannel([in] USHORT usVirtualChannel);
+    HRESULT SetProgram([in] USHORT usProgramNumber);
+    HRESULT AddProgram([in] USHORT usProgramNumber);
+    HRESULT RemoveProgram([in] USHORT usProgramNumber);
+    HRESULT GetModuleUI([in] BYTE byDialogNumber, [out] BSTR *pbstrURL);
+    HRESULT InformUIClosed([in] BYTE byDialogNumber, [in] UICloseReasonType CloseReason);
+}
+
+[
+    object,
+    uuid(20e80cb5-c543-4c1b-8eb3-49e719eee7d4),
+    helpstring("IBDA_DiagnosticProperties Interface"),
+    pointer_default(unique),
+]
+interface IBDA_DiagnosticProperties : IPropertyBag
+{
+}
+
+[
+    object,
+    uuid(F98D88B0-1992-4cd6-A6D9-B9AFAB99330D),
+    helpstring("IBDA_DRM Interface"),
+    pointer_default(unique),
+]
+interface IBDA_DRM : IUnknown
+{
+    HRESULT GetDRMPairingStatus([out] DWORD *pdwStatus, [out] HRESULT *phError);
+    HRESULT PerformDRMPairing(BOOL fSync);
+}
+
+[
+    object,
+    uuid(7F0B3150-7B81-4ad4-98E3-7E9097094301),
+    helpstring("IBDA_NameValueService Interface"),
+    pointer_default(unique)
+]
+interface IBDA_NameValueService : IUnknown
+{
+    HRESULT GetValueNameByIndex([in] ULONG ulIndex, [out] BSTR *pbstrName);
+    HRESULT GetValue([in]  BSTR bstrName, [in]  BSTR bstrLanguage, [out] BSTR *pbstrValue);
+    HRESULT SetValue([in] ULONG ulDialogRequest, [in] BSTR bstrLanguage,
+                     [in] BSTR bstrName, [in] BSTR bstrValue, [in] ULONG ulReserved);
+}
+
+[
+    object,
+    uuid(497C3418-23CB-44ba-BB62-769F506FCEA7),
+    helpstring("IBDA_ConditionalAccessEx Interface"),
+    pointer_default(unique)
+]
+interface IBDA_ConditionalAccessEx : IUnknown
+{
+    HRESULT CheckEntitlementToken([in] ULONG ulDialogRequest, [in] BSTR bstrLanguage,
+                                  [in] BDA_CONDITIONALACCESS_REQUESTTYPE RequestType,
+                                  [in] ULONG ulcbEntitlementTokenLen,
+                                  [in, size_is(ulcbEntitlementTokenLen)] BYTE *pbEntitlementToken,
+                                  [out] ULONG *pulDescrambleStatus);
+    HRESULT SetCaptureToken([in] ULONG ulcbCaptureTokenLen,
+                            [in, size_is(ulcbCaptureTokenLen)] BYTE *pbCaptureToken);
+    HRESULT OpenBroadcastMmi([in] ULONG ulDialogRequest, [in] BSTR bstrLanguage, [in] ULONG EventId);
+    HRESULT CloseMmiDialog([in] ULONG ulDialogRequest, [in] BSTR bstrLanguage,
+                           [in] ULONG ulDialogNumber, [in] BDA_CONDITIONALACCESS_MMICLOSEREASON ReasonCode,
+                           [out] ULONG *pulSessionResult);
+    HRESULT CreateDialogRequestNumber([out] ULONG *pulDialogRequestNumber);
+}
+
+[
+    object,
+    uuid(5E68C627-16C2-4e6c-B1E2-D00170CDAA0F),
+    helpstring("IBDA_ISDBConditionalAccess Interface"),
+    pointer_default(unique)
+]
+interface IBDA_ISDBConditionalAccess : IUnknown
+{
+    HRESULT SetIsdbCasRequest([in] ULONG ulRequestId, [in] ULONG ulcbRequestBufferLen,
+                              [in, size_is(ulcbRequestBufferLen)] BYTE *pbRequestBuffer);
+}
+
+[
+    object,
+    uuid(207C413F-00DC-4c61-BAD6-6FEE1FF07064),
+    helpstring("IBDA_EventingService Interface"),
+    pointer_default(unique)
+]
+interface IBDA_EventingService : IUnknown
+{
+    HRESULT CompleteEvent([in] ULONG ulEventID, [in] ULONG ulEventResult);
+}
+
+[
+    object,
+    uuid(7DEf4C09-6E66-4567-A819-F0E17F4A81AB),
+    helpstring("IBDA_AUX Interface"),
+    pointer_default(unique)
+]
+interface IBDA_AUX : IUnknown
+{
+    HRESULT QueryCapabilities([out] DWORD *pdwNumAuxInputsBSTR);
+    HRESULT EnumCapability([in] DWORD dwIndex, [out] DWORD *dwInputID, [out] GUID *pConnectorType,
+                           [out] DWORD *ConnTypeNum, [out] DWORD *NumVideoStds,
+                           [out] ULONGLONG *AnalogStds);
+}
+
+[
+    object,
+    uuid(3a8bad59-59fe-4559-a0ba-396cfaa98ae3),
+    helpstring("IBDA_ Encoder Interface"),
+    pointer_default(unique)
+]
+interface IBDA_Encoder : IUnknown
+{
+    HRESULT QueryCapabilities([out] DWORD *NumAudioFmts, [out] DWORD *NumVideoFmts);
+    HRESULT EnumAudioCapability([in] DWORD FmtIndex, [out] DWORD *MethodID,
+                                [out] DWORD *AlgorithmType, [out] DWORD *SamplingRate,
+                                [out] DWORD *BitDepth, [out] DWORD *NumChannels);
+    HRESULT EnumVideoCapability([in] DWORD FmtIndex, [out] DWORD *MethodID,
+                                [out] DWORD *AlgorithmType, [out] DWORD *VerticalSize,
+                                [out] DWORD *HorizontalSize, [out] DWORD *AspectRatio,
+                                [out] DWORD *FrameRateCode, [out] DWORD *ProgressiveSequence);
+    HRESULT SetParameters([in] DWORD AudioBitrateMode, [in] DWORD AudioBitrate,
+                          [in] DWORD AudioMethodID, [in] DWORD AudioProgram,
+                          [in] DWORD VideoBitrateMode, [in] DWORD VideoBitrate,
+                          [in] DWORD VideoMethodID);
+    HRESULT GetState([out] DWORD *AudioBitrateMax, [out] DWORD *AudioBitrateMin,
+                     [out] DWORD *AudioBitrateMode, [out] DWORD *AudioBitrateStepping,
+                     [out] DWORD *AudioBitrate, [out] DWORD *AudioMethodID,
+                     [out] DWORD *AvailableAudioPrograms, [out] DWORD *AudioProgram,
+                     [out] DWORD *VideoBitrateMax, [out] DWORD *VideoBitrateMin,
+                     [out] DWORD *VideoBitrateMode, [out] DWORD *VideoBitrate,
+                     [out] DWORD *VideoBitrateStepping, [out] DWORD *VideoMethodID,
+                     [out] DWORD *SignalSourceID, [out] ULONGLONG *SignalFormat,
+                     [out] BOOL *SignalLock, [out] LONG *SignalLevel,
+                     [out] DWORD *SignalToNoiseRatio);
+}
+
+[
+    object,
+    uuid(138adc7e-58ae-437f-b0b4-c9fe19d5b4ac),
+    helpstring("IBDA_ FDC Interface"),
+    pointer_default(unique)
+]
+interface IBDA_FDC : IUnknown
+{
+    HRESULT GetStatus([out] DWORD *CurrentBitrate, [out] BOOL *CarrierLock,
+                      [out] DWORD *CurrentFrequency, [out] BOOL *CurrentSpectrumInversion,
+                      [out] BSTR *CurrentPIDList, [out] BSTR *CurrentTIDList, [out] BOOL *Overflow);
+    HRESULT RequestTables([in] BSTR TableIDs);
+    HRESULT AddPid([in] BSTR PidsToAdd, [out] DWORD *RemainingFilterEntries);
+    HRESULT RemovePid([in] BSTR PidsToRemove);
+    HRESULT AddTid([in] BSTR TidsToAdd, [out] BSTR *CurrentTidList);
+    HRESULT RemoveTid([in] BSTR TidsToRemove);
+    HRESULT GetTableSection([out] DWORD *Pid, [in] DWORD MaxBufferSize,
+                            [out] DWORD *ActualSize, [out] BYTE *SecBuffer);
+}
+
+[
+    object,
+    uuid(C0AFCB73-23E7-4bc6-BAFA-FDC167B4719F),
+    helpstring("IBDA_ GuideDataDeliveryService Interface"),
+    pointer_default(unique)
+]
+interface IBDA_GuideDataDeliveryService: IUnknown
+{
+    HRESULT GetGuideDataType([out] GUID *pguidDataType);
+    HRESULT GetGuideData([in, out]  ULONG *pulcbBufferLen, [out] BYTE *pbBuffer,
+                         [out] ULONG *pulGuideDataPercentageProgress);
+    HRESULT RequestGuideDataUpdate(void);
+    HRESULT GetTuneXmlFromServiceIdx([in]  ULONG64 ul64ServiceIdx, [out] BSTR *pbstrTuneXml);
+    HRESULT GetServices([in, out]  ULONG *pulcbBufferLen, [out] BYTE *pbBuffer);
+    HRESULT GetServiceInfoFromTuneXml([in]  BSTR bstrTuneXml, [out] BSTR *pbstrServiceDescription);
+}
+
+[
+    object,
+    uuid(BFF6B5BB-B0AE-484c-9DCA-73528FB0B46E),
+    helpstring("IBDA_DRMService Interface"),
+    pointer_default(unique)
+]
+interface IBDA_DRMService: IUnknown
+{
+    HRESULT SetDRM([in] GUID *puuidNewDrm);
+    HRESULT GetDRMStatus([out] BSTR *pbstrDrmUuidList, [out] GUID *DrmUuid);
+}
+
+[
+    object,
+    uuid(4BE6FA3D-07CD-4139-8B80-8C18BA3AEC88),
+    helpstring("IBDA_WMDRMSession Interface"),
+    pointer_default(unique)
+]
+interface IBDA_WMDRMSession: IUnknown
+{
+    HRESULT GetStatus([out] ULONG *MaxCaptureToken, [out] ULONG *MaxStreamingPid,
+                      [out] ULONG *MaxLicense, [out] ULONG *MinSecurityLevel,
+                      [out] ULONG *RevInfoSequenceNumber, [out] ULONGLONG *RevInfoIssuedTime,
+                      [out] ULONG *RevInfoTTL, [out] ULONG *RevListVersion, [out] ULONG *ulState);
+    HRESULT SetRevInfo([in] ULONG ulRevInfoLen, [in, size_is(ulRevInfoLen)] BYTE* pbRevInfo);
+    HRESULT SetCrl([in] ULONG ulCrlLen, [in, size_is(ulCrlLen)] BYTE *pbCrlLen);
+    HRESULT TransactMessage([in] ULONG ulcbRequest, [in, size_is(ulcbRequest)] BYTE *pbRequest,
+                            [in, out] ULONG *pulcbResponse, [in, out] BYTE *pbResponse);
+    HRESULT GetLicense([in] GUID *uuidKey, [in, out] ULONG *pulPackageLen, [in, out] BYTE *pbPackage);
+    HRESULT ReissueLicense([in] GUID *uuidKey);
+    HRESULT RenewLicense([in] ULONG ulInXmrLicenseLen,
+                         [in, size_is(ulInXmrLicenseLen)] BYTE *pbInXmrLicense,
+                         [in] ULONG ulEntitlementTokenLen,
+                         [in, size_is(ulEntitlementTokenLen)] BYTE *pbEntitlementToken,
+                         [out] ULONG *pulDescrambleStatus, [in, out] ULONG *pulOutXmrLicenseLen,
+                         [in, out] BYTE *pbOutXmrLicense);
+    HRESULT GetKeyInfo([in, out] ULONG *pulKeyInfoLen, [in, out] BYTE *pbKeyInfo);
+}
+
+[
+    object,
+    uuid(86D979CF-A8A7-4f94-B5FB-14C0ACA68FE6),
+    helpstring("IBDA_WMDRMTuner Interface"),
+    pointer_default(unique)
+]
+interface IBDA_WMDRMTuner: IUnknown
+{
+    HRESULT PurchaseEntitlement([in] ULONG ulDialogRequest, [in] BSTR bstrLanguage,
+                                [in] ULONG ulPurchaseTokenLen,
+                                [in, size_is(ulPurchaseTokenLen)] BYTE *pbPurchaseToken,
+                                [out] ULONG *pulDescrambleStatus,
+                                [in, out] ULONG *pulCaptureTokenLen,
+                                [in, out] BYTE *pbCaptureToken);
+    HRESULT CancelCaptureToken([in] ULONG ulCaptureTokenLen,
+                               [in, size_is(ulCaptureTokenLen)] BYTE *pbCaptureToken);
+    HRESULT SetPidProtection([in] ULONG ulPid, [in] GUID *uuidKey);
+    HRESULT GetPidProtection([in] ULONG pulPid, [out] GUID *uuidKey);
+    HRESULT SetSyncValue([in] ULONG ulSyncValue);
+    HRESULT GetStartCodeProfile([in, out] ULONG *pulStartCodeProfileLen,
+                                [in, out] BYTE *pbStartCodeProfile);
+}
+
+[
+    object,
+    uuid(1F9BC2A5-44A3-4c52-AAB1-0BBCE5A1381D),
+    helpstring("IBDA_DRIDRMService Interface"),
+    pointer_default(unique)
+]
+interface IBDA_DRIDRMService: IUnknown
+{
+    HRESULT SetDRM([in] BSTR bstrNewDrm);
+    HRESULT GetDRMStatus([out] BSTR *pbstrDrmUuidList, [out] GUID *DrmUuid);
+    HRESULT GetPairingStatus([in, out] BDA_DrmPairingError *penumPairingStatus);
+}
+
+[
+    object,
+    uuid(05C690F8-56DB-4bb2-B053-79C12098BB26),
+    helpstring("IBDA_DRIWMDRMSession Interface"),
+    pointer_default(unique)
+]
+interface IBDA_DRIWMDRMSession: IUnknown
+{
+    HRESULT AcknowledgeLicense([in] HRESULT hrLicenseAck);
+    HRESULT ProcessLicenseChallenge([in] DWORD dwcbLicenseMessage,
+                                    [in, size_is(dwcbLicenseMessage)] BYTE *pbLicenseMessage,
+                                    [in, out] DWORD *pdwcbLicenseResponse,
+                                    [in, out, size_is(* pdwcbLicenseResponse)] BYTE **ppbLicenseResponse);
+    HRESULT ProcessRegistrationChallenge([in] DWORD dwcbRegistrationMessage,
+                                         [in, size_is(dwcbRegistrationMessage)] BYTE *pbRegistrationMessage,
+                                         [in, out] DWORD *pdwcbRegistrationResponse,
+                                         [in, out] BYTE **ppbRegistrationResponse);
+    HRESULT SetRevInfo([in] DWORD dwRevInfoLen, [in, size_is(dwRevInfoLen)] BYTE *pbRevInfo,
+                       [in, out] DWORD *pdwResponse);
+    HRESULT SetCrl([in] DWORD dwCrlLen, [in, size_is(dwCrlLen)] BYTE *pbCrlLen,
+                   [in, out] DWORD *pdwResponse);
+    HRESULT GetHMSAssociationData(void);
+    HRESULT GetLastCardeaError([in, out] DWORD *pdwError);
+}
+
+[
+    object,
+    uuid(942AAFEC-4C05-4c74-B8EB-8706C2A4943F),
+    helpstring("IBDA_MUX Interface"),
+    pointer_default(unique)
+]
+interface IBDA_MUX: IUnknown
+{
+    HRESULT SetPidList([in] ULONG ulPidListCount,
+                       [in, size_is(ulPidListCount)] BDA_MUX_PIDLISTITEM *pbPidListBuffer);
+    HRESULT GetPidList([in, out] ULONG *pulPidListCount,
+                       [in, out] BDA_MUX_PIDLISTITEM *pbPidListBuffer);
+}
+
+[
+    object,
+    uuid(1DCFAFE9-B45E-41b3-BB2A-561EB129AE98),
+    helpstring("IBDA_TransportStreamSelector Interface"),
+    pointer_default(unique)
+]
+interface IBDA_TransportStreamSelector : IUnknown
+{
+    HRESULT SetTSID([in] USHORT usTSID);
+    HRESULT GetTSInformation([in, out] ULONG *pulTSInformationBufferLen,
+                             [out, size_is(*pulTSInformationBufferLen)] BYTE *pbTSInformationBuffer);
+}
+
+[
+    object,
+    uuid(53B14189-E478-4b7a-A1FF-506DB4B99DFE),
+    helpstring("IBDA_UserActivityService Interface"),
+    pointer_default(unique)
+]
+interface IBDA_UserActivityService: IUnknown
+{
+    HRESULT SetCurrentTunerUseReason([in] DWORD dwUseReason);
+    HRESULT GetUserActivityInterval([out] DWORD *pdwActivityInterval);
+    HRESULT UserActivityDetected(void);
+}
diff --git a/include/bdaiface_enums.h b/include/bdaiface_enums.h
new file mode 100644
index 0000000..2229e2a
--- /dev/null
+++ b/include/bdaiface_enums.h
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2013 André Hentschel
+ *
+ * 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
+ */
+
+#include <bdatypes.h>
+
+typedef enum EntitlementType
+{
+    Entitled = 0,
+    NotEntitled,
+    TechnicalFailure
+} EntitlementType;
+
+typedef enum BDA_DrmPairingError
+{
+    BDA_DrmPairing_Succeeded = 0,
+    BDA_DrmPairing_HardwareFailure,
+    BDA_DrmPairing_NeedRevocationData,
+    BDA_DrmPairing_NeedIndiv,
+    BDA_DrmPairing_Other,
+    BDA_DrmPairing_DrmInitFailed,
+    BDA_DrmPairing_DrmNotPaired,
+    BDA_DrmPairing_DrmRePairSoon,
+    BDA_DrmPairing_Aborted,
+    BDA_DrmPairing_NeedSDKUpdate
+} BDA_DrmPairingError;
+
+typedef enum UICloseReasonType
+{
+    NotReady = 0,
+    UserClosed,
+    SystemClosed,
+    DeviceClosed,
+    ErrorClosed
+} UICloseReasonType;
+
+typedef enum LocationCodeSchemeType
+{
+    SCTE_18 = 0
+} LocationCodeSchemeType;
+
+typedef struct SmartCardApplication
+{
+    ApplicationTypeType ApplicationType;
+    USHORT ApplicationVersion;
+    BSTR pbstrApplicationName;
+    BSTR pbstrApplicationURL;
+} SmartCardApplication;
+
+typedef struct EALocationCodeType
+{
+    LocationCodeSchemeType LocationCodeScheme;
+    BYTE state_code;
+    BYTE county_subdivision;
+    WORD county_code;
+} EALocationCodeType;
+
+typedef enum SmartCardStatusType
+{
+    CardInserted = 0,
+    CardRemoved,
+    CardError,
+    CardDataChanged,
+    CardFirmwareUpgrade
+} SmartCardStatusType;
+
+typedef enum SmartCardAssociationType
+{
+    NotAssociated = 0,
+    Associated,
+    AssociationUnknown
+} SmartCardAssociationType;
diff --git a/include/bdatypes.h b/include/bdatypes.h
new file mode 100644
index 0000000..c7abfaa
--- /dev/null
+++ b/include/bdatypes.h
@@ -0,0 +1,259 @@
+/*
+ * Copyright 2013 André Hentschel
+ *
+ * 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
+ */
+
+typedef struct _BDANODE_DESCRIPTOR
+{
+    ULONG ulBdaNodeType;
+    GUID guidFunction;
+    GUID guidName;
+} BDANODE_DESCRIPTOR, *PBDANODE_DESCRIPTOR;
+
+typedef struct _BDA_SIGNAL_TIMEOUTS
+{
+    ULONG      ulCarrierTimeoutMs;
+    ULONG      ulScanningTimeoutMs;
+    ULONG      ulTuningTimeoutMs;
+} BDA_SIGNAL_TIMEOUTS, *PBDA_SIGNAL_TIMEOUTS;
+
+typedef struct _BDA_TEMPLATE_CONNECTION
+{
+    ULONG FromNodeType;
+    ULONG FromNodePinType;
+    ULONG ToNodeType;
+    ULONG ToNodePinType;
+} BDA_TEMPLATE_CONNECTION, *PBDA_TEMPLATE_CONNECTION;
+
+typedef enum MEDIA_SAMPLE_CONTENT
+{
+    MEDIA_TRANSPORT_PACKET,
+    MEDIA_ELEMENTARY_STREAM,
+    MEDIA_MPEG2_PSI,
+    MEDIA_TRANSPORT_PAYLOAD
+} MEDIA_SAMPLE_CONTENT;
+
+typedef struct
+{
+    ULONG ulPID;
+    MEDIA_SAMPLE_CONTENT MediaSampleContent;
+} PID_MAP;
+
+typedef enum MUX_PID_TYPE
+{
+    PID_OTHER = -1,
+    PID_ELEMENTARY_STREAM,
+    PID_MPEG2_SECTION_PSI_SI,
+} MUX_PID_TYPE;
+
+#include <pshpack2.h>
+typedef struct _BDA_MUX_PIDLISTITEM
+{
+    USHORT usPIDNumber;
+    USHORT usProgramNumber;
+    MUX_PID_TYPE ePIDType;
+} BDA_MUX_PIDLISTITEM, *PBDA_MUX_PIDLISTITEM;
+#include <poppack.h>
+
+typedef enum BDA_CONDITIONALACCESS_REQUESTTYPE
+{
+    CONDITIONALACCESS_ACCESS_UNSPECIFIED = 0,
+    CONDITIONALACCESS_ACCESS_NOT_POSSIBLE,
+    CONDITIONALACCESS_ACCESS_POSSIBLE,
+    CONDITIONALACCESS_ACCESS_POSSIBLE_NO_STREAMING_DISRUPTION
+} BDA_CONDITIONALACCESS_REQUESTTYPE;
+
+typedef enum BDA_CONDITIONALACCESS_MMICLOSEREASON
+{
+    CONDITIONALACCESS_UNSPECIFIED = 0,
+    CONDITIONALACCESS_CLOSED_ITSELF,
+    CONDITIONALACCESS_TUNER_REQUESTED_CLOSE,
+    CONDITIONALACCESS_DIALOG_TIMEOUT,
+    CONDITIONALACCESS_DIALOG_FOCUS_CHANGE,
+    CONDITIONALACCESS_DIALOG_USER_DISMISSED,
+    CONDITIONALACCESS_DIALOG_USER_NOT_AVAILABLE
+} BDA_CONDITIONALACCESS_MMICLOSEREASON;
+
+typedef enum BDA_CONDITIONALACCESS_SESSION_RESULT
+{
+    CONDITIONALACCESS_SUCCESSFULL = 0,
+    CONDITIONALACCESS_ENDED_NOCHANGE,
+    CONDITIONALACCESS_ABORTED
+} BDA_CONDITIONALACCESS_SESSION_RESULT;
+
+typedef enum BDA_DISCOVERY_STATE
+{
+    BDA_DISCOVERY_UNSPECIFIED = 0,
+    BDA_DISCOVERY_REQUIRED,
+    BDA_DISCOVERY_COMPLETE
+} BDA_DISCOVERY_STATE;
+
+typedef enum ApplicationTypeType
+{
+    SCTE28_ConditionalAccess = 0,
+    SCTE28_POD_Host_Binding_Information,
+    SCTE28_IPService,
+    SCTE28_NetworkInterface_SCTE55_2,
+    SCTE28_NetworkInterface_SCTE55_1,
+    SCTE28_CopyProtection,
+    SCTE28_Diagnostic,
+    SCTE28_Undesignated,
+    SCTE28_Reserved,
+} ApplicationTypeType;
+
+typedef enum GuardInterval
+{
+    BDA_GUARD_NOT_SET = -1,
+    BDA_GUARD_NOT_DEFINED = 0,
+    BDA_GUARD_1_32 = 1,
+    BDA_GUARD_1_16,
+    BDA_GUARD_1_8,
+    BDA_GUARD_1_4,
+    BDA_GUARD_1_128,
+    BDA_GUARD_19_128,
+    BDA_GUARD_19_256,
+    BDA_GUARD_MAX,
+} GuardInterval;
+
+typedef enum TransmissionMode
+{
+    BDA_XMIT_MODE_NOT_SET = -1,
+    BDA_XMIT_MODE_NOT_DEFINED = 0,
+    BDA_XMIT_MODE_2K = 1,
+    BDA_XMIT_MODE_8K,
+    BDA_XMIT_MODE_4K,
+    BDA_XMIT_MODE_2K_INTERLEAVED,
+    BDA_XMIT_MODE_4K_INTERLEAVED,
+    BDA_XMIT_MODE_1K,
+    BDA_XMIT_MODE_16K,
+    BDA_XMIT_MODE_32K,
+    BDA_XMIT_MODE_MAX,
+} TransmissionMode;
+
+typedef enum SpectralInversion
+{
+    BDA_SPECTRAL_INVERSION_NOT_SET = -1,
+    BDA_SPECTRAL_INVERSION_NOT_DEFINED = 0,
+    BDA_SPECTRAL_INVERSION_AUTOMATIC = 1,
+    BDA_SPECTRAL_INVERSION_NORMAL,
+    BDA_SPECTRAL_INVERSION_INVERTED,
+    BDA_SPECTRAL_INVERSION_MAX
+} SpectralInversion;
+
+typedef enum BinaryConvolutionCodeRate
+{
+    BDA_BCC_RATE_NOT_SET = -1,
+    BDA_BCC_RATE_NOT_DEFINED = 0,
+    BDA_BCC_RATE_1_2 = 1,
+    BDA_BCC_RATE_2_3,
+    BDA_BCC_RATE_3_4,
+    BDA_BCC_RATE_3_5,
+    BDA_BCC_RATE_4_5,
+    BDA_BCC_RATE_5_6,
+    BDA_BCC_RATE_5_11,
+    BDA_BCC_RATE_7_8,
+    BDA_BCC_RATE_1_4,
+    BDA_BCC_RATE_1_3,
+    BDA_BCC_RATE_2_5,
+    BDA_BCC_RATE_6_7,
+    BDA_BCC_RATE_8_9,
+    BDA_BCC_RATE_9_10,
+    BDA_BCC_RATE_MAX,
+} BinaryConvolutionCodeRate;
+
+typedef enum Polarisation
+{
+    BDA_POLARISATION_NOT_SET = -1,
+    BDA_POLARISATION_NOT_DEFINED = 0,
+    BDA_POLARISATION_LINEAR_H = 1,
+    BDA_POLARISATION_LINEAR_V,
+    BDA_POLARISATION_CIRCULAR_L,
+    BDA_POLARISATION_CIRCULAR_R,
+    BDA_POLARISATION_MAX,
+} Polarisation;
+
+typedef enum FECMethod
+{
+    BDA_FEC_METHOD_NOT_SET = -1,
+    BDA_FEC_METHOD_NOT_DEFINED = 0,
+    BDA_FEC_VITERBI = 1,
+    BDA_FEC_RS_204_188,
+    BDA_FEC_LDPC,
+    BDA_FEC_BCH,
+    BDA_FEC_RS_147_130,
+    BDA_FEC_MAX,
+} FECMethod;
+
+typedef enum ModulationType
+{
+    BDA_MOD_NOT_SET = -1,
+    BDA_MOD_NOT_DEFINED = 0,
+    BDA_MOD_16QAM = 1,
+    BDA_MOD_32QAM,
+    BDA_MOD_64QAM,
+    BDA_MOD_80QAM,
+    BDA_MOD_96QAM,
+    BDA_MOD_112QAM,
+    BDA_MOD_128QAM,
+    BDA_MOD_160QAM,
+    BDA_MOD_192QAM,
+    BDA_MOD_224QAM,
+    BDA_MOD_256QAM,
+    BDA_MOD_320QAM,
+    BDA_MOD_384QAM,
+    BDA_MOD_448QAM,
+    BDA_MOD_512QAM,
+    BDA_MOD_640QAM,
+    BDA_MOD_768QAM,
+    BDA_MOD_896QAM,
+    BDA_MOD_1024QAM,
+    BDA_MOD_QPSK,
+    BDA_MOD_BPSK,
+    BDA_MOD_OQPSK,
+    BDA_MOD_8VSB,
+    BDA_MOD_16VSB,
+    BDA_MOD_ANALOG_AMPLITUDE,
+    BDA_MOD_ANALOG_FREQUENCY,
+    BDA_MOD_8PSK,
+    BDA_MOD_RF,
+    BDA_MOD_16APSK,
+    BDA_MOD_32APSK,
+    BDA_MOD_NBC_QPSK,
+    BDA_MOD_NBC_8PSK,
+    BDA_MOD_DIRECTV,
+    BDA_MOD_ISDB_T_TMCC,
+    BDA_MOD_ISDB_S_TMCC,
+    BDA_MOD_MAX,
+} ModulationType;
+
+typedef enum RollOff
+{
+    BDA_ROLL_OFF_NOT_SET = -1,
+    BDA_ROLL_OFF_NOT_DEFINED = 0,
+    BDA_ROLL_OFF_20 = 1,
+    BDA_ROLL_OFF_25,
+    BDA_ROLL_OFF_35,
+    BDA_ROLL_OFF_MAX,
+} RollOff;
+
+typedef enum Pilot
+{
+    BDA_PILOT_NOT_SET = -1,
+    BDA_PILOT_NOT_DEFINED = 0,
+    BDA_PILOT_OFF = 1,
+    BDA_PILOT_ON,
+    BDA_PILOT_MAX,
+} Pilot;
-- 
1.8.1.2




More information about the wine-patches mailing list