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 }
|