luis@16: /* luis@16: * Classname luis@16: * luis@16: * Version information luis@16: * luis@16: * 3 December 2013 luis@16: * luis@16: * Copyright notice luis@16: */ luis@15: luis@15: import java.util.Properties; luis@15: import java.io.IOException; luis@15: luis@21: import org.apache.log4j.Logger; luis@16: luis@0: import javax.servlet.http.HttpServlet; luis@0: import javax.servlet.http.HttpServletRequest; luis@0: import javax.servlet.http.HttpServletResponse; luis@0: import javax.servlet.ServletException; luis@0: import javax.servlet.ServletConfig; luis@17: import javax.servlet.RequestDispatcher; luis@0: luis@0: import com.mathworks.toolbox.javabuilder.MWJavaObjectRef; luis@0: import com.mathworks.toolbox.javabuilder.MWNumericArray; luis@11: import com.mathworks.toolbox.javabuilder.MWStructArray; luis@0: import com.mathworks.toolbox.javabuilder.MWException; luis@15: import com.mathworks.toolbox.javabuilder.internal.MCRConfiguration; luis@15: luis@15: import uk.ac.soton.isvr.*; luis@0: luis@0: public class HumanEchoServlet extends HttpServlet { luis@0: private HumanEcho echo; luis@0: luis@16: private static Logger logger = Logger.getLogger(HumanEchoServlet.class); luis@16: luis@0: public void init(ServletConfig config) throws ServletException { luis@0: super.init(config); luis@0: luis@15: // reading properties file luis@15: try { luis@15: Properties properties = new Properties(); luis@15: properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("myapp.properties")); luis@15: luis@15: //get the property value and print it out luis@15: System.out.println(properties.getProperty("tmpdir")); luis@15: System.out.println(properties.getProperty("outdir")); luis@15: luis@15: } catch (IOException e) { luis@15: e.printStackTrace(); luis@15: } luis@15: luis@0: try { luis@0: echo = new HumanEcho(); luis@0: } luis@0: catch(MWException e) { luis@0: e.printStackTrace(); luis@0: } luis@0: } luis@0: luis@0: public void destroy() { luis@0: super.destroy(); luis@0: luis@0: if(echo!=null) { luis@0: echo.dispose(); luis@0: } luis@0: } luis@0: luis@11: protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { luis@0: luis@11: // todo: validate/normalise distance luis@11: int dist = Integer.parseInt(request.getParameter("dist")); luis@11: MWStructArray Input = null; luis@11: HumanEcho echo; luis@0: luis@11: try { luis@11: echo = new HumanEcho(); luis@0: luis@16: logger.error("We are logging!"); luis@16: luis@11: // Matlab structure: luis@11: // Input = struct('dist', 0.9, 'azim', 0, 'orient', 'horz', 'dirweight', 0.2, 'outputfname', 'foo.wav') luis@0: luis@11: String[] InputStructFields = {"dist", "azim", "orient", "dirweight", "outputfname"}; luis@11: Input = new MWStructArray(1, 1, InputStructFields); luis@11: Input.set("dist", 1, Double.valueOf(dist)); luis@11: Input.set("azim", 1, Double.valueOf(0)); luis@11: Input.set("orient", 1, "horz"); luis@11: Input.set("dirweight", 1, Double.valueOf(0.2)); luis@0: luis@11: // the ofname should depend on the parameters luis@11: StringBuilder sb = new StringBuilder(); luis@17: sb.append("e_d"); luis@11: sb.append(dist); luis@11: sb.append(".wav"); luis@11: String outputfname = sb.toString(); luis@11: luis@11: Input.set("outputfname", 1, outputfname); luis@11: luis@11: // todo: before calling should test if wav already exists.. luis@11: Object[] result = echo.simulateBinauralSignals(Input); luis@0: } luis@0: catch(MWException e) { luis@0: e.printStackTrace(); luis@0: } luis@0: luis@21: System.out.println("MCRROOT: " + System.getenv("MCRROOT")); luis@21: System.out.println("PATH: " + System.getenv("PATH")); luis@21: System.out.println(MCRConfiguration.isInstalledMCR()); luis@15: luis@15: luis@0: StringBuffer buffer = new StringBuffer(); luis@0: luis@0: buffer.append("
"); luis@0: buffer.append("
"); luis@0: luis@15: buffer.append("worked, ?"); luis@15: luis@15: buffer.append("
"); luis@15: buffer.append("
"); luis@15: luis@15: /* luis@0: buffer.append(""); luis@0: for (double[] row : square) luis@0: { luis@0: buffer.append(""); luis@0: for (double value : row) luis@0: { luis@0: buffer.append("
"); luis@0: buffer.append(new Double(value).intValue()); luis@0: } luis@0: } luis@0: buffer.append("
"); luis@0: buffer.append("
"); luis@0: response.getOutputStream().print(buffer.toString()); luis@8: */ luis@0: } luis@0: }