189 lines
5.7 KiB
Java
189 lines
5.7 KiB
Java
|
|
//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
|
|
// \\
|
|
// 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_Track class. \\
|
|
// \\
|
|
//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
|
|
|
|
|
|
package cstr.est;
|
|
|
|
import java.util.*;
|
|
import java.lang.*;
|
|
import java.io.*;
|
|
|
|
public class Track
|
|
{
|
|
private long cpp_handle;
|
|
|
|
public Track()
|
|
{
|
|
create_cpp_track();
|
|
}
|
|
|
|
protected void finalize() throws Throwable
|
|
{
|
|
destroy_cpp_track();
|
|
super.finalize();
|
|
}
|
|
|
|
public long getHandle()
|
|
{
|
|
return cpp_handle;
|
|
}
|
|
|
|
private native String cpp_name();
|
|
|
|
public String name()
|
|
{
|
|
return cpp_name();
|
|
}
|
|
|
|
private native String cpp_load(String filename);
|
|
|
|
public void load(File filename) throws FileNotFoundException
|
|
{
|
|
String res = cpp_load(filename.getPath());
|
|
|
|
if (!res.equals(""))
|
|
throw new FileNotFoundException(res);
|
|
}
|
|
|
|
private native String cpp_save(String filename, String format, float start, float end);
|
|
|
|
public void save(File filename, TrackFileFormat format, float start, float end)
|
|
throws IOException
|
|
{
|
|
String res = cpp_save(filename.getPath(), format.toString(), start, end);
|
|
if (!res.equals(""))
|
|
throw new IOException(res);
|
|
}
|
|
|
|
public void save(File filename, float start, float end)
|
|
throws IOException
|
|
{
|
|
String res = cpp_save(filename.getPath(),
|
|
TrackFileFormat.EST_BINARY.toString(),
|
|
start, end);
|
|
if (!res.equals(""))
|
|
throw new IOException(res);
|
|
}
|
|
|
|
private native int cpp_num_frames();
|
|
|
|
public int num_frames()
|
|
{
|
|
return cpp_num_frames();
|
|
}
|
|
|
|
private native int cpp_num_channels();
|
|
|
|
public int num_channels()
|
|
{
|
|
return cpp_num_channels();
|
|
}
|
|
|
|
private native String cpp_channelName(int i);
|
|
|
|
public String channelName(int i)
|
|
{
|
|
return cpp_channelName(i);
|
|
}
|
|
|
|
private native int cpp_channelPosition(String n);
|
|
|
|
public int channelPosition(String n)
|
|
{
|
|
return cpp_channelPosition(n);
|
|
}
|
|
|
|
public native float a(int i, int c);
|
|
public native float a(float t, int c);
|
|
|
|
|
|
private native float cpp_t(int i);
|
|
|
|
public float t(int i)
|
|
{
|
|
return cpp_t(i);
|
|
}
|
|
|
|
private native boolean cpp_val(int i);
|
|
|
|
public boolean val(int i)
|
|
{
|
|
return cpp_val(i);
|
|
}
|
|
|
|
private native int cpp_frameBefore(float time);
|
|
|
|
public int frameBefore(float time)
|
|
{
|
|
return cpp_frameBefore(time);
|
|
}
|
|
|
|
private native int cpp_frameAfter(float time);
|
|
|
|
public int frameAfter(float time)
|
|
{
|
|
return cpp_frameAfter(time);
|
|
}
|
|
|
|
private native int cpp_frameNearest(float time);
|
|
|
|
public int frameNearest(float time)
|
|
{
|
|
return cpp_frameNearest(time);
|
|
}
|
|
|
|
private native float cpp_getEndTime();
|
|
|
|
public float getEndTime()
|
|
{
|
|
return cpp_getEndTime();
|
|
}
|
|
|
|
private native static boolean initialise_cpp();
|
|
private native static boolean finalise_cpp();
|
|
private native boolean create_cpp_track();
|
|
private native boolean destroy_cpp_track();
|
|
|
|
static {
|
|
System.loadLibrary("estjava");
|
|
if (!initialise_cpp())
|
|
throw new ExceptionInInitializerError("Track C++ fails");
|
|
}
|
|
}
|