mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-08 01:39:36 +00:00
1
This commit is contained in:
@@ -0,0 +1,133 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
//=======================================================================================//
|
||||
|
||||
#include "cbase.h"
|
||||
|
||||
#if defined( REPLAY_ENABLED )
|
||||
|
||||
#include "replaybrowseritemmanager.h"
|
||||
#include "replaybrowserbasepage.h"
|
||||
#include "replay/ireplaymoviemanager.h"
|
||||
#include "replay/ireplaymanager.h"
|
||||
#include "replay/ireplaymovie.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
using namespace vgui;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
extern IClientReplayContext *g_pClientReplayContext;
|
||||
extern IReplayMovieManager *g_pReplayMovieManager;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
class CReplayItemManager : public IReplayItemManager
|
||||
{
|
||||
public:
|
||||
virtual int GetItemCount()
|
||||
{
|
||||
return g_pReplayManager->GetReplayCount();
|
||||
}
|
||||
|
||||
virtual void GetItems( CUtlLinkedList< IQueryableReplayItem *, int > &items )
|
||||
{
|
||||
g_pReplayManager->GetReplaysAsQueryableItems( items );
|
||||
}
|
||||
|
||||
virtual IQueryableReplayItem *GetItem( ReplayItemHandle_t hItem )
|
||||
{
|
||||
return static_cast< CReplay * >( g_pReplayManager->GetReplay( (ReplayHandle_t)hItem ) );
|
||||
}
|
||||
|
||||
virtual bool AreItemsMovies()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
virtual void DeleteItem( Panel *pPage, ReplayItemHandle_t hItem, bool bNotifyUI )
|
||||
{
|
||||
g_pReplayManager->DeleteReplay( (ReplayHandle_t)hItem, bNotifyUI );
|
||||
}
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
class CMovieItemManager : public IReplayItemManager
|
||||
{
|
||||
public:
|
||||
virtual int GetItemCount()
|
||||
{
|
||||
return g_pReplayMovieManager->GetMovieCount();
|
||||
}
|
||||
|
||||
virtual void GetItems( CUtlLinkedList< IQueryableReplayItem *, int > &items )
|
||||
{
|
||||
g_pReplayMovieManager->GetMoviesAsQueryableItems( items );
|
||||
}
|
||||
|
||||
virtual IQueryableReplayItem *GetItem( ReplayItemHandle_t hItem )
|
||||
{
|
||||
return g_pReplayMovieManager->GetMovie( (ReplayHandle_t)hItem );
|
||||
}
|
||||
|
||||
virtual bool AreItemsMovies()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
virtual void DeleteItem( Panel *pPage, ReplayItemHandle_t hItem, bool bNotifyUI )
|
||||
{
|
||||
CReplayBrowserBasePage *pBasePage = static_cast< CReplayBrowserBasePage * >( pPage );
|
||||
|
||||
// Free the lock so the file is deletable
|
||||
pBasePage->FreeDetailsPanelMovieLock();
|
||||
|
||||
// Delete the entry & the file
|
||||
g_pReplayMovieManager->DeleteMovie( hItem );
|
||||
}
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
static CReplayItemManager s_ReplayItemManager;
|
||||
static CMovieItemManager s_MovieItemManager;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
IReplayItemManager *GetReplayItemManager()
|
||||
{
|
||||
return &s_ReplayItemManager;
|
||||
}
|
||||
|
||||
IReplayItemManager *GetReplayMovieItemManager()
|
||||
{
|
||||
return &s_MovieItemManager;
|
||||
}
|
||||
|
||||
IQueryableReplayItem *FindReplayItem( ReplayItemHandle_t hItem, IReplayItemManager **ppItemManager )
|
||||
{
|
||||
static IReplayItemManager *s_pItemManagers[] = { &s_ReplayItemManager, &s_MovieItemManager };
|
||||
|
||||
if ( ppItemManager )
|
||||
{
|
||||
*ppItemManager = NULL;
|
||||
}
|
||||
|
||||
for ( int i = 0; i < 2; ++i )
|
||||
{
|
||||
IQueryableReplayItem *pItem = s_pItemManagers[ i ]->GetItem( hItem );
|
||||
if ( pItem )
|
||||
{
|
||||
if ( ppItemManager )
|
||||
{
|
||||
*ppItemManager = s_pItemManagers[ i ];
|
||||
}
|
||||
return pItem;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user