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