Example #1
0
        static void Main(string[] args)
        {
            if (2 > args.Count())
            {
                return;
            }
            try
            {
                var    fileName    = args[0];
                var    fileNameNew = args[1];
                var    dataOld     = Serialize.ObjFromXMLFile(fileName, typeof(DemoData)) as DemoData;
                string oldDir      = Directory.GetCurrentDirectory();
                Directory.SetCurrentDirectory(Path.GetDirectoryName(Path.GetFullPath(fileName)));
                var soundFileName = PathTools.GetFullPath(dataOld.SoundFileName);
                Directory.SetCurrentDirectory(oldDir);

                //calculating demo length
                float length = 100.0f;
                if (!string.IsNullOrWhiteSpace(soundFileName))
                {
                    var sound = DemoTimeSource.FromMediaFile(soundFileName);
                    if (ReferenceEquals(null, sound))
                    {
                        Console.WriteLine("Could not load sound file '" + soundFileName + "'");
                        return;
                    }
                    length = sound.Length;
                }
                var ratios = dataOld.ShaderRatios.Select((item) => new Tuple <float, string>(item.Ratio, item.ShaderPath));
                //convert ratios to absolute times
                var keyframes = ShaderKeyframes.CalculatePosFromRatios(ratios, length);
                //save to new format
                DemoData2 data = new DemoData2();
                data.SoundFileName = dataOld.SoundFileName;
                data.Textures      = dataOld.Textures.ToList();
                var track = new Track();
                track.Name = "sum";
                data.Tracks.Add(track);
                foreach (var element in keyframes)
                {
                    track.ShaderKeyframes.Add(new ShaderKeyframe(element.Item1, element.Item2));
                }
                foreach (var uniformOld in dataOld.Uniforms)
                {
                    var uniform = new Uniform(uniformOld.UniformName);
                    foreach (var keyframeOld in uniformOld.Keyframes)
                    {
                        uniform.Keyframes.Add(new ShaderForm.DemoData2.Keyframe(keyframeOld.Time, keyframeOld.Value));
                    }
                    data.Uniforms.Add(uniform);
                }
                data.ObjIntoXMLFile(fileNameNew);
            }
            catch (Exception e)
            {
                Console.WriteLine("Error exception '" + e.Message + "'");
            }
        }
Example #2
0
        private void sequenceBar1_OnChanged(object sender, EventArgs e)
        {
            //no udpate events during loading
            demo.ShaderKeyframes.Changed -= ShaderKeframes_OnChange;
            demo.ShaderKeyframes.Clear();
            var ratios    = sequenceBar1.Items.Select((item) => new Tuple <float, string>(item.Ratio, item.Data as string));
            var keyframes = ShaderKeyframes.CalculatePosFromRatios(ratios, soundPlayerBar1.Length);

            foreach (var kf in keyframes)
            {
                demo.ShaderKeyframes.AddUpdate(kf.Item1, kf.Item2);
            }
            demo.ShaderKeyframes.Changed += ShaderKeframes_OnChange;
            glControl.Invalidate();
        }