/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package webcamstudio.channels.transitions;
import webcamstudio.streams.SourceChannel;
import webcamstudio.streams.Stream;
/**
*
* @author patrick (modified by karl)
*/
public abstract class Transition implements Runnable{
public static Transition getInstance(Stream source, String name) {
Transition t = null;
switch (name) {
case "FadeIn":
t = new FadeIn(source);
break;
case "FadeOut":
t = new FadeOut(source);
break;
case "TranslateIn":
t = new TranslateIn(source);
break;
case "TranslateOut":
t = new TranslateOut(source);
break;
case "CornerResize":
t= new CornerResize(source);
break;
case "CornerShrink":
t= new CornerShrink(source);
break;
case "ResizeIn":
t= new ResizeIn(source);
break;
case "RevealLeft":
t = new RevealLeft(source);
break;
case "RevealRight":
t = new RevealRight(source);
break;
case "HideRight":
t = new HideRight(source);
break;
case "HideLeft":
t = new HideLeft(source);
break;
case "ShrinkOut":
t = new ShrinkOut(source);
break;
case "AudioFadeIn":
t = new AudioFadeIn(source);
break;
case "AudioFadeOut":
t = new AudioFadeOut(source);
break;
}
return t;
}
public static String[] getStartTransitions() {
String[] ts = {"FadeIn","AudioFadeIn","TranslateIn","CornerResize","ResizeIn","RevealLeft","RevealRight"};
return ts;
}
public static String[] getEndTransitions() {
String[] te = {"FadeOut","AudioFadeOut","TranslateOut","CornerShrink","ShrinkOut","HideLeft","HideRight"};
return te;
}
Stream source= null;
SourceChannel channel = null;
protected Transition(Stream source){
this.source=source;
}
protected abstract void execute();
public Transition run(SourceChannel sc){
channel=sc;
return this;
}
@Override
public void run() {
execute();
}
}