aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Xbox/Network/NetworkPlayerXbox.h
blob: 77ef84cc06e52c793d70b5ba5757cef0185eb39a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#pragma once

#include "..\..\Common\Network\NetworkPlayerInterface.h"

// This is an implementation of the INetworkPlayer interface, for Xbox 360. It effectively wraps the IQNetPlayer class in a non-platform-specific way. It is
// managed by PlatformNetworkManagerXbox.

class NetworkPlayerXbox : public INetworkPlayer
{
public:
	// Common player interface
	NetworkPlayerXbox(IQNetPlayer *qnetPlayer);
	virtual unsigned char GetSmallId();
	virtual void SendData(INetworkPlayer *player, const void *pvData, int dataSize, bool lowPriority, bool ack);
	virtual bool IsSameSystem(INetworkPlayer *player);
	virtual int GetOutstandingAckCount();
	virtual int GetSendQueueSizeBytes( INetworkPlayer *player, bool lowPriority );
	virtual int GetSendQueueSizeMessages( INetworkPlayer *player, bool lowPriority );
	virtual int GetCurrentRtt();
	virtual bool IsHost();
	virtual bool IsGuest();
	virtual bool IsLocal();
	virtual int GetSessionIndex();
	virtual bool IsTalking();
	virtual bool IsMutedByLocalUser(int userIndex);
	virtual bool HasVoice();
	virtual bool HasCamera();
	virtual int GetUserIndex();
	virtual void SetSocket(Socket *pSocket);
	virtual Socket *GetSocket();
	virtual const wchar_t *GetOnlineName();
	virtual std::wstring GetDisplayName();
	virtual PlayerUID GetUID();
	virtual void SentChunkPacket();
	virtual int GetTimeSinceLastChunkPacket_ms();

	// Extra xbox-specific things
	IQNetPlayer *GetQNetPlayer();
private:
	IQNetPlayer *m_qnetPlayer;
	Socket *m_pSocket;
	int64_t m_lastChunkPacketTime;
};