view webapp/WEB-INF/src/HumanEchoServlet.java @ 17:00cae11c09bd

Added jquery lib script; fixed build file.
author luisf <luis.figueira@eecs.qmul.ac.uk>
date Thu, 05 Dec 2013 15:14:03 +0000
parents 33d7bd3c0990
children 533821b15f83
line wrap: on
line source
/*
 * Classname
 *
 * Version information
 *
 * 3 December 2013
 *
 * Copyright notice
 */

import java.util.Properties;
import java.io.IOException;

import org.apache.log4j.*;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import javax.servlet.ServletConfig;
import javax.servlet.RequestDispatcher;

import com.mathworks.toolbox.javabuilder.MWJavaObjectRef;
import com.mathworks.toolbox.javabuilder.MWNumericArray;
import com.mathworks.toolbox.javabuilder.MWStructArray;
import com.mathworks.toolbox.javabuilder.MWException;
import com.mathworks.toolbox.javabuilder.internal.MCRConfiguration;

import uk.ac.soton.isvr.*;

public class HumanEchoServlet extends HttpServlet {
    private HumanEcho echo;

    private static Logger logger = Logger.getLogger(HumanEchoServlet.class);

    public void init(ServletConfig config) throws ServletException {
        super.init(config);

        // reading properties file
        try {
            Properties properties = new Properties();
            properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("myapp.properties"));

            //get the property value and print it out
            System.out.println(properties.getProperty("tmpdir"));
            System.out.println(properties.getProperty("outdir"));

        } catch (IOException e) {
            e.printStackTrace();
        }

        try {
            echo = new HumanEcho();
        }
        catch(MWException e) {
            e.printStackTrace();
        }
    }

    public void destroy() {
        super.destroy();

        if(echo!=null) {
            echo.dispose();
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // todo: validate/normalise distance
        int dist = Integer.parseInt(request.getParameter("dist"));
        MWStructArray Input = null;
        HumanEcho echo;

        try {
            echo = new HumanEcho();

            logger.error("We are logging!");

            // Matlab structure:
            // Input = struct('dist', 0.9, 'azim', 0, 'orient', 'horz', 'dirweight', 0.2, 'outputfname', 'foo.wav')

            String[] InputStructFields = {"dist", "azim", "orient", "dirweight", "outputfname"};
            Input = new MWStructArray(1, 1, InputStructFields);
            Input.set("dist", 1, Double.valueOf(dist));
            Input.set("azim", 1, Double.valueOf(0));
            Input.set("orient", 1, "horz");
            Input.set("dirweight", 1, Double.valueOf(0.2));

            // the ofname should depend on the parameters
            StringBuilder sb = new StringBuilder();
            sb.append("e_d");
            sb.append(dist);
            sb.append(".wav");
            String outputfname = sb.toString();

            Input.set("outputfname", 1, outputfname);

            // todo: before calling should test if wav already exists..
            Object[] result = echo.simulateBinauralSignals(Input);
        }
        catch(MWException e) {
            e.printStackTrace();
        }

        //System.out.println("MCRROOT: " + System.getenv("MCRROOT"));
        //System.out.println("PATH: " + System.getenv("PATH"));
        //System.out.println(MCRConfiguration.isInstalledMCR());

        String path = HttpServletRequest.getRealPath();
        // String path = System.getProperty("catalina.base");
        System.out.println("PATH: " + path);


        StringBuffer buffer = new StringBuffer();

        buffer.append("<BR>");
        buffer.append("<BR>");

        buffer.append("worked, ?");

        buffer.append("<BR>");
        buffer.append("<BR>");

/*
        buffer.append("<TABLE >");
        for (double[] row : square)
        {
            buffer.append("<TR>");
            for (double value : row)
            {
                buffer.append("<TH>");
                buffer.append(new Double(value).intValue());
            }
        }
        buffer.append("</TABLE>");
        buffer.append("<BR>");
        response.getOutputStream().print(buffer.toString());
*/
    }
}