/* * 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)); } } }