aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/pheelicks/visualizer/VisualizerView.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/pheelicks/visualizer/VisualizerView.java')
-rw-r--r--src/com/pheelicks/visualizer/VisualizerView.java47
1 files changed, 26 insertions, 21 deletions
diff --git a/src/com/pheelicks/visualizer/VisualizerView.java b/src/com/pheelicks/visualizer/VisualizerView.java
index a2fe6d7..dcbdcd0 100644
--- a/src/com/pheelicks/visualizer/VisualizerView.java
+++ b/src/com/pheelicks/visualizer/VisualizerView.java
@@ -50,9 +50,11 @@ public class VisualizerView extends View {
private Paint mFlashPaint = new Paint();
private Paint mFadePaint = new Paint();
+ private Matrix mMatrix;
+ private AudioData mAudioData;
+ private FFTData mFftData;
- public VisualizerView(Context context, AttributeSet attrs, int defStyle)
- {
+ public VisualizerView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs);
init();
}
@@ -71,6 +73,11 @@ public class VisualizerView extends View {
mBytes = null;
mFFTBytes = null;
+ mAudioData = new AudioData(null);
+ mFftData = new FFTData(null);
+
+ mMatrix = new Matrix();
+
mFlashPaint.setColor(Color.argb(122, 255, 255, 255));
mFadePaint.setColor(Color.argb(200, 255, 255, 255)); // Adjust alpha to
// change how
@@ -84,7 +91,7 @@ public class VisualizerView extends View {
/**
* Links the visualizer to a player
*
- * @param player - MediaPlayer instance to link to
+ * @param audioSessionId - MediaPlayer instance to link to
*/
public void link(int audioSessionId)
{
@@ -94,7 +101,6 @@ public class VisualizerView extends View {
mVisualizer = null;
}
- Log.i(TAG, "session=" + audioSessionId);
mAudioSessionId = audioSessionId;
if (mVisualizer == null) {
@@ -173,6 +179,7 @@ public class VisualizerView extends View {
*/
public void updateVisualizer(byte[] bytes) {
mBytes = bytes;
+ mAudioData.bytes = bytes;
invalidate();
}
@@ -185,6 +192,7 @@ public class VisualizerView extends View {
*/
public void updateVisualizerFFT(byte[] bytes) {
mFFTBytes = bytes;
+ mFftData.bytes = bytes;
invalidate();
}
@@ -199,6 +207,12 @@ public class VisualizerView extends View {
invalidate();
}
+ @Override
+ protected void onSizeChanged(int w, int h, int oldw, int oldh) {
+ super.onSizeChanged(w, h, oldw, oldh);
+ mRect.set(0, 0, getWidth(), getHeight());
+ }
+
Bitmap mCanvasBitmap;
Canvas mCanvas;
@@ -207,46 +221,37 @@ public class VisualizerView extends View {
super.onDraw(canvas);
// Create canvas once we're ready to draw
- mRect.set(0, 0, getWidth(), getHeight());
-
- if (mCanvasBitmap == null)
- {
+ if (mCanvasBitmap == null) {
mCanvasBitmap = Bitmap.createBitmap(canvas.getWidth(), canvas.getHeight(),
Config.ARGB_8888);
}
- if (mCanvas == null)
- {
+ if (mCanvas == null) {
mCanvas = new Canvas(mCanvasBitmap);
}
if (mBytes != null) {
// Render all audio renderers
- AudioData audioData = new AudioData(mBytes);
- for (Renderer r : mRenderers)
- {
- r.render(mCanvas, audioData, mRect);
+ for (Renderer r : mRenderers) {
+ r.render(mCanvas, mAudioData, mRect);
}
}
if (mFFTBytes != null) {
// Render all FFT renderers
- FFTData fftData = new FFTData(mFFTBytes);
- for (Renderer r : mRenderers)
- {
- r.render(mCanvas, fftData, mRect);
+ for (Renderer r : mRenderers) {
+ r.render(mCanvas, mFftData, mRect);
}
}
// Fade out old contents
mCanvas.drawPaint(mFadePaint);
- if (mFlash)
- {
+ if (mFlash) {
mFlash = false;
mCanvas.drawPaint(mFlashPaint);
}
- canvas.drawBitmap(mCanvasBitmap, new Matrix(), null);
+ canvas.drawBitmap(mCanvasBitmap, mMatrix, null);
}
// Methods for adding renderers to visualizer