[DEV] 2.4 tools
This commit is contained in:
227
java/cpp_version/cstr/est/Wave.java
Normal file
227
java/cpp_version/cstr/est/Wave.java
Normal file
@@ -0,0 +1,227 @@
|
||||
|
||||
//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
|
||||
// \\
|
||||
// Centre for Speech Technology Research \\
|
||||
// University of Edinburgh, UK \\
|
||||
// Copyright (c) 1996,1997 \\
|
||||
// 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. \\
|
||||
// THE UNIVERSITY OF EDINBURGH 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 THE UNIVERSITY OF EDINBURGH 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: Richard Caley (rjc@cstr.ed.ac.uk) \\
|
||||
// Date: Friday 12th September 1997 \\
|
||||
// -------------------------------------------------------------------- \\
|
||||
// Wrapper around the EST_Wave class. This is pretty horrible in that \\
|
||||
// it uses a long to hold a pointer to a wave. There must be a better \\
|
||||
// way. \\
|
||||
// \\
|
||||
//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
|
||||
|
||||
package cstr.est;
|
||||
|
||||
import java.util.*;
|
||||
import java.lang.*;
|
||||
import java.io.*;
|
||||
|
||||
public class Wave
|
||||
{
|
||||
long cpp_handle;
|
||||
int [] amplitudes;
|
||||
|
||||
public Wave()
|
||||
{
|
||||
create_cpp_wave();
|
||||
}
|
||||
|
||||
|
||||
|
||||
public Wave(byte [] bytes)
|
||||
throws UnsupportedEncodingException
|
||||
{
|
||||
if (!parse(bytes))
|
||||
{
|
||||
throw new UnsupportedEncodingException("Can't create Wave from this bytestream");
|
||||
}
|
||||
}
|
||||
|
||||
public Wave(File file)
|
||||
throws UnsupportedEncodingException, IOException
|
||||
{
|
||||
throw new IOException("Can't load from files yet");
|
||||
}
|
||||
|
||||
protected void finalize() throws Throwable
|
||||
{
|
||||
destroy_cpp_wave();
|
||||
super.finalize();
|
||||
}
|
||||
|
||||
public long getHandle()
|
||||
{
|
||||
return cpp_handle;
|
||||
}
|
||||
|
||||
private native String cpp_name();
|
||||
|
||||
public String name()
|
||||
{
|
||||
return cpp_name();
|
||||
}
|
||||
|
||||
private native void cpp_setName(String name);
|
||||
|
||||
public void setName(String name)
|
||||
{
|
||||
cpp_setName(name);
|
||||
}
|
||||
|
||||
public String getName()
|
||||
{
|
||||
return cpp_name();
|
||||
}
|
||||
|
||||
private native String cpp_load(String filename);
|
||||
|
||||
public void load(String filename) throws FileNotFoundException
|
||||
{
|
||||
String res = cpp_load(filename);
|
||||
|
||||
if (!res.equals(""))
|
||||
throw new FileNotFoundException(res);
|
||||
|
||||
amplitudes = new int[num_channels()];
|
||||
}
|
||||
|
||||
private native String cpp_save(String filename, String format);
|
||||
|
||||
public void save(String filename, String format) throws IOException
|
||||
{
|
||||
String res = cpp_save(filename, format);
|
||||
|
||||
if (!res.equals(""))
|
||||
throw new IOException(res);
|
||||
}
|
||||
|
||||
private native void cpp_resample(int rate);
|
||||
|
||||
|
||||
public void resample(int rate)
|
||||
{
|
||||
cpp_resample(rate);
|
||||
}
|
||||
|
||||
private static native void cpp_set_play_ops(String protocol,
|
||||
String command,
|
||||
String server);
|
||||
|
||||
public static void set_play_ops(String protocol,
|
||||
String command,
|
||||
String server)
|
||||
{
|
||||
cpp_set_play_ops(protocol, command, server);
|
||||
}
|
||||
|
||||
private native void cpp_play(float start, float end);
|
||||
|
||||
public void play(float start, float end)
|
||||
{
|
||||
System.out.println("play st");
|
||||
if (end > start)
|
||||
cpp_play(start, end);
|
||||
System.out.println("play end");
|
||||
}
|
||||
|
||||
private native void cpp_play_all();
|
||||
|
||||
public void play()
|
||||
{
|
||||
cpp_play_all();
|
||||
}
|
||||
|
||||
|
||||
private native int cpp_num_samples();
|
||||
|
||||
public int num_samples()
|
||||
{
|
||||
return cpp_num_samples();
|
||||
}
|
||||
|
||||
private native int cpp_num_channels();
|
||||
|
||||
public int num_channels()
|
||||
{
|
||||
return cpp_num_channels();
|
||||
}
|
||||
|
||||
private native int cpp_sample_rate();
|
||||
|
||||
public int sample_rate()
|
||||
{
|
||||
return cpp_sample_rate();
|
||||
}
|
||||
|
||||
private native int cpp_amplitude(int c);
|
||||
|
||||
public int amplitude(int c)
|
||||
{
|
||||
if (amplitudes[c] > 0)
|
||||
return amplitudes[c];
|
||||
|
||||
int a = cpp_amplitude(c);
|
||||
|
||||
amplitudes[c] = a;
|
||||
return a;
|
||||
}
|
||||
|
||||
public native int a(int x, int c);
|
||||
public native int a(float t, int c);
|
||||
|
||||
native public void cpp_getScanlines(int c,
|
||||
byte[] line,
|
||||
int lstart, int lnum,
|
||||
int x, int chunk,
|
||||
int width, int height,
|
||||
int amplitude
|
||||
);
|
||||
|
||||
public boolean parse(byte[] bytes)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
native public final int cpp_getMin(int c, int x1, int x2);
|
||||
native public final int cpp_getMax(int c, int x1, int x2);
|
||||
|
||||
private native static boolean initialise_cpp();
|
||||
private native static boolean finalise_cpp();
|
||||
private native boolean create_cpp_wave();
|
||||
private native boolean destroy_cpp_wave();
|
||||
|
||||
static {
|
||||
System.loadLibrary("estjava");
|
||||
if (!initialise_cpp())
|
||||
throw new ExceptionInInitializerError("Wave C++ fails");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user