Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
2.5 KiB

  1. //========= Copyright Valve Corporation, All rights reserved. ============//
  2. //
  3. //=======================================================================================//
  4. #ifndef IREPLAYMOVIEMANAGER_H
  5. #define IREPLAYMOVIEMANAGER_H
  6. #ifdef _WIN32
  7. #pragma once
  8. #endif
  9. //----------------------------------------------------------------------------------------
  10. #include "interface.h"
  11. #include "utlstring.h"
  12. #include "utllinkedlist.h"
  13. #include "replay/replayhandle.h"
  14. //----------------------------------------------------------------------------------------
  15. class IReplayMovie;
  16. class CReplay;
  17. struct RenderMovieParams_t;
  18. class IQueryableReplayItem;
  19. //----------------------------------------------------------------------------------------
  20. abstract_class IReplayMovieManager : public IBaseInterface
  21. {
  22. public:
  23. virtual int GetMovieCount() = 0;
  24. virtual void GetMovieList( CUtlLinkedList< IReplayMovie * > &list ) = 0; // Fills the list with all movies
  25. virtual IReplayMovie *GetMovie( ReplayHandle_t hMovie ) = 0;
  26. virtual IReplayMovie *CreateAndAddMovie( ReplayHandle_t hReplay ) = 0; // Creates and adds a movie based on the given replay
  27. virtual void DeleteMovie( ReplayHandle_t hMovie ) = 0; // Delete a movie
  28. virtual int GetNumMoviesDependentOnReplay( const CReplay *pReplay ) = 0; // Get the number of movies that depend on the given replay
  29. virtual void GetCachedMovieTitleAndClear( wchar_t *pOut, int nOutBufLength ) = 0; // TODO: This is a hack - fix this
  30. virtual void SetPendingMovie( IReplayMovie *pMovie ) = 0;
  31. virtual IReplayMovie *GetPendingMovie() = 0;
  32. virtual void FlagMovieForFlush( IReplayMovie *pMovie, bool bImmediate ) = 0;
  33. virtual void GetMoviesAsQueryableItems( CUtlLinkedList< IQueryableReplayItem *, int > &lstMovies ) = 0;
  34. virtual const char *GetRenderDir() const = 0;
  35. virtual const char *GetRawExportDir() const = 0;
  36. // TODO: Is this the best place for code that actually manages rendering?
  37. virtual bool IsRendering() const = 0;
  38. virtual bool RenderingCancelled() const = 0;
  39. virtual void RenderMovie( RenderMovieParams_t const& params ) = 0; // Renders the given replay - or if params.hReplay is -1, render all unrendered replays
  40. virtual void RenderNextMovie() = 0;
  41. virtual void CompleteRender( bool bSuccess, bool bShowBrowser ) = 0;
  42. virtual void CancelRender() = 0;
  43. virtual void ClearRenderCancelledFlag() = 0;
  44. };
  45. //----------------------------------------------------------------------------------------
  46. #endif // IREPLAYMOVIEMANAGER_H