/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package feuille.karaoke.xfxintegration;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.ImageIcon;
/**
* \jitter(left,right,up,down,period[,seed])
* @author The Wingate 2940
*/
public class Jitter extends OIntegration {
Params left,right,up,down,period,seed;
public Jitter(){
name = lang.getValueOf("popm_jitter")!=null ? lang.getValueOf("popm_jitter") : "Shaking";
String p1 = lang.getValueOf("xfxparam_25")!=null ? lang.getValueOf("xfxparam_25") : "Left";
String p2 = lang.getValueOf("xfxparam_26")!=null ? lang.getValueOf("xfxparam_26") : "Right";
String p3 = lang.getValueOf("xfxparam_27")!=null ? lang.getValueOf("xfxparam_27") : "Up";
String p4 = lang.getValueOf("xfxparam_28")!=null ? lang.getValueOf("xfxparam_28") : "Down";
String p5 = lang.getValueOf("xfxparam_29")!=null ? lang.getValueOf("xfxparam_29") : "Period";
String p6 = lang.getValueOf("xfxparam_30")!=null ? lang.getValueOf("xfxparam_30") : "Seed";
left = new Params(p1, "0", false); paramsList.add(left);
right = new Params(p2, "0", false); paramsList.add(right);
up = new Params(p3, "0", false); paramsList.add(up);
down = new Params(p4, "0", false); paramsList.add(down);
period = new Params(p5, "0", false); paramsList.add(period);
seed = new Params(p6, "0", true); paramsList.add(seed);
}
@Override
public String getName() {
return name;
}
@Override
public ImageIcon getIcon() {
ImageIcon ii = new ImageIcon(getClass().getResource("20px-Crystal_Clear_app_ksame.png"));
return ii;
}
@Override
public void init() {
String[] table = commands.split(",");
if(table.length==6){
Pattern p = Pattern.compile("jitter\\((.+),(.+),(.+),(.+),(.+),(.+)");
Matcher m = p.matcher(commands);
if(m.matches()){
String x;
x = m.group(1); left.setParameter(x); paramsList.set(0, left);
x = m.group(2); right.setParameter(x); paramsList.set(1, right);
x = m.group(3); up.setParameter(x); paramsList.set(2, up);
x = m.group(4); down.setParameter(x); paramsList.set(3, down);
x = m.group(5); period.setParameter(x); paramsList.set(4, period);
x = m.group(6); seed.setParameter(x); paramsList.set(5, seed);
}
}else{
Pattern p = Pattern.compile("jitter\\((.+),(.+),(.+),(.+),(.+)");
Matcher m = p.matcher(commands);
if(m.matches()){
String x;
x = m.group(1); left.setParameter(x); paramsList.set(0, left);
x = m.group(2); right.setParameter(x); paramsList.set(1, right);
x = m.group(3); up.setParameter(x); paramsList.set(2, up);
x = m.group(4); down.setParameter(x); paramsList.set(3, down);
x = m.group(5); period.setParameter(x); paramsList.set(4, period);
seed.setInactive(true); paramsList.set(5, seed);
}
}
}
@Override
public void update() {
left = paramsList.get(0); String s1 = (String)left.getParameter();
right = paramsList.get(1); String s2 = (String)right.getParameter();
up = paramsList.get(2); String s3 = (String)up.getParameter();
down = paramsList.get(3); String s4 = (String)down.getParameter();
period = paramsList.get(4); String s5 = (String)period.getParameter();
seed = paramsList.get(5); String s6 = (String)seed.getParameter();
if(seed.isInactive()){
commands = "\\jitter("+s1+","+s2+","+s3+","+s4+","+s5+")";
}else{
commands = "\\jitter("+s1+","+s2+","+s3+","+s4+","+s5+","+s6+")";
}
}
}