diff options
author | Felix Palmer <felix.palmer@metaswitch.com> | 2011-12-08 21:47:16 -0800 |
---|---|---|
committer | Felix Palmer <felix.palmer@metaswitch.com> | 2011-12-08 22:00:26 -0800 |
commit | 5ecda63ade42269ca6b4a114db0c81b2c5146659 (patch) | |
tree | ce6239e9eaefd9c2426ec58b5a874218df5289d9 /src/com/pheelicks/visualizer/VisualizerView.java | |
parent | e0c6d6f3ed2a473a6d11594a38db715b60a5ef88 (diff) | |
download | android_external_android-visualizer-5ecda63ade42269ca6b4a114db0c81b2c5146659.tar.gz android_external_android-visualizer-5ecda63ade42269ca6b4a114db0c81b2c5146659.tar.bz2 android_external_android-visualizer-5ecda63ade42269ca6b4a114db0c81b2c5146659.zip |
Moved renderer creation & addition out of
VisualizerView
Diffstat (limited to 'src/com/pheelicks/visualizer/VisualizerView.java')
-rw-r--r-- | src/com/pheelicks/visualizer/VisualizerView.java | 73 |
1 files changed, 30 insertions, 43 deletions
diff --git a/src/com/pheelicks/visualizer/VisualizerView.java b/src/com/pheelicks/visualizer/VisualizerView.java index 613218a..78e047e 100644 --- a/src/com/pheelicks/visualizer/VisualizerView.java +++ b/src/com/pheelicks/visualizer/VisualizerView.java @@ -6,6 +6,9 @@ */ package com.pheelicks.visualizer; +import java.util.HashSet; +import java.util.Set; + import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; @@ -21,9 +24,7 @@ import android.media.audiofx.Visualizer; import android.util.AttributeSet; import android.view.View; -import com.pheelicks.visualizer.renderer.BarGraphRenderer; -import com.pheelicks.visualizer.renderer.CircleRenderer; -import com.pheelicks.visualizer.renderer.LineRenderer; +import com.pheelicks.visualizer.renderer.Renderer; /** * A class that draws visualizations of data received from a @@ -38,6 +39,8 @@ public class VisualizerView extends View { private Rect mRect = new Rect(); private Visualizer mVisualizer; + private Set<Renderer> mRenderers; + private Paint mFlashPaint = new Paint(); private Paint mFadePaint = new Paint(); @@ -64,6 +67,8 @@ public class VisualizerView extends View { mFlashPaint.setColor(Color.argb(122, 255, 255, 255)); mFadePaint.setColor(Color.argb(238, 255, 255, 255)); // Adjust alpha to change how quickly the image fades mFadePaint.setXfermode(new PorterDuffXfermode(Mode.MULTIPLY)); + + mRenderers = new HashSet<Renderer>(); } /** @@ -114,6 +119,19 @@ public class VisualizerView extends View { }); } + public void addRenderer(Renderer renderer) + { + if(renderer != null) + { + mRenderers.add(renderer); + } + } + + public void clearRenderers() + { + mRenderers.clear(); + } + /** * Call to release the resources used by VisualizerView. Like with the * MediaPlayer it is good practice to call this method @@ -123,7 +141,6 @@ public class VisualizerView extends View { mVisualizer.release(); } - /** * Pass data to the visualizer. Typically this will be obtained from the * Android Visualizer.OnDataCaptureListener call back. See @@ -160,16 +177,12 @@ public class VisualizerView extends View { Bitmap mCanvasBitmap; Canvas mCanvas; - BarGraphRenderer mBarGraphRendererTop; - BarGraphRenderer mBarGraphRendererBottom; - CircleRenderer mCircleRenderer; - LineRenderer mLineRenderer; @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); - // Create canvas & renderers once we're ready to draw + // Create canvas once we're ready to draw mRect.set(0, 0, getWidth(), getHeight()); if(mCanvasBitmap == null) @@ -179,50 +192,24 @@ public class VisualizerView extends View { if(mCanvas == null) { mCanvas = new Canvas(mCanvasBitmap); - - // Now that we have a Canvas, can create Renderers - Paint paint = new Paint(); - paint.setStrokeWidth(50f); - paint.setAntiAlias(true); - paint.setColor(Color.argb(200, 233, 0, 44)); - mBarGraphRendererBottom = new BarGraphRenderer(16, paint, false); - - Paint paint2 = new Paint(); - paint2.setStrokeWidth(12f); - paint2.setAntiAlias(true); - paint2.setColor(Color.argb(200, 11, 111, 233)); - mBarGraphRendererTop = new BarGraphRenderer(4, paint2, true); - - Paint paint3 = new Paint(); - paint3.setStrokeWidth(3f); - paint3.setAntiAlias(true); - paint3.setColor(Color.argb(255, 222, 92, 143)); - mCircleRenderer = new CircleRenderer(paint3, true); - - Paint linePaint = new Paint(); - linePaint.setStrokeWidth(1f); - linePaint.setAntiAlias(true); - linePaint.setColor(Color.argb(88, 0, 128, 255)); - - Paint lineFlashPaint = new Paint(); - lineFlashPaint.setStrokeWidth(5f); - lineFlashPaint.setAntiAlias(true); - lineFlashPaint.setColor(Color.argb(188, 255, 255, 255)); - mLineRenderer = new LineRenderer(linePaint, lineFlashPaint, true); } if (mBytes != null) { // Render all audio renderers AudioData audioData = new AudioData(mBytes); - mCircleRenderer.render(mCanvas, audioData, mRect); - mLineRenderer.render(mCanvas, audioData, mRect); + for(Renderer r : mRenderers) + { + r.render(mCanvas, audioData, mRect); + } } if (mFFTBytes != null) { // Render all FFT renderers FFTData fftData = new FFTData(mFFTBytes); - mBarGraphRendererTop.render(mCanvas, fftData, mRect); - mBarGraphRendererBottom.render(mCanvas, fftData, mRect); + for(Renderer r : mRenderers) + { + r.render(mCanvas, fftData, mRect); + } } // Fade out old contents |