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