private IFilter InitializeFilter() { IFilter xyFilter; switch (_filterSettings.ActiveFilter) { case FilterType.GainFilter: xyFilter = new GainFilter(_filterSettings); break; case FilterType.StampeFilter: xyFilter = new StampeFilter(_filterSettings); break; case FilterType.NullFilter: xyFilter = new NullFilter(); break; case FilterType.OneEuroFilter: xyFilter = new OneEuroFilter(_filterSettings); break; default: throw new ArgumentException("Unknown filter type"); } xyFilter.Initialize(); return(xyFilter); }
public static FilterBase Create(string s) { var tokens = s.Split(null); if (tokens == null || tokens.Length < 1) { return(null); } // Refer FilterType enum in FilterBase.cs switch (tokens[0]) { case "Gain": return(GainFilter.Restore(tokens)); case "JitterAdd": return(JitterAddFilter.Restore(tokens)); default: return(null); } }