/* * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ package org.webrtc.webrtcdemo; import android.app.Activity; import android.app.Fragment; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.CheckBox; import android.widget.EditText; import android.widget.Spinner; import android.widget.TextView; import java.lang.Integer; public class AudioMenuFragment extends Fragment { private String TAG; private MenuStateProvider stateProvider; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.audiomenu, container, false); TAG = getResources().getString(R.string.tag); String[] audioCodecsStrings = getEngine().audioCodecsAsString(); Spinner spAudioCodecType = (Spinner) v.findViewById(R.id.spAudioCodecType); spAudioCodecType.setAdapter(new SpinnerAdapter(getActivity(), R.layout.dropdownitems, audioCodecsStrings, inflater)); spAudioCodecType.setSelection(getEngine().audioCodecIndex()); spAudioCodecType.setOnItemSelectedListener(new OnItemSelectedListener() { public void onItemSelected(AdapterView adapterView, View view, int position, long id) { getEngine().setAudioCodec(position); } public void onNothingSelected(AdapterView arg0) { Log.d(TAG, "No setting selected"); } }); EditText etATxPort = (EditText) v.findViewById(R.id.etATxPort); etATxPort.setText(Integer.toString(getEngine().audioTxPort())); etATxPort.setOnClickListener(new View.OnClickListener() { public void onClick(View editText) { EditText etATxPort = (EditText) editText; getEngine() .setAudioTxPort(Integer.parseInt(etATxPort.getText().toString())); etATxPort.setText(Integer.toString(getEngine().audioTxPort())); } }); EditText etARxPort = (EditText) v.findViewById(R.id.etARxPort); etARxPort.setText(Integer.toString(getEngine().audioRxPort())); etARxPort.setOnClickListener(new View.OnClickListener() { public void onClick(View editText) { EditText etARxPort = (EditText) editText; getEngine() .setAudioRxPort(Integer.parseInt(etARxPort.getText().toString())); etARxPort.setText(Integer.toString(getEngine().audioRxPort())); } }); CheckBox cbEnableAecm = (CheckBox) v.findViewById(R.id.cbAecm); cbEnableAecm.setChecked(getEngine().aecmEnabled()); cbEnableAecm.setOnClickListener(new View.OnClickListener() { public void onClick(View checkBox) { CheckBox cbEnableAecm = (CheckBox) checkBox; getEngine().setEc(cbEnableAecm.isChecked()); cbEnableAecm.setChecked(getEngine().aecmEnabled()); } }); CheckBox cbEnableNs = (CheckBox) v.findViewById(R.id.cbNoiseSuppression); cbEnableNs.setChecked(getEngine().nsEnabled()); cbEnableNs.setOnClickListener(new View.OnClickListener() { public void onClick(View checkBox) { CheckBox cbEnableNs = (CheckBox) checkBox; getEngine().setNs(cbEnableNs.isChecked()); cbEnableNs.setChecked(getEngine().nsEnabled()); } }); CheckBox cbEnableAgc = (CheckBox) v.findViewById(R.id.cbAutoGainControl); cbEnableAgc.setChecked(getEngine().agcEnabled()); cbEnableAgc.setOnClickListener(new View.OnClickListener() { public void onClick(View checkBox) { CheckBox cbEnableAgc = (CheckBox) checkBox; getEngine().setAgc(cbEnableAgc.isChecked()); cbEnableAgc.setChecked(getEngine().agcEnabled()); } }); CheckBox cbEnableSpeaker = (CheckBox) v.findViewById(R.id.cbSpeaker); cbEnableSpeaker.setChecked(getEngine().speakerEnabled()); cbEnableSpeaker.setOnClickListener(new View.OnClickListener() { public void onClick(View checkBox) { CheckBox cbEnableSpeaker = (CheckBox) checkBox; getEngine().setSpeaker(cbEnableSpeaker.isChecked()); cbEnableSpeaker.setChecked(getEngine().speakerEnabled()); } }); CheckBox cbEnableDebugAPM = (CheckBox) v.findViewById(R.id.cbDebugRecording); cbEnableDebugAPM.setChecked(getEngine().apmRecord()); cbEnableDebugAPM.setOnClickListener(new View.OnClickListener() { public void onClick(View checkBox) { CheckBox cbEnableDebugAPM = (CheckBox) checkBox; getEngine().setDebuging(cbEnableDebugAPM.isChecked()); cbEnableDebugAPM.setChecked(getEngine().apmRecord()); } }); CheckBox cbEnableAudioRTPDump = (CheckBox) v.findViewById(R.id.cbAudioRTPDump); cbEnableAudioRTPDump.setChecked(getEngine().audioRtpDump()); cbEnableAudioRTPDump.setOnClickListener(new View.OnClickListener() { public void onClick(View checkBox) { CheckBox cbEnableAudioRTPDump = (CheckBox) checkBox; getEngine().setIncomingVoeRtpDump(cbEnableAudioRTPDump.isChecked()); cbEnableAudioRTPDump.setChecked(getEngine().audioRtpDump()); } }); return v; } @Override public void onAttach(Activity activity) { super.onAttach(activity); // This makes sure that the container activity has implemented // the callback interface. If not, it throws an exception. try { stateProvider = (MenuStateProvider) activity; } catch (ClassCastException e) { throw new ClassCastException(activity + " must implement MenuStateProvider"); } } private MediaEngine getEngine() { return stateProvider.getEngine(); } }