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}"); } }
public void Deserialize(BinaryReader br) { PreviousSequence = br.ReadUInt32(); Unknown1 = br.ReadUInt16(); Unknown2 = br.ReadUInt16(); OpCode = (ControlOpCode)br.ReadUInt16(); }
public void Deserialize(EndianReader br) { PreviousSequence = br.ReadUInt32LE(); Unknown1 = br.ReadUInt16LE(); Unknown2 = br.ReadUInt16LE(); OpCode = (ControlOpCode)br.ReadUInt16LE(); }
public ControlHeader(uint previousSequence, ushort unknown1, ushort unknown2, ControlOpCode opCode) { PreviousSequence = previousSequence; Unknown1 = unknown1; Unknown2 = unknown2; OpCode = opCode; }
private static ISerializableLE CreateFromControlOpCode(ControlOpCode opCode) { var type = ControlOpCodeAttribute.GetTypeForMessageType(opCode); if (type == null) { return(null); } return((ISerializableLE)Activator.CreateInstance(type)); }
public StreamerMessageWithHeader(ControlOpCode opCode) { Header = new RtpHeader() { PayloadType = NanoPayloadType.Streamer }; StreamerHeader = new StreamerHeader() { PacketType = 0 }; ControlHeader = new StreamerControlHeader(opCode); }
private static INanoPacket CreateFromControlOpCode(ControlOpCode opCode) { switch (opCode) { case ControlOpCode.ChangeVideoQuality: return(new ChangeVideoQuality()); case ControlOpCode.ControllerEvent: return(new ControllerEvent()); case ControlOpCode.InitiateNetworkTest: return(new InitiateNetworkTest()); case ControlOpCode.NetworkInformation: return(new NetworkInformation()); case ControlOpCode.NetworkTestResponse: return(new NetworkTestResponse()); case ControlOpCode.RealtimeTelemetry: return(new RealtimeTelemetry()); case ControlOpCode.SessionCreate: return(new SessionCreate()); case ControlOpCode.SessionCreateResponse: return(new SessionCreateResponse()); case ControlOpCode.SessionDestroy: return(new SessionDestroy()); case ControlOpCode.SessionInit: return(new SessionInit()); case ControlOpCode.VideoStatistics: return(new VideoStatistics()); default: throw new NanoPackingException($"Invalid Control OpCode: {opCode}"); } }
public StreamerControlHeader(ControlOpCode opCode) { OpCode = opCode; }
public ControlOpCodeAttribute(ControlOpCode messageType) { MessageType = messageType; }
public static Type GetTypeForMessageType(ControlOpCode messageType) { return(_typeMapping.GetTypeForKey(messageType)); }