annotate webapp/WEB-INF/src/HumanEchoServlet.java @ 15:08262829d456

Added a configuration file (myapp.propoerties); reading the configuration file.
author luisf <luis.figueira@eecs.qmul.ac.uk>
date Tue, 03 Dec 2013 12:19:31 +0000
parents 2129d2bac6cb
children 33d7bd3c0990
rev   line source
luis@15 1
luis@15 2 import java.util.Properties;
luis@15 3 import java.io.IOException;
luis@15 4
luis@0 5 import javax.servlet.http.HttpServlet;
luis@0 6 import javax.servlet.http.HttpServletRequest;
luis@0 7 import javax.servlet.http.HttpServletResponse;
luis@0 8 import javax.servlet.ServletException;
luis@0 9 import javax.servlet.ServletConfig;
luis@0 10
luis@0 11 import com.mathworks.toolbox.javabuilder.MWJavaObjectRef;
luis@0 12 import com.mathworks.toolbox.javabuilder.MWNumericArray;
luis@11 13 import com.mathworks.toolbox.javabuilder.MWStructArray;
luis@0 14 import com.mathworks.toolbox.javabuilder.MWException;
luis@15 15 import com.mathworks.toolbox.javabuilder.internal.MCRConfiguration;
luis@15 16
luis@15 17 import uk.ac.soton.isvr.*;
luis@0 18
luis@0 19 public class HumanEchoServlet extends HttpServlet {
luis@0 20 private HumanEcho echo;
luis@0 21
luis@0 22 public void init(ServletConfig config) throws ServletException {
luis@0 23 super.init(config);
luis@0 24
luis@15 25 // reading properties file
luis@15 26 try {
luis@15 27 Properties properties = new Properties();
luis@15 28 properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("myapp.properties"));
luis@15 29
luis@15 30 //get the property value and print it out
luis@15 31 System.out.println(properties.getProperty("tmpdir"));
luis@15 32 System.out.println(properties.getProperty("outdir"));
luis@15 33
luis@15 34 } catch (IOException e) {
luis@15 35 e.printStackTrace();
luis@15 36 }
luis@15 37
luis@0 38 try {
luis@0 39 echo = new HumanEcho();
luis@0 40 }
luis@0 41 catch(MWException e) {
luis@0 42 e.printStackTrace();
luis@0 43 }
luis@0 44 }
luis@0 45
luis@0 46 public void destroy() {
luis@0 47 super.destroy();
luis@0 48
luis@0 49 if(echo!=null) {
luis@0 50 echo.dispose();
luis@0 51 }
luis@0 52 }
luis@0 53
luis@11 54 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
luis@0 55
luis@11 56 // todo: validate/normalise distance
luis@11 57 int dist = Integer.parseInt(request.getParameter("dist"));
luis@11 58 MWStructArray Input = null;
luis@11 59 HumanEcho echo;
luis@0 60
luis@11 61 try {
luis@11 62 echo = new HumanEcho();
luis@0 63
luis@11 64 // Matlab structure:
luis@11 65 // Input = struct('dist', 0.9, 'azim', 0, 'orient', 'horz', 'dirweight', 0.2, 'outputfname', 'foo.wav')
luis@0 66
luis@11 67 String[] InputStructFields = {"dist", "azim", "orient", "dirweight", "outputfname"};
luis@11 68 Input = new MWStructArray(1, 1, InputStructFields);
luis@11 69 Input.set("dist", 1, Double.valueOf(dist));
luis@11 70 Input.set("azim", 1, Double.valueOf(0));
luis@11 71 Input.set("orient", 1, "horz");
luis@11 72 Input.set("dirweight", 1, Double.valueOf(0.2));
luis@0 73
luis@11 74 // the ofname should depend on the parameters
luis@11 75 StringBuilder sb = new StringBuilder();
luis@15 76 sb.append("/tmp/e_d");
luis@11 77 sb.append(dist);
luis@11 78 sb.append(".wav");
luis@11 79 String outputfname = sb.toString();
luis@11 80
luis@11 81 Input.set("outputfname", 1, outputfname);
luis@11 82
luis@11 83 // todo: before calling should test if wav already exists..
luis@11 84 Object[] result = echo.simulateBinauralSignals(Input);
luis@0 85 }
luis@0 86 catch(MWException e) {
luis@0 87 e.printStackTrace();
luis@0 88 }
luis@0 89
luis@15 90 System.out.println("MCRROOT: " + System.getenv("MCRROOT"));
luis@15 91 System.out.println("PATH: " + System.getenv("PATH"));
luis@15 92 System.out.println(MCRConfiguration.isInstalledMCR());
luis@15 93
luis@15 94
luis@0 95 StringBuffer buffer = new StringBuffer();
luis@0 96
luis@0 97 buffer.append("<BR>");
luis@0 98 buffer.append("<BR>");
luis@0 99
luis@15 100 buffer.append("worked, ?");
luis@15 101
luis@15 102 buffer.append("<BR>");
luis@15 103 buffer.append("<BR>");
luis@15 104
luis@15 105 /*
luis@0 106 buffer.append("<TABLE >");
luis@0 107 for (double[] row : square)
luis@0 108 {
luis@0 109 buffer.append("<TR>");
luis@0 110 for (double value : row)
luis@0 111 {
luis@0 112 buffer.append("<TH>");
luis@0 113 buffer.append(new Double(value).intValue());
luis@0 114 }
luis@0 115 }
luis@0 116 buffer.append("</TABLE>");
luis@0 117 buffer.append("<BR>");
luis@0 118 response.getOutputStream().print(buffer.toString());
luis@8 119 */
luis@0 120 }
luis@0 121 }