package org.korsakow.ide.resources.media;
import java.awt.Dimension;
public abstract class AbstractPlayableImage implements PlayableImage
{
private long time;
private boolean isPlaying = false;
private long duration = 5000;
public void setTime(long time)
{
this.time = time;
}
public long getTime()
{
return time;
}
public boolean isTemporal()
{
return true;
}
public boolean isPlaying()
{
return isPlaying;
}
public void setDuration(long duration)
{
this.duration = duration;
}
public long getDuration()
{
return duration;
}
public void start()
{
isPlaying = true;
}
public void stop()
{
isPlaying = false;
}
public Dimension getAspectRespectingDimension(Dimension outter) {
Dimension inner = getComponent().getPreferredSize();
float aspectRatio = inner.width/(float)inner.height;
if(outter.width/aspectRatio < outter.height) {
return new Dimension(outter.width, (int)(outter.width/aspectRatio));
} else {
return new Dimension((int)(outter.height*aspectRatio), outter.height);
}
}
public static Dimension getAspectRespectingDimension(int outterWidth, int outterHeight, float aspectRatio) {
if(outterWidth/aspectRatio < outterHeight) {
return new Dimension(outterWidth, (int)(outterWidth/aspectRatio));
} else {
return new Dimension((int)(outterHeight*aspectRatio), outterHeight);
}
}
}