Open Ephys GUI
 All Classes Functions Variables
Classes | Public Member Functions | Private Member Functions | Private Attributes
RecordNode Class Reference

#include <RecordNode.h>

Inheritance diagram for RecordNode:
GenericProcessor AccessClass

List of all members.

Classes

struct  Channel

Public Member Functions

void process (AudioSampleBuffer &buffer, MidiBuffer &eventBuffer, int &nSamples)
void setParameter (int parameterIndex, float newValue)
void addInputChannel (GenericProcessor *sourceNode, int chan)
bool enable ()
bool disable ()
float getFreeSpace ()
void setChannel (int id, int chan)
void setChannelStatus (int chan, bool status)
void resetConnections ()
bool isAudioOrRecordNode ()
void filenameComponentChanged (FilenameComponent *)
void createNewDirectory ()
- Public Member Functions inherited from GenericProcessor
 GenericProcessor (const String &name_)
const String getName () const
virtual void prepareToPlay (double sampleRate, int estimatedSamplesPerBlock)
void releaseResources ()
virtual AudioProcessorEditor * createEditor ()
bool hasEditor () const
void reset ()
void setCurrentProgramStateInformation (const void *data, int sizeInBytes)
void setStateInformation (const void *data, int sizeInBytes)
void getCurrentProgramStateInformation (MemoryBlock &destData)
void getStateInformation (MemoryBlock &destData)
void changeProgramName (int index, const String &newName)
void setCurrentProgram (int index)
const String getInputChannelName (int channelIndex) const
const String getOutputChannelName (int channelIndex) const
const String getParameterName (int parameterIndex)
const String getParameterText (int parameterIndex)
const String getProgramName (int index)
bool isInputChannelStereoPair (int index) const
bool isOutputChannelStereoPair (int index) const
bool acceptsMidi () const
bool producesMidi () const
bool isParameterAutomatable (int parameterIndex)
bool isMetaParameter (int parameterIndex)
int getNumParameters ()
int getNumPrograms ()
int getCurrentProgram ()
float getParameter (int parameterIndex)
ParametergetParameterByName (String parameterName)
ParametergetParameterReference (int parameterIndex)
virtual float getSampleRate ()
virtual float getDefaultSampleRate ()
virtual int getNumInputs ()
virtual int getNumOutputs ()
virtual int getDefaultNumOutputs ()
virtual float getDefaultBitVolts ()
virtual int getNextChannel (bool)
virtual void setCurrentChannel (int chan)
int getNodeId ()
void setNodeId (int id)
GenericProcessorgetSourceNode ()
GenericProcessorgetDestNode ()
virtual void switchIO (int)
virtual void switchIO ()
virtual void setPathToProcessor (GenericProcessor *p)
virtual void setSourceNode (GenericProcessor *sn)
virtual void setDestNode (GenericProcessor *dn)
virtual void setMergerSourceNode (GenericProcessor *sn)
virtual void setSplitterDestNode (GenericProcessor *dn)
virtual bool isSource ()
virtual bool isSink ()
virtual bool isSplitter ()
virtual bool isMerger ()
virtual bool canSendSignalTo (GenericProcessor *)
virtual bool isReady ()
virtual bool enabledState ()
virtual void enabledState (bool t)
virtual void enableCurrentChannel (bool)
virtual bool stillHasSource ()
virtual AudioSampleBuffer * getContinuousBuffer ()
virtual MidiBuffer * getEventBuffer ()
virtual int checkForEvents (MidiBuffer &mb)
virtual void addEvent (MidiBuffer &mb, uint8 type, int sampleNum, uint8 eventID=0, uint8 eventChannel=0, uint8 numBytes=0, uint8 *data=0)
virtual void handleEvent (int eventType, MidiMessage &event)
virtual GenericEditorgetEditor ()
virtual bool recordStatus (int chan)
virtual bool audioStatus (int chan)
virtual void clearSettings ()
virtual void generateDefaultChannelNames (StringArray &)
virtual void update ()
virtual void updateSettings ()
void setStartChannel (int i)
int getStartChannel ()
- Public Member Functions inherited from AccessClass
void setUIComponent (UIComponent *)
virtual void updateChildComponents ()
EditorViewportgetEditorViewport ()
DataViewportgetDataViewport ()
ProcessorListgetProcessorList ()
ProcessorGraphgetProcessorGraph ()
ControlPanelgetControlPanel ()
MessageCentergetMessageCenter ()
UIComponentgetUIComponent ()
AudioComponentgetAudioComponent ()

Private Member Functions

void closeAllFiles ()
void writeContinuousBuffer (float *data, int nSamples, int channel)
void writeEventBuffer (MidiMessage &event, int node, int channel)
 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (RecordNode)

Private Attributes

bool isRecording
bool isProcessing
bool signalFilesShouldClose
File dataDirectory
File rootFolder
bool newDataFolder
int16 * continuousDataBuffer
int64 timestamp
Time timer
std::map< int, ChannelcontinuousChannels
std::map< int, std::map< int,
Channel > > 
eventChannels

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
GenericProcessordestNode
bool isEnabled
bool wasConnected
int nextAvailableChannel
int saveOrder
int loadOrder
int currentChannel
ScopedPointer< GenericEditoreditor
ProcessorSettings settings
int nodeId
Array< Parameterparameters
StringArray parameterNames
Parameter nullParam

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

Member Function Documentation

float RecordNode::getFreeSpace ( )

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

void RecordNode::writeContinuousBuffer ( float *  data,
int  nSamples,
int  channel 
)
private

Method for writing continuous buffers to disk.

void RecordNode::writeEventBuffer ( MidiMessage &  event,
int  node,
int  channel 
)
private

Method for writing event buffers to disk.


Member Data Documentation

std::map<int, Channel> RecordNode::continuousChannels
private

Map of continuous channels.

int16* RecordNode::continuousDataBuffer
private

Holds data that has been converted from float to int16 before saving.

File RecordNode::dataDirectory
private

User-selectable directory for saving data files. Currently defaults to the user's home directory.

std::map<int, std::map<int,Channel> > RecordNode::eventChannels
private

Map of event channels.

bool RecordNode::isRecording
private

Keep the RecordNode informed of acquisition and record states.

bool RecordNode::newDataFolder
private

Determines whether a new rootFolder is created when recording begins.

File RecordNode::rootFolder
private

Automatically generated folder for each recording session.

Time RecordNode::timer
private

Used to generate timestamps if none are given.

int64 RecordNode::timestamp
private

Integer timestamp saved for each buffer.


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