aboutsummaryrefslogtreecommitdiff
path: root/mp/src/game/client/replay/vgui/replaybrowseritemmanager.h
blob: 4468119a6789590bd58963aa60b3715f6b79ffb1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//

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

#include "utllinkedlist.h"
#include <vgui_controls/Panel.h>

//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
typedef int ReplayItemHandle_t;

//-----------------------------------------------------------------------------
// Purpose: Layer of abstraction between UI and replay demos or rendered movies
//-----------------------------------------------------------------------------
class IQueryableReplayItem;

abstract_class IReplayItemManager : public IBaseInterface
{
public:
	virtual int						GetItemCount() = 0;
	virtual void					GetItems( CUtlLinkedList< IQueryableReplayItem *, int > &items ) = 0;
	virtual IQueryableReplayItem	*GetItem( ReplayItemHandle_t hItem ) = 0;
	virtual bool					AreItemsMovies() = 0;
	virtual void					DeleteItem( vgui::Panel *pPage, ReplayItemHandle_t hItem, bool bNotifyUI ) = 0;
};

IReplayItemManager *GetReplayItemManager();
IReplayItemManager *GetReplayMovieItemManager();

// Find an item and put the item manager in ppItemManager
IQueryableReplayItem *FindReplayItem( ReplayItemHandle_t hItem, IReplayItemManager **ppItemManager );

#endif // REPLAYBROWSER_ITEMMANAGER_H