windows-nt/Source/XPSP1/NT/multimedia/directx/dmusic/dmsynth/plclock.h

38 lines
990 B
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
// Copyright (c) 1996-1999 Microsoft Corporation
/* PLClock.h
*/
#ifndef __PLCLOCK_H__
#define __PLCLOCK_H__
class CPhaseLockClock
{
public:
CPhaseLockClock();
void Start(REFERENCE_TIME rfMasterTime, REFERENCE_TIME rfSlaveTime);
void GetSlaveTime(REFERENCE_TIME rfSlaveTime,REFERENCE_TIME *prfTime);
void SetSlaveTime(REFERENCE_TIME rfSlaveTime,REFERENCE_TIME *prfTime);
void SyncToMaster(REFERENCE_TIME rfSlaveTime, REFERENCE_TIME rfMasterTime);
private:
REFERENCE_TIME m_rfOffset;
};
class CSampleClock
{
public:
CSampleClock();
void Start(IReferenceClock *pIClock, DWORD dwSampleRate, DWORD dwSamples);
void SampleToRefTime(LONGLONG llSampleTime,REFERENCE_TIME *prfTime);
void SyncToMaster(LONGLONG llSampleTime, IReferenceClock *pIClock);
LONGLONG RefTimeToSample(REFERENCE_TIME rfTime);
private:
CPhaseLockClock m_PLClock;
DWORD m_dwStart; // Initial sample offset.
DWORD m_dwSampleRate;
};
#endif // __PLCLOCK_H__