1 /*
2  * Copyright 2017 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.mobileer.oboetester;
18 
19 import android.media.audiofx.Equalizer;
20 import android.media.audiofx.PresetReverb;
21 import android.util.Log;
22 
23 import java.io.IOException;
24 
25 
26 abstract class TestOutputActivityBase extends TestAudioActivity {
27     AudioOutputTester mAudioOutTester;
28 
29     private BufferSizeView mBufferSizeView;
30     private WorkloadView mWorkloadView;
31 
isOutput()32     @Override boolean isOutput() { return true; }
33 
34     @Override
resetConfiguration()35     protected void resetConfiguration() {
36         super.resetConfiguration();
37         mAudioOutTester.reset();
38     }
39 
findAudioCommon()40     protected void findAudioCommon() {
41         super.findAudioCommon();
42         mBufferSizeView = (BufferSizeView) findViewById(R.id.buffer_size_view);
43         mWorkloadView = (WorkloadView) findViewById(R.id.workload_view);
44     }
45 
46     @Override
addAudioOutputTester()47     public AudioOutputTester addAudioOutputTester() {
48         AudioOutputTester audioOutTester = super.addAudioOutputTester();
49         mWorkloadView.setAudioStreamTester(audioOutTester);
50         return audioOutTester;
51     }
52 
53     @Override
openAudio()54     public void openAudio() throws IOException {
55         super.openAudio();
56         if (mBufferSizeView != null) {
57             mBufferSizeView.onStreamOpened((OboeAudioStream) mAudioOutTester.getCurrentAudioStream());
58         }
59     }
60 
61     // TODO Add editor
setupEqualizer(int sessionId)62     public void setupEqualizer(int sessionId) {
63         Equalizer equalizer = new Equalizer(0, sessionId);
64         int numBands = equalizer.getNumberOfBands();
65         Log.d(TAG, "numBands " + numBands);
66         for (short band = 0; band < numBands; band++) {
67             String msg = "band " + band
68                     + ", center = " + equalizer.getCenterFreq(band)
69                     + ", level = " + equalizer.getBandLevel(band);
70             Log.d(TAG, msg);
71             equalizer.setBandLevel(band, (short)40);
72         }
73 
74         equalizer.setBandLevel((short) 1, (short) 300);
75     }
76 
setupReverb(int sessionId)77     public void setupReverb(int sessionId) {
78         PresetReverb effect = new PresetReverb(0, sessionId);
79     }
80 
81     @Override
setupEffects(int sessionId)82     public void setupEffects(int sessionId) {
83         // setupEqualizer(sessionId);
84         // setupReverb(sessionId);
85     }
86 }
87