public FilterConfiguration(FilterBase filter) { InitializeComponent(); if (filter != null) { mFilter = filter; } SetLocalizedTextToUI(); }
private void buttonUseCic_Click(object sender, RoutedEventArgs e) { int delay; if (!Int32.TryParse(textBoxCicDelay.Text, out delay)) { MessageBox.Show(Properties.Resources.ErrorCicDelay); return; } if (delay <= 0) { MessageBox.Show(Properties.Resources.ErrorCicDelay); return; } mFilter = new CicFilter(CicFilter.CicType.SingleStage, delay); DialogResult = true; Close(); }
private void InitializeUIbyFilter(FilterBase filter) { switch (filter.FilterType) { case FilterType.Gain: textBoxGainInDB.TextChanged -= mTextBoxGainInDbChangedEH; textBoxGainInAmplitude.TextChanged -= mTextBoxGainInAmplitudeChangedEH; var gain = filter as GainFilter; textBoxGainInDB.Text = string.Format(CultureInfo.CurrentCulture, "{0}", 20.0 * Math.Log10(gain.Amplitude)); textBoxGainInAmplitude.Text = string.Format(CultureInfo.CurrentCulture, "{0}", gain.Amplitude); textBoxGainInDB.TextChanged += mTextBoxGainInDbChangedEH; textBoxGainInAmplitude.TextChanged += mTextBoxGainInAmplitudeChangedEH; break; case FilterType.ZohUpsampler: var zoh = filter as ZeroOrderHoldUpsampler; comboBoxUpsamplingFactor.SelectedIndex = (int)UpsamplingFactorToUpsamplingFactorType(zoh.Factor); comboBoxUpsamplerType.SelectedIndex = (int)UpsamplerType.ZOH; break; case FilterType.LineDrawUpsampler: var ldu = filter as LineDrawUpsampler; comboBoxUpsamplingFactor.SelectedIndex = (int)UpsamplingFactorToUpsamplingFactorType(ldu.Factor); comboBoxUpsamplerType.SelectedIndex = (int)UpsamplerType.LineDraw; break; case FilterType.CubicHermiteSplineUpsampler: var chu = filter as CubicHermiteSplineUpsampler; comboBoxUpsamplingFactor.SelectedIndex = (int)UpsamplingFactorToUpsamplingFactorType(chu.Factor); comboBoxUpsamplerType.SelectedIndex = (int)UpsamplerType.CubicHermiteSpline; break; case FilterType.LowPassFilter: var lpf = filter as LowpassFilter; textBoxLpfCutoff.Text = string.Format(CultureInfo.CurrentCulture, "{0}", lpf.CutoffFrequency); comboBoxLpfLen.SelectedIndex = (int)LpfLenToLpfLenType(lpf.FilterLength); textBoxLpfSlope.Text = string.Format(CultureInfo.CurrentCulture, "{0}", lpf.FilterSlopeDbOct); break; case FilterType.FftUpsampler: var fftu = filter as FftUpsampler; comboBoxUpsamplingFactor.SelectedIndex = (int)UpsamplingFactorToUpsamplingFactorType(fftu.Factor); comboBoxUpsamplerType.SelectedIndex = (int)UpsamplerType.FFT; comboBoxUpsampleLen.SelectedIndex = (int)UpsampleLenToUpsampleLenType(fftu.FftLength); comboBoxFftOverlap.SelectedIndex = (int)fftu.Overlap; break; case FilterType.WindowedSincUpsampler: var wsu = filter as WindowedSincUpsampler; comboBoxUpsamplingFactor.SelectedIndex = (int)UpsamplingFactorToUpsamplingFactorType(wsu.Factor); comboBoxUpsamplerType.SelectedIndex = (int)UpsamplerType.WindowedSinc; comboBoxUpsampleLen.SelectedIndex = (int)UpsampleLenToUpsampleLenType(wsu.WindowLength+1); comboBoxWindowedSincMethod.SelectedIndex = (int)wsu.Method; break; case FilterType.Mash2: var mash = filter as MashFilter; textBoxNoiseShapingTargetBit.Text = string.Format(CultureInfo.CurrentCulture, "{0}", mash.TargetBitsPerSample); break; case FilterType.NoiseShaping: var ns = filter as NoiseShapingFilter; textBoxNoiseShapingTargetBit.Text = string.Format(CultureInfo.CurrentCulture, "{0}", ns.TargetBitsPerSample); comboBoxNoiseShapingMethod.SelectedIndex = (int)NoiseShapingCbItemType.NoiseShaping2nd; break; case FilterType.ReduceBitDepth: var q = filter as ReduceBitDepth; textBoxTargetBitDepth.Text = string.Format(CultureInfo.CurrentCulture, "{0}", q.TargetBitsPerSample); break; case FilterType.FirstOrderAllPassIIR: var fomp = filter as FirstOrderAllPassIIRFilter; textBoxFirstOrderAllPassIirA.Text = string.Format(CultureInfo.CurrentCulture, "{0}", fomp.A); break; case FilterType.SecondOrderAllPassIIR: var somp = filter as SecondOrderAllPassIIRFilter; textBoxSecondOrderAllPassIirR.Text = string.Format(CultureInfo.CurrentCulture, "{0}", somp.R); textBoxSecondOrderAllPassIirT.Text = string.Format(CultureInfo.CurrentCulture, "{0}", somp.T); break; case FilterType.NoiseShaping4th: var ns4 = filter as NoiseShaping4thFilter; textBoxNoiseShapingTargetBit.Text = string.Format(CultureInfo.CurrentCulture, "{0}", ns4.TargetBitsPerSample); comboBoxNoiseShapingMethod.SelectedIndex = (int)NoiseShapingCbItemType.NoiseShaping4th; break; case FilterType.TagEdit: var te = filter as TagEditFilter; comboBoxTagType.SelectedIndex = (int)te.TagType; textBoxTagText.Text = te.Text; break; case FilterType.Downsampler: var ds = filter as Downsampler; comboBoxDownsampleOption.SelectedIndex = ds.PickSampleIndex; break; case FilterType.CicFilter: var cic = filter as CicFilter; textBoxCicDelay.Text = string.Format(CultureInfo.CurrentCulture, "{0}", cic.Delay); break; case FilterType.InsertZeroesUpsampler: var izu = filter as InsertZeroesUpsampler; comboBoxUpsamplingFactor.SelectedIndex = (int)UpsamplingFactorToUpsamplingFactorType(izu.Factor); comboBoxUpsamplerType.SelectedIndex = (int)UpsamplerType.InsertZeroes; break; case FilterType.HalfbandFilter: var hbf = filter as HalfbandFilter; textBoxHalfBandFilterTap.Text = string.Format(CultureInfo.CurrentCulture, "{0}", hbf.FilterLength); break; case FilterType.Crossfeed: var cf = filter as CrossfeedFilter; textBoxCrossfeedCoefficientFile.Text = cf.FilterFilePath; break; case FilterType.JitterAdd: var jaf = filter as JitterAddFilter; break; case FilterType.GaussianNoise: var gnf = filter as GaussianNoiseFilter; textBoxGaussianNoiseDb.Text = string.Format(CultureInfo.CurrentCulture, "{0}", gnf.NoiseLevelDb); break; case FilterType.DynamicRangeCompression: var drc = filter as DynamicRangeCompressionFilter; textBoxDynamicRangeCompressionLsbScaling.Text = string.Format(CultureInfo.CurrentCulture, "{0}", drc.LsbScalingDb); break; case FilterType.UnevenBitDac: var ubd = filter as UnevenBitDacFilter; textBoxUnevenBitDacLsbScaling.Text = string.Format(CultureInfo.CurrentCulture, "{0}", ubd.LsbScalingDb); break; case FilterType.AddFundamentals: var af = filter as AddFundamentalsFilter; textBoxAddFundamentalsGain.Text = string.Format(CultureInfo.CurrentCulture, "{0}", 20.0 * Math.Log10(af.Gain)); break; } }
private void InitializeUIbyFilter(FilterBase filter) { switch (filter.FilterType) { case FilterType.Gain: textBoxGainInDB.TextChanged -= mTextBoxGainInDbChangedEH; textBoxGainInAmplitude.TextChanged -= mTextBoxGainInAmplitudeChangedEH; var gain = filter as GainFilter; textBoxGainInDB.Text = string.Format(CultureInfo.CurrentCulture, "{0}", 20.0 * Math.Log10(gain.Amplitude)); textBoxGainInAmplitude.Text = string.Format(CultureInfo.CurrentCulture, "{0}", gain.Amplitude); textBoxGainInDB.TextChanged += mTextBoxGainInDbChangedEH; textBoxGainInAmplitude.TextChanged += mTextBoxGainInAmplitudeChangedEH; break; case FilterType.ZohUpsampler: var zoh = filter as ZeroOrderHoldUpsampler; comboBoxUpsamplingFactor.SelectedIndex = (int)UpsamplingFactorToUpsamplingFactorType(zoh.Factor); comboBoxUpsamplerType.SelectedIndex = (int)UpsamplerType.ZOH; break; case FilterType.LineDrawUpsampler: var ldu = filter as LineDrawUpsampler; comboBoxUpsamplingFactor.SelectedIndex = (int)UpsamplingFactorToUpsamplingFactorType(ldu.Factor); comboBoxUpsamplerType.SelectedIndex = (int)UpsamplerType.LineDraw; break; case FilterType.CubicHermiteSplineUpsampler: var chu = filter as CubicHermiteSplineUpsampler; comboBoxUpsamplingFactor.SelectedIndex = (int)UpsamplingFactorToUpsamplingFactorType(chu.Factor); comboBoxUpsamplerType.SelectedIndex = (int)UpsamplerType.CubicHermiteSpline; break; case FilterType.LowPassFilter: var lpf = filter as LowpassFilter; textBoxLpfCutoff.Text = string.Format(CultureInfo.CurrentCulture, "{0}", lpf.CutoffFrequency); comboBoxLpfLen.SelectedIndex = (int)LpfLenToLpfLenType(lpf.FilterLength); textBoxLpfSlope.Text = string.Format(CultureInfo.CurrentCulture, "{0}", lpf.FilterSlopeDbOct); break; case FilterType.FftUpsampler: var fftu = filter as FftUpsampler; comboBoxUpsamplingFactor.SelectedIndex = (int)UpsamplingFactorToUpsamplingFactorType(fftu.Factor); comboBoxUpsamplerType.SelectedIndex = (int)UpsamplerType.FFT; comboBoxUpsampleLen.SelectedIndex = (int)UpsampleLenToUpsampleLenType(fftu.FftLength); comboBoxFftOverlap.SelectedIndex = (int)fftu.Overlap; break; case FilterType.WindowedSincUpsampler: var wsu = filter as WindowedSincUpsampler; comboBoxUpsamplingFactor.SelectedIndex = (int)UpsamplingFactorToUpsamplingFactorType(wsu.Factor); comboBoxUpsamplerType.SelectedIndex = (int)UpsamplerType.WindowedSinc; comboBoxUpsampleLen.SelectedIndex = (int)UpsampleLenToUpsampleLenType(wsu.WindowLength + 1); comboBoxWindowedSincMethod.SelectedIndex = (int)wsu.Method; break; case FilterType.Mash2: var mash = filter as MashFilter; textBoxNoiseShapingTargetBit.Text = string.Format(CultureInfo.CurrentCulture, "{0}", mash.TargetBitsPerSample); break; case FilterType.NoiseShaping: var ns = filter as NoiseShapingFilter; textBoxNoiseShapingTargetBit.Text = string.Format(CultureInfo.CurrentCulture, "{0}", ns.TargetBitsPerSample); comboBoxNoiseShapingMethod.SelectedIndex = (int)NoiseShapingCbItemType.NoiseShaping2nd; break; case FilterType.ReduceBitDepth: var q = filter as ReduceBitDepth; textBoxTargetBitDepth.Text = string.Format(CultureInfo.CurrentCulture, "{0}", q.TargetBitsPerSample); break; case FilterType.FirstOrderAllPassIIR: var fomp = filter as FirstOrderAllPassIIRFilter; textBoxFirstOrderAllPassIirA.Text = string.Format(CultureInfo.CurrentCulture, "{0}", fomp.A); break; case FilterType.SecondOrderAllPassIIR: var somp = filter as SecondOrderAllPassIIRFilter; textBoxSecondOrderAllPassIirR.Text = string.Format(CultureInfo.CurrentCulture, "{0}", somp.R); textBoxSecondOrderAllPassIirT.Text = string.Format(CultureInfo.CurrentCulture, "{0}", somp.T); break; case FilterType.NoiseShaping4th: var ns4 = filter as NoiseShaping4thFilter; textBoxNoiseShapingTargetBit.Text = string.Format(CultureInfo.CurrentCulture, "{0}", ns4.TargetBitsPerSample); comboBoxNoiseShapingMethod.SelectedIndex = (int)NoiseShapingCbItemType.NoiseShaping4th; break; case FilterType.TagEdit: var te = filter as TagEditFilter; comboBoxTagType.SelectedIndex = (int)te.TagType; textBoxTagText.Text = te.Text; break; case FilterType.Downsampler: var ds = filter as Downsampler; comboBoxDownsampleOption.SelectedIndex = ds.PickSampleIndex; break; case FilterType.CicFilter: var cic = filter as CicFilter; textBoxCicDelay.Text = string.Format(CultureInfo.CurrentCulture, "{0}", cic.Delay); break; case FilterType.InsertZeroesUpsampler: var izu = filter as InsertZeroesUpsampler; comboBoxUpsamplingFactor.SelectedIndex = (int)UpsamplingFactorToUpsamplingFactorType(izu.Factor); comboBoxUpsamplerType.SelectedIndex = (int)UpsamplerType.InsertZeroes; break; case FilterType.HalfbandFilter: var hbf = filter as HalfbandFilter; textBoxHalfBandFilterTap.Text = string.Format(CultureInfo.CurrentCulture, "{0}", hbf.FilterLength); break; case FilterType.Crossfeed: var cf = filter as CrossfeedFilter; textBoxCrossfeedCoefficientFile.Text = cf.FilterFilePath; break; case FilterType.JitterAdd: var jaf = filter as JitterAddFilter; break; case FilterType.GaussianNoise: var gnf = filter as GaussianNoiseFilter; textBoxGaussianNoiseDb.Text = string.Format(CultureInfo.CurrentCulture, "{0}", gnf.NoiseLevelDb); break; case FilterType.DynamicRangeCompression: var drc = filter as DynamicRangeCompressionFilter; textBoxDynamicRangeCompressionLsbScaling.Text = string.Format(CultureInfo.CurrentCulture, "{0}", drc.LsbScalingDb); break; case FilterType.UnevenBitDac: var ubd = filter as UnevenBitDacFilter; textBoxUnevenBitDacLsbScaling.Text = string.Format(CultureInfo.CurrentCulture, "{0}", ubd.LsbScalingDb); break; case FilterType.AddFundamentals: var af = filter as AddFundamentalsFilter; textBoxAddFundamentalsGain.Text = string.Format(CultureInfo.CurrentCulture, "{0}", 20.0 * Math.Log10(af.Gain)); break; } }
private void buttonUseUpsampler_Click(object sender, RoutedEventArgs e) { int factor = UpsamplingFactorTypeToUpsampingfactor(comboBoxUpsamplingFactor.SelectedIndex); int len = UpsampleLenTypeToLpfLen(comboBoxUpsampleLen.SelectedIndex); switch (comboBoxUpsamplerType.SelectedIndex) { case (int)UpsamplerType.ZOH: mFilter = new ZeroOrderHoldUpsampler(factor); break; case (int)UpsamplerType.FFT: mFilter = new FftUpsampler(factor, len); break; case (int)UpsamplerType.InsertZeroes: mFilter = new InsertZeroesUpsampler(factor); break; default: System.Diagnostics.Debug.Assert(false); mFilter = new FftUpsampler(factor, len); break; } DialogResult = true; Close(); }
private void buttonUseNoiseShaping_Click(object sender, RoutedEventArgs e) { int nBit; if (!Int32.TryParse(textBoxNoiseShapingTargetBit.Text, out nBit)) { MessageBox.Show(Properties.Resources.ErrorNoiseShapingBitIsNan); return; } if (nBit < 1 || 23 < nBit) { MessageBox.Show(Properties.Resources.ErrorNoiseShapingBitIsOutOfRange); return; } /* if (comboBoxNoiseShapingMethod.SelectedIndex == (int)NoiseShapingCbItemType.NoiseShaping4th && nBit != 1) { MessageBox.Show(Properties.Resources.ErrorNoiseShaping4thBitIsNot1); return; } */ switch (comboBoxNoiseShapingMethod.SelectedIndex) { case (int)NoiseShapingCbItemType.NoiseShaping2nd: mFilter = new NoiseShapingFilter(nBit, 2); break; case (int)NoiseShapingCbItemType.NoiseShaping4th: mFilter = new NoiseShaping4thFilter(nBit); break; } DialogResult = true; Close(); }
private void buttonUseHalfBandFilter_Click(object sender, RoutedEventArgs e) { int taps; if (!Int32.TryParse(textBoxHalfBandFilterTap.Text, out taps)) { MessageBox.Show(Properties.Resources.ErrorHalfbandTaps); return; } if (taps <= 0) { MessageBox.Show(Properties.Resources.ErrorHalfbandTaps); return; } mFilter = new HalfbandFilter(taps); DialogResult = true; Close(); }
private void buttonUseDownsampler_Click(object sender, RoutedEventArgs e) { int factor = 0; switch (comboBoxDownsampleType.SelectedIndex) { case (int)DownsamplerType.Down2x: factor = 2; break; default: System.Diagnostics.Debug.Assert(false); return; } int pickSampleIndex = (int)comboBoxDownsampleOption.SelectedIndex; mFilter = new Downsampler(factor, pickSampleIndex); DialogResult = true; Close(); }
private void buttonUseGaussianNoise_Click(object sender, RoutedEventArgs e) { double noiseLevelDb = 0; if (!Double.TryParse(textBoxGaussianNoiseDb.Text, out noiseLevelDb)) { MessageBox.Show(Properties.Resources.ErrorGaussianNoiseLevel); return; } mFilter = new GaussianNoiseFilter(noiseLevelDb); DialogResult = true; Close(); }
private void buttonUseFirstOrderAllPassIir_Click(object sender, RoutedEventArgs e) { double a; if (!Double.TryParse(textBoxFirstOrderAllPassIirA.Text, out a) || 1.0 < Math.Abs(a) || a == 0) { MessageBox.Show(Properties.Resources.ErrorFirstOrderAllPassIIR); return; } mFilter = new FirstOrderAllPassIIRFilter(a); DialogResult = true; Close(); }
private void buttonUseDynamicRangeCompression_Click(object sender, RoutedEventArgs e) { double lsbScalingDb = 1; if (!Double.TryParse(textBoxDynamicRangeCompressionLsbScaling.Text, out lsbScalingDb)) { MessageBox.Show(Properties.Resources.ErrorDynamicRangeCompressionLsbScaling); return; } mFilter = new DynamicRangeCompressionFilter(lsbScalingDb); DialogResult = true; Close(); }
private void buttonUseAddJitter_Click(object sender, RoutedEventArgs e) { double sineJitterFreq; if (!Double.TryParse(textBoxSinusoidalJitterFreq.Text, out sineJitterFreq)) { MessageBox.Show(Properties.Resources.ErrorSinusolidalJitterFreq); return; } if (sineJitterFreq < 0) { MessageBox.Show(Properties.Resources.ErrorSinusolidalJitterFreq); return; } double sineJitterNanosec; if (!Double.TryParse(textBoxSinusoidalJitterNanoSeconds.Text, out sineJitterNanosec)) { MessageBox.Show(Properties.Resources.ErrorSinusolidalJitterAmount); return; } if (sineJitterNanosec < 0) { MessageBox.Show(Properties.Resources.ErrorSinusolidalJitterAmount); return; } double tpdfJitterNanosec; if (!Double.TryParse(textBoxTpdfJitterNanoSeconds.Text, out tpdfJitterNanosec)) { MessageBox.Show(Properties.Resources.ErrorTpdfJitterAmount); return; } if (tpdfJitterNanosec < 0) { MessageBox.Show(Properties.Resources.ErrorTpdfJitterAmount); return; } double rpdfJitterNanosec; if (!Double.TryParse(textBoxRpdfJitterNanoSeconds.Text, out rpdfJitterNanosec)) { MessageBox.Show(Properties.Resources.ErrorRpdfJitterAmount); return; } if (rpdfJitterNanosec < 0) { MessageBox.Show(Properties.Resources.ErrorRpdfJitterAmount); return; } int convolutionN = 1024; if (0 <= comboBoxFilterLength.SelectedIndex) { convolutionN = mConvolutionLengthArray[comboBoxFilterLength.SelectedIndex]; } mFilter = new JitterAddFilter(sineJitterFreq, sineJitterNanosec, tpdfJitterNanosec, rpdfJitterNanosec, convolutionN); DialogResult = true; Close(); }
private void buttonUseAddFundamentals_Click(object sender, RoutedEventArgs e) { double v; if (!Double.TryParse(textBoxAddFundamentalsGain.Text, out v) || 0.0 < v) { MessageBox.Show(Properties.Resources.ErrorFundamentalsGainValue); return; } mFilter = new AddFundamentalsFilter(Math.Pow(10.0, v / 20.0)); DialogResult = true; Close(); }
private void buttonUseNormalize_Click(object sender, RoutedEventArgs e) { double v; if (!Double.TryParse(textBoxNormalizeAmplitude.Text, out v) || 0.0 < v) { MessageBox.Show(Properties.Resources.ErrorNormalizeValue); return; } mFilter = new NormalizeFilter(Math.Pow(10.0, v / 20.0)); DialogResult = true; Close(); }
private void buttonUseCrossfeedFilter_Click(object sender, RoutedEventArgs e) { if (textBoxCrossfeedCoefficientFile.Text.Length == 0) { MessageBox.Show(Properties.Resources.ErrorCrossfeedFile); return; } mFilter = new CrossfeedFilter(textBoxCrossfeedCoefficientFile.Text); DialogResult = true; Close(); }
private void buttonUseReduceBitDepth_Click(object sender, RoutedEventArgs e) { int v; if (!Int32.TryParse(textBoxTargetBitDepth.Text, out v) || 24 <= v || v < 1) { MessageBox.Show(Properties.Resources.ErrorTargetBitDepth); return; } mFilter = new ReduceBitDepth(v); DialogResult = true; Close(); }
private void buttonUseGain_Click(object sender, RoutedEventArgs e) { double v; if (!Double.TryParse(textBoxGainInAmplitude.Text, out v)) { MessageBox.Show(Properties.Resources.ErrorGainValueIsNan); return; } if (v <= Double.Epsilon) { MessageBox.Show(Properties.Resources.ErrorGainValueIsTooSmall); return; } mFilter = new GainFilter(v); DialogResult = true; Close(); }
private void buttonUseSecondOrderAllPassIir_Click(object sender, RoutedEventArgs e) { double r; if (!Double.TryParse(textBoxSecondOrderAllPassIirR.Text, out r) || 1.0 < Math.Abs(r) || r== 0) { MessageBox.Show(Properties.Resources.ErrorSecondOrderAllPassIirR); return; } double t; if (!Double.TryParse(textBoxSecondOrderAllPassIirT.Text, out t)) { MessageBox.Show(Properties.Resources.ErrorSecondOrderAllPassIirT); return; } mFilter = new SecondOrderAllPassIIRFilter(r, t); DialogResult = true; Close(); }
private void buttonUseLpf_Click(object sender, RoutedEventArgs e) { double v; if (!Double.TryParse(textBoxLpfCutoff.Text, out v)) { MessageBox.Show(Properties.Resources.ErrorLpfCutoffFreqIsNan); return; } if (v <= 0.0) { MessageBox.Show(Properties.Resources.ErrorLpfCutoffFreqIsNegative); return; } int slope; if (!Int32.TryParse(textBoxLpfSlope.Text, out slope)) { MessageBox.Show(Properties.Resources.ErrorLpfSlopeIsNan); return; } if (slope <= 0) { MessageBox.Show(Properties.Resources.ErrorLpfSlopeIsTooSmall); return; } int filterLength = LpfLenTypeToLpfLen(comboBoxLpfLen.SelectedIndex); mFilter = new LowpassFilter(v, filterLength, slope); DialogResult = true; Close(); }
private void buttonUseUnevenBitDac_Click(object sender, RoutedEventArgs e) { double lsbScalingDb = 1; if (!Double.TryParse(textBoxUnevenBitDacLsbScaling.Text, out lsbScalingDb)) { MessageBox.Show(Properties.Resources.ErrorUnevenBitDacLsbScaling); return; } mFilter = new UnevenBitDacFilter(lsbScalingDb); DialogResult = true; Close(); }
private void buttonUseTagEdit_Click(object sender, RoutedEventArgs e) { TagEditFilter.Type type = TagEditFilter.Type.Title; switch (comboBoxTagType.SelectedIndex) { case (int)TagEditType.Title: type = TagEditFilter.Type.Title; break; case (int)TagEditType.Album: type = TagEditFilter.Type.Album; break; case (int)TagEditType.AlbumArtist: type = TagEditFilter.Type.AlbumArtist; break; case (int)TagEditType.Artist: type = TagEditFilter.Type.Artist; break; case (int)TagEditType.Genre: type = TagEditFilter.Type.Genre; break; default: System.Diagnostics.Debug.Assert(false); return; } mFilter = new TagEditFilter(type, textBoxTagText.Text); DialogResult = true; Close(); }
private void buttonUseUpsampler_Click(object sender, RoutedEventArgs e) { int factor = UpsamplingFactorTypeToUpsampingfactor(comboBoxUpsamplingFactor.SelectedIndex); int len = UpsampleLenTypeToLpfLen(comboBoxUpsampleLen.SelectedIndex); FftUpsampler.OverlapType overlap = (FftUpsampler.OverlapType)comboBoxFftOverlap.SelectedIndex; WindowedSincUpsampler.MethodType method = (WindowedSincUpsampler.MethodType)comboBoxWindowedSincMethod.SelectedIndex; switch (comboBoxUpsamplerType.SelectedIndex) { case (int)UpsamplerType.ZOH: mFilter = new ZeroOrderHoldUpsampler(factor); break; case (int)UpsamplerType.LineDraw: mFilter = new LineDrawUpsampler(factor); break; case (int)UpsamplerType.CubicHermiteSpline: mFilter = new CubicHermiteSplineUpsampler(factor); break; case (int)UpsamplerType.FFT: mFilter = new FftUpsampler(factor, len, overlap); break; case (int)UpsamplerType.WindowedSinc: mFilter = new WindowedSincUpsampler(factor, len - 1, method); break; case (int)UpsamplerType.InsertZeroes: mFilter = new InsertZeroesUpsampler(factor); break; default: System.Diagnostics.Debug.Assert(false); mFilter = null; break; } DialogResult = true; Close(); }
private void InitializeUIbyFilter(FilterBase filter) { switch (filter.FilterType) { case FilterType.Gain: textBoxGainInDB.TextChanged -= mTextBoxGainInDbChangedEH; textBoxGainInAmplitude.TextChanged -= mTextBoxGainInAmplitudeChangedEH; var gain = filter as GainFilter; textBoxGainInDB.Text = string.Format(CultureInfo.CurrentCulture, "{0}", 20.0 * Math.Log10(gain.Amplitude)); textBoxGainInAmplitude.Text = string.Format(CultureInfo.CurrentCulture, "{0}", gain.Amplitude); textBoxGainInDB.TextChanged += mTextBoxGainInDbChangedEH; textBoxGainInAmplitude.TextChanged += mTextBoxGainInAmplitudeChangedEH; break; case FilterType.ZohUpsampler: var zoh = filter as ZeroOrderHoldUpsampler; comboBoxUpsamplingFactor.SelectedIndex = (int)UpsamplingFactorToUpsamplingFactorType(zoh.Factor); comboBoxUpsamplerType.SelectedIndex = (int)UpsamplerType.ZOH; break; case FilterType.LowPassFilter: var lpf = filter as LowpassFilter; textBoxLpfCutoff.Text = string.Format(CultureInfo.CurrentCulture, "{0}", lpf.CutoffFrequency); comboBoxLpfLen.SelectedIndex = (int)LpfLenToLpfLenType(lpf.FilterLength); textBoxLpfSlope.Text = string.Format(CultureInfo.CurrentCulture, "{0}", lpf.FilterSlopeDbOct); break; case FilterType.FftUpsampler: var fftu = filter as FftUpsampler; comboBoxUpsamplingFactor.SelectedIndex = (int)UpsamplingFactorToUpsamplingFactorType(fftu.Factor); comboBoxUpsamplerType.SelectedIndex = (int)UpsamplerType.FFT; comboBoxUpsampleLen.SelectedIndex = (int)UpsampleLenToUpsampleLenType(fftu.FftLength); break; case FilterType.Mash2: var mash = filter as MashFilter; textBoxNoiseShapingTargetBit.Text = string.Format(CultureInfo.CurrentCulture, "{0}", mash.TargetBitsPerSample); break; case FilterType.NoiseShaping: var ns = filter as NoiseShapingFilter; textBoxNoiseShapingTargetBit.Text = string.Format(CultureInfo.CurrentCulture, "{0}", ns.TargetBitsPerSample); comboBoxNoiseShapingMethod.SelectedIndex = (int)NoiseShapingCbItemType.NoiseShaping2nd; break; case FilterType.NoiseShaping4th: var ns4 = filter as NoiseShaping4thFilter; textBoxNoiseShapingTargetBit.Text = string.Format(CultureInfo.CurrentCulture, "{0}", ns4.TargetBitsPerSample); comboBoxNoiseShapingMethod.SelectedIndex = (int)NoiseShapingCbItemType.NoiseShaping4th; break; case FilterType.TagEdit: var te = filter as TagEditFilter; comboBoxTagType.SelectedIndex = (int)te.TagType; textBoxTagText.Text = te.Text; break; case FilterType.Downsampler: var ds = filter as Downsampler; comboBoxDownsampleOption.SelectedIndex = ds.PickSampleIndex; break; case FilterType.CicFilter: var cic = filter as CicFilter; textBoxCicDelay.Text = string.Format(CultureInfo.CurrentCulture, "{0}", cic.Delay); break; case FilterType.InsertZeroesUpsampler: var izu = filter as InsertZeroesUpsampler; comboBoxUpsamplingFactor.SelectedIndex = (int)UpsamplingFactorToUpsamplingFactorType(izu.Factor); comboBoxUpsamplerType.SelectedIndex = (int)UpsamplerType.InsertZeroes; break; case FilterType.HalfbandFilter: var hbf = filter as HalfbandFilter; textBoxHalfBandFilterTap.Text = string.Format(CultureInfo.CurrentCulture, "{0}", hbf.FilterLength); break; case FilterType.Crossfeed: var cf = filter as CrossfeedFilter; textBoxCrossfeedCoefficientFile.Text = cf.FilterFilePath; break; } }