diff options
Diffstat (limited to 'src/com/pheelicks/visualizer/renderer')
4 files changed, 31 insertions, 44 deletions
diff --git a/src/com/pheelicks/visualizer/renderer/BarGraphRenderer.java b/src/com/pheelicks/visualizer/renderer/BarGraphRenderer.java index 0901b4b..b17a695 100644 --- a/src/com/pheelicks/visualizer/renderer/BarGraphRenderer.java +++ b/src/com/pheelicks/visualizer/renderer/BarGraphRenderer.java @@ -21,30 +21,28 @@ public class BarGraphRenderer extends Renderer /** * Renders the FFT data as a series of lines, in histogram form - * @param canvas * @param divisions - must be a power of 2. Controls how many lines to draw * @param paint - Paint to draw lines with * @param top - whether to draw the lines at the top of the canvas, or the bottom */ - public BarGraphRenderer(Canvas canvas, - int divisions, + public BarGraphRenderer(int divisions, Paint paint, boolean top) { - super(canvas); + super(); mDivisions = divisions; mPaint = paint; mTop = top; } @Override - public void onRender(AudioData data, Rect rect) + public void onRender(Canvas canvas, AudioData data, Rect rect) { // Do nothing, we only display FFT data } @Override - public void onRender(FFTData data, Rect rect) + public void onRender(Canvas canvas, FFTData data, Rect rect) { for (int i = 0; i < data.bytes.length / mDivisions; i++) { mFFTPoints[i * 4] = i * 4 * mDivisions; @@ -66,6 +64,6 @@ public class BarGraphRenderer extends Renderer } } - mCanvas.drawLines(mFFTPoints, mPaint); + canvas.drawLines(mFFTPoints, mPaint); } } diff --git a/src/com/pheelicks/visualizer/renderer/CircleRenderer.java b/src/com/pheelicks/visualizer/renderer/CircleRenderer.java index 1f159b2..8c7fab5 100644 --- a/src/com/pheelicks/visualizer/renderer/CircleRenderer.java +++ b/src/com/pheelicks/visualizer/renderer/CircleRenderer.java @@ -24,12 +24,9 @@ public class CircleRenderer extends Renderer * @param canvas * @param paint - Paint to draw lines with */ - public CircleRenderer(Canvas canvas, - Paint paint) + public CircleRenderer(Paint paint) { - this(canvas, - paint, - false); + this(paint, false); } /** @@ -38,17 +35,15 @@ public class CircleRenderer extends Renderer * @param paint - Paint to draw lines with * @param cycleColor - If true the color will change on each frame */ - public CircleRenderer(Canvas canvas, - Paint paint, - boolean cycleColor) + public CircleRenderer(Paint paint, boolean cycleColor) { - super(canvas); + super(); mPaint = paint; mCycleColor = cycleColor; } @Override - public void onRender(AudioData data, Rect rect) + public void onRender(Canvas canvas, AudioData data, Rect rect) { if(mCycleColor) { @@ -75,14 +70,14 @@ public class CircleRenderer extends Renderer mPoints[i * 4 + 3] = polarPoint2[1]; } - mCanvas.drawLines(mPoints, mPaint); + canvas.drawLines(mPoints, mPaint); // Controls the pulsing rate modulation += 0.04; } @Override - public void onRender(FFTData data, Rect rect) + public void onRender(Canvas canvas, FFTData data, Rect rect) { // Do nothing, we only display audio data } diff --git a/src/com/pheelicks/visualizer/renderer/LineRenderer.java b/src/com/pheelicks/visualizer/renderer/LineRenderer.java index 494f252..55de67d 100644 --- a/src/com/pheelicks/visualizer/renderer/LineRenderer.java +++ b/src/com/pheelicks/visualizer/renderer/LineRenderer.java @@ -28,14 +28,9 @@ public class LineRenderer extends Renderer * @param paint - Paint to draw lines with * @param paint - Paint to draw flash with */ - public LineRenderer(Canvas canvas, - Paint paint, - Paint flashPaint) + public LineRenderer(Paint paint, Paint flashPaint) { - this(canvas, - paint, - flashPaint, - false); + this(paint, flashPaint, false); } /** @@ -45,19 +40,18 @@ public class LineRenderer extends Renderer * @param paint - Paint to draw flash with * @param cycleColor - If true the color will change on each frame */ - public LineRenderer(Canvas canvas, - Paint paint, + public LineRenderer(Paint paint, Paint flashPaint, boolean cycleColor) { - super(canvas); + super(); mPaint = paint; mFlashPaint = flashPaint; mCycleColor = cycleColor; } @Override - public void onRender(AudioData data, Rect rect) + public void onRender(Canvas canvas, AudioData data, Rect rect) { if(mCycleColor) { @@ -85,18 +79,18 @@ public class LineRenderer extends Renderer { // Amplitude is bigger than normal, make a prominent line amplitude = amp; - mCanvas.drawLines(mPoints, mFlashPaint); + canvas.drawLines(mPoints, mFlashPaint); } else { // Amplitude is nothing special, reduce the amplitude amplitude *= 0.99; - mCanvas.drawLines(mPoints, mPaint); + canvas.drawLines(mPoints, mPaint); } } @Override - public void onRender(FFTData data, Rect rect) + public void onRender(Canvas canvas, FFTData data, Rect rect) { // Do nothing, we only display audio data } diff --git a/src/com/pheelicks/visualizer/renderer/Renderer.java b/src/com/pheelicks/visualizer/renderer/Renderer.java index ada0caa..12be4b8 100644 --- a/src/com/pheelicks/visualizer/renderer/Renderer.java +++ b/src/com/pheelicks/visualizer/renderer/Renderer.java @@ -14,60 +14,60 @@ import com.pheelicks.visualizer.FFTData; abstract public class Renderer { - // Canvas & Rect to render to - protected Canvas mCanvas; - // Have these as members, so we don't have to re-create them each time protected float[] mPoints; protected float[] mFFTPoints; - public Renderer(Canvas canvas) + public Renderer() { - mCanvas = canvas; } // As the display of raw/FFT audio will usually look different, subclasses // will typically only implement one of the below methods /** * Implement this method to render the audio data onto the canvas + * @param canvas - Canvas to draw on * @param data - Data to render * @param rect - Rect to render into */ - abstract public void onRender(AudioData data, Rect rect); + abstract public void onRender(Canvas canvas, AudioData data, Rect rect); /** * Implement this method to render the FFT audio data onto the canvas + * @param canvas - Canvas to draw on * @param data - Data to render * @param rect - Rect to render into */ - abstract public void onRender(FFTData data, Rect rect); + abstract public void onRender(Canvas canvas, FFTData data, Rect rect); // These methods should actually be called for rendering /** * Render the audio data onto the canvas + * @param canvas - Canvas to draw on * @param data - Data to render * @param rect - Rect to render into */ - final public void render(AudioData data, Rect rect) + final public void render(Canvas canvas, AudioData data, Rect rect) { if (mPoints == null || mPoints.length < data.bytes.length * 4) { mPoints = new float[data.bytes.length * 4]; } - onRender(data, rect); + onRender(canvas, data, rect); } /** * Render the FFT data onto the canvas + * @param canvas - Canvas to draw on * @param data - Data to render * @param rect - Rect to render into */ - final public void render(FFTData data, Rect rect) + final public void render(Canvas canvas, FFTData data, Rect rect) { if (mFFTPoints == null || mFFTPoints.length < data.bytes.length * 4) { mFFTPoints = new float[data.bytes.length * 4]; } - onRender(data, rect); + onRender(canvas, data, rect); } } |