summaryrefslogtreecommitdiffstats
path: root/src/com/cyanogenmod/eleven/widgets
diff options
context:
space:
mode:
authorUtkarsh Gupta <utkarsh.eminem@gmail.com>2015-07-23 11:23:46 +0530
committerUtkarsh Gupta <utkarsh.eminem@gmail.com>2015-08-08 12:16:39 +0530
commitff5b09da8fc2efc447bd06bb279ac041ca4c5ec7 (patch)
treea896005f53a4579f5d4df2bb4b9fcdf149482aaf /src/com/cyanogenmod/eleven/widgets
parenta0c8e3ecdd31fa4742d62391cd3fde212390d2fd (diff)
downloadandroid_packages_apps_Eleven-ff5b09da8fc2efc447bd06bb279ac041ca4c5ec7.tar.gz
android_packages_apps_Eleven-ff5b09da8fc2efc447bd06bb279ac041ca4c5ec7.tar.bz2
android_packages_apps_Eleven-ff5b09da8fc2efc447bd06bb279ac041ca4c5ec7.zip
Visualizer tweaks
- Show visualizer even when sliding panels - Hide visualizer in power save mode - Ignore first 2 bytes of FFT Data - they are quite random - Hide visualizer in landscape mode - Reduce color update delay Change-Id: I90f1a442db2f56f0e4075ff096711c163626731b Signed-off-by: Utkarsh Gupta <utkarsh.eminem@gmail.com>
Diffstat (limited to 'src/com/cyanogenmod/eleven/widgets')
-rw-r--r--src/com/cyanogenmod/eleven/widgets/VisualizerView.java38
1 files changed, 25 insertions, 13 deletions
diff --git a/src/com/cyanogenmod/eleven/widgets/VisualizerView.java b/src/com/cyanogenmod/eleven/widgets/VisualizerView.java
index a176bda..0c8a979 100644
--- a/src/com/cyanogenmod/eleven/widgets/VisualizerView.java
+++ b/src/com/cyanogenmod/eleven/widgets/VisualizerView.java
@@ -38,6 +38,7 @@ public class VisualizerView extends View {
private boolean mVisible = false;
private boolean mPlaying = false;
+ private boolean mPowerSaveMode = false;
private int mColor;
private Visualizer.OnDataCaptureListener mVisualizerListener =
@@ -55,13 +56,13 @@ public class VisualizerView extends View {
for (int i = 0; i < 32; i++) {
mValueAnimators[i].cancel();
- rfk = fft[i * 2];
- ifk = fft[i * 2 + 1];
+ rfk = fft[i * 2 + 2];
+ ifk = fft[i * 2 + 3];
magnitude = rfk * rfk + ifk * ifk;
dbValue = magnitude > 0 ? (int) (10 * Math.log10(magnitude)) : 0;
mValueAnimators[i].setFloatValues(mFFTPoints[i * 4 + 1],
- mFFTPoints[i * 4 + 3] - (dbValue * 16f));
+ mFFTPoints[3] - (dbValue * 16f));
mValueAnimators[i].start();
}
}
@@ -77,7 +78,7 @@ public class VisualizerView extends View {
}
mVisualizer.setEnabled(false);
- mVisualizer.setCaptureSize(64);
+ mVisualizer.setCaptureSize(66);
mVisualizer.setDataCaptureListener(mVisualizerListener, Visualizer.getMaxCaptureRate(),
false, true);
mVisualizer.setEnabled(true);
@@ -109,14 +110,18 @@ public class VisualizerView extends View {
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
- float barUnit = w / 32f;
- float barWidth = barUnit * 8f / 9f;
- barUnit = barWidth + (barUnit - barWidth) * 32f / 31f;
- mPaint.setStrokeWidth(barWidth);
+ if (h > w) {
+ float barUnit = w / 32f;
+ float barWidth = barUnit * 8f / 9f;
+ barUnit = barWidth + (barUnit - barWidth) * 32f / 31f;
+ mPaint.setStrokeWidth(barWidth);
- for (int i = 0; i < 32; i++) {
- mFFTPoints[i * 4] = mFFTPoints[i * 4 + 2] = i * barUnit + (barWidth / 2);
- mFFTPoints[i * 4 + 3] = h;
+ for (int i = 0; i < 32; i++) {
+ mFFTPoints[i * 4] = mFFTPoints[i * 4 + 2] = i * barUnit + (barWidth / 2);
+ mFFTPoints[i * 4 + 3] = h;
+ }
+ } else {
+ setVisible(false);
}
}
@@ -170,6 +175,13 @@ public class VisualizerView extends View {
}
}
+ public void setPowerSaveMode(boolean powerSaveMode) {
+ if (mPowerSaveMode != powerSaveMode) {
+ mPowerSaveMode = powerSaveMode;
+ checkStateChanged();
+ }
+ }
+
public void setColor(int color) {
color = Color.argb(191, Color.red(color), Color.green(color), Color.blue(color));
@@ -183,7 +195,7 @@ public class VisualizerView extends View {
mVisualizerColorAnimator = ObjectAnimator.ofArgb(mPaint, "color",
mPaint.getColor(), mColor);
- mVisualizerColorAnimator.setStartDelay(900);
+ mVisualizerColorAnimator.setStartDelay(600);
mVisualizerColorAnimator.setDuration(1200);
mVisualizerColorAnimator.start();
} else {
@@ -193,7 +205,7 @@ public class VisualizerView extends View {
}
private void checkStateChanged() {
- if (mVisible && mPlaying) {
+ if (mVisible && mPlaying && !mPowerSaveMode) {
if (mVisualizer == null) {
AsyncTask.execute(mLinkVisualizer);
animate().alpha(1f).setDuration(300);