//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//

#ifndef IREPLAYMOVIERENDERER_H
#define IREPLAYMOVIERENDERER_H
#ifdef _WIN32
#pragma once
#endif

//----------------------------------------------------------------------------------------

class IReplayMovie;
struct RenderMovieParams_t;

//----------------------------------------------------------------------------------------

abstract_class IReplayMovieRenderer : public IBaseInterface
{
public:
	virtual bool			SetupRenderer( RenderMovieParams_t &params, IReplayMovie *pMovie ) = 0;
	virtual void			ShutdownRenderer() = 0;
	virtual void			RenderVideo() = 0;
	virtual void			RenderAudio( unsigned char *pBuffer, int nSize, int nNumSamples ) = 0;
	
	virtual void			SetAudioSyncFrame( bool isSync = false ) = 0;
	virtual bool			IsAudioSyncFrame() = 0;
	virtual float			GetRecordingFrameDuration() = 0;
};

//----------------------------------------------------------------------------------------

#endif // IREPLAYMOVIERENDERER_H