Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygensignalstatistics.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
1.7.6.1
|