annotate webapp/WEB-INF/src/HumanEchoServlet.java @ 11:2129d2bac6cb

working on the servlet: calling the simulateBinauralSignals function on the doGet method.
author luisf <luis.figueira@eecs.qmul.ac.uk>
date Fri, 29 Nov 2013 15:48:07 +0000
parents 76f809129f98
children 08262829d456
rev   line source
luis@0 1 import javax.servlet.http.HttpServlet;
luis@0 2 import javax.servlet.http.HttpServletRequest;
luis@0 3 import javax.servlet.http.HttpServletResponse;
luis@0 4 import javax.servlet.ServletException;
luis@0 5 import javax.servlet.ServletConfig;
luis@0 6 import java.io.IOException;
luis@11 7
luis@0 8 import uk.ac.soton.isvr.*;
luis@0 9
luis@0 10 import com.mathworks.toolbox.javabuilder.MWJavaObjectRef;
luis@0 11 import com.mathworks.toolbox.javabuilder.MWNumericArray;
luis@11 12 import com.mathworks.toolbox.javabuilder.MWStructArray;
luis@0 13 import com.mathworks.toolbox.javabuilder.MWException;
luis@0 14
luis@0 15 public class HumanEchoServlet extends HttpServlet {
luis@0 16 private HumanEcho echo;
luis@0 17
luis@0 18 public void init(ServletConfig config) throws ServletException {
luis@0 19 super.init(config);
luis@0 20
luis@0 21 try {
luis@0 22 echo = new HumanEcho();
luis@0 23 }
luis@0 24 catch(MWException e) {
luis@0 25 e.printStackTrace();
luis@0 26 }
luis@0 27 }
luis@0 28
luis@0 29 public void destroy() {
luis@0 30 super.destroy();
luis@0 31
luis@0 32 if(echo!=null) {
luis@0 33 echo.dispose();
luis@0 34 }
luis@0 35 }
luis@0 36
luis@11 37 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
luis@0 38
luis@11 39 // todo: validate/normalise distance
luis@11 40 int dist = Integer.parseInt(request.getParameter("dist"));
luis@11 41 MWStructArray Input = null;
luis@11 42 HumanEcho echo;
luis@0 43
luis@11 44 try {
luis@11 45 echo = new HumanEcho();
luis@0 46
luis@11 47 // Matlab structure:
luis@11 48 // Input = struct('dist', 0.9, 'azim', 0, 'orient', 'horz', 'dirweight', 0.2, 'outputfname', 'foo.wav')
luis@0 49
luis@11 50 String[] InputStructFields = {"dist", "azim", "orient", "dirweight", "outputfname"};
luis@11 51 Input = new MWStructArray(1, 1, InputStructFields);
luis@11 52 Input.set("dist", 1, Double.valueOf(dist));
luis@11 53 Input.set("azim", 1, Double.valueOf(0));
luis@11 54 Input.set("orient", 1, "horz");
luis@11 55 Input.set("dirweight", 1, Double.valueOf(0.2));
luis@0 56
luis@11 57 // the ofname should depend on the parameters
luis@11 58 StringBuilder sb = new StringBuilder();
luis@11 59 sb.append("e_d");
luis@11 60 sb.append(dist);
luis@11 61 sb.append(".wav");
luis@11 62 String outputfname = sb.toString();
luis@11 63
luis@11 64 Input.set("outputfname", 1, outputfname);
luis@11 65
luis@11 66 // todo: before calling should test if wav already exists..
luis@11 67 Object[] result = echo.simulateBinauralSignals(Input);
luis@0 68 }
luis@0 69 catch(MWException e) {
luis@0 70 e.printStackTrace();
luis@0 71 }
luis@0 72
luis@11 73 /*
luis@0 74 StringBuffer buffer = new StringBuffer();
luis@0 75
luis@0 76 buffer.append("<BR>");
luis@0 77 buffer.append("<BR>");
luis@0 78
luis@0 79 buffer.append("<TABLE >");
luis@0 80 for (double[] row : square)
luis@0 81 {
luis@0 82 buffer.append("<TR>");
luis@0 83 for (double value : row)
luis@0 84 {
luis@0 85 buffer.append("<TH>");
luis@0 86 buffer.append(new Double(value).intValue());
luis@0 87 }
luis@0 88 }
luis@0 89 buffer.append("</TABLE>");
luis@0 90 buffer.append("<BR>");
luis@0 91 response.getOutputStream().print(buffer.toString());
luis@8 92 */
luis@0 93 }
luis@0 94 }