Ejemplo n.º 1
0
        public override bool Render(RenderParams parentRp, RenderCanvas canvas)
        {
            if (!Active)
            {
                return(false);         // skip if not active
            }
            RenderParams rp = new RenderParams(parentRp);

            AdaptRenderParams(rp);
            RenderChildren(rp, canvas);

            if (rp.Time >= 0 && rp.Time < Duration && _sig != null)
            {
                double s = _sig.Render(rp.Time);
                switch (_modif)
                {
                case Modifier.DSP_PARAM:
                    if (_parentsDSP != null)
                    {
                        _parentsDSP.SetParameter(_paramNumber, s);
                    }
                    if (_parentsOsc != null)
                    {
                        _parentsOsc.SetParameter(_paramNumber, s);
                    }

                    break;

                case Modifier.NONE:
                    break;

                case Modifier.AMPLITUDE:
                    canvas.AmplMultiply *= s;
                    break;

                case Modifier.AMPLITUDE_ADDITIVE:
                    canvas.AmplMultiply += s;
                    break;

                case Modifier.PAN:
                    canvas.Pan += s;
                    break;
                }
                return(true);
            }
            return(false);
        } // end method