Mercurial > hg > human-echolocation-java-webapp
diff src/HumanEchoServlet.java @ 23:73a60617e1a7
Moved the src and classes folders to the root of the workspace; renamed the classes folder to build
author | luisf <luis.figueira@eecs.qmul.ac.uk> |
---|---|
date | Fri, 06 Dec 2013 12:51:59 +0000 |
parents | webapp/WEB-INF/src/HumanEchoServlet.java@533821b15f83 |
children | 1d1122584af9 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/HumanEchoServlet.java Fri Dec 06 12:51:59 2013 +0000 @@ -0,0 +1,137 @@ +/* + * Classname + * + * Version information + * + * 3 December 2013 + * + * Copyright notice + */ + +import java.util.Properties; +import java.io.IOException; + +import org.apache.log4j.Logger; + +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.ServletException; +import javax.servlet.ServletConfig; +import javax.servlet.RequestDispatcher; + +import com.mathworks.toolbox.javabuilder.MWJavaObjectRef; +import com.mathworks.toolbox.javabuilder.MWNumericArray; +import com.mathworks.toolbox.javabuilder.MWStructArray; +import com.mathworks.toolbox.javabuilder.MWException; +import com.mathworks.toolbox.javabuilder.internal.MCRConfiguration; + +import uk.ac.soton.isvr.*; + +public class HumanEchoServlet extends HttpServlet { + private HumanEcho echo; + + private static Logger logger = Logger.getLogger(HumanEchoServlet.class); + + public void init(ServletConfig config) throws ServletException { + super.init(config); + + // reading properties file + try { + Properties properties = new Properties(); + properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("myapp.properties")); + + //get the property value and print it out + System.out.println(properties.getProperty("tmpdir")); + System.out.println(properties.getProperty("outdir")); + + } catch (IOException e) { + e.printStackTrace(); + } + + try { + echo = new HumanEcho(); + } + catch(MWException e) { + e.printStackTrace(); + } + } + + public void destroy() { + super.destroy(); + + if(echo!=null) { + echo.dispose(); + } + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + // todo: validate/normalise distance + int dist = Integer.parseInt(request.getParameter("dist")); + MWStructArray Input = null; + HumanEcho echo; + + try { + echo = new HumanEcho(); + + logger.error("We are logging!"); + + // Matlab structure: + // Input = struct('dist', 0.9, 'azim', 0, 'orient', 'horz', 'dirweight', 0.2, 'outputfname', 'foo.wav') + + String[] InputStructFields = {"dist", "azim", "orient", "dirweight", "outputfname"}; + Input = new MWStructArray(1, 1, InputStructFields); + Input.set("dist", 1, Double.valueOf(dist)); + Input.set("azim", 1, Double.valueOf(0)); + Input.set("orient", 1, "horz"); + Input.set("dirweight", 1, Double.valueOf(0.2)); + + // the ofname should depend on the parameters + StringBuilder sb = new StringBuilder(); + sb.append("e_d"); + sb.append(dist); + sb.append(".wav"); + String outputfname = sb.toString(); + + Input.set("outputfname", 1, outputfname); + + // todo: before calling should test if wav already exists.. + Object[] result = echo.simulateBinauralSignals(Input); + } + catch(MWException e) { + e.printStackTrace(); + } + + System.out.println("MCRROOT: " + System.getenv("MCRROOT")); + System.out.println("PATH: " + System.getenv("PATH")); + System.out.println(MCRConfiguration.isInstalledMCR()); + + + StringBuffer buffer = new StringBuffer(); + + buffer.append("<BR>"); + buffer.append("<BR>"); + + buffer.append("worked, ?"); + + buffer.append("<BR>"); + buffer.append("<BR>"); + +/* + buffer.append("<TABLE >"); + for (double[] row : square) + { + buffer.append("<TR>"); + for (double value : row) + { + buffer.append("<TH>"); + buffer.append(new Double(value).intValue()); + } + } + buffer.append("</TABLE>"); + buffer.append("<BR>"); + response.getOutputStream().print(buffer.toString()); +*/ + } +}