diff options
Diffstat (limited to 'sdk/dx8sdk/Include/DShowIDL/Bdatif.idl')
-rw-r--r-- | sdk/dx8sdk/Include/DShowIDL/Bdatif.idl | 678 |
1 files changed, 678 insertions, 0 deletions
diff --git a/sdk/dx8sdk/Include/DShowIDL/Bdatif.idl b/sdk/dx8sdk/Include/DShowIDL/Bdatif.idl new file mode 100644 index 00000000..bc94db40 --- /dev/null +++ b/sdk/dx8sdk/Include/DShowIDL/Bdatif.idl @@ -0,0 +1,678 @@ +//--------------------------------------------------------------------- +// +// Copyright (c) 1999-2002 Microsoft Corporation +// +// BDATIF.idl +// +//--------------------------------------------------------------------- + +cpp_quote("//+-------------------------------------------------------------------------") +cpp_quote("//") +cpp_quote("// Microsoft Windows") +cpp_quote("// Copyright (C) Microsoft Corporation, 1999-2002.") +cpp_quote("//") +cpp_quote("//--------------------------------------------------------------------------") +cpp_quote("#if ( _MSC_VER >= 800 )") +cpp_quote("#pragma warning(disable:4201) /* Nameless struct/union */") +cpp_quote("#endif") +cpp_quote("#if ( _MSC_VER >= 1020 )") +cpp_quote("#pragma once") +cpp_quote("#endif") + + +//--------------------------------------------------------------------- +// IUnknown import idl +//--------------------------------------------------------------------- + +#ifndef DO_NO_IMPORTS +import "unknwn.idl"; +import "strmif.idl"; +import "tuner.idl"; +import "bdaiface.idl"; +#endif + + +interface IMPEG2_TIF_CONTROL; +interface IATSCChannelInfo; +interface IMPEG2PIDMap; + + + + +//****************************************************************************** +// +// IBDA_TIF_REGISTRATION interface +// +// Implemented by the Microsoft ATSC/DVB BDA Network Provider +// +// Used by a transport information filter (TIF) to Register with the NP +// AND obtain an Interface to the Demux to set/ Remove PIDs.The TIF here passes +// IUNKNOWN of the pin it is connecting to and obtains the IMPEG2PIDMAP interface +// implemented by the NP to Map/ UnMap pids. +// + +[ + object, + uuid(DFEF4A68-EE61-415f-9CCB-CD95F2F98A3A), + helpstring("BDA Network Provider Registration Inteface for DVB/ATSC Transport Information Filters"), + pointer_default(unique) +] +interface IBDA_TIF_REGISTRATION : IUnknown +{ + + [helpstring("Used to register a transport analyzer with the Network Provider")] + HRESULT + RegisterTIFEx ( + [in] IPin * pTIFInputPin, + [in, out] ULONG * ppvRegistrationContext, + [in, out] IUnknown ** ppMpeg2DataControl + ); + + [helpstring("Used to unregister TIF with the Network Provider")] + HRESULT + UnregisterTIF ( + [in] ULONG pvRegistrationContext + ); +} + + +//****************************************************************************** +// +// IMPEG2_TIF_CONTROL interface +// +// Implemented by the Microsoft ATSC/DVB BDA Network Provider +// +// Used by a transport information filter (TIF) to request table +// sections carried on specific PIDs within the transport stream. +// The Network Provider Filter will, in turn, do the necessary +// control on the Demux Filter. All sections are delivered as comlete +// mpeg2 table sections via the TIF's connection to the Demux Filter. +// +[ + object, + uuid(F9BAC2F9-4149-4916-B2EF-FAA202326862), + helpstring("BDA Network Provider Inteface for DVB/ATSC Transport Information Filters"), + pointer_default(unique) +] +interface IMPEG2_TIF_CONTROL : IUnknown +{ + + [helpstring("Used to register a transport analyzer with the Network Provider")] + HRESULT + RegisterTIF ( + [in] IUnknown * pUnkTIF, + [in, out] ULONG * ppvRegistrationContext + ); + + [helpstring("Used to unregister TIF with the Network Provider")] + HRESULT + UnregisterTIF ( + [in] ULONG pvRegistrationContext + ); + + [helpstring("Used to add PSI/SI MPEG2 packet IDs to the TIF's data stream")] + HRESULT + AddPIDs ( + [in] ULONG ulcPIDs, + [in] ULONG * pulPIDs + ); + + [helpstring("Used to remove PSI/SI MPEG2 packet IDs from the TIF's data stream")] + HRESULT + DeletePIDs ( + [in] ULONG ulcPIDs, + [in] ULONG * pulPIDs + ); + + [helpstring("Returns the number of MPEG2 Packet IDs being filtered into the TIF's input data.")] + HRESULT + GetPIDCount ( + [out] ULONG * pulcPIDs + ); + + [helpstring("Returns the the list of MPEG2 Packet IDs being filtered into the TIF's input data.")] + HRESULT + GetPIDs ( + [out] ULONG * pulcPIDs, + [out] ULONG * pulPIDs + ); + +} + + +//****************************************************************************** +// +// ITuneRequestInfo interface +// +// Implemented by a BDA transport information filter (TIF) +// +// Used by the BDA Network Provider to obtain network specific +// information about locating transport streams and aquiring +// services. +// +// +// GetLocatorData - +// +// GetComponentData - +// +// CreateComponentList - +// +// GetNextService - +// +// GetPreviouService - +// +// GetNextLocator - +// +// GetPreviousLocator - +// +[ + object, + uuid(A3B152DF-7A90-4218-AC54-9830BEE8C0B6), + helpstring("Interface provided by the Mpeg2 Transport Information Filter to supply tuning details."), + pointer_default(unique) +] +interface ITuneRequestInfo : IUnknown +{ + + [helpstring("TIF fills in channel/program locator information for the given tune request.")] + HRESULT + GetLocatorData ( + [in] ITuneRequest *Request + ); + + [helpstring("TIF fills in all network specific component data for the existing component list on the given tune request.")] + HRESULT + GetComponentData ( + [in] ITuneRequest *CurrentRequest + ); + + [helpstring("TIF creates a complete component list and fills in all network specific component data on the given tune request")] + HRESULT + CreateComponentList ( + [in] ITuneRequest *CurrentRequest + ); + + [helpstring("TIF creates a new TuneRequest with channel/program locator information for the next service.")] + HRESULT + GetNextProgram ( + [in] ITuneRequest *CurrentRequest, + [out, retval] ITuneRequest **TuneRequest + ); + + [helpstring("TIF creates a new TuneRequest with channel/program locator information for the previous service.")] + HRESULT + GetPreviousProgram ( + [in] ITuneRequest *CurrentRequest, + [out, retval] ITuneRequest **TuneRequest + ); + + [helpstring("TIF creates a new TuneRequest with locator information for the next transport stream.")] + HRESULT + GetNextLocator ( + [in] ITuneRequest *CurrentRequest, + [out, retval] ITuneRequest **TuneRequest + ); + + [helpstring("TIF creates a new TuneRequest with locator information for the previous transport stream.")] + HRESULT + GetPreviousLocator ( + [in] ITuneRequest *CurrentRequest, + [out, retval] ITuneRequest **TuneRequest + ); +} + + +//****************************************************************************** +// +// IGuideDataEvent +// +// This is the guide data event notification callback interface. The +// callback interface is registered on a transport analyzer's +// IConnectionPoint by the event consumer. +// +// The event consumer MUST NOT BLOCK THE CALLING THREAD. +// +// If the consumer requires additional information about the event, it +// should queue the event to a separate thread. +// +// {EFDA0C80-F395-42c3-9B3C-56B37DEC7BB7} +// +[ + object, + uuid(EFDA0C80-F395-42c3-9B3C-56B37DEC7BB7), + helpstring("Consumers of a guide data events must implement this callback interface."), + pointer_default(unique) +] +interface IGuideDataEvent : IUnknown +{ + // Indicates that a complete set of guide data has been acquire from + // the current transport stream. + // + // MANDATORY - If a transport analyzer supports IGuideDataEvent then + // it must supply this event. + // + HRESULT GuideDataAcquired( + ); + + // Indicates that information about one or more programs changed. + // + // If varProgramDescriptionID is NULL then the consumer + // must get properties for all programs to determine which ones + // changed. + // + // MANDATORY - If a transport analyzer supports IGuideDataEvent then + // it must supply this event. + // + HRESULT ProgramChanged( + [in] VARIANT varProgramDescriptionID + ); + + // Indicates that information about one or more services changed. + // + // If varServiceDescriptionID is NULL then the consumer + // must get properties for all services to determine which ones + // changed. + // + // MANDATORY - If a transport analyzer supports IGuideDataEvent then + // it must supply this event. + // + HRESULT ServiceChanged( + [in] VARIANT varServiceDescriptionID + ); + + // Indicates that information about one or more schedule entries + // changed. + // + // If varScheduleEntryDescriptionID is NULL then the consumer + // must get properties for all schedule entries to determine which ones + // changed. + // + // MANDATORY - If a transport analyzer supports IGuideDataEvent then + // it must supply this event. + // + HRESULT ScheduleEntryChanged( + [in] VARIANT varScheduleEntryDescriptionID + ); + + // Indicates that the program with the given Description.ID + // has been deleted. + // + // + // Optional - Transport analyzer may supply this event. Consumer + // may return E_NOTIMPL. + // + HRESULT ProgramDeleted( + [in] VARIANT varProgramDescriptionID + ); + + // Indicates that the service with the given Description.ID + // has been deleted. + // + // + // Optional - Transport analyzer may supply this event. Consumer + // may return E_NOTIMPL. + // + HRESULT ServiceDeleted( + [in] VARIANT varServiceDescriptionID + ); + + + // Indicates that the schedule entry with the given Description.ID + // has been deleted. + // + // + // Optional - Transport analyzer may supply this event. Consumer + // may return E_NOTIMPL. + // + HRESULT ScheduleDeleted( + [in] VARIANT varScheduleEntryDescriptionID + ); +} + + +//****************************************************************************** +// +// IGuideDataPropery +// +// {88EC5E58-BB73-41d6-99CE-66C524B8B591} +// +[ + object, + uuid(88EC5E58-BB73-41d6-99CE-66C524B8B591), + helpstring("Interface provided by a transport analyzer to represent a guide data property."), + pointer_default(unique) +] +interface IGuideDataProperty : IUnknown +{ + [propget] HRESULT Name([out] BSTR *pbstrName); + [propget] HRESULT Language([out] long *idLang); + [propget] HRESULT Value([out] VARIANT *pvar); +} + + +//****************************************************************************** +// +// IEnumGuideDataProperties +// +// {AE44423B-4571-475c-AD2C-F40A771D80EF} +// +[ + object, + uuid(AE44423B-4571-475c-AD2C-F40A771D80EF), + helpstring("Interface provided by a transport analyzer to enumerate guide data properties."), + pointer_default(unique) +] +interface IEnumGuideDataProperties : IUnknown +{ + HRESULT Next([in] unsigned long celt, [out] IGuideDataProperty **ppprop, [out] unsigned long *pcelt); + HRESULT Skip([in] unsigned long celt); + HRESULT Reset(); + HRESULT Clone([out] IEnumGuideDataProperties **ppenum); +} + + +//****************************************************************************** +// +// IEnumTuneRequests +// +// {1993299C-CED6-4788-87A3-420067DCE0C7} +// +[ + object, + uuid(1993299C-CED6-4788-87A3-420067DCE0C7), + helpstring("Interface provided by a transport analyzer to enumerate service tune requests ."), + pointer_default(unique) +] +interface IEnumTuneRequests : IUnknown +{ + HRESULT Next([in] unsigned long celt, [out] ITuneRequest **ppprop, [out] unsigned long *pcelt); + HRESULT Skip([in] unsigned long celt); + HRESULT Reset(); + HRESULT Clone([out] IEnumTuneRequests **ppenum); +} + + +//****************************************************************************** +// +// IGuideData +// +// {61571138-5B01-43cd-AEAF-60B784A0BF93} +// +[ + object, + uuid(61571138-5B01-43cd-AEAF-60B784A0BF93), + helpstring("Interface provided by a transport analyzer to supply guide data information."), + pointer_default(unique) +] +interface IGuideData : IUnknown +{ + //------------------------------------------------------------------------- + // + // GetServices + // Returns an enumeration of tune requests for all services whose + // information is found in the current transport stream. + // + // Parameters + // + // IEnumTuneRequests ** + // Location in which a reference to the resulting + // IEnumTuneRequests is placed. The caller must release + // this reference when finished with it. + // + // Comments + // This call is used to enumerate all services whose information + // can be found in the service descriptor table. Each tune request + // in the IEnumTuneRequest * contains the tune request including the + // locator data for the service. + // + [helpstring("Returns an enumeration of services whose information is found in the given transport stream")] + HRESULT + GetServices ( + [out, retval] IEnumTuneRequests ** ppEnumTuneRequests + ); + + + //------------------------------------------------------------------------- + // + // GetServiceProperties + // Returns an enumeration of all guide data properties for + // the service with the given Description.ID. + // + // Parameters + // ITuneRequest * + // Pointer to a tune request that contains information needed + // to indentify the requested transport stream. + // A NULL ITuneRequest * indicates that information about the + // current transport stream is requested. + // + // IEnumGuideDataProperties ** + // Location in which a reference to the resulting + // IEnumGuideDataProperties is placed. The caller must release + // this reference when finished with it. + // + // Required Properties + // The following properties MUST be included in the returned + // property enumeration. + // + // Description.ID + // Uniquely identifies a service. + // + // Description.Name + // The default name to use for this service in the channel lineup. + // + // Description.Version + // Identifies the current version of the properties associated + // with this service. + // + // Provider.Name + // Name of the service provider (e.g. "KCTS") + // + // Provider.NetworkName + // Name of the network on which the service is provided. + // (e.g. "PBS") + // + // Service.TuneRequest + // Contains a tune request in the variant + // + // + [helpstring("Returns an enumeration of all guide data properties for the service specified by a tune request.")] + HRESULT + GetServiceProperties ( + [in] ITuneRequest * pTuneRequest, + [out, retval] IEnumGuideDataProperties ** ppEnumProperties + ); + + //------------------------------------------------------------------------- + // + // GetProgramIDs + // Returns an enumeration of the unique identifiers (Description.ID) + // of programs with description contained in all transport + // streams + // + // Parameters + // + // IEnumVARIANT ** + // Location in which a reference to the resulting + // IEnumVARIANT is placed. The caller must release + // this reference when finished with it. + // + // Comments + // This call is used to get a list of programs that have + // guide data properties in all transport streams. + // Each variant returned in the IEnumVARIANT * contains the + // unique Description.ID property for a program. + // Note that more than on transport stream may contain properties + // for the same program. In this case the properties should be + // merged. + // + [helpstring("Returns an enumeration of the Description.ID property for all programs on the given transport stream.")] + HRESULT + GetGuideProgramIDs ( + [out, retval] IEnumVARIANT ** pEnumPrograms + ); + + //------------------------------------------------------------------------- + // + // GetProgramProperties + // Returns an enumeration of all guide data properties for + // the program with the given Description.ID. + // + // Parameters + // varProgramDescriptionID + // Variant containing the unique identifier for the program + // for which properties are requested. + // + // IEnumGuideDataProperties ** + // Location in which a reference to the resulting + // IEnumGuideDataProperties is placed. The caller must release + // this reference when finished with it. + // + // Required Properties + // The following properties MUST be included in the returned + // property enumeration. + // + // Description.ID + // Uniquely identifies a program. + // + // Description.Version + // Identifies the current version of the properties associated + // with this program. + // + // Description.Title + // Human readable title of the program (e.g. "") + // + // Description.Long + // A description of the program. + // + [helpstring("Returns an enumeration of all guide data properties for the program with the given Description.ID.")] + HRESULT + GetProgramProperties ( + [in] VARIANT varProgramDescriptionID, + [out, retval] IEnumGuideDataProperties ** ppEnumProperties + ); + + //------------------------------------------------------------------------- + // + // GetScheduleIDs + // Returns an enumeration of the unique identifiers (Description.ID) + // transport of schedule entries with description contained in the + // given transport stream. + // + // Parameters + // + // IEnumVARIANT ** + // Location in which a reference to the resulting + // IEnumVARIANT is placed. The caller must release + // this reference when finished with it. + // + // Comments + // This call is used to get a list of schedule entries that have + // guide data properties in all transport streams. + // Each variant returned in the IEnumVARIANT * contains the + // unique Description.ID property for a schedule entry. + // Note that more than on transport stream may contain properties + // for the same schedule entry. In this case the properties + // should be merged. + // + [helpstring("Returns an enumeration of the Description.ID property for all schedule entries in the transport stream specified by a tune request.")] + HRESULT + GetScheduleEntryIDs ( + [out, retval] IEnumVARIANT ** pEnumScheduleEntries + ); + + //------------------------------------------------------------------------- + // + // GetScheduleEntryProperties + // Returns an enumeration of all guide data properties for + // the schedule entry with the given Description.ID. + // + // Parameters + // varScheduleEntryDescriptionID + // Variant containing the unique identifier for the schedule + // entry for which properties are requested. + // + // IEnumGuideDataProperties ** + // Location in which a reference to the resulting + // IEnumGuideDataProperties is placed. The caller must release + // this reference when finished with it. + // + // Required Properties + // The following properties MUST be included in the returned + // property enumeration. + // + // Description.ID + // Uniquely identifies a schedule entry. + // + // Description.Version + // Identifies the current version of the properties associated + // with this program. + // + // Time.Start + // The starting time and date of this schedule entry. + // + // Time.End + // The ending time and date of this schedule entry. + // + // Schedule.Program + // The Description.ID of the program that will play at the + // time specified by this schedule entry. + // + // Schedule.Service + // The Description.ID of the Service that carries the + // program that will play at the time specified by this + // schedule entry. + // + [helpstring("Returns an enumeration of all guide data properties for the schedule entry with the given Description.ID.")] + HRESULT + GetScheduleEntryProperties ( + [in] VARIANT varScheduleEntryDescriptionID, + [out, retval] IEnumGuideDataProperties ** ppEnumProperties + ); + +} + + +//****************************************************************************** +// +// IGuideDataLoader +// +// All Guide Data Loaders MUST implement this interface. It is how they are +// provided with the IGuideData interface that they will use. +// +// {4764ff7c-fa95-4525-af4d-d32236db9e38} +[ + object, + uuid(4764ff7c-fa95-4525-af4d-d32236db9e38), + helpstring("IGuideDataLoader Interface"), + pointer_default(unique) +] +interface IGuideDataLoader : IUnknown +{ + HRESULT Init([in] IGuideData *pGuideStore); + HRESULT Terminate(); +}; + +[ + uuid(8224A083-7F8C-432D-B83E-3C5E9BDE3528), + version(1.0), + helpstring("psisload 1.0 Type Library") +] +library PSISLOADLib +{ + importlib("stdole32.tlb"); + importlib("stdole2.tlb"); + + [ + uuid(14EB8748-1753-4393-95AE-4F7E7A87AAD6), + helpstring("TIFLoad Class") + ] + coclass TIFLoad + { + interface IGuideDataLoader; + interface IGuideDataEvent; + }; +}; + +cpp_quote("#if ( _MSC_VER >= 800 )") +cpp_quote("#pragma warning(default:4201) /* Nameless struct/union */") +cpp_quote("#endif") |