Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285/* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS BDA Proxy * FILE: dll/directx/bdaplgin/frequencyfilter.cpp * PURPOSE: IBDA_FrequencyFilter interface * * PROGRAMMERS: Johannes Anderwald (johannes.anderwald@reactos.org) */
#include "precomp.h"
#ifndef _MSC_VERconst GUID IID_IBDA_FrequencyFilter = {0x71985f47, 0x1ca1, 0x11d3, {0x9c, 0xc8, 0x00, 0xc0, 0x4f, 0x79, 0x71, 0xe0}};const GUID KSPROPSETID_BdaFrequencyFilter = {0x71985f47, 0x1ca1, 0x11d3, {0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0}};#endif
class CBDAFrequencyFilter : public IBDA_FrequencyFilter{public: STDMETHODIMP QueryInterface( REFIID InterfaceId, PVOID* Interface);
STDMETHODIMP_(ULONG) AddRef() { InterlockedIncrement(&m_Ref); return m_Ref; } STDMETHODIMP_(ULONG) Release() { InterlockedDecrement(&m_Ref); if (!m_Ref) { delete this; return 0; } return m_Ref; }
HRESULT STDMETHODCALLTYPE put_Autotune(ULONG ulTransponder); HRESULT STDMETHODCALLTYPE get_Autotune(ULONG *pulTransponder); HRESULT STDMETHODCALLTYPE put_Frequency(ULONG ulFrequency); HRESULT STDMETHODCALLTYPE get_Frequency(ULONG *pulFrequency); HRESULT STDMETHODCALLTYPE put_Polarity(Polarisation Polarity); HRESULT STDMETHODCALLTYPE get_Polarity(Polarisation *pPolarity); HRESULT STDMETHODCALLTYPE put_Range(ULONG ulRange); HRESULT STDMETHODCALLTYPE get_Range(ULONG *pulRange); HRESULT STDMETHODCALLTYPE put_Bandwidth(ULONG ulBandwidth); HRESULT STDMETHODCALLTYPE get_Bandwidth(ULONG *pulBandwidth); HRESULT STDMETHODCALLTYPE put_FrequencyMultiplier(ULONG ulMultiplier); HRESULT STDMETHODCALLTYPE get_FrequencyMultiplier(ULONG *pulMultiplier);
CBDAFrequencyFilter(IKsPropertySet * pProperty, ULONG NodeId) : m_Ref(0), m_pProperty(pProperty), m_NodeId(NodeId){}; virtual ~CBDAFrequencyFilter(){};
protected: LONG m_Ref; IKsPropertySet * m_pProperty; ULONG m_NodeId;};
HRESULTSTDMETHODCALLTYPECBDAFrequencyFilter::QueryInterface( IN REFIID refiid, OUT PVOID* Output){ *Output = NULL;
if (IsEqualGUID(refiid, IID_IUnknown)) { *Output = PVOID(this); reinterpret_cast<IUnknown*>(*Output)->AddRef(); return NOERROR; }
if (IsEqualGUID(refiid, IID_IBDA_FrequencyFilter)) { *Output = (IBDA_FrequencyFilter*)(this); reinterpret_cast<IBDA_FrequencyFilter*>(*Output)->AddRef(); return NOERROR; }
#ifdef BDAPLGIN_TRACE WCHAR Buffer[MAX_PATH]; LPOLESTR lpstr; StringFromCLSID(refiid, &lpstr); swprintf(Buffer, L"CControlNode::QueryInterface: NoInterface for %s", lpstr); OutputDebugStringW(Buffer); CoTaskMemFree(lpstr);DebugBreak();#endif
return E_NOINTERFACE;}
HRESULTSTDMETHODCALLTYPECBDAFrequencyFilter::put_Autotune(ULONG ulTransponder){ return E_NOINTERFACE;}
HRESULTSTDMETHODCALLTYPECBDAFrequencyFilter::get_Autotune(ULONG *pulTransponder){ return E_NOINTERFACE;}
HRESULTSTDMETHODCALLTYPECBDAFrequencyFilter::put_Frequency(ULONG ulFrequency){ KSP_NODE Node; HRESULT hr;
// setup request Node.NodeId = m_NodeId; Node.Reserved = 0;
// perform request hr = m_pProperty->Set(KSPROPSETID_BdaFrequencyFilter, KSPROPERTY_BDA_RF_TUNER_FREQUENCY, &Node.NodeId, sizeof(KSP_NODE)-sizeof(KSPROPERTY), &ulFrequency, sizeof(ULONG));
#ifdef BDAPLGIN_TRACE WCHAR Buffer[100]; swprintf(Buffer, L"CBDAFrequencyFilter::put_Frequency: m_NodeId %lu ulFrequency %lu hr %lx\n", m_NodeId, ulFrequency, hr); OutputDebugStringW(Buffer);#endif
return hr;}
HRESULTSTDMETHODCALLTYPECBDAFrequencyFilter::get_Frequency(ULONG *pulFrequency){ return E_NOINTERFACE;}
HRESULTSTDMETHODCALLTYPECBDAFrequencyFilter::put_Polarity(Polarisation Polarity){ KSP_NODE Node; HRESULT hr;
// setup request Node.NodeId = m_NodeId; Node.Reserved = 0;
// perform request hr = m_pProperty->Set(KSPROPSETID_BdaFrequencyFilter, KSPROPERTY_BDA_RF_TUNER_POLARITY, &Node.NodeId, sizeof(KSP_NODE)-sizeof(KSPROPERTY), &Polarity, sizeof(Polarisation));
#ifdef BDAPLGIN_TRACE WCHAR Buffer[100]; swprintf(Buffer, L"CBDAFrequencyFilter::put_Polarity: m_NodeId %lu Polarity %lu hr %lx\n", m_NodeId, Polarity, hr); OutputDebugStringW(Buffer);#endif
return hr;}
HRESULTSTDMETHODCALLTYPECBDAFrequencyFilter::get_Polarity(Polarisation *pPolarity){ return E_NOINTERFACE;}
HRESULTSTDMETHODCALLTYPECBDAFrequencyFilter::put_Range(ULONG ulRange){ KSP_NODE Node; HRESULT hr;
// setup request Node.NodeId = m_NodeId; Node.Reserved = 0;
// perform request hr = m_pProperty->Set(KSPROPSETID_BdaFrequencyFilter, KSPROPERTY_BDA_RF_TUNER_RANGE, &Node.NodeId, sizeof(KSP_NODE)-sizeof(KSPROPERTY), &ulRange, sizeof(ULONG));
#ifdef BDAPLGIN_TRACE WCHAR Buffer[100]; swprintf(Buffer, L"CBDAFrequencyFilter::put_Range: m_NodeId %lu ulRange %lu hr %lx\n", m_NodeId, ulRange, hr); OutputDebugStringW(Buffer);#endif
return hr;}
HRESULTSTDMETHODCALLTYPECBDAFrequencyFilter::get_Range(ULONG *pulRange){ return E_NOINTERFACE;}
HRESULTSTDMETHODCALLTYPECBDAFrequencyFilter::put_Bandwidth(ULONG ulBandwidth){ KSP_NODE Node; HRESULT hr;
// setup request Node.NodeId = m_NodeId; Node.Reserved = 0;
// perform request hr = m_pProperty->Set(KSPROPSETID_BdaFrequencyFilter, KSPROPERTY_BDA_RF_TUNER_BANDWIDTH, &Node.NodeId, sizeof(KSP_NODE)-sizeof(KSPROPERTY), &ulBandwidth, sizeof(ULONG));
#ifdef BDAPLGIN_TRACE WCHAR Buffer[100]; swprintf(Buffer, L"CBDAFrequencyFilter::put_Bandwidth: m_NodeId %lu ulBandwidth %lu hr %lx\n", m_NodeId, ulBandwidth, hr); OutputDebugStringW(Buffer);#endif
return hr;}
HRESULTSTDMETHODCALLTYPECBDAFrequencyFilter::get_Bandwidth(ULONG *pulBandwidth){ return E_NOINTERFACE;}HRESULTSTDMETHODCALLTYPECBDAFrequencyFilter::put_FrequencyMultiplier(ULONG ulMultiplier){ KSP_NODE Node; HRESULT hr;
// setup request Node.NodeId = m_NodeId; Node.Reserved = 0;
// perform request hr = m_pProperty->Set(KSPROPSETID_BdaFrequencyFilter, KSPROPERTY_BDA_RF_TUNER_FREQUENCY_MULTIPLIER, &Node.NodeId, sizeof(KSP_NODE)-sizeof(KSPROPERTY), &ulMultiplier, sizeof(ULONG));
#ifdef BDAPLGIN_TRACE WCHAR Buffer[100]; swprintf(Buffer, L"CBDAFrequencyFilter::put_FrequencyMultiplier: m_NodeId %lu ulMultiplier %lu hr %lx\n", m_NodeId, ulMultiplier, hr); OutputDebugStringW(Buffer);#endif
return hr;}
HRESULTSTDMETHODCALLTYPECBDAFrequencyFilter::get_FrequencyMultiplier(ULONG *pulMultiplier){ return E_NOINTERFACE;}
HRESULTWINAPICBDAFrequencyFilter_fnConstructor( IKsPropertySet* pProperty, ULONG NodeId, REFIID riid, LPVOID * ppv){ // construct device control CBDAFrequencyFilter * handler = new CBDAFrequencyFilter(pProperty, NodeId);
#ifdef BDAPLGIN_TRACE OutputDebugStringW(L"CBDAFrequencyFilter_fnConstructor\n");#endif
if (!handler) return E_OUTOFMEMORY;
if (FAILED(handler->QueryInterface(riid, ppv))) { /* not supported */ delete handler; return E_NOINTERFACE; }
return NOERROR;}