Exemple #1
0
        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);
 }
Exemple #7
0
        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;
 }
Exemple #9
0
 public ControlOpCodeAttribute(ControlOpCode messageType)
 {
     MessageType = messageType;
 }
Exemple #10
0
 public static Type GetTypeForMessageType(ControlOpCode messageType)
 {
     return(_typeMapping.GetTypeForKey(messageType));
 }