// Path: src/main/java/ca/hedlund/jpraat/binding/jna/NativeIntptr_t.java
// public final class NativeIntptr_t extends IntegerType {
// 
// 	private static final long serialVersionUID = 1L;
// 	
// 	public final static int SIZE = Native.LONG_SIZE;
// 	
// 	public NativeIntptr_t() {
// 		this(0L);
// 	}
// 	
// 	/** Create a NativeIntptr_t with the given value. */
//     public NativeIntptr_t(long value) {
//         this(value, false);
//     }
// 
//     /** Create a NativeIntptr_t with the given value, optionally unsigned. */
//     public NativeIntptr_t(long value, boolean unsigned) {
//         super(SIZE, value, unsigned);
//     }
//     
// }


import java.util.concurrent.atomic.*;
import ca.hedlund.jpraat.binding.jna.NativeIntptr_t;
import com.sun.jna.*;
import ca.hedlund.jpraat.binding.*;
import ca.hedlund.jpraat.binding.sys.*;
import ca.hedlund.jpraat.exceptions.*;
		} finally {
			Praat.wrapperLock.unlock();
		}
		
		return retVal;
	}
	
	public boolean haveWindow (double tmin, double tmax) throws PraatException {
		boolean retVal = false;
		try {
			Praat.wrapperLock.lock();
			retVal = Praat.INSTANCE.LongSound_haveWindow_wrapped(this,
					tmin, tmax);
			Praat.checkAndClearLastError();
		} catch (PraatException e) {
			throw e;
		} finally {
			Praat.wrapperLock.unlock();
		}
		return retVal;
	}
	
	public void getWindowExtrema (double tmin, double tmax, long channel,
			AtomicReference<Double> minimum, AtomicReference<Double> maximum) throws PraatException {
		final Pointer pmin = new Memory(Native.getNativeSize(Double.class)*2);
		final Pointer pmax = pmin.getPointer(1);
		
		try {
			Praat.wrapperLock.lock();
			Praat.INSTANCE.LongSound_getWindowExtrema_wrapped(this, tmin, tmax,
// Path: src/main/java/ca/hedlund/jpraat/binding/jna/NativeIntptr_t.java
// public final class NativeIntptr_t extends IntegerType {
// 
// 	private static final long serialVersionUID = 1L;
// 	
// 	public final static int SIZE = Native.LONG_SIZE;
// 	
// 	public NativeIntptr_t() {
// 		this(0L);
// 	}
// 	
// 	/** Create a NativeIntptr_t with the given value. */
//     public NativeIntptr_t(long value) {
//         this(value, false);
//     }
// 
//     /** Create a NativeIntptr_t with the given value, optionally unsigned. */
//     public NativeIntptr_t(long value, boolean unsigned) {
//         super(SIZE, value, unsigned);
//     }
//     
// }


// Path: src/main/java/ca/hedlund/jpraat/binding/fon/LongSound.java
import java.util.concurrent.atomic.*;
import ca.hedlund.jpraat.binding.jna.NativeIntptr_t;
import com.sun.jna.*;
import ca.hedlund.jpraat.binding.*;
import ca.hedlund.jpraat.binding.sys.*;
import ca.hedlund.jpraat.exceptions.*;

		} finally {
			Praat.wrapperLock.unlock();
		}
		
		return retVal;
	}
	
	public boolean haveWindow (double tmin, double tmax) throws PraatException {
		boolean retVal = false;
		try {
			Praat.wrapperLock.lock();
			retVal = Praat.INSTANCE.LongSound_haveWindow_wrapped(this,
					tmin, tmax);
			Praat.checkAndClearLastError();
		} catch (PraatException e) {
			throw e;
		} finally {
			Praat.wrapperLock.unlock();
		}
		return retVal;
	}
	
	public void getWindowExtrema (double tmin, double tmax, long channel,
			AtomicReference<Double> minimum, AtomicReference<Double> maximum) throws PraatException {
		final Pointer pmin = new Memory(Native.getNativeSize(Double.class)*2);
		final Pointer pmax = pmin.getPointer(1);
		
		try {
			Praat.wrapperLock.lock();
			Praat.INSTANCE.LongSound_getWindowExtrema_wrapped(this, tmin, tmax,
					new NativeIntptr_t(channel), pmin, pmax);