aboutsummaryrefslogtreecommitdiff
path: root/mp/src/game/shared/voice_status.h
diff options
context:
space:
mode:
authorJørgen P. Tjernø <[email protected]>2013-12-02 19:31:46 -0800
committerJørgen P. Tjernø <[email protected]>2013-12-02 19:46:31 -0800
commitf56bb35301836e56582a575a75864392a0177875 (patch)
treede61ddd39de3e7df52759711950b4c288592f0dc /mp/src/game/shared/voice_status.h
parentMark some more files as text. (diff)
downloadsource-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz
source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip
Fix line endings. WHAMMY.
Diffstat (limited to 'mp/src/game/shared/voice_status.h')
-rw-r--r--mp/src/game/shared/voice_status.h394
1 files changed, 197 insertions, 197 deletions
diff --git a/mp/src/game/shared/voice_status.h b/mp/src/game/shared/voice_status.h
index 0e659c33..f9bc4268 100644
--- a/mp/src/game/shared/voice_status.h
+++ b/mp/src/game/shared/voice_status.h
@@ -1,197 +1,197 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//=============================================================================//
-
-#ifndef VOICE_STATUS_H
-#define VOICE_STATUS_H
-#pragma once
-
-
-#include <vgui_controls/Label.h>
-//#include "vgui_bitmap.h"
-#include <vgui_controls/Button.h>
-#include <vgui_controls/Image.h>
-#include "voice_common.h"
-#include "voice_banmgr.h"
-#include "hudelement.h"
-
-#ifdef VOICE_VOX_ENABLE
-extern ConVar voice_vox;
-#endif // VOICE_VOX_ENABLE
-
-class CVoiceStatus;
-class IMaterial;
-class BitmapImage;
-
-// Voice Panel
-class CVoicePanel : public vgui::Panel
-{
-public:
- CVoicePanel( );
- ~CVoicePanel();
-
- virtual void Paint( void );
- virtual void setImage( BitmapImage *pImage );
-
-private:
- BitmapImage *m_pImage;
-};
-
-class CVoiceLabel
-{
-public:
- vgui::Label *m_pLabel;
- vgui::Label *m_pBackground;
- CVoicePanel *m_pIcon; // Voice icon next to player name.
- int m_clientindex; // Client index of the speaker. -1 if this label isn't being used.
-};
-
-// This is provided by each mod to access data that may not be the same across mods.
-abstract_class IVoiceStatusHelper
-{
-public:
- virtual ~IVoiceStatusHelper() {}
-
- // Get RGB color for voice status text about this player.
- virtual void GetPlayerTextColor(int entindex, int color[3]) = 0;
-
- // Force it to update the cursor state.
- virtual void UpdateCursorState() = 0;
-
- // Return true if the voice manager is allowed to show speaker labels
- // (mods usually return false when the scoreboard is up).
- virtual bool CanShowSpeakerLabels() = 0;
-};
-
-class CVoiceStatus /*: public vgui::CDefaultInputSignal*/
-{
-public:
- CVoiceStatus();
- virtual ~CVoiceStatus();
-
-// CHudBase overrides.
-public:
-
- // Initialize the cl_dll's voice manager.
- virtual int Init(
- IVoiceStatusHelper *m_pHelper,
- vgui::VPANEL pParentPanel);
-
- // ackPosition is the bottom position of where CVoiceStatus will draw the voice acknowledgement labels.
- virtual void VidInit();
-
-public:
-
- // Call from HUD_Frame each frame.
- void Frame(double frametime);
-
- // Called when a player starts or stops talking.
- // entindex is -1 to represent the local client talking (before the data comes back from the server).
- // When the server acknowledges that the local client is talking, then entindex will be gEngfuncs.GetLocalPlayer().
- // entindex is -2 to represent the local client's voice being acked by the server.
- void UpdateSpeakerStatus(int entindex, bool bTalking);
-
- // Call from the HUD_CreateEntities function so it can add sprites above player heads.
- void DrawHeadLabels();
- void SetHeadLabelOffset( float offset );
- float GetHeadLabelOffset( void ) const;
- void SetHeadLabelsDisabled( bool bDisabled ) { m_bHeadLabelsDisabled = bDisabled; }
-
- // Called when the server registers a change to who this client can hear.
- void HandleVoiceMaskMsg(bf_read &msg);
-
- // The server sends this message initially to tell the client to send their state.
- void HandleReqStateMsg(bf_read &msg);
-
-
-// Squelch mode functions.
-public:
-
- // When you enter squelch mode, pass in
- void StartSquelchMode();
- void StopSquelchMode();
- bool IsInSquelchMode();
-
- // returns true if the target client has been banned
- // playerIndex is of range 1..maxplayers
- bool IsPlayerBlocked(int iPlayerIndex);
-
- // returns false if the player can't hear the other client due to game rules (eg. the other team)
- bool IsPlayerAudible(int iPlayerIndex);
-
- // returns true if the player is currently speaking
- bool IsPlayerSpeaking(int iPlayerIndex);
-
- // returns true if the local player is attempting to speak
- bool IsLocalPlayerSpeaking( void );
-
- // blocks the target client from being heard
- void SetPlayerBlockedState(int iPlayerIndex, bool blocked);
-
- void SetHeadLabelMaterial( const char *pszMaterial );
-
- IMaterial *GetHeadLabelMaterial( void ) { return m_pHeadLabelMaterial; }
-
-private:
-
- void UpdateServerState(bool bForce);
-
- // Update the button artwork to reflect the client's current state.
- void UpdateBanButton(int iClient);
-
-
-private:
- float m_LastUpdateServerState; // Last time we called this function.
- int m_bServerModEnable; // What we've sent to the server about our "voice_modenable" cvar.
-
- vgui::VPANEL m_pParentPanel;
- CPlayerBitVec m_VoicePlayers; // Who is currently talking. Indexed by client index.
-
- // This is the gamerules-defined list of players that you can hear. It is based on what teams people are on
- // and is totally separate from the ban list. Indexed by client index.
- CPlayerBitVec m_AudiblePlayers;
-
- // Players who have spoken at least once in the game so far
- CPlayerBitVec m_VoiceEnabledPlayers;
-
- // This is who the server THINKS we have banned (it can become incorrect when a new player arrives on the server).
- // It is checked periodically, and the server is told to squelch or unsquelch the appropriate players.
- CPlayerBitVec m_ServerBannedPlayers;
-
- IVoiceStatusHelper *m_pHelper; // Each mod provides an implementation of this.
-
- // Squelch mode stuff.
- bool m_bInSquelchMode;
-
- bool m_bTalking; // Set to true when the client thinks it's talking.
- bool m_bServerAcked; // Set to true when the server knows the client is talking.
-
-public:
-
- CVoiceBanMgr m_BanMgr; // Tracks which users we have squelched and don't want to hear.
-
-private:
-
- IMaterial *m_pHeadLabelMaterial; // For labels above players' heads.
-
- bool m_bBanMgrInitialized;
-
- int m_nControlSize;
-
- bool m_bHeadLabelsDisabled;
-
-#ifdef VOICE_VOX_ENABLE
- CountdownTimer m_bAboveThresholdTimer;
-#endif // VOICE_VOX_ENABLE
-};
-
-
-// Get the (global) voice manager.
-CVoiceStatus* GetClientVoiceMgr();
-void ClientVoiceMgr_Init();
-void ClientVoiceMgr_Shutdown();
-
-#endif // VOICE_STATUS_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef VOICE_STATUS_H
+#define VOICE_STATUS_H
+#pragma once
+
+
+#include <vgui_controls/Label.h>
+//#include "vgui_bitmap.h"
+#include <vgui_controls/Button.h>
+#include <vgui_controls/Image.h>
+#include "voice_common.h"
+#include "voice_banmgr.h"
+#include "hudelement.h"
+
+#ifdef VOICE_VOX_ENABLE
+extern ConVar voice_vox;
+#endif // VOICE_VOX_ENABLE
+
+class CVoiceStatus;
+class IMaterial;
+class BitmapImage;
+
+// Voice Panel
+class CVoicePanel : public vgui::Panel
+{
+public:
+ CVoicePanel( );
+ ~CVoicePanel();
+
+ virtual void Paint( void );
+ virtual void setImage( BitmapImage *pImage );
+
+private:
+ BitmapImage *m_pImage;
+};
+
+class CVoiceLabel
+{
+public:
+ vgui::Label *m_pLabel;
+ vgui::Label *m_pBackground;
+ CVoicePanel *m_pIcon; // Voice icon next to player name.
+ int m_clientindex; // Client index of the speaker. -1 if this label isn't being used.
+};
+
+// This is provided by each mod to access data that may not be the same across mods.
+abstract_class IVoiceStatusHelper
+{
+public:
+ virtual ~IVoiceStatusHelper() {}
+
+ // Get RGB color for voice status text about this player.
+ virtual void GetPlayerTextColor(int entindex, int color[3]) = 0;
+
+ // Force it to update the cursor state.
+ virtual void UpdateCursorState() = 0;
+
+ // Return true if the voice manager is allowed to show speaker labels
+ // (mods usually return false when the scoreboard is up).
+ virtual bool CanShowSpeakerLabels() = 0;
+};
+
+class CVoiceStatus /*: public vgui::CDefaultInputSignal*/
+{
+public:
+ CVoiceStatus();
+ virtual ~CVoiceStatus();
+
+// CHudBase overrides.
+public:
+
+ // Initialize the cl_dll's voice manager.
+ virtual int Init(
+ IVoiceStatusHelper *m_pHelper,
+ vgui::VPANEL pParentPanel);
+
+ // ackPosition is the bottom position of where CVoiceStatus will draw the voice acknowledgement labels.
+ virtual void VidInit();
+
+public:
+
+ // Call from HUD_Frame each frame.
+ void Frame(double frametime);
+
+ // Called when a player starts or stops talking.
+ // entindex is -1 to represent the local client talking (before the data comes back from the server).
+ // When the server acknowledges that the local client is talking, then entindex will be gEngfuncs.GetLocalPlayer().
+ // entindex is -2 to represent the local client's voice being acked by the server.
+ void UpdateSpeakerStatus(int entindex, bool bTalking);
+
+ // Call from the HUD_CreateEntities function so it can add sprites above player heads.
+ void DrawHeadLabels();
+ void SetHeadLabelOffset( float offset );
+ float GetHeadLabelOffset( void ) const;
+ void SetHeadLabelsDisabled( bool bDisabled ) { m_bHeadLabelsDisabled = bDisabled; }
+
+ // Called when the server registers a change to who this client can hear.
+ void HandleVoiceMaskMsg(bf_read &msg);
+
+ // The server sends this message initially to tell the client to send their state.
+ void HandleReqStateMsg(bf_read &msg);
+
+
+// Squelch mode functions.
+public:
+
+ // When you enter squelch mode, pass in
+ void StartSquelchMode();
+ void StopSquelchMode();
+ bool IsInSquelchMode();
+
+ // returns true if the target client has been banned
+ // playerIndex is of range 1..maxplayers
+ bool IsPlayerBlocked(int iPlayerIndex);
+
+ // returns false if the player can't hear the other client due to game rules (eg. the other team)
+ bool IsPlayerAudible(int iPlayerIndex);
+
+ // returns true if the player is currently speaking
+ bool IsPlayerSpeaking(int iPlayerIndex);
+
+ // returns true if the local player is attempting to speak
+ bool IsLocalPlayerSpeaking( void );
+
+ // blocks the target client from being heard
+ void SetPlayerBlockedState(int iPlayerIndex, bool blocked);
+
+ void SetHeadLabelMaterial( const char *pszMaterial );
+
+ IMaterial *GetHeadLabelMaterial( void ) { return m_pHeadLabelMaterial; }
+
+private:
+
+ void UpdateServerState(bool bForce);
+
+ // Update the button artwork to reflect the client's current state.
+ void UpdateBanButton(int iClient);
+
+
+private:
+ float m_LastUpdateServerState; // Last time we called this function.
+ int m_bServerModEnable; // What we've sent to the server about our "voice_modenable" cvar.
+
+ vgui::VPANEL m_pParentPanel;
+ CPlayerBitVec m_VoicePlayers; // Who is currently talking. Indexed by client index.
+
+ // This is the gamerules-defined list of players that you can hear. It is based on what teams people are on
+ // and is totally separate from the ban list. Indexed by client index.
+ CPlayerBitVec m_AudiblePlayers;
+
+ // Players who have spoken at least once in the game so far
+ CPlayerBitVec m_VoiceEnabledPlayers;
+
+ // This is who the server THINKS we have banned (it can become incorrect when a new player arrives on the server).
+ // It is checked periodically, and the server is told to squelch or unsquelch the appropriate players.
+ CPlayerBitVec m_ServerBannedPlayers;
+
+ IVoiceStatusHelper *m_pHelper; // Each mod provides an implementation of this.
+
+ // Squelch mode stuff.
+ bool m_bInSquelchMode;
+
+ bool m_bTalking; // Set to true when the client thinks it's talking.
+ bool m_bServerAcked; // Set to true when the server knows the client is talking.
+
+public:
+
+ CVoiceBanMgr m_BanMgr; // Tracks which users we have squelched and don't want to hear.
+
+private:
+
+ IMaterial *m_pHeadLabelMaterial; // For labels above players' heads.
+
+ bool m_bBanMgrInitialized;
+
+ int m_nControlSize;
+
+ bool m_bHeadLabelsDisabled;
+
+#ifdef VOICE_VOX_ENABLE
+ CountdownTimer m_bAboveThresholdTimer;
+#endif // VOICE_VOX_ENABLE
+};
+
+
+// Get the (global) voice manager.
+CVoiceStatus* GetClientVoiceMgr();
+void ClientVoiceMgr_Init();
+void ClientVoiceMgr_Shutdown();
+
+#endif // VOICE_STATUS_H