package org.trianacode.shiwaall.workflowCreation.dart;
import org.trianacode.annotation.Process;
import org.trianacode.annotation.Tool;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
// TODO: Auto-generated Javadoc
/**
* Created by IntelliJ IDEA.
* User: Ian Harvey
* Date: 14/05/2012
* Time: 14:01
* To change this template use File | Settings | File Templates.
*/
@Tool
public class DartScript {
/** The freqpoints_max. */
public static String freqpoints_max = "freqpoints_max";
/** The harmonics_max. */
public static String harmonics_max = "harmonics_max";
/** The audio_files_csv. */
public static String audio_files_csv = "audio_file";
/** The defaults. */
private HashMap<String, String> defaults;
/**
* Process.
*
* @param input the input
* @return the string[]
*/
@Process()
public String[] process(String input) {
setDefaults();
getInputs(input);
int freqpoints_max_int = Integer.parseInt(defaults.get(freqpoints_max));
int harmonics_max_int = Integer.parseInt(defaults.get(harmonics_max));
String[] audios = defaults.get(audio_files_csv).split("'");
ArrayList<String> runs = new ArrayList<String>();
for (int a = 0; a < audios.length; a++) {
for (int i = 1; i <= freqpoints_max_int; i += 10) {
for (int j = 1; j <= harmonics_max_int; j++) {
String command_line = "java -jar Dart.jar -infile "
+ audios[a]
+ " -outfile DART-" + (a + 1)
+ "-" + i + "-" + j + "-1.txt"
+ " -nofreqpoints " + i
+ " -noharmonics " + j
+ " -fft_window Rectangle";
runs.add(command_line);
}
}
}
String[] runArray = new String[runs.size()];
return runs.toArray(runArray);
}
/**
* Sets the defaults.
*/
private void setDefaults() {
defaults = new HashMap<String, String>();
defaults.put(freqpoints_max, "501");
defaults.put(harmonics_max, "32");
defaults.put(audio_files_csv, "DARTAcousticG.wav'DARTOboe.wav'DARTViolin.wav'DARTPiano.wav'DARTTubBells.wav'DARTDistortG.wav");
}
/**
* Gets the inputs.
*
* @param all the all
* @return the inputs
*/
private void getInputs(String all) {
String[] inputs = (all).split(";");
for (String input : inputs) {
String[] inputString = (input).split(",");
if (inputString.length == 4) {
if (inputString[0].equals("input")) {
System.out.println(Arrays.toString(inputString));
// addSource(doc, root, inputString[1], inputString[2], inputString[3]);
defaults.put(inputString[1], inputString[3]);
}
}
}
}
}