Ejemplo n.º 1
0
        public static ArpeggioDefinition Load(string fileName)
        {
            Stream     objFileStream;
            FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.None);

            objFileStream = SongManager.GetStream(fileStream);

            ArpeggioDefinition result = SerializationUtils.Deserialize <ArpeggioDefinition>(objFileStream);

            objFileStream.Close();
            objFileStream.Dispose();

            return(result);
        }
Ejemplo n.º 2
0
        public static Song LoadSong(Stream stream)
        {
            Song result = null;

            using (Stream objFileStream = SongManager.GetStream(stream))
            {
                XmlSerializer formatter = new XmlSerializer(typeof(Song));
                result = (Song)formatter.Deserialize(objFileStream);
            }

            // Fix para cargar instrumentos de archivos antiguos y que el tema no se
            // fastidie.
            foreach (Instrument instrument in result.Instruments)
            {
                if (instrument.Volumes != null && instrument.PitchModifiers == null)
                {
                    instrument.SetVolumeLength(instrument.Volumes.Length);
                }
            }
            foreach (Effect effect in result.Effects)
            {
                if (effect.Volumes != null && effect.EnvTypes == null)
                {
                    effect.SetEffectLength(effect.Volumes.Length);
                }
            }

            if (result.Frequencies == null || result.Frequencies.Length == 0)
            {
                result.Frequencies = NoteFileLoader.LoadDefaultNotes();
            }

            if (result.ChipFrequency == 0)
            {
                result.ChipFrequency = (int)LibAYEmu.ChipSpeedsByMachine.MSX;
            }

            if (!result.DefaultCpcFreqs && !result.DefaultMsxFreqs && !result.CustomFreqs && !result.ParameterizedFreqs)
            {
                result.DefaultMsxFreqs = true;
                result.ParameterValue  = result.ChipFrequency;
            }

            return(result);
        }
Ejemplo n.º 3
0
        public static void Import(Song currentSong)
        {
            Instruments    loadedInstruments = null;
            OpenFileDialog ofd = new OpenFileDialog();

            ofd.Filter = WYZTracker.Core.Properties.Resources.INSFilter;
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                XmlSerializer formatter     = new XmlSerializer(typeof(Instruments));
                Stream        objFileStream = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read, FileShare.None);
                try
                {
                    loadedInstruments = (Instruments)formatter.Deserialize(objFileStream);
                }
                catch
                {
                    try
                    {
                        formatter = new XmlSerializer(typeof(Song));
                        objFileStream.Seek(0, SeekOrigin.Begin);
                        objFileStream     = SongManager.GetStream(objFileStream);
                        loadedInstruments = ((Song)formatter.Deserialize(objFileStream)).Instruments;
                    }
                    catch
                    {
                        loadedInstruments = null;
                    }
                }
                objFileStream.Close();
            }
            if (loadedInstruments != null)
            {
                foreach (Instrument i in loadedInstruments)
                {
                    if (i.ID != "R")
                    {
                        i.ID = currentSong.Instruments.GetSafeId().ToString();
                        currentSong.Instruments.Add(i);
                    }
                }
            }
        }
Ejemplo n.º 4
0
        public static void Import(Song currentSong)
        {
            Effects        loadedFX = null;
            OpenFileDialog ofd      = new OpenFileDialog();

            ofd.Filter = WYZTracker.Core.Properties.Resources.FXFilter;
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                XmlSerializer formatter     = new XmlSerializer(typeof(Effects));
                Stream        objFileStream = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read, FileShare.None);
                try
                {
                    loadedFX = (Effects)formatter.Deserialize(objFileStream);
                }
                catch
                {
                    try
                    {
                        formatter = new XmlSerializer(typeof(Song));
                        objFileStream.Seek(0, SeekOrigin.Begin);
                        objFileStream = SongManager.GetStream(objFileStream);
                        loadedFX      = ((Song)formatter.Deserialize(objFileStream)).Effects;
                    }
                    catch
                    {
                        loadedFX = null;
                    }
                }
                objFileStream.Close();
            }
            if (loadedFX != null)
            {
                foreach (Effect fx in loadedFX)
                {
                    fx.ID = currentSong.Effects.GetSafeId();
                    currentSong.Effects.Add(fx);
                }
            }
        }