/// <summary> /// XML から FilterGenerator を作成。 /// </summary> /// <param name="xreader">入力</param> /// <returns>作成した FilterGenerator</returns> internal static FilterGenerator CreateFromXml(XmlElement elem, Converter converter) { Assembly asm = Assembly.GetExecutingAssembly(); FilterGenerator gen = (FilterGenerator)asm.CreateInstance("SoundLibrary.Filter." + elem.LocalName + "Generator"); if(gen == null) throw new NotSupportedException("SoundLibrary.Filter." + elem.LocalName + " は実装されていません。"); if(converter != null) gen.converter = converter; XmlAttribute att; att = elem.Attributes["samplingRate"]; if(att != null) gen.SamplingRate = double.Parse(att.Value); att = elem.Attributes["dB"]; if(att != null) gen.IsDB = att.Value == "true"; gen.FromXml(elem); return gen; }
/// <summary> /// XML ファイル内のフィルタ構成情報から FilterGenerator を作成。 /// </summary> /// <param name="filename">XML ファイル名</param> /// <returns>作成した FilterGenerator</returns> public static FilterGenerator CreateFromXml(string filename, Converter converter) { XmlDocument xdoc = new XmlDocument(); xdoc.Load(filename); FilterGenerator gen = CreateFromXml(xdoc.DocumentElement, converter); return gen; }