//========= Copyright Valve Corporation, All rights reserved. ============// // //=======================================================================================// #ifndef IREPLAYMOVIEMANAGER_H #define IREPLAYMOVIEMANAGER_H #ifdef _WIN32 #pragma once #endif //---------------------------------------------------------------------------------------- #include "interface.h" #include "utlstring.h" #include "utllinkedlist.h" #include "replay/replayhandle.h" //---------------------------------------------------------------------------------------- class IReplayMovie; class CReplay; struct RenderMovieParams_t; class IQueryableReplayItem; //---------------------------------------------------------------------------------------- abstract_class IReplayMovieManager : public IBaseInterface { public: virtual int GetMovieCount() = 0; virtual void GetMovieList( CUtlLinkedList< IReplayMovie * > &list ) = 0; // Fills the list with all movies virtual IReplayMovie *GetMovie( ReplayHandle_t hMovie ) = 0; virtual IReplayMovie *CreateAndAddMovie( ReplayHandle_t hReplay ) = 0; // Creates and adds a movie based on the given replay virtual void DeleteMovie( ReplayHandle_t hMovie ) = 0; // Delete a movie virtual int GetNumMoviesDependentOnReplay( const CReplay *pReplay ) = 0; // Get the number of movies that depend on the given replay virtual void GetCachedMovieTitleAndClear( wchar_t *pOut, int nOutBufLength ) = 0; // TODO: This is a hack - fix this virtual void SetPendingMovie( IReplayMovie *pMovie ) = 0; virtual IReplayMovie *GetPendingMovie() = 0; virtual void FlagMovieForFlush( IReplayMovie *pMovie, bool bImmediate ) = 0; virtual void GetMoviesAsQueryableItems( CUtlLinkedList< IQueryableReplayItem *, int > &lstMovies ) = 0; virtual const char *GetRenderDir() const = 0; virtual const char *GetRawExportDir() const = 0; // TODO: Is this the best place for code that actually manages rendering? virtual bool IsRendering() const = 0; virtual bool RenderingCancelled() const = 0; virtual void RenderMovie( RenderMovieParams_t const& params ) = 0; // Renders the given replay - or if params.hReplay is -1, render all unrendered replays virtual void RenderNextMovie() = 0; virtual void CompleteRender( bool bSuccess, bool bShowBrowser ) = 0; virtual void CancelRender() = 0; virtual void ClearRenderCancelledFlag() = 0; }; //---------------------------------------------------------------------------------------- #endif // IREPLAYMOVIEMANAGER_H