Open Ephys GUI
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Public Member Functions
RecordNode Class Reference

Receives inputs from all processors that want to save their data. More...

#include <RecordNode.h>

Inheritance diagram for RecordNode:
GenericProcessor AccessClass

List of all members.

Public Member Functions

 RecordNode ()
 ~RecordNode ()
void process (AudioSampleBuffer &buffer, MidiBuffer &eventBuffer, int &nSamples)
 Handle incoming data and decide which files and events to write to disk.
void setParameter (int parameterIndex, float newValue)
 Overrides implementation in GenericProcessor; used to change recording parameters on the fly.
void addInputChannel (GenericProcessor *sourceNode, int chan)
bool enable ()
 Called immediately prior to the start of data acquisition, once all processors in the signal chain have indicated they are ready to process data.
bool disable ()
 Called immediately after the end of data acquisition.
float getFreeSpace ()
 Called by the ControlPanel to determine the amount of space left in the current dataDirectory.
void setChannel (Channel *ch)
 Selects a channel relative to a particular processor with ID = id.
void setChannelStatus (Channel *ch, bool status)
 Turns recording on and off for a particular channel.
void resetConnections ()
 Used to clear all connections prior to the start of acquisition.
void filenameComponentChanged (FilenameComponent *)
 Callback to indicate when user has chosen a new data directory.
void createNewDirectory ()
 Creates a new data directory in the location specified by the fileNameComponent.
