Commit f036b8a5 authored by John Freed's avatar John Freed Committed by Jean-Baptiste Kempf

dtv: rewrite of bdagraph to be tuner-based

Close #5785 and #6394
Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent 872d8f2f
......@@ -48,6 +48,7 @@ class ISampleGrabber;
class ISampleGrabberCB;
class IScanningTuner;
class ITuner;
class ITunerCap;
class ITuneRequest;
class ITuningSpace;
class ITuningSpaceContainer;
......@@ -313,6 +314,19 @@ public:
virtual HRESULT __stdcall Clone( IEnumTuningSpaces** p_p_enum )=0;
};
class ITunerCap : public IUnknown
{
public:
virtual HRESULT __stdcall get_AuxInputCount( ULONG* pulCompositeCount,
ULONG* pulSvideoCount )=0;
virtual HRESULT __stdcall get_SupportedNetworkTypes(
ULONG ulcNetworkTypesMax, ULONG* pulcNetworkTypes,
GUID* pguidNetworkTypes )=0;
virtual HRESULT __stdcall get_SupportedVideoFormats(
ULONG* pulAMTunerModeType, ULONG* pulAnalogVideoStandard )=0;
};
class ITuner : public IUnknown
{
public:
......@@ -664,7 +678,7 @@ public:
virtual HRESULT __stdcall CreateTopology( ULONG ulInputPinId,
ULONG ulOutputPinId )=0;
virtual HRESULT __stdcall GetControlNode( ULONG ulInputPinId,
ULONG ulOutputPinId, ULONG ulNodeType, IUnknown **ppControlNode )=0;
ULONG ulOutputPinId, ULONG ulNodeType, IUnknown **ppControlNode )=0;
};
typedef struct _MPEG_HEADER_BITS_MIDL
......@@ -955,6 +969,8 @@ const IID IID_IDigitalCableLocator =
{0x48F66A11,0x171A,0x419A,{0x95,0x25,0xBE,0xEE,0xCD,0x51,0x58,0x4C}};
/* KSCATEGORY_BDA */
const GUID KSCATEGORY_BDA_NETWORK_PROVIDER =
{0x71985F4B,0x1CA1,0x11d3,{0x9C,0xC8,0x00,0xC0,0x4F,0x79,0x71,0xE0}};
const GUID KSCATEGORY_BDA_TRANSPORT_INFORMATION =
{0xa2e3074f,0x6c3d,0x11d3,{0xb6,0x53,0x00,0xc0,0x4f,0x79,0x49,0x8e}};
const GUID KSCATEGORY_BDA_RECEIVER_COMPONENT =
......@@ -1007,6 +1023,10 @@ extern const IID IID_IMpeg2Demultiplexer;
extern const IID IID_ISampleGrabber;
extern const IID IID_IScanningTuner;
extern const IID IID_ITuner;
/* Following symbol does not exist in library
extern const IID IID_ITunerCap; */
const IID IID_ITunerCap =
{0xE60DFA45,0x8D56,0x4e65,{0xA8,0xAB,0xD6,0xBE,0x94,0x12,0xC2,0x49}};
extern const IID IID_ITuningSpace;
extern const IID IID_ITuningSpaceContainer;
/* Following symbol does not exist in library
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -66,6 +66,10 @@ public:
/* */
int SubmitTuneRequest(void);
unsigned EnumSystems(void);
int SetInversion(int);
float GetSignalStrength(void);
float GetSignalNoiseRatio(void);
int SetCQAM(long);
int SetATSC(long);
......@@ -87,8 +91,10 @@ private:
STDMETHODIMP BufferCB( double d_time, BYTE* p_buffer, long l_buffer_len );
vlc_object_t *p_access;
CLSID guid_network_type;
long l_tuner_used; /* Index of the Tuning Device */
CLSID guid_network_type; /* network type in use */
long l_tuner_used; /* Index of the Tuning Device in use */
unsigned systems; /* bitmask of all tuners' network types */
/* registration number for the RunningObjectTable */
DWORD d_graph_register;
......@@ -96,25 +102,39 @@ private:
IMediaControl* p_media_control;
IGraphBuilder* p_filter_graph;
ITuningSpace* p_tuning_space;
ITuneRequest* p_tune_request;
ITuningSpaceContainer* p_tuning_space_container;
ITuningSpace* p_tuning_space;
ITuneRequest* p_tune_request;
IDVBTuningSpace* p_dvb_tuning_space;
IDVBSTuningSpace* p_dvbs_tuning_space;
#if 0
IDigitalCableTuningSpace* p_cqam_tuning_space;
IATSCTuningSpace* p_atsc_tuning_space;
#endif
ICreateDevEnum* p_system_dev_enum;
IBaseFilter* p_network_provider;
IScanningTuner* p_scanning_tuner;
IBaseFilter* p_tuner_device;
IBaseFilter* p_capture_device;
IBaseFilter* p_sample_grabber;
IBaseFilter* p_mpeg_demux;
IBaseFilter* p_transport_info;
IScanningTuner* p_scanning_tuner;
ISampleGrabber* p_grabber;
HRESULT CreateTuneRequest( );
HRESULT SetUpTuner( REFCLSID guid_this_network_type );
HRESULT GetNextNetworkType( CLSID* guid_this_network_type );
HRESULT Build( );
HRESULT Check( REFCLSID guid_this_network_type );
HRESULT GetFilterName( IBaseFilter* p_filter, char** psz_bstr_name );
HRESULT GetPinName( IPin* p_pin, char** psz_bstr_name );
unsigned GetSystem( REFCLSID clsid );
HRESULT ListFilters( REFCLSID this_clsid );
HRESULT FindFilter( REFCLSID clsid, long* i_moniker_used,
IBaseFilter* p_upstream, IBaseFilter** p_p_downstream );
IBaseFilter* p_upstream, IBaseFilter** p_p_downstream);
HRESULT Connect( IBaseFilter* p_filter_upstream,
IBaseFilter* p_filter_downstream );
IBaseFilter* p_filter_downstream);
HRESULT Start( );
HRESULT Destroy( );
HRESULT Register( );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment