- Mar 29, 2012
-
-
Stuart Layton authored
modified the SpikeDisplayEditor and SpikeDisplayCanvas objects to make use of the new setParameter(int,int,int,float) method defined in the Visualizer class. Additionally the SpikeDisplayEditor now responds to Pan/Zoom and clear commands. However Pan/Zoom only work on the first plot. Additionally on the "all" button for the sub-channel selector buttons now responds intelligently. ie. if you enable all it turns on, if you disable one it turns off.
-
- Mar 28, 2012
-
-
Stuart Layton authored
Implemented basic panning and zooming for the stereotrode plots. I was unable to hook up events from the SpikeDisplayEditor to the SpikeDisplayCanvas correct... so clicking in the 4 quadrants of the canvas has the effect of zooming/panning in/out
-
- Mar 26, 2012
-
-
Stuart Layton authored
Fixed the problems associated with hiding and displaying the spike canvas. Hiding and then reshowing the canvas caused a new openGL context be be created. This invalidated the handles to the previous Textures and FrameBufferObjects making it impossible to render to them. Each ProjectionPlot::plot() call now checks for openGL errors, if any occur then the Texture is invalidated and a new Texture and FrameBufferObject is created for rendering. Additionally, in order for 'historical' spikes to show up after the texture is recreated I actually have to render the texture twice. I'm not sure what bug is causing this behavior.
-
Stuart Layton authored
moved around the SpikeDisplayEditor GUI elements a bit, removed the Save button and added selector buttons for each subchannel.
-
Stuart Layton authored
Changed drawerButton from private to protected in GenericEditor so that VisualizerEditor can detect when the drawer opens and move the selector buttons accordingly
-
Stuart Layton authored
Modified the VisualizerEditor to allow for custom width. Everything can now be scalled off this width including the selector buttons. This update is backwards compatible. I simply added a 2nd constructor in which the width is passed as an integer
-
- Mar 23, 2012
-
-
Stuart Layton authored
Began work on the SpikeDisplayEditor. Buttons were added to zoom, pan, clear, and save the plots. Currently only the clear button works Additionally I added a bunch of constants to the SpikeDisplayNode.h which will be used to define messages between the editor and the Canvas
-
Stuart Layton authored
-
- Mar 20, 2012
- Mar 15, 2012
-
-
Stuart Layton authored
The SpikeDisplayNode object isn't working properly. Queueing of spikes there appeared to be what was causing the problem. I need to consider an alternative way of handling the SpikeObjects. In the past I've used a circular buffer but that has problems with having a set size. I can use an stl::queue but queues are not thread safe, which is something that we definitely need. Anyway the plots show up and dance when the viewer is turned on. I still need to implement a Stereotrode plot and then the tetrode plot. I'll probably derive them from the ElectrodePlot base class instead of creating a base classs from which all three plot types are derived from. Finally I need to get a better handle on the setup of the OpenGLCanvas and how its sized. How the "Magical" scroll bars work and how to auto place the plots. Do we force all the plots to be of the same type? Or do we mix in Electrode Plots with Tetrode Plots? If so how do we orient them all?
-
- Mar 13, 2012
-
-
Stuart Layton authored
Initial commit of the files needed for the SpikeDisplay. I created an SpikeObject file as well. This is how spikes will be represented in the SpikeDisplayNode and used by the SpikeViewer
-
- Mar 11, 2012
- Mar 10, 2012
- Mar 06, 2012
-
-
jsiegle authored
-
- Mar 05, 2012
-
-
jsiegle authored
Problem: - There's not yet a way to get the parameters for each channel after it's clicked
-
- Mar 04, 2012
-
-
jsiegle authored
-
- Mar 03, 2012
-
-
jsiegle authored
The control panel now holds an "AudioEditor" to adjust volume and open a window to alter device settings. Audio output is definitely working, but different buffer sizes make it sound really weird. The same problem is present in the Juce demo app, however, so I don't think it's a problem inherent in the GUI.
-
jsiegle authored
-
- Mar 02, 2012
- Mar 01, 2012
-
-
jsiegle authored
Three important changes: - The FilterList is now the ProcessorList - The FilterViewport is now the EditorViewport - Any classes that need to access important UI objects have become subclasses of the "AccessClass". Such objects automatically obtain pointers from the UIComponent and register the MessageCenter as an ActionListener. This will make it much easier to allocate pointers to objects.
-
- Feb 22, 2012
-
-
jsiegle authored
Processors used to have their sample rate and inputs/outputs set when their source/dest nodes were set. Now, this step doesn't occur until after the signal chains are constructed. So far, this seems to make things run much more smoothly.
-
- Feb 21, 2012
-
-
jsiegle authored
-
jsiegle authored
The LfpDisplayNode/LfpDisplayCanvas are more stable now, although there's still a bug in the DisplayNode causing small gaps to appear in the buffer.
-
jsiegle authored
Because the WiFiOutputEditor also had timerCallback() defined, it wasn't able to fade in upon creation. This method was modified to solve the problem.
-
- Feb 20, 2012
-
-
jsiegle authored
-
- Feb 19, 2012
- Feb 17, 2012
-
-
jsiegle authored
-
- Feb 16, 2012
-
-
jsiegle authored
-
jsiegle authored
-
jsiegle authored
In combination with an EventNode, a WiFiOutput node is able to send a simple message to a hard-coded address via UDP. This is the first sink that actually emits an output. It's obviously over-simplified, but as a proof-of-concept, it seems to be working well.
-