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(); }
public XorEvaluator(Evaluator Left, BufferedEvaluator Right) : base(Left, Right) { }
public SubtractEvaluator(Evaluator Left, BufferedEvaluator Right) : base(Left, Right) { }
public SequencerEvaluator(BufferedEvaluator[] Items, Evaluator Parameter) { this.Items = Items; this.Parameter = Parameter; }
public RightShiftEvaluator(Evaluator Left, BufferedEvaluator Right) : base(Left, Right) { }
public MultiplyEvaluator(Evaluator Left, BufferedEvaluator Right) : base(Left, Right) { }
public ModulusEvaluator(Evaluator Left, BufferedEvaluator Right) : base(Left, Right) { }
/// <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; }
public DivideEvaluator(Evaluator Left, BufferedEvaluator Right) : base(Left, Right) { }
public BinaryEvaluator(Evaluator Left, BufferedEvaluator Right) { this.Left = Left; this.Right = Right; }
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)); } }
void IDisposable.Dispose() { this._Evaluator = null; }