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());
+*/
+    }
+}