// Path: src/main/java/au/edu/jcu/v4l4j/exceptions/StateException.java
// public class StateException extends RuntimeException {
// 
// 	private static final long serialVersionUID = 1351714754008657462L;
// 
// 	public StateException(String message) {
// 		super(message);
// 	}
// 
// 	public StateException(String message, Throwable throwable) {
// 		super(message, throwable);
// 	}
// 
// 	public StateException(Throwable throwable) {
// 		super(throwable);
// 	}
// }
// 
// Path: src/main/java/au/edu/jcu/v4l4j/exceptions/V4L4JException.java
// public class V4L4JException extends Exception {
// 
// 	private static final long serialVersionUID = -8247407640809375121L;
// 	public V4L4JException(String message) {
// 		    super(message);
// 		  }
// 	public V4L4JException(String message, Throwable throwable) {
// 		super(message, throwable);
// 	}
// 	public V4L4JException(Throwable throwable) {
// 		super(throwable);
// 	}
// }


import java.util.List;
import java.util.Vector;
import au.edu.jcu.v4l4j.exceptions.StateException;
import au.edu.jcu.v4l4j.exceptions.V4L4JException;
	 * could have its type set to {@link FrameInterval.Type#UNSUPPORTED} if the
	 * driver does not support frame interval enumeration OR if the device is
	 * currently being used by another application and frame intervals cannot
	 * be enumerated at this time.</b><br>Frame interval information can also
	 * be obtained through {@link ResolutionInfo} objects, attached to each
	 * {@link ImageFormat}. See {@link #getFormatList()}.
	 * @return a {@link FrameInterval} object containing information about
	 * the supported frame intervals
	 * @param imf the capture image format for which the frame intervals should 
	 * be enumerated
	 * @param width the capture width for which the frame intervals should be 
	 * enumerated
	 * @param height the capture height for which the frame intervals should be 
	 * enumerated
	 * @throws StateException if the associated VideoDevice has been released
	 */
	public synchronized FrameInterval listIntervals(ImageFormat imf, 
			int width, int height){
		checkRelease();
		return doListIntervals(object, imf.getIndex(), width, height);
	}


	/**
	 * This constructor build a DeviceInfo object containing information about 
	 * the given V4L device.
	 * @param object the JNI C pointer to struct v4l4j_device
	 * @throws V4L4JException if there is an error retrieving information from
	 * the video device.
	 */	
// Path: src/main/java/au/edu/jcu/v4l4j/exceptions/StateException.java
// public class StateException extends RuntimeException {
// 
// 	private static final long serialVersionUID = 1351714754008657462L;
// 
// 	public StateException(String message) {
// 		super(message);
// 	}
// 
// 	public StateException(String message, Throwable throwable) {
// 		super(message, throwable);
// 	}
// 
// 	public StateException(Throwable throwable) {
// 		super(throwable);
// 	}
// }
// 
// Path: src/main/java/au/edu/jcu/v4l4j/exceptions/V4L4JException.java
// public class V4L4JException extends Exception {
// 
// 	private static final long serialVersionUID = -8247407640809375121L;
// 	public V4L4JException(String message) {
// 		    super(message);
// 		  }
// 	public V4L4JException(String message, Throwable throwable) {
// 		super(message, throwable);
// 	}
// 	public V4L4JException(Throwable throwable) {
// 		super(throwable);
// 	}
// }


// Path: src/main/java/au/edu/jcu/v4l4j/DeviceInfo.java
import java.util.List;
import java.util.Vector;
import au.edu.jcu.v4l4j.exceptions.StateException;
import au.edu.jcu.v4l4j.exceptions.V4L4JException;

	 * could have its type set to {@link FrameInterval.Type#UNSUPPORTED} if the
	 * driver does not support frame interval enumeration OR if the device is
	 * currently being used by another application and frame intervals cannot
	 * be enumerated at this time.</b><br>Frame interval information can also
	 * be obtained through {@link ResolutionInfo} objects, attached to each
	 * {@link ImageFormat}. See {@link #getFormatList()}.
	 * @return a {@link FrameInterval} object containing information about
	 * the supported frame intervals
	 * @param imf the capture image format for which the frame intervals should 
	 * be enumerated
	 * @param width the capture width for which the frame intervals should be 
	 * enumerated
	 * @param height the capture height for which the frame intervals should be 
	 * enumerated
	 * @throws StateException if the associated VideoDevice has been released
	 */
	public synchronized FrameInterval listIntervals(ImageFormat imf, 
			int width, int height){
		checkRelease();
		return doListIntervals(object, imf.getIndex(), width, height);
	}


	/**
	 * This constructor build a DeviceInfo object containing information about 
	 * the given V4L device.
	 * @param object the JNI C pointer to struct v4l4j_device
	 * @throws V4L4JException if there is an error retrieving information from
	 * the video device.
	 */	
	DeviceInfo(long object, String dev) throws V4L4JException{