/*
* @(#)Time.java 1.5 02/08/21
*
* Copyright (c) 1996-2002 Sun Microsystems, Inc. All rights reserved.
*/
package javax.media;
/**
*
* Time is kept at nanosecond precision.
* <p>
* This is the JMF 1.0
* <a href = http://www.javasoft.com/products/java-media/jmf/forDevelopers/playerapi/javax.media.Time.html> Time </a>
* interface.
*
* @version 1.6 98/06/23
*/
public class Time implements java.io.Serializable {
public final static long ONE_SECOND = 1000000000L;
public final static Time TIME_UNKNOWN = new Time(Long.MAX_VALUE - 1);
private final static double NANO_TO_SEC = 1.0E-9;
/**
* Time in nanoseconds.
*/
protected long nanoseconds;
/**
* Constructs a Time using nanoseconds.
*
* @param nano Number of nanoseconds for this time.
*/
public Time(long nanoseconds) {
this.nanoseconds = nanoseconds;
}
/**
* Constructs a Time using seconds.
*
* @param seconds Time specified in seconds.
*/
public Time(double seconds) {
nanoseconds = secondsToNanoseconds(seconds);
}
/**
* Converts seconds to nanoseconds.
*/
protected long secondsToNanoseconds(double seconds) {
return (long)(seconds * ONE_SECOND);
}
/**
* Gets the time value in nanoseconds.
*
* @return time value in nanoseconds.
*/
public long getNanoseconds() {
return nanoseconds;
}
/**
* Gets the time value in seconds.
*
* @return time value in seconds.
*/
public double getSeconds() {
return nanoseconds * NANO_TO_SEC;
}
}
|