diff options
Diffstat (limited to 'apps/OboeTester/app/src/main/java/com/mobileer/oboetester/WorkloadView.java')
-rw-r--r-- | apps/OboeTester/app/src/main/java/com/mobileer/oboetester/WorkloadView.java | 43 |
1 files changed, 31 insertions, 12 deletions
diff --git a/apps/OboeTester/app/src/main/java/com/mobileer/oboetester/WorkloadView.java b/apps/OboeTester/app/src/main/java/com/mobileer/oboetester/WorkloadView.java index 78d78df7..74027c2c 100644 --- a/apps/OboeTester/app/src/main/java/com/mobileer/oboetester/WorkloadView.java +++ b/apps/OboeTester/app/src/main/java/com/mobileer/oboetester/WorkloadView.java @@ -18,20 +18,29 @@ package com.mobileer.oboetester; import android.content.Context; import android.util.AttributeSet; +import android.util.Log; import android.view.LayoutInflater; import android.widget.LinearLayout; import android.widget.SeekBar; import android.widget.TextView; -public class WorkloadView extends LinearLayout { +import java.util.Locale; - private AudioStreamTester mAudioStreamTester; +public class WorkloadView extends LinearLayout { protected static final int FADER_PROGRESS_MAX = 1000; // must match layout protected TextView mTextView; protected SeekBar mSeekBar; + + private String mLabel = "Workload"; protected ExponentialTaper mExponentialTaper; + public interface WorkloadReceiver { + void setWorkload(int workload); + } + + WorkloadReceiver mWorkloadReceiver; + private SeekBar.OnSeekBarChangeListener mChangeListener = new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { @@ -64,12 +73,8 @@ public class WorkloadView extends LinearLayout { initializeViews(context); } - public AudioStreamTester getAudioStreamTester() { - return mAudioStreamTester; - } - - public void setAudioStreamTester(AudioStreamTester audioStreamTester) { - mAudioStreamTester = audioStreamTester; + public void setWorkloadReceiver(WorkloadReceiver workloadReceiver) { + mWorkloadReceiver = workloadReceiver; } void setFaderNormalizedProgress(double fraction) { @@ -90,15 +95,21 @@ public class WorkloadView extends LinearLayout { mTextView = (TextView) findViewById(R.id.textWorkload); mSeekBar = (SeekBar) findViewById(R.id.faderWorkload); mSeekBar.setOnSeekBarChangeListener(mChangeListener); - mExponentialTaper = new ExponentialTaper(0.0, 100.0, 10.0); + setRange(0.0, 100.0); //mSeekBar.setProgress(0); } + void setRange(double dMin, double dMax) { + mExponentialTaper = new ExponentialTaper(dMin, dMax, 10.0); + } + private void setValueByPosition(int progress) { - double workload = mExponentialTaper.linearToExponential( + int workload = (int) mExponentialTaper.linearToExponential( ((double)progress) / FADER_PROGRESS_MAX); - mAudioStreamTester.setWorkload(workload); - mTextView.setText("Workload = " + String.format("%6.2f", workload)); + if (mWorkloadReceiver != null) { + mWorkloadReceiver.setWorkload(workload); + } + mTextView.setText(getLabel() + " = " + String.format(Locale.getDefault(), "%3d", workload)); } @Override @@ -106,4 +117,12 @@ public class WorkloadView extends LinearLayout { super.setEnabled(enabled); mSeekBar.setEnabled(enabled); } + + public String getLabel() { + return mLabel; + } + + public void setLabel(String label) { + this.mLabel = label; + } } |