Ejemplo n.º 1
0
        public void SerializeState(ProjectBuffer buffer)
        {
            if (buffer.IsWriting)
            {
                DeleteUnusedPatterns();
            }

            int patternCount = patterns.Count;

            buffer.Serialize(ref song);
            buffer.Serialize(ref patternCount);

            // At version 4 (FamiStudio 1.4.0) we added basic expansion audio.
            if (buffer.Version >= 4)
            {
                buffer.Serialize(ref type);
            }

            buffer.InitializeList(ref patterns, patternCount);
            foreach (var pattern in patterns)
            {
                pattern.SerializeState(buffer);
            }

            for (int i = 0; i < patternInstances.Length; i++)
            {
                buffer.Serialize(ref patternInstances[i], this);
            }

            if (buffer.IsReading && !buffer.IsForUndoRedo)
            {
                ClearPatternsInstancesPastSongLength();
            }
        }
Ejemplo n.º 2
0
        public void SerializeState(ProjectBuffer buffer)
        {
            if (buffer.IsWriting)
            {
                CleanupUnusedPatterns();
            }

            int patternCount = patterns.Count;

            buffer.Serialize(ref song);
            buffer.Serialize(ref patternCount);
            buffer.InitializeList(ref patterns, patternCount);

            foreach (var pattern in patterns)
            {
                pattern.SerializeState(buffer);
            }

            for (int i = 0; i < patternInstances.Length; i++)
            {
                buffer.Serialize(ref patternInstances[i], this);
            }
        }