text: //========= Copyright Valve Corporation, All rights reserved. ============//
  //
  // Purpose: 
  //
  // $NoKeywords: $
  //=============================================================================//
  
  #ifndef RADIO_STATUS_H
  #define RADIO_STATUS_H
  #pragma once
  
  class IMaterial;
  
  class CRadioStatus : public CAutoGameSystem
  {
  public:
  	CRadioStatus();
  
  	virtual bool Init();
  	virtual void Shutdown();
  
  	virtual void LevelInitPostEntity();
  	virtual void LevelShutdownPreEntity();
  	
  public:
  
  	// Called when a player uses the radio
  	void	UpdateRadioStatus(int entindex, float duration);
  
  	// Called when a player (bot) speaks a wav file
  	void	UpdateVoiceStatus(int entindex, float duration);
  
  	// Call from the HUD_CreateEntities function so it can add sprites above player heads.
  	void	DrawHeadLabels();
  
  private:
  
  
  	float		m_radioUntil[MAX_PLAYERS];	// Who is currently talking. Indexed by client index.
  	IMaterial	*m_pHeadLabelMaterial;		// For labels above players' heads.
  
  	void		ExpireBotVoice( bool force = false );
  	float		m_voiceUntil[MAX_PLAYERS];	// Who is currently talking. Indexed by client index.
  };
  
  
  // Get the (global) voice manager. 
  CRadioStatus* RadioManager();
  
  
  #endif // RADIO_STATUS_H
  