- Public Member Functions inherited from GenericProcessor
 GenericProcessor (const String &name_)
 Constructor (sets the processor's name).
virtual ~GenericProcessor ()
 Destructor.
const String getName () const
 Returns the name of the processor.
virtual void prepareToPlay (double sampleRate, int estimatedSamplesPerBlock)
 Called by JUCE as soon as a processor is created, as well as before the start of audio callbacks.
void releaseResources ()
 Called by JUCE as soon as audio callbacks end.
virtual AudioProcessorEditor * createEditor ()
 Creates a GenericEditor.
bool hasEditor () const
 The default is to have no editor.
void reset ()
 JUCE method.
void setCurrentProgramStateInformation (const void *data, int sizeInBytes)
 JUCE method.
void setStateInformation (const void *data, int sizeInBytes)
 JUCE method.
void getCurrentProgramStateInformation (MemoryBlock &destData)
 JUCE method.
void getStateInformation (MemoryBlock &destData)
 JUCE method.
void changeProgramName (int index, const String &newName)
 JUCE method.
void setCurrentProgram (int index)
 JUCE method.
const String getInputChannelName (int channelIndex) const
 Returns the name of the input channel with a given index.
const String getOutputChannelName (int channelIndex) const
 Returns the name of the output channel with a given index.
const String getParameterName (int parameterIndex)
 Returns the name of the parameter with a given index.
const String getParameterText (int parameterIndex)
 Returns additional details about the parameter with a given index.
float getParameter (int parameterIndex)
 Returns the current value of a parameter with a given index.
const String getProgramName (int index)
 JUCE method.
bool isInputChannelStereoPair (int index) const
 JUCE method.
bool isOutputChannelStereoPair (int index) const
 JUCE method.
bool acceptsMidi () const
 All processors can accept MIDI (event) data by default.
bool producesMidi () const
 All processors can produce MIDI (event) data by default.
bool isParameterAutomatable (int parameterIndex)
 JUCE method.
bool isMetaParameter (int parameterIndex)
 JUCE method.
int getNumParameters ()
 Returns the number of user-editable parameters for this processor.
int getNumPrograms ()
 JUCE method.
int getCurrentProgram ()
 JUCE method.
virtual float getSampleRate ()
 Returns the sample rate for a processor (assumes the same rate for all channels).
virtual float getDefaultSampleRate ()
 Returns the default sample rate, in case a processor has no source (or is itself a source).
virtual int getNumInputs ()
 Returns the number of inputs to a processor.
virtual int getNumOutputs ()
 Returns the number of outputs from a processor.
virtual int getDefaultNumOutputs ()
 Returns the default number of outputs, in case a processor has no source (or is itself a source).
virtual float getDefaultBitVolts ()
 Returns the default number of volts per bit, in case a processor has no source (or is itself a source).
virtual int getNextChannel (bool t)
 Returns the next available channel (and increments the channel if the input is set to 'true'.
virtual void setCurrentChannel (int chan)
 Sets the current channel (for purposes of updating parameter).
int getNodeId ()
 Returns the unique integer ID for a processor.
void setNodeId (int id)
 Sets the unique integer ID for a processor.
GenericProcessorgetSourceNode ()
 Returns a pointer to the processor immediately preceding a given processor in the signal chain.
GenericProcessorgetDestNode ()
 Returns a pointer to the processor immediately following a given processor in the signal chain.
virtual void switchIO (int)
 Sets the input or output of a splitter or merger.
virtual void switchIO ()
 Switches the input or output of a splitter or merger.
virtual void setPathToProcessor (GenericProcessor *p)
 Sets the input to a merger a given processor.
virtual void setSourceNode (GenericProcessor *sn)
 Sets a processor's source node.
virtual void setDestNode (GenericProcessor *dn)
 Sets a processor's destination node.
virtual void setMergerSourceNode (GenericProcessor *sn)
 Sets one of two possible source nodes for a merger.
virtual void setSplitterDestNode (GenericProcessor *dn)
 Sets one of two possible source nodes for a splitter.
virtual bool isSource ()
 Returns true if a processor is a source, false otherwise.
virtual bool isSink ()
 Returns true if a processor is a sink, false otherwise.
virtual bool isSplitter ()
 Returns true if a processor is a splitter, false otherwise.
virtual bool isMerger ()
 Returns true if a processor is a merger, false otherwise.
virtual bool canSendSignalTo (GenericProcessor *)
 Returns true if a processor is able to send its output to a given processor.
virtual bool isReady ()
 Returns true if a processor is ready to process data (e.g., all of its parameters are initialized, and its data source is connected).
virtual void enableEditor ()
 Informs a processor's editor that data acquisition is about to begin.
virtual void disableEditor ()
 Informs a processor's editor that data acquisition has ended.
virtual bool enabledState ()
 Indicates whether or not a processor is currently enabled (i.e., able to process data).
virtual void enabledState (bool t)
 Sets whether or not a processor is enabled (i.e., able to process data).
virtual void enableCurrentChannel (bool)
 Turns a given channel on or off.
virtual bool stillHasSource ()
 Indicates whether a source node is connected to a processor (used for mergers).
virtual AudioSampleBuffer * getContinuousBuffer ()
 Returns a pointer to the processor's internal continuous buffer, if it exists.
virtual MidiBuffer * getEventBuffer ()
 Returns a pointer to the processor's internal event buffer, if it exists.
virtual int checkForEvents (MidiBuffer &mb)
 Can be called by processors that need to respond to incoming events.
virtual void addEvent (MidiBuffer &mb, uint8 type, int sampleNum, uint8 eventID=0, uint8 eventChannel=0, uint8 numBytes=0, uint8 *data=0)
 Makes it easier for processors to add events to the MidiBuffer.
virtual GenericEditorgetEditor ()
 Returns a pointer to the processor's editor.
virtual void clearSettings ()
 Resets the 'settings' struct to its default state.
virtual void update ()
 Default method for updating settings, called by every processor.
virtual void updateSettings ()
 Custom method for updating settings, called automatically by update().
ParametergetParameterByName (String parameterName)
 Returns the parameter for a given name.
ParametergetParameterReference (int parameterIndex)
 Returns the parameter for a given index.
- Public Member Functions inherited from AccessClass
 AccessClass ()
 ~AccessClass ()
void setUIComponent (UIComponent *)
 Sets the object's UIComponent and copies all the necessary pointers from the UIComponent.
virtual void updateChildComponents ()
 Called within setUIComponent() to enable subclasses to update their members' pointers.
EditorViewportgetEditorViewport ()
 Returns a pointer to the application's EditorViewport.
DataViewportgetDataViewport ()
 Returns a pointer to the application's DataViewport.
ProcessorListgetProcessorList ()
 Returns a pointer to the application's ProcessorList.
ProcessorGraphgetProcessorGraph ()
 Returns a pointer to the application's ProcessorGraph.
ControlPanelgetControlPanel ()
 Returns a pointer to the application's DataViewport.
MessageCentergetMessageCenter ()
 Returns a pointer to the application's MessageCenter.
UIComponentgetUIComponent ()
 Returns a pointer to the application's UIComponent.
AudioComponentgetAudioComponent ()
 Returns a pointer to the application's AudioComponent.

Additional Inherited Members

- Public Types inherited from GenericProcessor
enum  eventTypes {
  TIMESTAMP = 0, BUFFER_SIZE = 1, PARAMETER_CHANGE = 2, TTL = 3,
  SPIKE = 4, EEG = 5, CONTINUOUS = 6
}
enum  eventChannelTypes { GENERIC_EVENT = 999, SINGLE_ELECTRODE = 1, STEREOTRODE = 2, TETRODE = 4 }
- Public Attributes inherited from GenericProcessor
GenericProcessorsourceNode
 Pointer to a processor's immediate source node.
GenericProcessordestNode
 Pointer to a processor's immediate destination.
bool isEnabled
bool wasConnected
int nextAvailableChannel
int saveOrder
 Variable used to orchestrate saving the ProcessorGraph.
int loadOrder
 Variable used to orchestrate loading the ProcessorGraph.
int currentChannel
 The channel that will be updated the next time a parameter is changed.
ScopedPointer< GenericEditoreditor
 Pointer to the processor's editor.
OwnedArray< Channelchannels
 Array of Channel objects for all continuous channels.
OwnedArray< ChanneleventChannels
 Array of Channel objects for all event channels.
ProcessorSettings settings
int nodeId
 Each processor has a unique integer ID that can be used to identify it.
Array< Parameterparameters
 An array of parameters that the user can modify.

Detailed Description

Receives inputs from all processors that want to save their data.

Writes data to disk using fwrite.

Receives a signal from the ControlPanel to begin recording.

See also:
GenericProcessor, ControlPanel

Constructor & Destructor Documentation

RecordNode::RecordNode ( )
RecordNode::~RecordNode ( )

Member Function Documentation

void RecordNode::process ( AudioSampleBuffer &  buffer,
MidiBuffer &  eventBuffer,
int &  nSamples 
)
virtual

Handle incoming data and decide which files and events to write to disk.

Implements GenericProcessor.

void RecordNode::setParameter ( int  parameterIndex,
float  newValue 
)
virtual

Overrides implementation in GenericProcessor; used to change recording parameters on the fly.

parameterIndex = 0: stop recording parameterIndex = 1: start recording parameterIndex = 2: newValue = 0: turn off recording for current channel newValue = 1: turn on recording for current channel

Reimplemented from GenericProcessor.

void RecordNode::addInputChannel ( GenericProcessor sourceNode,
int  chan 
)
bool RecordNode::enable ( )
virtual

Called immediately prior to the start of data acquisition, once all processors in the signal chain have indicated they are ready to process data.

Reimplemented from GenericProcessor.

bool RecordNode::disable ( )
virtual

Called immediately after the end of data acquisition.

Reimplemented from GenericProcessor.

float RecordNode::getFreeSpace ( )

Called by the ControlPanel to determine the amount of space left in the current dataDirectory.

void RecordNode::setChannel ( Channel ch)

Selects a channel relative to a particular processor with ID = id.

void RecordNode::setChannelStatus ( Channel ch,
bool  status 
)

Turns recording on and off for a particular channel.

Channel numbers are absolute (based on RecordNode channel mapping).

void RecordNode::resetConnections ( )
virtual

Used to clear all connections prior to the start of acquisition.

Reimplemented from GenericProcessor.

void RecordNode::filenameComponentChanged ( FilenameComponent *  )

Callback to indicate when user has chosen a new data directory.

void RecordNode::createNewDirectory ( )

Creates a new data directory in the location specified by the fileNameComponent.


The documentation for this class was generated from the following file: