public void OnMessage(object sender, MessageReceivedEventArgs <INanoPacket> args) { StreamerMessageWithHeader streamer = args.Message as StreamerMessageWithHeader; ControlOpCode opCode = streamer.ControlHeader.OpCode; switch (opCode) { case ControlOpCode.NetworkTestResponse: OnNetworkTestResponse(streamer as NetworkTestResponse); break; case ControlOpCode.RealtimeTelemetry: OnRealtimeTelemetry(streamer as RealtimeTelemetry); break; case ControlOpCode.InitiateNetworkTest: case ControlOpCode.NetworkInformation: case ControlOpCode.SessionCreate: case ControlOpCode.SessionCreateResponse: case ControlOpCode.SessionDestroy: case ControlOpCode.SessionInit: case ControlOpCode.VideoStatistics: case ControlOpCode.ChangeVideoQuality: case ControlOpCode.ControllerEvent: throw new NotImplementedException( $"Invalid control message received: {opCode}"); } }
private Task SendControlPacket(StreamerMessageWithHeader packet, ushort unknown1 = 1, ushort unknown2 = 1406) { packet.ControlHeader.Unknown1 = unknown1; packet.ControlHeader.Unknown2 = unknown2; packet.ControlHeader.PreviousSequence = SequenceNumber; return(SendAsync(packet)); }