From 3a5b85a40d34472e0b73e2b63710235e436ecbe8 Mon Sep 17 00:00:00 2001 From: Roman Birg Date: Wed, 24 Jun 2015 22:12:05 -0700 Subject: visualizer: don't draw fade out paint when there's no content Smoothes out transitions from song to song Change-Id: I3d8485d34d33de1b6f2f76ca3930e18830025dac Signed-off-by: Roman Birg --- src/com/pheelicks/visualizer/VisualizerView.java | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/com/pheelicks/visualizer/VisualizerView.java b/src/com/pheelicks/visualizer/VisualizerView.java index dcbdcd0..5285336 100644 --- a/src/com/pheelicks/visualizer/VisualizerView.java +++ b/src/com/pheelicks/visualizer/VisualizerView.java @@ -54,6 +54,8 @@ public class VisualizerView extends View { private AudioData mAudioData; private FFTData mFftData; + private long mLastUpdate; + public VisualizerView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs); init(); @@ -134,12 +136,20 @@ public class VisualizerView extends View { }; mVisualizer.setDataCaptureListener(captureListener, - (int) (Visualizer.getMaxCaptureRate() * 0.75), true, true); + (int) (Visualizer.getMaxCaptureRate() * 0.75), captureWaveForm(), captureFft()); } mVisualizer.setEnabled(true); } + protected boolean captureWaveForm() { + return false; + } + + protected boolean captureFft() { + return true; + } + public void unlink() { if (mVisualizer != null) { mVisualizer.setEnabled(false); @@ -180,6 +190,7 @@ public class VisualizerView extends View { public void updateVisualizer(byte[] bytes) { mBytes = bytes; mAudioData.bytes = bytes; + mLastUpdate = System.currentTimeMillis(); invalidate(); } @@ -193,6 +204,7 @@ public class VisualizerView extends View { public void updateVisualizerFFT(byte[] bytes) { mFFTBytes = bytes; mFftData.bytes = bytes; + mLastUpdate = System.currentTimeMillis(); invalidate(); } @@ -243,8 +255,10 @@ public class VisualizerView extends View { } } - // Fade out old contents - mCanvas.drawPaint(mFadePaint); + if (System.currentTimeMillis() - mLastUpdate < 400) { + // Fade out old contents + mCanvas.drawPaint(mFadePaint); + } if (mFlash) { mFlash = false; -- cgit v1.2.3