Exemplo n.º 1
0
        internal void Save(TsiXmlDocument xml)
        {
            var defBtn = new DefaultButtonFx(_effect)
            {
                Value = new List <int>
                {
                    Buttons.ButtonGroupMode,
                    Buttons.Button3,
                    Buttons.Button2,
                    Buttons.Button1,
                    Buttons.OnOff,
                }
            };

            xml.SaveEntry(defBtn);

            var defParam = new DefaultParamFx(_effect)
            {
                Value = new List <float>
                {
                    Knobs.KnobGroupMode,
                    Knobs.Knob3,
                    Knobs.Knob2,
                    Knobs.Knob1,
                    Knobs.DryWet,
                }
            };

            xml.SaveEntry(defParam);
        }
Exemplo n.º 2
0
        internal static FxSnapshot Load(Effect effect, TsiXmlDocument xml)
        {
            var fxDefault = new FxSnapshot(effect);

            DefaultButtonFx defBtn = xml.GetEntry(new DefaultButtonFx(effect));

            if (defBtn != null)
            {
                fxDefault._buttons = new FxButtonsSnapshot
                {
                    ButtonGroupMode = defBtn.Value[0],
                    Button3         = defBtn.Value[1],
                    Button2         = defBtn.Value[2],
                    Button1         = defBtn.Value[3],
                    OnOff           = defBtn.Value[4]
                };
            }

            DefaultParamFx defParam = xml.GetEntry(new DefaultParamFx(effect));

            if (defParam != null)
            {
                fxDefault._knobs = new FxKnobsSnapshot
                {
                    KnobGroupMode = defParam.Value[0],
                    Knob3         = defParam.Value[1],
                    Knob2         = defParam.Value[2],
                    Knob1         = defParam.Value[3],
                    DryWet        = defParam.Value[4]
                };
            }

            // reason for logical OR: usually, there is both entries, but preservation goes over completeness
            // TODO: try if Traktor accepts "half" snapshots
            if (defBtn != null || defParam != null)
            {
                return(fxDefault);
            }

            return(null);
        }