//========= Copyright Valve Corporation, All rights reserved. ============// // //=======================================================================================// #ifndef REPLAYMOVIE_H #define REPLAYMOVIE_H #ifdef _WIN32 #pragma once #endif //---------------------------------------------------------------------------------------- #include "replay/ireplaymovie.h" #include "replay/basereplayserializeable.h" #include "replay/replaytime.h" #include "replay/rendermovieparams.h" #include "utlstring.h" //---------------------------------------------------------------------------------------- #define REPLAY_MOVIE_HANDLE_FIRST_VALID ((ReplayHandle_t)5000) //---------------------------------------------------------------------------------------- class CReplayMovie : public CBaseReplaySerializeable, public IReplayMovie { typedef CBaseReplaySerializeable BaseClass; public: CReplayMovie(); // // IReplaySerializeable // virtual bool Read( KeyValues *pIn ); virtual void Write( KeyValues *pOut ); virtual const char *GetSubKeyTitle() const; virtual const char *GetPath() const; virtual void OnDelete(); // // IReplayMovie // virtual ReplayHandle_t GetMovieHandle() const; virtual ReplayHandle_t GetReplayHandle() const; virtual const ReplayRenderSettings_t &GetRenderSettings(); virtual void GetFrameDimensions( int &nWidth, int &nHeight ); virtual void SetIsRendered( bool bIsRendered ); virtual void SetMovieFilename( const char *pFilename ); virtual const char *GetMovieFilename() const; virtual void SetMovieTitle( const wchar_t *pTitle ); virtual void SetRenderTime( float flRenderTime ); virtual float GetRenderTime() const; virtual void CaptureRecordTime(); virtual void SetLength( float flLength ); virtual bool IsUploaded() const; virtual void SetUploaded( bool bUploaded ); virtual void SetUploadURL( const char *pURL ); virtual const char *GetUploadURL() const; // // IQueryableReplayItem // virtual const CReplayTime & GetItemDate() const; virtual bool IsItemRendered() const; virtual CReplay *GetItemReplay(); virtual ReplayHandle_t GetItemReplayHandle() const; virtual QueryableReplayItemHandle_t GetItemHandle() const; virtual const wchar_t *GetItemTitle() const; virtual void SetItemTitle( const wchar_t *pTitle ); virtual float GetItemLength() const; virtual void *GetUserData(); virtual void SetUserData( void *pUserData ); virtual bool IsItemAMovie() const; CReplay *GetReplay() const; bool ReadRenderSettings( KeyValues *pIn ); void WriteRenderSettings( KeyValues *pOut ); ReplayHandle_t m_hReplay; // The replay associated with this movie, or 0 if the replay has been deleted wchar_t m_wszTitle[256];// Title for the movie CUtlString m_strFilename; // Relative (to game dir) path and filename of the movie CUtlString m_strUploadURL; // Link to uploaded YouTube video bool m_bRendered; // Has the movie finished rendering? void *m_pUserData; bool m_bUploaded; float m_flRenderTime; // How many seconds it took to render the movie CReplayTime m_RecordTime; // What date/time was this movie recorded? float m_flLength; // The movie length ReplayRenderSettings_t m_RenderSettings; }; //---------------------------------------------------------------------------------------- inline CReplayMovie *ToMovie( IReplaySerializeable *pMovie ) { return static_cast< CReplayMovie * >( pMovie ); } //---------------------------------------------------------------------------------------- #endif // REPLAYMOVIE_H