Exemple #1
0
        public void ParseFromBank(MemoryStream ms, bool workaroundForLegacy)
        {
            ProgramName           = ms.ReadNullTerminatedString(PRESET_NAME_LENGTH);
            StuffAfterProgramName = ms.ReadBytes(STUFF_AFTER_PRESET_NAME_LENGTH);

            var endPos = ms.Position + NumParameters * 4;

            if (endPos > ms.Length)
            {
                if (workaroundForLegacy)
                {
                    ProgramData = ms.ReadBytes((NumParameters - 1) * 4);
                    ProgramData = ProgramData.Concat(WORKAROUND_FILLER).ToArray();
                }
                else
                {
                    throw new SpireException("Unexpected end of file.");
                }
            }
            else
            {
                ProgramData = ms.ReadBytes(NumParameters * 4);
            }
        }