#include <refclock.h>

Public Member Functions | |
| CBaseReferenceClock (TCHAR *pName, LPUNKNOWN pUnk, HRESULT *phr, CAMSchedule *pSched=0) | |
| STDMETHODIMP | NonDelegatingQueryInterface (REFIID riid, void **ppv) |
| DECLARE_IUNKNOWN STDMETHODIMP | GetTime (REFERENCE_TIME *pTime) |
| STDMETHODIMP | AdviseTime (REFERENCE_TIME baseTime, REFERENCE_TIME streamTime, HEVENT hEvent, DWORD_PTR *pdwAdviseCookie) |
| STDMETHODIMP | AdvisePeriodic (REFERENCE_TIME StartTime, REFERENCE_TIME PeriodTime, HSEMAPHORE hSemaphore, DWORD_PTR *pdwAdviseCookie) |
| STDMETHODIMP | Unadvise (DWORD_PTR dwAdviseCookie) |
| virtual REFERENCE_TIME | GetPrivateTime () |
| STDMETHODIMP | SetTimeDelta (const REFERENCE_TIME &TimeDelta) |
| CAMSchedule * | GetSchedule () const |
| void | TriggerThread () |
Protected Member Functions | |
| virtual | ~CBaseReferenceClock () |
Protected Attributes | |
| CAMSchedule *const | m_pSchedule |
Private Member Functions | |
| HRESULT | AdviseThread () |
Static Private Member Functions | |
| static DWORD __stdcall | AdviseThreadFunction (LPVOID) |
Private Attributes | |
| REFERENCE_TIME | m_rtPrivateTime |
| DWORD | m_dwPrevSystemTime |
| REFERENCE_TIME | m_rtLastGotTime |
| REFERENCE_TIME | m_rtNextAdvise |
| UINT | m_TimerResolution |
| BOOL | m_bAbort |
| HANDLE | m_hThread |
Definition at line 21 of file refclock.h.
| CBaseReferenceClock::~CBaseReferenceClock | ( | ) | [protected, virtual] |
Definition at line 28 of file refclock.cpp.
References CAMSchedule::DumpLinkedList(), EXECUTE_ASSERT, CAMSchedule::GetEvent(), m_bAbort, m_hThread, m_pSchedule, m_TimerResolution, TriggerThread(), and TRUE.
| CBaseReferenceClock::CBaseReferenceClock | ( | TCHAR * | pName, | |
| LPUNKNOWN | pUnk, | |||
| HRESULT * | phr, | |||
| CAMSchedule * | pSched = 0 | |||
| ) |
Definition at line 47 of file refclock.cpp.
References AdviseThreadFunction(), ASSERT, E_FAIL, E_OUTOFMEMORY, EXECUTE_ASSERT, CAMSchedule::GetEvent(), LPVOID, m_dwPrevSystemTime, m_hThread, m_pSchedule, m_rtPrivateTime, m_TimerResolution, MILLISECONDS, MSR_REGISTER, NULL, and UNITS.
| STDMETHODIMP CBaseReferenceClock::NonDelegatingQueryInterface | ( | REFIID | riid, | |
| void ** | ppv | |||
| ) |
Reimplemented from CUnknown.
Reimplemented in CSystemClock.
Definition at line 11 of file refclock.cpp.
References GetInterface(), hr, HRESULT, and CUnknown::NonDelegatingQueryInterface().
Referenced by CSystemClock::NonDelegatingQueryInterface().
| STDMETHODIMP CBaseReferenceClock::GetTime | ( | REFERENCE_TIME * | pTime | ) |
Definition at line 103 of file refclock.cpp.
References GetPrivateTime(), hr, HRESULT, CCritSec::Lock(), LONG, m_rtLastGotTime, MILLISECONDS, MSR_INTEGER, S_FALSE, S_OK, UNITS, and CCritSec::Unlock().
| STDMETHODIMP CBaseReferenceClock::AdviseTime | ( | REFERENCE_TIME | baseTime, | |
| REFERENCE_TIME | streamTime, | |||
| HEVENT | hEvent, | |||
| DWORD_PTR * | pdwAdviseCookie | |||
| ) |
Definition at line 130 of file refclock.cpp.
References CAMSchedule::AddAdvisePacket(), ASSERT, CheckPointer, E_INVALIDARG, E_OUTOFMEMORY, FALSE, hr, HRESULT, m_pSchedule, and MAX_TIME.
| STDMETHODIMP CBaseReferenceClock::AdvisePeriodic | ( | REFERENCE_TIME | StartTime, | |
| REFERENCE_TIME | PeriodTime, | |||
| HSEMAPHORE | hSemaphore, | |||
| DWORD_PTR * | pdwAdviseCookie | |||
| ) |
Definition at line 157 of file refclock.cpp.
References CAMSchedule::AddAdvisePacket(), CheckPointer, E_INVALIDARG, E_OUTOFMEMORY, hr, HRESULT, m_pSchedule, MAX_TIME, and TRUE.
| STDMETHODIMP CBaseReferenceClock::Unadvise | ( | DWORD_PTR | dwAdviseCookie | ) |
| REFERENCE_TIME CBaseReferenceClock::GetPrivateTime | ( | ) | [virtual] |
Definition at line 182 of file refclock.cpp.
References m_dwPrevSystemTime, m_rtPrivateTime, MILLISECONDS, and UNITS.
Referenced by AdviseThread(), and GetTime().
| STDMETHODIMP CBaseReferenceClock::SetTimeDelta | ( | const REFERENCE_TIME & | TimeDelta | ) |
Definition at line 197 of file refclock.cpp.
References ConvertToMilliseconds(), DbgLog, CAMSchedule::GetAdviseCount(), LOG_TIMING, LOG_TRACE, LONG, m_pSchedule, m_rtPrivateTime, TriggerThread(), and UNITS.
Referenced by CSystemClock::SetClockDelta().
| CAMSchedule* CBaseReferenceClock::GetSchedule | ( | ) | const [inline] |
| void CBaseReferenceClock::TriggerThread | ( | ) | [inline] |
Definition at line 92 of file refclock.h.
References EXECUTE_ASSERT, CAMSchedule::GetEvent(), and m_pSchedule.
Referenced by SetTimeDelta(), and ~CBaseReferenceClock().
| HRESULT CBaseReferenceClock::AdviseThread | ( | ) | [private] |
Definition at line 255 of file refclock.cpp.
References CAMSchedule::Advise(), ASSERT, ConvertToMilliseconds(), DbgLog, CAMSchedule::GetEvent(), GetPrivateTime(), LOG_TIMING, m_bAbort, m_pSchedule, and m_rtNextAdvise.
Referenced by AdviseThreadFunction().
| DWORD __stdcall CBaseReferenceClock::AdviseThreadFunction | ( | LPVOID | p | ) | [static, private] |
Definition at line 250 of file refclock.cpp.
References AdviseThread().
Referenced by CBaseReferenceClock().
REFERENCE_TIME CBaseReferenceClock::m_rtPrivateTime [private] |
Definition at line 81 of file refclock.h.
Referenced by CBaseReferenceClock(), GetPrivateTime(), and SetTimeDelta().
DWORD CBaseReferenceClock::m_dwPrevSystemTime [private] |
Definition at line 82 of file refclock.h.
Referenced by CBaseReferenceClock(), and GetPrivateTime().
REFERENCE_TIME CBaseReferenceClock::m_rtLastGotTime [private] |
REFERENCE_TIME CBaseReferenceClock::m_rtNextAdvise [private] |
UINT CBaseReferenceClock::m_TimerResolution [private] |
Definition at line 85 of file refclock.h.
Referenced by CBaseReferenceClock(), and ~CBaseReferenceClock().
BOOL CBaseReferenceClock::m_bAbort [private] |
HANDLE CBaseReferenceClock::m_hThread [private] |
Definition at line 99 of file refclock.h.
Referenced by CBaseReferenceClock(), and ~CBaseReferenceClock().
CAMSchedule* const CBaseReferenceClock::m_pSchedule [protected] |
Definition at line 105 of file refclock.h.
Referenced by AdvisePeriodic(), AdviseThread(), AdviseTime(), CBaseReferenceClock(), GetSchedule(), SetTimeDelta(), TriggerThread(), Unadvise(), and ~CBaseReferenceClock().
1.5.6