networking
This commit is contained in:
60
external/steamworks/steamworksexample/voicechat.h
vendored
Normal file
60
external/steamworks/steamworksexample/voicechat.h
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
//========= Copyright © 1996-2010, Valve LLC, All rights reserved. ============
|
||||
//
|
||||
// Purpose: Class for P2P voice chat
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================
|
||||
|
||||
#ifndef VOICE_CHAT_H
|
||||
#define VOICE_CHAT_H
|
||||
|
||||
#include "GameEngine.h"
|
||||
#include "SpaceWar.h"
|
||||
#include "Messages.h"
|
||||
#include "steam/isteamnetworkingsockets.h"
|
||||
|
||||
typedef struct VoiceChatConnection_s
|
||||
{
|
||||
uint64 ulLastReceiveVoiceTime;
|
||||
HGAMEVOICECHANNEL hVoiceChannel; // engine voice channel for this player
|
||||
bool bActive;
|
||||
} VoiceChatConnection_t;
|
||||
|
||||
class CVoiceChat
|
||||
{
|
||||
public:
|
||||
|
||||
CVoiceChat( IGameEngine *pGameEngine );
|
||||
~CVoiceChat();
|
||||
|
||||
bool StartVoiceChat();
|
||||
void StopVoiceChat();
|
||||
|
||||
// chat control
|
||||
void MarkAllPlayersInactive();
|
||||
void MarkPlayerAsActive( CSteamID steamID );
|
||||
|
||||
bool IsPlayerTalking( CSteamID steamID );
|
||||
|
||||
// chat engine
|
||||
void RunFrame();
|
||||
void HandleVoiceChatData( const void *pMessage );
|
||||
|
||||
HSteamNetConnection m_hConnServer;
|
||||
|
||||
private:
|
||||
|
||||
// Pointer to engine instance (so we can play sound)
|
||||
IGameEngine *m_pGameEngine;
|
||||
|
||||
// map of voice chat sessions with other players
|
||||
std::map< uint64, VoiceChatConnection_t > m_MapConnections;
|
||||
|
||||
CSteamID m_SteamIDLocalUser; // ourself
|
||||
bool m_bIsActive; // is voice chat system active
|
||||
uint64 m_ulLastTimeTalked; // last time we've talked ourself
|
||||
HGAMEVOICECHANNEL m_hVoiceLoopback;
|
||||
uint8 m_ubUncompressedVoice[ VOICE_OUTPUT_SAMPLE_RATE * BYTES_PER_SAMPLE ]; // too big for the stack
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user