You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
1.6 KiB
Java
83 lines
1.6 KiB
Java
package main;
|
|
|
|
import java.awt.Color;
|
|
|
|
import javax.swing.JPanel;
|
|
|
|
import com.softsynth.jsyn.Synth;
|
|
|
|
public class Cue extends Thread {
|
|
|
|
JPanel cuePanel;
|
|
int startTick;
|
|
int cuesPast;
|
|
int clicksPast;
|
|
int[] cuesPoints;
|
|
|
|
|
|
public Cue(JPanel cP){
|
|
super();
|
|
cuePanel = cP;
|
|
//add(new LineOut());
|
|
}
|
|
|
|
public void init(int[] cP){
|
|
//startTick = sT;
|
|
cuesPoints = cP;
|
|
cuesPast = 0;
|
|
clicksPast = 0;
|
|
}
|
|
|
|
public synchronized void run() {
|
|
|
|
try {
|
|
//System.out.println("waiting");
|
|
this.wait(0);
|
|
} catch (InterruptedException e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
//boolean isOn = true;
|
|
|
|
int startTime = cuesPoints[0];
|
|
|
|
int duration = (int) (Synth.getTickRate() / 10);
|
|
//int duration = (int) (Synth.getTickRate() / 50);
|
|
|
|
int advanceTime = (int) (Synth.getTickRate() * .5); // half second advance
|
|
Synth.sleepUntilTick(startTime - advanceTime);// /*(int) (Math.random() * 2 * Synth.getTickRate())*/); // Wake up early!
|
|
int nextTime = startTime;
|
|
int nextCueTime = startTime;
|
|
while(true)
|
|
{
|
|
if (Rise.IS_ENGINE_ON == true) {
|
|
|
|
if (Synth.getTickCount() > nextCueTime) {
|
|
if (cuesPast % 2 == 0) {
|
|
cuePanel.setBackground(Color.BLACK);
|
|
}
|
|
else{
|
|
cuePanel.setBackground(Color.WHITE);
|
|
}
|
|
cuesPast++;
|
|
nextCueTime = cuesPoints[cuesPast];
|
|
//System.out.println("test " + clicksPast + " " + nextCueTime + " " + Synth.getTickCount());
|
|
}
|
|
|
|
nextTime += duration;
|
|
Synth.sleepUntilTick(nextTime);
|
|
|
|
}
|
|
else {
|
|
try {
|
|
//System.out.println("waiting");
|
|
this.wait(0);
|
|
} catch (InterruptedException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|