diff options
Diffstat (limited to 'mp/src/game/client/basepresence.h')
| -rw-r--r-- | mp/src/game/client/basepresence.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/mp/src/game/client/basepresence.h b/mp/src/game/client/basepresence.h new file mode 100644 index 00000000..fa7a385d --- /dev/null +++ b/mp/src/game/client/basepresence.h @@ -0,0 +1,55 @@ +//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose: Base implementation of the IPresence interface
+//
+//=============================================================================
+
+#ifndef BASEPRESENCE_H
+#define BASEPRESENCE_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "ipresence.h"
+#include "igamesystem.h"
+
+//-----------------------------------------------------------------------------
+// Purpose: Common implementation for setting user contexts and properties.
+// Each client should inherit from this to implement mod-specific presence info.
+//-----------------------------------------------------------------------------
+class CBasePresence : public IPresence, public CAutoGameSystemPerFrame
+{
+public:
+ // CBaseGameSystemPerFrame overrides
+ virtual bool Init( void );
+ virtual void Shutdown( void );
+ virtual void Update( float frametime );
+ virtual char const *Name( void ) { return "presence"; }
+
+ // IPresence Interface
+ virtual void UserSetContext( unsigned int nUserIndex, unsigned int nContextId, unsigned int nContextValue, bool bAsync = false );
+ virtual void UserSetProperty( unsigned int nUserIndex, unsigned int nPropertyId, unsigned int nBytes, const void *pvValue, bool bAsync = false );
+ virtual void SetupGameProperties( CUtlVector< XUSER_CONTEXT > &contexts, CUtlVector< XUSER_PROPERTY > &properties );
+ virtual uint GetPresenceID( const char *pIdName );
+ virtual void GetPropertyDisplayString( uint id, uint value, char *pOutput, int nBytes );
+ virtual const char *GetPropertyIdString( const uint id );
+
+ // Stats reporting
+ virtual void StartStatsReporting( HANDLE handle, bool bArbitrated );
+ virtual void SetStat( uint iPropertyId, int iPropertyValue, int dataType );
+ virtual void UploadStats();
+
+protected:
+ bool m_bArbitrated;
+ bool m_bReportingStats;
+ HANDLE m_hSession;
+ CUtlVector< XUSER_PROPERTY > m_PlayerStats;
+
+ //---------------------------------------------------------
+ // Debug support
+ //---------------------------------------------------------
+ CON_COMMAND_MEMBER_F( CBasePresence, "user_context", DebugUserSetContext, "Set a Rich Presence Context: user_context <context id> <context value>", 0 )
+ CON_COMMAND_MEMBER_F( CBasePresence, "user_property", DebugUserSetProperty, "Set a Rich Presence Property: user_property <property id>", 0 )
+};
+
+#endif // BASEPRESENCE_H
|