package nbtool.gui.logviews.sound;
import java.awt.Graphics;
import nbtool.data.log.Block;
import nbtool.gui.logviews.misc.ViewParent;
import nbtool.gui.logviews.sound2.ModMath;
import nbtool.gui.logviews.sound3.Constants;
import nbtool.util.Debug;
public class SoundView extends ViewParent {
int rate;
int target;
double magLeft;
double magRight;
double offLeft;
double offRight;
@Override
public void setupDisplay() {
Block block = displayedLog.blocks.get(0);
rate = block.dict.get("rate").asNumber().asInt();
target = block.dict.get("target").asNumber().asInt();
magLeft = block.dict.get("magLeft").asNumber().asDouble();
magRight = block.dict.get("magRight").asNumber().asDouble();
offLeft = block.dict.get("offLeft").asNumber().asDouble();
offRight = block.dict.get("offRight").asNumber().asDouble();
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
String header = String.format("rate: %d target frequency: %d", rate, target);
g.drawString(header, 100, 100);
int i = 1;
g.drawString("magLeft " + magLeft, 100, 100 + (20*i++));
g.drawString("magRight " + magRight, 100, 100 + (20*i++));
g.drawString("offLeft " + offLeft, 100, 100 + (20*i++));
g.drawString("offRight " + offRight, 100, 100 + (20*i++));
g.drawLine(0, 500, 500, 500);
double adjusted_left = offLeft;
while (adjusted_left < 0) adjusted_left += Constants.TAU;
double adjusted_right = offRight;
while (adjusted_right < 0) adjusted_right += Constants.TAU;
Debug.info("%f %f", adjusted_left, adjusted_right);
double offset = ModMath.diff(adjusted_left, adjusted_right);
double dist_off = 340 * ((offset / Constants.TAU) / target);
double theta = Math.acos(offset / Constants.EAR_TO_EAR_SEPARATION);
String derived = String.format("offset %f distance %f theta %f",
offset, dist_off, theta);
g.drawString(derived, 100, 100 + (20*i++));
int start_x = 250;
int start_y = 500;
g.drawLine(start_x, start_y,
(int) (start_x + 100 * Math.cos(theta)),
(int) (start_y + 100 * Math.sin(theta)));
}
@Override
public String[] displayableTypes() {
return new String[]{"sound3"};
}
}