ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

signalstatistics.cpp
Go to the documentation of this file.
00001 /*
00002  * COPYRIGHT:       See COPYING in the top level directory
00003  * PROJECT:         ReactOS BDA Proxy
00004  * FILE:            dll/directx/bdaplgin/frequencyfilter.cpp
00005  * PURPOSE:         IBDA_FrequencyFilter interface
00006  *
00007  * PROGRAMMERS:     Johannes Anderwald (janderwald@reactos.org)
00008  */
00009 
00010 #include "precomp.h"
00011 
00012 #ifndef _MSC_VER
00013 const GUID IID_IBDA_SignalStatistics = {0x1347d106, 0xcf3a, 0x428a, {0xa5, 0xcb, 0xac, 0x0d, 0x9a, 0x2a, 0x43, 0x38}};
00014 const GUID KSPROPSETID_BdaSignalStats = {0x1347d106, 0xcf3a, 0x428a, {0xa5, 0xcb, 0xac, 0xd, 0x9a, 0x2a, 0x43, 0x38}};
00015 #endif
00016 
00017 class CBDASignalStatistics : public IBDA_SignalStatistics
00018 {
00019 public:
00020     STDMETHODIMP QueryInterface( REFIID InterfaceId, PVOID* Interface);
00021 
00022     STDMETHODIMP_(ULONG) AddRef()
00023     {
00024         InterlockedIncrement(&m_Ref);
00025         return m_Ref;
00026     }
00027     STDMETHODIMP_(ULONG) Release()
00028     {
00029         InterlockedDecrement(&m_Ref);
00030         if (!m_Ref)
00031         {
00032             delete this;
00033             return 0;
00034         }
00035         return m_Ref;
00036     }
00037 
00038     // IBDA_SignalStatistics methods
00039     HRESULT STDMETHODCALLTYPE put_SignalStrength(LONG lDbStrength);
00040     HRESULT STDMETHODCALLTYPE get_SignalStrength(LONG *plDbStrength);
00041     HRESULT STDMETHODCALLTYPE put_SignalQuality(LONG lPercentQuality);
00042     HRESULT STDMETHODCALLTYPE get_SignalQuality(LONG *plPercentQuality);
00043     HRESULT STDMETHODCALLTYPE put_SignalPresent(BOOLEAN fPresent);
00044     HRESULT STDMETHODCALLTYPE get_SignalPresent(BOOLEAN *pfPresent);
00045     HRESULT STDMETHODCALLTYPE put_SignalLocked(BOOLEAN fLocked);
00046     HRESULT STDMETHODCALLTYPE get_SignalLocked(BOOLEAN *pfLocked);
00047     HRESULT STDMETHODCALLTYPE put_SampleTime(LONG lmsSampleTime);
00048     HRESULT STDMETHODCALLTYPE get_SampleTime(LONG *plmsSampleTime);
00049 
00050     CBDASignalStatistics(IKsPropertySet * pProperty, ULONG NodeId) : m_Ref(0), m_pProperty(pProperty), m_NodeId(NodeId){};
00051     ~CBDASignalStatistics(){};
00052 
00053 protected:
00054     LONG m_Ref;
00055     IKsPropertySet * m_pProperty;
00056     ULONG m_NodeId;
00057 };
00058 
00059 HRESULT
00060 STDMETHODCALLTYPE
00061 CBDASignalStatistics::QueryInterface(
00062     IN  REFIID refiid,
00063     OUT PVOID* Output)
00064 {
00065     *Output = NULL;
00066 
00067     if (IsEqualGUID(refiid, IID_IUnknown))
00068     {
00069         *Output = PVOID(this);
00070         reinterpret_cast<IUnknown*>(*Output)->AddRef();
00071         return NOERROR;
00072     }
00073 
00074     if (IsEqualGUID(refiid, IID_IBDA_SignalStatistics))
00075     {
00076         *Output = (IBDA_SignalStatistics*)(this);
00077         reinterpret_cast<IBDA_SignalStatistics*>(*Output)->AddRef();
00078         return NOERROR;
00079     }
00080     return E_NOINTERFACE;
00081 }
00082 
00083 HRESULT
00084 STDMETHODCALLTYPE
00085 CBDASignalStatistics::put_SignalStrength(LONG lDbStrength)
00086 {
00087     return E_NOINTERFACE;
00088 }
00089 
00090 HRESULT
00091 STDMETHODCALLTYPE
00092 CBDASignalStatistics::get_SignalStrength(LONG *plDbStrength)
00093 {
00094     KSP_NODE Node;
00095     HRESULT hr;
00096     ULONG BytesReturned;
00097 
00098     // setup request
00099     Node.NodeId = (ULONG)-1;
00100     Node.Reserved = 0;
00101 
00102     assert(m_pProperty);
00103 
00104     hr = m_pProperty->Get(KSPROPSETID_BdaSignalStats, KSPROPERTY_BDA_SIGNAL_STRENGTH, &Node.NodeId, sizeof(KSP_NODE)-sizeof(KSPROPERTY), plDbStrength, sizeof(LONG), &BytesReturned);
00105 
00106 
00107 #ifdef BDAPLGIN_TRACE
00108     WCHAR Buffer[100];
00109     swprintf(Buffer, L"CBDASignalStatistics::get_SignalStrength: m_NodeId %lu hr %lx, BytesReturned %lu plDbStrength %ld\n", m_NodeId, hr, BytesReturned, *plDbStrength);
00110     OutputDebugStringW(Buffer);
00111 #endif
00112 
00113     return hr;
00114 }
00115 
00116 HRESULT
00117 STDMETHODCALLTYPE
00118 CBDASignalStatistics::put_SignalQuality(LONG lPercentQuality)
00119 {
00120     return E_NOINTERFACE;
00121 }
00122 
00123 HRESULT
00124 STDMETHODCALLTYPE
00125 CBDASignalStatistics::get_SignalQuality(LONG *plPercentQuality)
00126 {
00127     KSP_NODE Node;
00128     HRESULT hr;
00129     ULONG BytesReturned;
00130 
00131     // setup request
00132     Node.NodeId = (ULONG)-1;
00133     Node.Reserved = 0;
00134 
00135     // perform request
00136     hr = m_pProperty->Get(KSPROPSETID_BdaSignalStats, KSPROPERTY_BDA_SIGNAL_QUALITY, &Node.NodeId, sizeof(KSP_NODE)-sizeof(KSPROPERTY), plPercentQuality, sizeof(LONG), &BytesReturned);
00137 
00138 #ifdef BDAPLGIN_TRACE
00139     WCHAR Buffer[100];
00140     swprintf(Buffer, L"CBDASignalStatistics::get_SignalQuality: m_NodeId %lu hr %lx, BytesReturned %lu plPercentQuality %lu\n", m_NodeId, hr, BytesReturned, *plPercentQuality);
00141     OutputDebugStringW(Buffer);
00142 #endif
00143 
00144     return hr;
00145 }
00146 
00147 HRESULT
00148 STDMETHODCALLTYPE
00149 CBDASignalStatistics::put_SignalPresent(BOOLEAN fPresent)
00150 {
00151     return E_NOINTERFACE;
00152 }
00153 
00154 HRESULT
00155 STDMETHODCALLTYPE
00156 CBDASignalStatistics::get_SignalPresent(BOOLEAN *pfPresent)
00157 {
00158     KSP_NODE Node;
00159     HRESULT hr;
00160     ULONG Present;
00161     ULONG BytesReturned;
00162 
00163     // setup request
00164     Node.NodeId = (ULONG)-1;
00165     Node.Reserved = 0;
00166 
00167     // perform request
00168     hr = m_pProperty->Get(KSPROPSETID_BdaSignalStats, KSPROPERTY_BDA_SIGNAL_PRESENT, &Node.NodeId, sizeof(KSP_NODE)-sizeof(KSPROPERTY), &Present, sizeof(ULONG), &BytesReturned);
00169 
00170     // store result
00171     *pfPresent = Present;
00172 
00173 #ifdef BDAPLGIN_TRACE
00174     WCHAR Buffer[100];
00175     swprintf(Buffer, L"CBDASignalStatistics::get_SignalPresent: m_NodeId %lu hr %lx, BytesReturned %lu Present %lu\n", m_NodeId, hr, BytesReturned, Present);
00176     OutputDebugStringW(Buffer);
00177 #endif
00178 
00179     return hr;
00180 }
00181 
00182 HRESULT
00183 STDMETHODCALLTYPE
00184 CBDASignalStatistics::put_SignalLocked(BOOLEAN fLocked)
00185 {
00186     return E_NOINTERFACE;
00187 }
00188 
00189 HRESULT
00190 STDMETHODCALLTYPE
00191 CBDASignalStatistics::get_SignalLocked(BOOLEAN *pfLocked)
00192 {
00193     KSP_NODE Node;
00194     HRESULT hr;
00195     ULONG Locked;
00196     ULONG BytesReturned;
00197 
00198     // setup request
00199     Node.NodeId = (ULONG)-1;
00200     Node.Reserved = 0;
00201 
00202     // perform request
00203     hr = m_pProperty->Get(KSPROPSETID_BdaSignalStats, KSPROPERTY_BDA_SIGNAL_LOCKED, &Node.NodeId, sizeof(KSP_NODE)-sizeof(KSPROPERTY), &Locked, sizeof(ULONG), &BytesReturned);
00204 
00205     *pfLocked = Locked;
00206 
00207 #ifdef BDAPLGIN_TRACE
00208     WCHAR Buffer[100];
00209     swprintf(Buffer, L"CBDASignalStatistics::get_SignalLocked: m_NodeId %lu hr %lx, BytesReturned %lu Locked %lu\n", m_NodeId, hr, BytesReturned, Locked);
00210     OutputDebugStringW(Buffer);
00211 #endif
00212 
00213     return hr;
00214 }
00215 
00216 HRESULT
00217 STDMETHODCALLTYPE
00218 CBDASignalStatistics::put_SampleTime(LONG lmsSampleTime)
00219 {
00220     KSP_NODE Node;
00221     HRESULT hr;
00222 
00223     // setup request
00224     Node.NodeId = (ULONG)-1;
00225     Node.Reserved = 0;
00226 
00227     // perform request
00228     hr = m_pProperty->Set(KSPROPSETID_BdaSignalStats, KSPROPERTY_BDA_SAMPLE_TIME, &Node.NodeId, sizeof(KSP_NODE)-sizeof(KSPROPERTY), &lmsSampleTime, sizeof(LONG));
00229 
00230 #ifdef BDAPLGIN_TRACE
00231     WCHAR Buffer[100];
00232     swprintf(Buffer, L"CBDASignalStatistics::put_SampleTime: m_NodeId %lu hr %lx\n", m_NodeId, hr);
00233     OutputDebugStringW(Buffer);
00234 #endif
00235 
00236     return hr;
00237 }
00238 
00239 HRESULT
00240 STDMETHODCALLTYPE
00241 CBDASignalStatistics::get_SampleTime(LONG *plmsSampleTime)
00242 {
00243     KSP_NODE Node;
00244     HRESULT hr;
00245     ULONG BytesReturned;
00246 
00247     // setup request
00248     Node.NodeId = (ULONG)-1;
00249     Node.Reserved = 0;
00250 
00251     // perform request
00252     hr = m_pProperty->Get(KSPROPSETID_BdaSignalStats, KSPROPERTY_BDA_SAMPLE_TIME, &Node.NodeId, sizeof(KSP_NODE)-sizeof(KSPROPERTY), plmsSampleTime, sizeof(LONG), &BytesReturned);
00253 
00254 #ifdef BDAPLGIN_TRACE
00255     WCHAR Buffer[100];
00256     swprintf(Buffer, L"CBDASignalStatistics::get_SampleTime: m_NodeId %lu hr %lx, BytesReturned %lu \n", m_NodeId, hr, BytesReturned);
00257     OutputDebugStringW(Buffer);
00258 #endif
00259 
00260     return hr;
00261 }
00262 
00263 HRESULT
00264 WINAPI
00265 CBDASignalStatistics_fnConstructor(
00266     IKsPropertySet * pProperty,
00267     ULONG NodeId,
00268     REFIID riid,
00269     LPVOID * ppv)
00270 {
00271     // construct device control
00272     CBDASignalStatistics * handler = new CBDASignalStatistics(pProperty, NodeId);
00273 
00274 #ifdef BDAPLGIN_TRACE
00275     OutputDebugStringW(L"CBDASignalStatistics_fnConstructor\n");
00276 #endif
00277 
00278     if (!handler)
00279         return E_OUTOFMEMORY;
00280 
00281     if (FAILED(handler->QueryInterface(riid, ppv)))
00282     {
00283         /* not supported */
00284         delete handler;
00285         return E_NOINTERFACE;
00286     }
00287 
00288     return NOERROR;
00289 }

Generated on Sat May 26 2012 04:19:49 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.