An evaluator that stores results from a source evaluator in a buffer.
Inheritance: Evaluator
Ejemplo n.º 1
0
        public EvaluatorStream(int BufferSize, Evaluator Evaluator, SoundOptions Options, bool Exporting)
        {
            this._Exporting = Exporting;
            this._Options = Options;
            this._Evaluator = Evaluator.GetBuffered(BufferSize);
            this._Offset = BufferSize;
            this._Parameter = Options.Offset;

            // Calculate shift and sample size
            int res = Options.Resolution;
            int sampsize = (res + 7) / 8;
            int shift = sampsize * 8 - res;
            this._SampleSize = sampsize;
            this._Shift = shift;

            this._Advance();
        }
Ejemplo n.º 2
0
 public XorEvaluator(Evaluator Left, BufferedEvaluator Right)
     : base(Left, Right)
 {
 }
Ejemplo n.º 3
0
 public SubtractEvaluator(Evaluator Left, BufferedEvaluator Right)
     : base(Left, Right)
 {
 }
Ejemplo n.º 4
0
 public SequencerEvaluator(BufferedEvaluator[] Items, Evaluator Parameter)
 {
     this.Items = Items;
     this.Parameter = Parameter;
 }
Ejemplo n.º 5
0
 public RightShiftEvaluator(Evaluator Left, BufferedEvaluator Right)
     : base(Left, Right)
 {
 }
Ejemplo n.º 6
0
 public MultiplyEvaluator(Evaluator Left, BufferedEvaluator Right)
     : base(Left, Right)
 {
 }
Ejemplo n.º 7
0
 public ModulusEvaluator(Evaluator Left, BufferedEvaluator Right)
     : base(Left, Right)
 {
 }
Ejemplo n.º 8
0
 /// <summary>
 /// Gets a buffered form of this evaluator. If this is already buffered, this is returned.
 /// </summary>
 public BufferedEvaluator GetBuffered(int BufferSize)
 {
     if (this._Buffered == null)
     {
         BufferedEvaluator be = this as BufferedEvaluator;
         if (be != null)
         {
             return this._Buffered = be;
         }
         else
         {
             return this._Buffered = new BufferedEvaluator(BufferSize, this);
         }
     }
     return this._Buffered;
 }
Ejemplo n.º 9
0
 public DivideEvaluator(Evaluator Left, BufferedEvaluator Right)
     : base(Left, Right)
 {
 }
Ejemplo n.º 10
0
 public BinaryEvaluator(Evaluator Left, BufferedEvaluator Right)
 {
     this.Left = Left;
     this.Right = Right;
 }
Ejemplo n.º 11
0
        protected override Evaluator CreateEvaluator(Dictionary<Expression, Evaluator> Cache, int BufferSize, int Resolution)
        {
            ConstantEvaluator constparam = this.Parameter.GetEvaluator(Cache, BufferSize, Resolution) as ConstantEvaluator;
            if (constparam != null)
            {
                return this.Items[(int)((uint)constparam.Value % (uint)this.Items.Count)].GetEvaluator(Cache, BufferSize, Resolution);
            }

            BufferedEvaluator[] items = new BufferedEvaluator[this.Items.Count];
            Value[] constitems = new Value[this.Items.Count];
            bool constseq = true;
            for (int t = 0; t < items.Length; t++)
            {
                Evaluator itemeval = this.Items[t].GetEvaluator(Cache, BufferSize, Resolution);
                items[t] = itemeval.GetBuffered(BufferSize);
                if (constseq)
                {
                    ConstantEvaluator constitem = itemeval as ConstantEvaluator;
                    if (constitem != null)
                    {
                        constitems[t] = constitem.Value;
                    }
                    else
                    {
                        constseq = false;
                    }
                }
            }

            if (constseq)
            {
                return new SequencerConstantEvaluator(constitems, this.Parameter.GetEvaluator(Cache, BufferSize, Resolution));
            }
            else
            {
                return new SequencerEvaluator(items, this.Parameter.GetEvaluator(Cache, BufferSize, Resolution));
            }
        }
Ejemplo n.º 12
0
 void IDisposable.Dispose()
 {
     this._Evaluator = null;
 }