private void onFrame(int channelId, int playerId, byte voiceId, byte evNumber, byte[] receivedBytes) { if (this.DebugLostPercent > 0 && rnd.Next(100) < this.DebugLostPercent) { this.transport.LogWarning("[PV] Debug Lost Sim: 1 packet dropped"); return; } FramesReceived++; Dictionary <int, Dictionary <byte, RemoteVoice> > channelVoices = null; if (this.remoteVoices.TryGetValue(channelId, out channelVoices)) { Dictionary <byte, RemoteVoice> playerVoices = null; if (channelVoices.TryGetValue(playerId, out playerVoices)) { RemoteVoice voice = null; if (playerVoices.TryGetValue(voiceId, out voice)) { voice.receiveBytes(receivedBytes, evNumber); } else { this.transport.LogWarning("[PV] Frame event for not inited voice #" + voiceId + " of player " + this.playerStr(playerId) + " at channel " + this.channelStr(channelId)); } } else { this.transport.LogWarning("[PV] Frame event for voice #" + voiceId + " of not inited player " + this.playerStr(playerId) + " at channel " + this.channelStr(channelId)); } } else { this.transport.LogWarning("[PV] Frame event for voice #" + voiceId + " of not inited channel " + this.channelStr(channelId)); } }
internal void onFrame(int channelId, int playerId, byte voiceId, byte evNumber, byte[] receivedBytes, FrameFlags flags, bool isLocalPlayer) { if (isLocalPlayer) { // rtt measurement in debug echo mode LocalVoice voice; if (this.localVoices.TryGetValue(voiceId, out voice)) { int sendTime; if (voice.eventTimestamps.TryGetValue(evNumber, out sendTime)) { int rtt = Environment.TickCount - sendTime; int rttvar = rtt - prevRtt; prevRtt = rtt; if (rttvar < 0) { rttvar = -rttvar; } this.RoundTripTimeVariance = (rttvar + RoundTripTimeVariance * 19) / 20; this.RoundTripTime = (rtt + RoundTripTime * 19) / 20; } } //internal Dictionary<byte, DateTime> localEventTimestamps = new Dictionary<byte, DateTime>(); } if (this.DebugLostPercent > 0 && rnd.Next(100) < this.DebugLostPercent) { this.transport.LogWarning("[PV] Debug Lost Sim: 1 packet dropped"); return; } FramesReceived++; Dictionary <byte, RemoteVoice> playerVoices = null; if (remoteVoices.TryGetValue(playerId, out playerVoices)) { RemoteVoice voice = null; if (playerVoices.TryGetValue(voiceId, out voice)) { voice.receiveBytes(receivedBytes, flags, evNumber); } else { this.transport.LogWarning("[PV] Frame event for not inited voice #" + voiceId + " of player " + this.playerStr(playerId) + " at channel " + this.channelStr(channelId)); } } else { this.transport.LogWarning("[PV] Frame event for voice #" + voiceId + " of not inited player " + this.playerStr(playerId) + " at channel " + this.channelStr(channelId)); } }