Android Open Source - voicesmith Dafx Activity






From Project

Back to project page voicesmith.

License

The source code is released under:

GNU General Public License

If you think the Android project voicesmith listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Voicesmith <http://voicesmith.jurihock.de/>
 */* www .j a v  a  2  s. co m*/
 * Copyright (c) 2011-2014 Juergen Hock
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

package de.jurihock.voicesmith.activities;

import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import de.jurihock.voicesmith.DAFX;
import de.jurihock.voicesmith.R;
import de.jurihock.voicesmith.Utils;
import de.jurihock.voicesmith.services.DafxService;
import de.jurihock.voicesmith.services.ServiceFailureReason;
import de.jurihock.voicesmith.services.ServiceListener;
import de.jurihock.voicesmith.widgets.ColoredToggleButton;
import de.jurihock.voicesmith.widgets.DafxPicker;
import de.jurihock.voicesmith.widgets.IntervalPicker;

public final class DafxActivity extends AudioServiceActivity<DafxService>
  implements
  PropertyChangeListener, OnClickListener,
  OnCheckedChangeListener, ServiceListener
{
  // Relevant activity widgets:
  private DafxPicker      viewDafxPicker      = null;
  private IntervalPicker    viewIntervalPicker    = null;
  private CheckBox      viewBluetoothHeadset  = null;
    private CheckBox            viewInternalMic         = null;
  private ColoredToggleButton  viewStartStopButton    = null;

  public DafxActivity()
  {
    super(DafxService.class);
  }

  /**
   * Initializes the activity, its layout and widgets.
   * */
  @Override
  protected void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    this.setActionBarContentView(R.layout.dafx);

    viewDafxPicker = (DafxPicker) this.findViewById(R.id.viewDafxPicker);
    viewDafxPicker.setPropertyChangeListener(this);

    viewIntervalPicker = (IntervalPicker) this.findViewById(
      R.id.viewIntervalPicker);
    viewIntervalPicker.setPropertyChangeListener(this);

    viewBluetoothHeadset = (CheckBox) this.findViewById(
      R.id.viewBluetoothHeadset);
    viewBluetoothHeadset.setOnCheckedChangeListener(this);

        viewInternalMic = (CheckBox) this.findViewById(
                R.id.viewInternalMic);
        viewInternalMic.setOnCheckedChangeListener(this);

    viewStartStopButton = (ColoredToggleButton) this.findViewById(
      R.id.viewStartStopButton);
    viewStartStopButton.setOnClickListener(this);
  }

  @Override
  protected void onServiceConnected()
  {
    new Utils(this).log("DafxActivity founds the audio service.");

    getService().setActivityVisible(true, this.getClass());
    getService().setListener(this);

    // Update widgets
    viewDafxPicker.setDafx(getService().getDafx());
        viewBluetoothHeadset.setChecked(getService().isBluetoothHeadsetSupportOn());
        viewInternalMic.setChecked(getService().isInternalMicSupportOn());
    viewStartStopButton.setChecked(getService().isThreadRunning());

    if (getService().getDafx() == DAFX.Transpose)
    {
      viewIntervalPicker.setVisibility(View.VISIBLE);

            if(getService().hasThreadPreferences())
      {
        int interval = Integer.parseInt(getService().getThreadPreferences());
        viewIntervalPicker.setInterval(interval);
      }
    }
    else
    {
      viewIntervalPicker.setVisibility(View.GONE);
    }
  }

  @Override
  protected void onServiceDisconnected()
  {
    new Utils(this).log("DafxActivity losts the audio service.");

    if (!this.isFinishing())
    {
      getService().setActivityVisible(false, this.getClass());
    }

    getService().setListener(null);
  }

  public void onClick(View view)
  {
    if (getService().isThreadRunning())
    {
      if (viewStartStopButton.isChecked())
        viewStartStopButton.setChecked(false);

      getService().stopThread(false);
    }
    else
    {
      if (!viewStartStopButton.isChecked())
        viewStartStopButton.setChecked(true);

      getService().startThread();
    }

    // BZZZTT!!1!
    viewStartStopButton.performHapticFeedback(0);
  }

    public void onCheckedChanged(CompoundButton view, boolean value)
    {
        if (view == viewBluetoothHeadset)
        {
            if (getService().isBluetoothHeadsetSupportOn() != value)
            {
                getService().setBluetoothHeadsetSupport(value);
            }
        }
        else if (view == viewInternalMic)
        {
            if (getService().isInternalMicSupportOn() != value)
            {
                getService().setInternalMicSupport(value);
            }
        }
    }

  @Override
  public void propertyChange(PropertyChangeEvent event)
  {
    if (event.getSource().equals(viewDafxPicker))
    {
      DAFX dafx = viewDafxPicker.getDafx();

      getService().setDafx(dafx);

      if (dafx == DAFX.Transpose)
      {
        viewIntervalPicker.setVisibility(View.VISIBLE);

                if(getService().hasThreadPreferences())
                {
                    int interval = Integer.parseInt(getService().getThreadPreferences());
                    viewIntervalPicker.setInterval(interval);
                }
      }
      else
      {
        viewIntervalPicker.setVisibility(View.GONE);
      }
    }
    else if (event.getSource().equals(viewIntervalPicker))
    {
      int interval = viewIntervalPicker.getInterval();
      getService().setThreadPreferences(Integer.toString(interval));
    }
  }
  
  public void onServiceFailed(ServiceFailureReason reason)
  {
    if (viewStartStopButton.isChecked())
      viewStartStopButton.setChecked(false);

    new Utils(this).toast(getString(R.string.ServiceFailureMessage));

    // BZZZTT!!1!
    viewStartStopButton.performHapticFeedback(0);
  }
}




