So the testing part of the code is done and working. Yes, there are bugs, and some cases where exceptions are thrown that should be handled, but if you color inside of the lines, everything works. Of course, now I need to be able to record the output, so it’s time for some classes to handle the work of saving results for analysis.
- Creating a TestResult class with the following information
- session number
- test number
- test type (speed or accuracy)
- time to lift
- source position
- cursor position
- angle difference
- speaker volume matrix
- Also, there will be a toString(), toCsvString(), and toXmlString() method for output;
- The TestManager will instance and store TestResults in a container (vector?), which will have the additional fields
- Researcher name
- Subject name
- Sound file
- Total sessions
- Speed tests per session
- Accuracy tests per session
Well that was a good day.
- Spent a good deal of time trying to figure out the best way for the GUI and the Exec to communicate. Originally, I wanted to be able to pass a pointer to the GUI from the exec so that user actions in the GUI could be executed in a more reasonable place. Due to header conflicts, I couldn’t manage to get that to work, so I put together a UI_cmd class that is set in the UI and read in the Exec. That seems to be working pretty well, though I may want to put a queue in there and turn it more into a message bus/event pump. That level of sophistication isn’t needed yet though.
- Integrated the sound library that I wrote. I still have to reference the D3D audio library in the main application which I think is a bit odd, but I think it may be because I’m incorrectly exporting the symbol table from the static library. Again, that’s a refinement for later.
- At this point, the 3D position of my OGL shape and the 3D postion of my continuous sound (2D actually, Y = 0) are running in an infinite circle. It’s pretty cool to hear the audio track to the image. I’m uploading a video of the running system, and although it won’t be in surround, you can hear the flanging effects from the sound moving around the helmet.
I’m busy doing demos and presentations in my day job, so this has been suffering. Nonetheless, here’s the progress for today:
- Added a fine-grained timer callback to the main app
- Added an OpenGL window, set to Ortho2, and with pixel-accurate dimensions
- Connected the timer to the OpenGL, and set the position of what will be the emitter. We won’t see this during the actual test, but it will be good for debugging.
- I need to track mouse clicks and motion in the GL window. That will come tomorrow, and then I’ll work on integrating the audio library. That’s the basics for running the experiments. After that, I’ll work on reading and writing the input and result files.
- Pix for today: