| /* |
| * Copyright (C) 2009 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package com.android.effectstest; |
| |
| import android.app.Activity; |
| import android.content.Context; |
| import android.content.Intent; |
| import android.os.Bundle; |
| import android.util.Log; |
| import android.view.KeyEvent; |
| import android.view.Menu; |
| import android.view.View.OnClickListener; |
| import android.view.View; |
| import android.view.ViewGroup; |
| import android.widget.Button; |
| import android.widget.TextView; |
| import android.widget.ListView; |
| import android.widget.BaseAdapter; |
| import android.widget.LinearLayout; |
| import android.media.audiofx.AudioEffect; |
| |
| import java.util.UUID; |
| |
| public class EffectsTest extends Activity { |
| |
| private final static String TAG = "EffectsTest"; |
| |
| |
| public EffectsTest() { |
| Log.d(TAG, "contructor"); |
| } |
| |
| @Override |
| public void onCreate(Bundle icicle) { |
| super.onCreate(icicle); |
| setContentView(R.layout.effectstest); |
| |
| Button button = (Button) findViewById(R.id.env_reverb_actvity); |
| button.setOnClickListener(new OnClickListener() { |
| public void onClick(View v) { |
| startActivity(new Intent(EffectsTest.this, EnvReverbTest.class)); |
| } |
| }); |
| |
| button = (Button) findViewById(R.id.preset_reverb_actvity); |
| button.setOnClickListener(new OnClickListener() { |
| public void onClick(View v) { |
| startActivity(new Intent(EffectsTest.this, PresetReverbTest.class)); |
| } |
| }); |
| |
| button = (Button) findViewById(R.id.equalizer_actvity); |
| button.setOnClickListener(new OnClickListener() { |
| public void onClick(View v) { |
| startActivity(new Intent(EffectsTest.this, EqualizerTest.class)); |
| } |
| }); |
| |
| button = (Button) findViewById(R.id.virtualizer_actvity); |
| button.setOnClickListener(new OnClickListener() { |
| public void onClick(View v) { |
| startActivity(new Intent(EffectsTest.this, VirtualizerTest.class)); |
| } |
| }); |
| |
| button = (Button) findViewById(R.id.bassboost_actvity); |
| button.setOnClickListener(new OnClickListener() { |
| public void onClick(View v) { |
| startActivity(new Intent(EffectsTest.this, BassBoostTest.class)); |
| } |
| }); |
| |
| button = (Button) findViewById(R.id.visualizer_actvity); |
| button.setOnClickListener(new OnClickListener() { |
| public void onClick(View v) { |
| startActivity(new Intent(EffectsTest.this, VisualizerTest.class)); |
| } |
| }); |
| |
| AudioEffect.Descriptor[] descriptors = AudioEffect.queryEffects(); |
| |
| ListView list = (ListView) findViewById(R.id.effect_list); |
| list.setAdapter(new EffectListAdapter(this, descriptors)); |
| |
| } |
| |
| private class EffectListAdapter extends BaseAdapter { |
| |
| private Context mContext; |
| |
| AudioEffect.Descriptor[] mDescriptors; |
| |
| public EffectListAdapter(Context context, AudioEffect.Descriptor[] descriptors) { |
| Log.d(TAG, "EffectListAdapter contructor"); |
| mContext = context; |
| mDescriptors = descriptors; |
| for (int i = 0; i < mDescriptors.length; i++) { |
| Log.d(TAG, "Effect: "+i+" name: "+ mDescriptors[i].name); |
| } |
| } |
| |
| public int getCount() { |
| Log.d(TAG, "EffectListAdapter getCount(): "+mDescriptors.length); |
| return mDescriptors.length; |
| } |
| |
| public Object getItem(int position) { |
| Log.d(TAG, "EffectListAdapter getItem() at: "+position+" name: " |
| +mDescriptors[position].name); |
| return mDescriptors[position]; |
| } |
| |
| public long getItemId(int position) { |
| return position; |
| } |
| |
| public View getView(int position, View convertView, ViewGroup parent) { |
| EffectView ev; |
| if (convertView == null) { |
| Log.d(TAG, "getView() new EffectView position: " + position); |
| ev = new EffectView(mContext, mDescriptors); |
| } else { |
| Log.d(TAG, "getView() convertView position: " + position); |
| ev = new EffectView(mContext, mDescriptors); |
| //ev = (EffectView) convertView; |
| } |
| ev.set(position); |
| return ev; |
| } |
| } |
| |
| private class EffectView extends LinearLayout { |
| private Context mContext; |
| AudioEffect.Descriptor[] mDescriptors; |
| |
| public EffectView(Context context, AudioEffect.Descriptor[] descriptors) { |
| super(context); |
| |
| mContext = context; |
| mDescriptors = descriptors; |
| this.setOrientation(VERTICAL); |
| } |
| |
| public String effectUuidToString(UUID effectType) { |
| if (effectType.equals(AudioEffect.EFFECT_TYPE_VIRTUALIZER)) { |
| return "Virtualizer"; |
| } else if (effectType.equals(AudioEffect.EFFECT_TYPE_ENV_REVERB)){ |
| return "Reverb"; |
| } else if (effectType.equals(AudioEffect.EFFECT_TYPE_PRESET_REVERB)){ |
| return "Preset Reverb"; |
| } else if (effectType.equals(AudioEffect.EFFECT_TYPE_EQUALIZER)){ |
| return "Equalizer"; |
| } else if (effectType.equals(AudioEffect.EFFECT_TYPE_BASS_BOOST)){ |
| return "Bass Boost"; |
| } else if (effectType.equals(AudioEffect.EFFECT_TYPE_AGC)){ |
| return "Automatic Gain Control"; |
| } else if (effectType.equals(AudioEffect.EFFECT_TYPE_AEC)){ |
| return "Acoustic Echo Canceler"; |
| } else if (effectType.equals(AudioEffect.EFFECT_TYPE_NS)){ |
| return "Noise Suppressor"; |
| } |
| |
| return effectType.toString(); |
| } |
| |
| public void set(int position) { |
| TextView tv = new TextView(mContext); |
| tv.setText("Effect "+ position); |
| addView(tv, new LinearLayout.LayoutParams( |
| LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); |
| tv = new TextView(mContext); |
| tv.setText(" type: "+ effectUuidToString(mDescriptors[position].type)); |
| addView(tv, new LinearLayout.LayoutParams( |
| LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); |
| tv = new TextView(mContext); |
| tv.setText(" uuid: "+ mDescriptors[position].uuid.toString()); |
| addView(tv, new LinearLayout.LayoutParams( |
| LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); |
| tv = new TextView(mContext); |
| tv.setText(" name: "+ mDescriptors[position].name); |
| addView(tv, new LinearLayout.LayoutParams( |
| LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); |
| tv = new TextView(mContext); |
| tv.setText(" vendor: "+ mDescriptors[position].implementor); |
| addView(tv, new LinearLayout.LayoutParams( |
| LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); |
| tv = new TextView(mContext); |
| tv.setText(" mode: "+ mDescriptors[position].connectMode); |
| addView(tv, new LinearLayout.LayoutParams( |
| LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); |
| } |
| } |
| |
| } |