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); }
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); }