mirror of
https://github.com/libretro/pcsx2.git
synced 2024-11-27 19:30:36 +00:00
ab9bdb009b
Update it to the version found at https://github.com/Microsoft/Windows-classic-samples , which is in an MIT licensed repo, and add the LICENSE file (edited to remove the SIL Open Font LICENSE part since that doesn't apply). Some modifications have been made to reduce the diff/stop git complaining (not including any file that wasn't in the previous version and removing the related header includes in streams.h, and fixing some but not all of the whitespace issues).
75 lines
2.0 KiB
C++
75 lines
2.0 KiB
C++
//------------------------------------------------------------------------------
|
|
// File: SysClock.cpp
|
|
//
|
|
// Desc: DirectShow base classes - implements a system clock based on
|
|
// IReferenceClock.
|
|
//
|
|
// Copyright (c) 1992-2001 Microsoft Corporation. All rights reserved.
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
|
#include <streams.h>
|
|
#include <limits.h>
|
|
|
|
|
|
#ifdef FILTER_DLL
|
|
|
|
/* List of class IDs and creator functions for the class factory. This
|
|
provides the link between the OLE entry point in the DLL and an object
|
|
being created. The class factory will call the static CreateInstance
|
|
function when it is asked to create a CLSID_SystemClock object */
|
|
|
|
CFactoryTemplate g_Templates[1] = {
|
|
{&CLSID_SystemClock, CSystemClock::CreateInstance}
|
|
};
|
|
|
|
int g_cTemplates = sizeof(g_Templates) / sizeof(g_Templates[0]);
|
|
#endif
|
|
|
|
/* This goes in the factory template table to create new instances */
|
|
CUnknown * WINAPI CSystemClock::CreateInstance(__inout_opt LPUNKNOWN pUnk, __inout HRESULT *phr)
|
|
{
|
|
return new CSystemClock(NAME("System reference clock"),pUnk, phr);
|
|
}
|
|
|
|
|
|
CSystemClock::CSystemClock(__in_opt LPCTSTR pName, __inout_opt LPUNKNOWN pUnk, __inout HRESULT *phr) :
|
|
CBaseReferenceClock(pName, pUnk, phr)
|
|
{
|
|
}
|
|
|
|
STDMETHODIMP CSystemClock::NonDelegatingQueryInterface(
|
|
REFIID riid,
|
|
__deref_out void ** ppv)
|
|
{
|
|
if (riid == IID_IPersist)
|
|
{
|
|
return GetInterface(static_cast<IPersist *>(this), ppv);
|
|
}
|
|
else if (riid == IID_IAMClockAdjust)
|
|
{
|
|
return GetInterface(static_cast<IAMClockAdjust *>(this), ppv);
|
|
}
|
|
else
|
|
{
|
|
return CBaseReferenceClock::NonDelegatingQueryInterface(riid, ppv);
|
|
}
|
|
}
|
|
|
|
/* Return the clock's clsid */
|
|
STDMETHODIMP
|
|
CSystemClock::GetClassID(__out CLSID *pClsID)
|
|
{
|
|
CheckPointer(pClsID,E_POINTER);
|
|
ValidateReadWritePtr(pClsID,sizeof(CLSID));
|
|
*pClsID = CLSID_SystemClock;
|
|
return NOERROR;
|
|
}
|
|
|
|
|
|
STDMETHODIMP
|
|
CSystemClock::SetClockDelta(REFERENCE_TIME rtDelta)
|
|
{
|
|
return SetTimeDelta(rtDelta);
|
|
}
|