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); }
public void Deserialize(BinaryReader reader) { StreamerHeader.Deserialize(reader); ControlHeader.Deserialize(reader); DeserializeStreamer(reader); }
public void Deserialize(BinaryReader reader) { StreamerHeader.Deserialize(reader); StreamerSize = reader.ReadUInt32(); DeserializeStreamer(reader); }