Esempio n. 1
0
        private static INanoPacket CreateFromStreamerHeader(EndianReader reader, NanoChannel channel)
        {
            if (channel == NanoChannel.Unknown)
            {
                throw new NanoPackingException(
                          $"Received Streamer Msg on UNKNOWN channel");
            }

            StreamerHeader streamerHeader = new StreamerHeader();

            streamerHeader.Deserialize(reader);
            uint streamerType = streamerHeader.PacketType;

            switch (channel)
            {
            case NanoChannel.Audio:
            case NanoChannel.ChatAudio:
                return(CreateFromAudioPayloadType((AudioPayloadType)streamerType));

            case NanoChannel.Video:
                return(CreateFromVideoPayloadType((VideoPayloadType)streamerType));

            case NanoChannel.Input:
            case NanoChannel.InputFeedback:
                return(CreateFromInputPayloadType((InputPayloadType)streamerType));

            case NanoChannel.Control:
                // Skip to opCode
                reader.Seek(8, SeekOrigin.Current);
                ushort opCode = reader.ReadUInt16LE();
                return(CreateFromControlOpCode((ControlOpCode)opCode));

            default:
                throw new NanoPackingException(
                          $"Received Streamer Msg on INVALID channel: {channel}");
            }
        }
 public void Deserialize(EndianReader reader)
 {
     StreamerHeader.Deserialize(reader);
     ControlHeader.Deserialize(reader);
     DeserializeStreamer(reader);
 }
 public void Deserialize(EndianReader reader)
 {
     StreamerHeader.Deserialize(reader);
     StreamerSize = reader.ReadUInt32LE();
     DeserializeStreamer(reader);
 }
Esempio n. 4
0
 public void Deserialize(BinaryReader reader)
 {
     StreamerHeader.Deserialize(reader);
     ControlHeader.Deserialize(reader);
     DeserializeStreamer(reader);
 }
Esempio n. 5
0
 public void Deserialize(BinaryReader reader)
 {
     StreamerHeader.Deserialize(reader);
     StreamerSize = reader.ReadUInt32();
     DeserializeStreamer(reader);
 }