Home | History | Annotate | Download | only in audio
      1 /*
      2  * Copyright (C) 2015 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package com.android.cts.verifier.audio;
     18 
     19 import com.android.cts.verifier.PassFailButtons;
     20 import com.android.cts.verifier.R;
     21 import com.android.cts.verifier.audio.wavelib.*;
     22 import com.android.compatibility.common.util.ReportLog;
     23 import com.android.compatibility.common.util.ResultType;
     24 import com.android.compatibility.common.util.ResultUnit;
     25 
     26 import android.app.AlertDialog;
     27 import android.content.Context;
     28 import android.media.AudioDeviceCallback;
     29 import android.media.AudioDeviceInfo;
     30 import android.media.AudioFormat;
     31 import android.media.AudioManager;
     32 import android.media.AudioTrack;
     33 import android.media.AudioRecord;
     34 import android.media.MediaRecorder;
     35 import android.os.Bundle;
     36 import android.os.Handler;
     37 import android.os.Message;
     38 import android.os.SystemClock;
     39 import android.util.Log;
     40 import android.view.View;
     41 import android.view.View.OnClickListener;
     42 import android.widget.Button;
     43 import android.widget.TextView;
     44 import android.widget.SeekBar;
     45 import android.widget.LinearLayout;
     46 import android.widget.ProgressBar;
     47 
     48 /**
     49  * Audio Frequency Test base activity
     50  */
     51 public class AudioFrequencyActivity extends PassFailButtons.Activity {
     52     private static final String TAG = "AudioFrequencyActivity";
     53 
     54     public int mMaxLevel = 0;
     55 
     56     public void setMaxLevel() {
     57         AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
     58         mMaxLevel = am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
     59         am.setStreamVolume(AudioManager.STREAM_MUSIC, (int)(mMaxLevel), 0);
     60     }
     61 
     62     public void setMinLevel() {
     63         AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
     64         am.setStreamVolume(AudioManager.STREAM_MUSIC, 0, 0);
     65     }
     66 
     67     public void testMaxLevel() {
     68         AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
     69         int currentLevel =  am.getStreamVolume(AudioManager.STREAM_MUSIC);
     70         Log.i(TAG, String.format("Max level: %d curLevel: %d", mMaxLevel, currentLevel));
     71         if (currentLevel != mMaxLevel) {
     72             new AlertDialog.Builder(this)
     73                 .setTitle(R.string.audio_general_warning)
     74                 .setMessage(R.string.audio_general_level_not_max)
     75                 .setPositiveButton(R.string.audio_general_ok, null)
     76                 .show();
     77         }
     78     }
     79 
     80 }
     81