Android Open Source - Flite-TTS-Engine-for-Android File Downloader






From Project

Back to project page Flite-TTS-Engine-for-Android.

License

The source code is released under:

/*************************************************************************/ /* */ /* Language Technologies Instit...

If you think the Android project Flite-TTS-Engine-for-Android 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

/*************************************************************************/
/*                                                                       */
/*                  Language Technologies Institute                      */
/*                     Carnegie Mellon University                        */
/*                         Copyright (c) 2010                            */
/*                        All Rights Reserved.                           */
/*                                                                       */
/*  Permission is hereby granted, free of charge, to use and distribute  */
/*  this software and its documentation without restriction, including   */
/*  without limitation the rights to use, copy, modify, merge, publish,  */
/*  distribute, sublicense, and/or sell copies of this work, and to      */
/*  permit persons to whom this work is furnished to do so, subject to   */
/*  the following conditions:                                            */
/*   1. The code must retain the above copyright notice, this list of    */
/*      conditions and the following disclaimer.                         */
/*   2. Any modifications must be clearly marked as such.                */
/*   3. Original authors' names are not deleted.                         */
/*   4. The authors' names are not used to endorse or promote products   */
/*      derived from this software without specific prior written        */
/*      permission.                                                      */
/*                                                                       */
/*  CARNEGIE MELLON UNIVERSITY AND THE CONTRIBUTORS TO THIS WORK         */
/*  DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING      */
/*  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT   */
/*  SHALL CARNEGIE MELLON UNIVERSITY NOR THE CONTRIBUTORS BE LIABLE      */
/*  FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES    */
/*  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN   */
/*  AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,          */
/*  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF       */
/*  THIS SOFTWARE.                                                       */
/*                                                                       */
/*************************************************************************/
/*             Author:  Alok Parlikar (aup@cs.cmu.edu)                   */
/*               Date:  April 2010                                       */
/*************************************************************************/
/*from   w  ww . j  a v a2 s  .c o  m*/
package edu.cmu.cs.speech.tts.flite;

import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import android.util.Log;

public class FileDownloader {
  private final static String LOG_TAG = "Flite_Java_" + FileDownloader.class.getSimpleName();  
  public int totalFileLength = 0;
  public int finishedFileLength;

  public boolean abortDownload;
  public boolean finished;
  public boolean success;

  public void saveUrlAsFile(final String url, final String filename) {
    finished = false;
    success = false;
    new Thread() {
      public void run() {
        save(url, filename);
      }
    }.start();
  }

  private boolean save(String url, String filename) {
    try {
      //TODO (aup): Improve the exception handling. This is cruel.

      abortDownload = false;

      Log.v(LOG_TAG,"Trying to save "+url+" as "+filename);
      URL u = new URL(url);
      URLConnection uc = u.openConnection();

      uc.setDoInput(true);
      uc.setDoOutput(true);
      uc.getOutputStream();

      int contentLength = uc.getContentLength();

      totalFileLength = contentLength;
      finishedFileLength = 0;

      InputStream raw = uc.getInputStream();
      InputStream in = new BufferedInputStream(raw,1024);
      FileOutputStream out = new FileOutputStream(filename);

      int bytesRead = 0;
      byte[] data = new byte[1024];

      while (bytesRead != -1) {
        bytesRead = in.read(data, 0, 1024);
        if (bytesRead == -1)
          break;          
        finishedFileLength += bytesRead;
        out.write(data, 0, bytesRead);
        if(abortDownload)
          break;
      }
      Log.v(LOG_TAG, "FinishedFileLength: " + finishedFileLength);
      in.close();

      out.flush();
      out.close();

      if(abortDownload) {
        Log.e(LOG_TAG, "File download aborted by user");
        success = false;
        finished = true;
        new java.io.File(filename).delete();
        return false;
      }

      if ((contentLength > 0) && (finishedFileLength != contentLength)) {
        throw new IOException("Only read " + finishedFileLength + " bytes; Expected " + contentLength + " bytes");
      }

      finished = true;
      success = true;
      return true;
    }
    catch (Exception e) {
      Log.e("Flite Utility","Could not save url as file.: "+e.getMessage());
      finished = true;
      return false;
    }
  }

  public void abort() {
    abortDownload = true;
  }

}




Java Source Code List

edu.cmu.cs.speech.tts.flite.CheckVoiceData.java
edu.cmu.cs.speech.tts.flite.DownloadVoiceData.java
edu.cmu.cs.speech.tts.flite.FileDownloader.java
edu.cmu.cs.speech.tts.flite.FliteInfoViewer.java
edu.cmu.cs.speech.tts.flite.FliteManager.java
edu.cmu.cs.speech.tts.flite.FliteTtsService.java
edu.cmu.cs.speech.tts.flite.Flite.java
edu.cmu.cs.speech.tts.flite.GetSampleText.java
edu.cmu.cs.speech.tts.flite.NativeFliteTTS.java
edu.cmu.cs.speech.tts.flite.TTSDemo.java
edu.cmu.cs.speech.tts.flite.Utility.java
edu.cmu.cs.speech.tts.flite.Voice.java
edu.cmu.cs.speech.tts.flite.providers.SettingsProvider.java