Java Source Code List

de.jurihock.voicesmith.AAF.java
de.jurihock.voicesmith.Application.java
de.jurihock.voicesmith.ChangeLog.java
de.jurihock.voicesmith.DAFX.java
de.jurihock.voicesmith.Disposable.java
de.jurihock.voicesmith.FrameType.java
de.jurihock.voicesmith.Preferences.java
de.jurihock.voicesmith.Utils.java
de.jurihock.voicesmith.activities.AafActivity.java
de.jurihock.voicesmith.activities.AboutActivity.java
de.jurihock.voicesmith.activities.AboutApplicationActivity.java
de.jurihock.voicesmith.activities.AboutLicenseActivity.java
de.jurihock.voicesmith.activities.AudioServiceActivity.java
de.jurihock.voicesmith.activities.ContributionActivity.java
de.jurihock.voicesmith.activities.DafxActivity.java
de.jurihock.voicesmith.activities.HomeActivity.java
de.jurihock.voicesmith.activities.PreferenceActivity.java
de.jurihock.voicesmith.activities.SupportActivity.java
de.jurihock.voicesmith.audio.AudioDeviceManager.java
de.jurihock.voicesmith.audio.HeadsetManagerListener.java
de.jurihock.voicesmith.audio.HeadsetManager.java
de.jurihock.voicesmith.audio.HeadsetMode.java
de.jurihock.voicesmith.dsp.KissFFT.java
de.jurihock.voicesmith.dsp.LuenbergerObserver.java
de.jurihock.voicesmith.dsp.Math.java
de.jurihock.voicesmith.dsp.SchmittTrigger.java
de.jurihock.voicesmith.dsp.Window.java
de.jurihock.voicesmith.dsp.processors.AmplifyProcessor.java
de.jurihock.voicesmith.dsp.processors.DenoiseProcessor.java
de.jurihock.voicesmith.dsp.processors.DetuneProcessor.java
de.jurihock.voicesmith.dsp.processors.HoarsenessProcessor.java
de.jurihock.voicesmith.dsp.processors.NativeResampleProcessor.java
de.jurihock.voicesmith.dsp.processors.NativeTimescaleProcessor.java
de.jurihock.voicesmith.dsp.processors.OffsetProcessor.java
de.jurihock.voicesmith.dsp.processors.ResampleProcessor.java
de.jurihock.voicesmith.dsp.processors.RobotizeProcessor.java
de.jurihock.voicesmith.dsp.processors.SeparationProcessor.java
de.jurihock.voicesmith.dsp.processors.TimescaleProcessor.java
de.jurihock.voicesmith.dsp.processors.VadProcessor.java
de.jurihock.voicesmith.dsp.stft.StftPostprocessor.java
de.jurihock.voicesmith.dsp.stft.StftPreprocessor.java
de.jurihock.voicesmith.io.AudioDevice.java
de.jurihock.voicesmith.io.dummy.DummyInDevice.java
de.jurihock.voicesmith.io.dummy.DummyOutDevice.java
de.jurihock.voicesmith.io.file.FileDevice.java
de.jurihock.voicesmith.io.file.FileInDevice.java
de.jurihock.voicesmith.io.file.FileOutDevice.java
de.jurihock.voicesmith.io.oscillators.CosineWave.java
de.jurihock.voicesmith.io.oscillators.PhaseAccumulator.java
de.jurihock.voicesmith.io.pcm.DelayedPcmInDevice.java
de.jurihock.voicesmith.io.pcm.PcmDevice.java
de.jurihock.voicesmith.io.pcm.PcmInDevice.java
de.jurihock.voicesmith.io.pcm.PcmOutDevice.java
de.jurihock.voicesmith.services.AafService.java
de.jurihock.voicesmith.services.AudioService.java
de.jurihock.voicesmith.services.DafxService.java
de.jurihock.voicesmith.services.ServiceBinder.java
de.jurihock.voicesmith.services.ServiceFailureReason.java
de.jurihock.voicesmith.services.ServiceListener.java
de.jurihock.voicesmith.threads.AudioThread.java
de.jurihock.voicesmith.threads.DelayThread.java
de.jurihock.voicesmith.threads.DetuneThread.java
de.jurihock.voicesmith.threads.HoarsenessThread.java
de.jurihock.voicesmith.threads.LowDelayThread.java
de.jurihock.voicesmith.threads.RobotizeThread.java
de.jurihock.voicesmith.threads.TransposeThread.java
de.jurihock.voicesmith.voicebank.Record.java
de.jurihock.voicesmith.voicebank.RecordsSerializer.java
de.jurihock.voicesmith.voicebank.Records.java
de.jurihock.voicesmith.widgets.AafPicker.java
de.jurihock.voicesmith.widgets.ColoredToggleButton.java
de.jurihock.voicesmith.widgets.DafxPicker.java
de.jurihock.voicesmith.widgets.DelayPicker.java
de.jurihock.voicesmith.widgets.IntervalPicker.java
de.jurihock.voicesmith.widgets.ListPreference.java
de.jurihock.voicesmith.widgets.SeekBarPreference.java