private void _read() { _magic = m_io.ReadBytes(1); if (!((KaitaiStream.ByteArrayCompare(Magic, new byte[] { 255 }) == 0))) { throw new ValidationNotEqualError(new byte[] { 255 }, Magic, M_Io, "/types/segment/seq/0"); } _marker = ((MarkerEnum)m_io.ReadU1()); if (((Marker != MarkerEnum.Soi) && (Marker != MarkerEnum.Eoi))) { _length = m_io.ReadU2be(); } if (((Marker != MarkerEnum.Soi) && (Marker != MarkerEnum.Eoi))) { switch (Marker) { case MarkerEnum.App1: { __raw_data = m_io.ReadBytes((Length - 2)); var io___raw_data = new KaitaiStream(__raw_data); _data = new SegmentApp1(io___raw_data, this, m_root); break; } case MarkerEnum.App0: { __raw_data = m_io.ReadBytes((Length - 2)); var io___raw_data = new KaitaiStream(__raw_data); _data = new SegmentApp0(io___raw_data, this, m_root); break; } case MarkerEnum.Sof0: { __raw_data = m_io.ReadBytes((Length - 2)); var io___raw_data = new KaitaiStream(__raw_data); _data = new SegmentSof0(io___raw_data, this, m_root); break; } case MarkerEnum.Sos: { __raw_data = m_io.ReadBytes((Length - 2)); var io___raw_data = new KaitaiStream(__raw_data); _data = new SegmentSos(io___raw_data, this, m_root); break; } default: { _data = m_io.ReadBytes((Length - 2)); break; } } } if (Marker == MarkerEnum.Sos) { _imageData = m_io.ReadBytesFull(); } }
private void _read() { _magic = m_io.EnsureFixedContents(new byte[] { 255 }); _marker = ((MarkerEnum)m_io.ReadU1()); if (((Marker != MarkerEnum.Soi) && (Marker != MarkerEnum.Eoi))) { _length = m_io.ReadU2be(); } if (((Marker != MarkerEnum.Soi) && (Marker != MarkerEnum.Eoi))) { switch (Marker) { case MarkerEnum.Sos: { __raw_data = m_io.ReadBytes((Length - 2)); var io___raw_data = new KaitaiStream(__raw_data); _data = new SegmentSos(io___raw_data, this, m_root); break; } case MarkerEnum.App1: { __raw_data = m_io.ReadBytes((Length - 2)); var io___raw_data = new KaitaiStream(__raw_data); _data = new SegmentApp1(io___raw_data, this, m_root); break; } case MarkerEnum.Sof0: { __raw_data = m_io.ReadBytes((Length - 2)); var io___raw_data = new KaitaiStream(__raw_data); _data = new SegmentSof0(io___raw_data, this, m_root); break; } case MarkerEnum.App0: { __raw_data = m_io.ReadBytes((Length - 2)); var io___raw_data = new KaitaiStream(__raw_data); _data = new SegmentApp0(io___raw_data, this, m_root); break; } default: { _data = m_io.ReadBytes((Length - 2)); break; } } } if (Marker == MarkerEnum.Sos) { _imageData = m_io.ReadBytesFull(); } }