2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS BDA Proxy
4 * FILE: dll/directx/bdaplgin/digitaldemo.cpp
5 * PURPOSE: IBDA_DigitalDemodulator interface
7 * PROGRAMMERS: Johannes Anderwald (janderwald@reactos.org)
12 const GUID IID_IBDA_DigitalDemodulator
= {0xef30f379, 0x985b, 0x4d10, {0xb6, 0x40, 0xa7, 0x9d, 0x5e, 0x04, 0xe1, 0xe0}};
14 class CBDADigitalDemodulator
: public IBDA_DigitalDemodulator
17 STDMETHODIMP
QueryInterface( REFIID InterfaceId
, PVOID
* Interface
);
19 STDMETHODIMP_(ULONG
) AddRef()
21 InterlockedIncrement(&m_Ref
);
24 STDMETHODIMP_(ULONG
) Release()
26 InterlockedDecrement(&m_Ref
);
35 //IBDA_DigitalDemodulator methods
36 HRESULT STDMETHODCALLTYPE
put_ModulationType(ModulationType
*pModulationType
);
37 HRESULT STDMETHODCALLTYPE
get_ModulationType(ModulationType
*pModulationType
);
38 HRESULT STDMETHODCALLTYPE
put_InnerFECMethod(FECMethod
*pFECMethod
);
39 HRESULT STDMETHODCALLTYPE
get_InnerFECMethod(FECMethod
*pFECMethod
);
40 HRESULT STDMETHODCALLTYPE
put_InnerFECRate(BinaryConvolutionCodeRate
*pFECRate
);
41 HRESULT STDMETHODCALLTYPE
get_InnerFECRate(BinaryConvolutionCodeRate
*pFECRate
);
42 HRESULT STDMETHODCALLTYPE
put_OuterFECMethod(FECMethod
*pFECMethod
);
43 HRESULT STDMETHODCALLTYPE
get_OuterFECMethod(FECMethod
*pFECMethod
);
44 HRESULT STDMETHODCALLTYPE
put_OuterFECRate(BinaryConvolutionCodeRate
*pFECRate
);
45 HRESULT STDMETHODCALLTYPE
get_OuterFECRate(BinaryConvolutionCodeRate
*pFECRate
);
46 HRESULT STDMETHODCALLTYPE
put_SymbolRate(ULONG
*pSymbolRate
);
47 HRESULT STDMETHODCALLTYPE
get_SymbolRate(ULONG
*pSymbolRate
);
48 HRESULT STDMETHODCALLTYPE
put_SpectralInversion(SpectralInversion
*pSpectralInversion
);
49 HRESULT STDMETHODCALLTYPE
get_SpectralInversion(SpectralInversion
*pSpectralInversion
);
51 CBDADigitalDemodulator(HANDLE hFile
) : m_Ref(0), m_hFile(hFile
){};
52 ~CBDADigitalDemodulator(){};
62 CBDADigitalDemodulator::QueryInterface(
66 WCHAR Buffer
[MAX_PATH
];
71 if (IsEqualGUID(refiid
, IID_IUnknown
))
73 *Output
= PVOID(this);
74 reinterpret_cast<IUnknown
*>(*Output
)->AddRef();
78 if (IsEqualGUID(refiid
, IID_IBDA_DigitalDemodulator
))
80 *Output
= (IBDA_DigitalDemodulator
*)(this);
81 reinterpret_cast<IBDA_DigitalDemodulator
*>(*Output
)->AddRef();
85 StringFromCLSID(refiid
, &lpstr
);
86 swprintf(Buffer
, L
"CBDADigitalDemodulator::QueryInterface: NoInterface for %s", lpstr
);
87 OutputDebugStringW(Buffer
);
95 CBDADigitalDemodulator::put_ModulationType(ModulationType
*pModulationType
)
97 OutputDebugStringW(L
"CBDADigitalDemodulator::put_ModulationType NotImplemented\n");
103 CBDADigitalDemodulator::get_ModulationType(ModulationType
*pModulationType
)
105 OutputDebugStringW(L
"CBDADigitalDemodulator::get_ModulationType NotImplemented\n");
111 CBDADigitalDemodulator::put_InnerFECMethod(FECMethod
*pFECMethod
)
113 OutputDebugStringW(L
"CBDADigitalDemodulator::put_InnerFECMethod NotImplemented\n");
119 CBDADigitalDemodulator::get_InnerFECMethod(FECMethod
*pFECMethod
)
121 OutputDebugStringW(L
"CBDADigitalDemodulator::get_InnerFECMethod NotImplemented\n");
127 CBDADigitalDemodulator::put_InnerFECRate(BinaryConvolutionCodeRate
*pFECRate
)
129 OutputDebugStringW(L
"CBDADigitalDemodulator::put_InnerFECRate NotImplemented\n");
135 CBDADigitalDemodulator::get_InnerFECRate(BinaryConvolutionCodeRate
*pFECRate
)
137 OutputDebugStringW(L
"CBDADigitalDemodulator::get_InnerFECRate NotImplemented\n");
143 CBDADigitalDemodulator::put_OuterFECMethod(FECMethod
*pFECMethod
)
145 OutputDebugStringW(L
"CBDADigitalDemodulator::put_OuterFECMethod NotImplemented\n");
151 STDMETHODCALLTYPE
CBDADigitalDemodulator::get_OuterFECMethod(FECMethod
*pFECMethod
)
153 OutputDebugStringW(L
"CBDADigitalDemodulator::get_OuterFECMethod NotImplemented\n");
159 CBDADigitalDemodulator::put_OuterFECRate(BinaryConvolutionCodeRate
*pFECRate
)
161 OutputDebugStringW(L
"CBDADigitalDemodulator::put_OuterFECRate NotImplemented\n");
167 CBDADigitalDemodulator::get_OuterFECRate(BinaryConvolutionCodeRate
*pFECRate
)
169 OutputDebugStringW(L
"CBDADigitalDemodulator::get_OuterFECRate NotImplemented\n");
175 CBDADigitalDemodulator::put_SymbolRate(ULONG
*pSymbolRate
)
177 OutputDebugStringW(L
"CBDADigitalDemodulator::put_SymbolRate NotImplemented\n");
183 CBDADigitalDemodulator::get_SymbolRate(ULONG
*pSymbolRate
)
185 OutputDebugStringW(L
"CBDADigitalDemodulator::get_SymbolRate NotImplemented\n");
191 CBDADigitalDemodulator::put_SpectralInversion(SpectralInversion
*pSpectralInversion
)
193 OutputDebugStringW(L
"CBDADigitalDemodulator::put_SpectralInversion NotImplemented\n");
199 CBDADigitalDemodulator::get_SpectralInversion(SpectralInversion
*pSpectralInversion
)
201 OutputDebugStringW(L
"CBDADigitalDemodulator::get_SpectralInversion NotImplemented\n");
208 CBDADigitalDemodulator_fnConstructor(
213 // construct device control
214 CBDADigitalDemodulator
* handler
= new CBDADigitalDemodulator(hFile
);
216 OutputDebugStringW(L
"CBDADigitalDemodulator_fnConstructor\n");
219 return E_OUTOFMEMORY
;
221 if (FAILED(handler
->QueryInterface(riid
, ppv
)))
225 return E_NOINTERFACE
;