summaryrefslogtreecommitdiff
path: root/public/ihltv.h
diff options
context:
space:
mode:
Diffstat (limited to 'public/ihltv.h')
-rw-r--r--public/ihltv.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/public/ihltv.h b/public/ihltv.h
new file mode 100644
index 0000000..4fd3a22
--- /dev/null
+++ b/public/ihltv.h
@@ -0,0 +1,48 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//
+//=============================================================================//
+
+#ifndef IHLTV_H
+#define IHLTV_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "interface.h"
+
+class IServer;
+class IHLTVDirector;
+class IGameEvent;
+struct netadr_s;
+
+//-----------------------------------------------------------------------------
+// Interface the HLTV module exposes to the engine
+//-----------------------------------------------------------------------------
+#define INTERFACEVERSION_HLTVSERVER "HLTVServer001"
+
+class IHLTVServer : public IBaseInterface
+{
+public:
+ virtual ~IHLTVServer() {}
+
+ virtual IServer *GetBaseServer( void ) = 0; // get HLTV base server interface
+ virtual IHLTVDirector *GetDirector( void ) = 0; // get director interface
+ virtual int GetHLTVSlot( void ) = 0; // return entity index-1 of HLTV in game
+ virtual float GetOnlineTime( void ) = 0; // seconds since broadcast started
+ virtual void GetLocalStats( int &proxies, int &slots, int &specs ) = 0;
+ virtual void GetGlobalStats( int &proxies, int &slots, int &specs ) = 0;
+
+ virtual const netadr_s *GetRelayAddress( void ) = 0; // returns relay address
+
+ virtual bool IsMasterProxy( void ) = 0; // true, if this is the HLTV master proxy
+ virtual bool IsDemoPlayback( void ) = 0; // true if this is a HLTV demo
+
+ virtual void BroadcastEvent(IGameEvent *event) = 0; // send a director command to all specs
+};
+
+#endif