/* add an histogram to the spec list */ public static void AddHistogramToEffectSpecList( EffectSpecListRec EffectSpecList, HistogramSpecRec HistogramSpec, bool EnabledFlag) { AddGenericToEffectSpecList(EffectSpecList, EffectTypes.eHistogramEffect, HistogramSpec, EnabledFlag); }
/* create a new histogram processor */ public static HistogramRec NewHistogram( HistogramSpecRec Template, SynthParamRec SynthParams) { double Cutoff; HistogramRec Histogram = new HistogramRec(); Histogram.HistogramString = GetHistogramSpecLabel(Template); Histogram.NumBins = GetHistogramSpecNumBins(Template); Histogram.BinArray = new int[Histogram.NumBins]; Histogram.LeftLowpass = new FirstOrderLowpassRec(); Histogram.RightLowpass = new FirstOrderLowpassRec(); Cutoff = GetHistogramSpecPowerEstimatorCutoff(Template); FirstOrderLowpassRec.SetFirstOrderLowpassCoefficients( Histogram.LeftLowpass, Cutoff, SynthParams.dSamplingRate); FirstOrderLowpassRec.SetFirstOrderLowpassCoefficients( Histogram.RightLowpass, Cutoff, SynthParams.dSamplingRate); Histogram.Min = GetHistogramSpecBottom(Template); Histogram.Max = GetHistogramSpecTop(Template); Histogram.Unders = 0; Histogram.Overs = 0; Histogram.IgnoreUnders = GetHistogramSpecDiscardUnders(Template); Histogram.Logarithmic = GetHistogramSpecBinDistribution(Template); Histogram.ChannelSelect = GetHistogramSpecChannelSelector(Template); Histogram.FilterMethod = GetHistogramSpecPowerEstimatorMethod(Template); Histogram.ChartWidth = GetHistogramSpecBarChartWidth(Template); Histogram.IgnoreUnders = Histogram.IgnoreUnders || (Histogram.Min == 0); if (Histogram.Logarithmic) { Histogram.LnMin = Math.Log(Histogram.Min); Histogram.LnMax = Math.Log(Histogram.Max); } return(Histogram); }
/* create a new histogram spec */ public static HistogramSpecRec NewHistogramSpec(string Identifier) { HistogramSpecRec Histogram = new HistogramSpecRec(); Histogram.Label = Identifier; Histogram.PowerEstimatorCutoff = 10; Histogram.PowerEstimatorMethod = HistogramPowerEstType.eHistogramAbsVal; //Histogram.DiscardUnders = false; //Histogram.NumPointsInChart = 0; //Histogram.Bottom = 0; Histogram.Top = 1; Histogram.NumBins = 10; //Histogram.LogBinDistribution = false; Histogram.ChannelSelector = HistogramChannelType.eHistogramAverageBeforeFilter; return(Histogram); }
/* get logarithmic/linear binning (false = linear, true = log) */ public static bool GetHistogramSpecBinDistribution(HistogramSpecRec Histogram) { return(Histogram.LogBinDistribution); }
/* set logarithmic/linear binning (false = linear, true = log) */ public static void SetHistogramSpecBinDistribution( HistogramSpecRec Histogram, bool Logarithmic) { Histogram.LogBinDistribution = Logarithmic; }
/* get number of bins */ public static int GetHistogramSpecNumBins(HistogramSpecRec Histogram) { return(Histogram.NumBins); }
/* get cutoff frequency for power estimator */ public static double GetHistogramSpecPowerEstimatorCutoff(HistogramSpecRec Histogram) { return(Histogram.PowerEstimatorCutoff); }
/* set power estimation mode */ public static void SetHistogramSpecPowerEstimatorMode( HistogramSpecRec Histogram, HistogramPowerEstType Method) { Histogram.PowerEstimatorMethod = Method; }
/* set bottom level of range */ public static void SetHistogramSpecBottom( HistogramSpecRec Histogram, double Bottom) { Histogram.Bottom = Bottom; }
/* get number of points in bar chart (0 = don't print chart) */ public static int GetHistogramSpecBarChartWidth(HistogramSpecRec Histogram) { return(Histogram.NumPointsInChart); }
/* set number of points in bar chart (0 = don't print chart) */ public static void SetHistogramSpecBarChartWidth( HistogramSpecRec Histogram, int NumPoints) { Histogram.NumPointsInChart = NumPoints; }
/* get discard-unders flag */ public static bool GetHistogramSpecDiscardUnders(HistogramSpecRec Histogram) { return(Histogram.DiscardUnders); }
/* set discard-unders flag */ public static void SetHistogramSpecDiscardUnders( HistogramSpecRec Histogram, bool Discard) { Histogram.DiscardUnders = Discard; }
/* get power estimator method */ public static HistogramPowerEstType GetHistogramSpecPowerEstimatorMethod(HistogramSpecRec Histogram) { return(Histogram.PowerEstimatorMethod); }
/* set histogram channel selector */ public static void SetHistogramSpecChannelSelector( HistogramSpecRec Histogram, HistogramChannelType Selector) { Histogram.ChannelSelector = Selector; }
/* get histogram channel selector */ public static HistogramChannelType GetHistogramSpecChannelSelector(HistogramSpecRec Histogram) { return(Histogram.ChannelSelector); }
/* get bottom level of range */ public static double GetHistogramSpecBottom(HistogramSpecRec Histogram) { return(Histogram.Bottom); }
/* get actual heap block histogram identifier Label */ public static string GetHistogramSpecLabel(HistogramSpecRec Histogram) { return(Histogram.Label); }
/* set top level of range */ public static void SetHistogramSpecTop( HistogramSpecRec Histogram, double Top) { Histogram.Top = Top; }
/* set power estimator filter cutoff frequency */ public static void SetHistogramSpecPowerEstimatorFilter( HistogramSpecRec Histogram, double FilterCutoff) { Histogram.PowerEstimatorCutoff = FilterCutoff; }
/* get top level of range */ public static double GetHistogramSpecTop(HistogramSpecRec Histogram) { return(Histogram.Top); }
/* set number of bins */ public static void SetHistogramSpecNumBins( HistogramSpecRec Histogram, int NumBins) { Histogram.NumBins = NumBins; }
/* check histogram effect */ public static SynthErrorCodes CheckHistogramEffectForUnreferencedSamples( HistogramSpecRec HistogramEffect, CheckUnrefParamRec Param) { return(SynthErrorCodes.eSynthDone); }