Important: |
---|
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. |
This base class implements the IReferenceClockinterface.
The CBaseReferenceClockclass provides a full implementation of IReferenceClock. It uses CCritSeclocking support and CAMSchedulescheduler support.
Each advisecall defines a point in time when the caller wants to be notified. A periodic adviseis a regular series of such events.
A list of these advise requests is maintained by the reference clock. The clock calculates the delay until the first requested advise, and signals an event at the due time.
Clients are not advised through callbacks. One-shot clients have an event set, while periodic clients have a semaphore released for each event notification.
A semaphore allows a client to know exactly how many events were triggered, because multiple time periods might elapse before the client code executes.
During class construction, a worker thread is created. This thread executes a series of Win32 WaitForSingleObjectcalls, waking up when a command is given to the thread or the next wake-up point is reached.
The wake-up points are determined by clients making advise calls.
Protected Data Members
Member | Description |
---|---|
m_pSchedule |
Pointer to the CAMScheduleobject associated with this CBaseReferenceClockobject. |
Member Functions
Member function | Description |
---|---|
Constructs a CBaseReferenceClockobject. |
|
Returns the CAMSchedulepointer stored in the m_pScheduledata member. |
|
Adjusts the values returned from CBaseReferenceClock::GetPrivateTimeby the amount specified in this member function. |
|
Triggers the advise thread's event. If you override CBaseReferenceClock::GetPrivateTime, reuse or abandon this method. |
Implemented IReferenceClock Methods
Method | Description |
---|---|
Requests an asynchronous periodic notification that a time has elapsed. |
|
Requests an asynchronous notification that a time has elapsed. |
|
Returns a reference time. |
|
Removes a previously established advise link. |
Overrideable Member Functions
Member function | Description |
---|---|
Gets the current time from the real clock. To implement your own clock, override this member function. |
Implemented INonDelegatingUnknown Methods
Method | Description |
---|---|
Returns a pointer to interfaces supported, that is, IReferenceClock. |
Requirements
Windows Embedded CE | Windows CE 2.12 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |
Note | Microsoft DirectShow applications and DirectShow filters have
different include file and Library requirements
For more information, see Setting Up the Build Environment |