From 61c01ed9977a55b74c95fe3062292486d52b989c Mon Sep 17 00:00:00 2001
From: jsiegle <jsiegle@mit.edu>
Date: Mon, 26 Nov 2012 14:57:52 -0500
Subject: [PATCH] Added ReferenceNodeEditor class

---
 Builds/Linux/Makefile                         |  6 ++
 .../open-ephys.xcodeproj/project.pbxproj      |  6 ++
 Builds/VisualStudio2010/open-ephys.vcxproj    |  2 +
 .../open-ephys.vcxproj.filters                |  6 ++
 .../Editors/ReferenceNodeEditor.cpp           | 48 ++++++++++++
 .../Processors/Editors/ReferenceNodeEditor.h  | 50 +++++++++++++
 Source/Processors/ReferenceNode.cpp           | 75 +++++++++++++++++--
 Source/Processors/ReferenceNode.h             | 60 +++++++++++++--
 open-ephys.jucer                              |  4 +
 9 files changed, 247 insertions(+), 10 deletions(-)
 create mode 100644 Source/Processors/Editors/ReferenceNodeEditor.cpp
 create mode 100644 Source/Processors/Editors/ReferenceNodeEditor.h

diff --git a/Builds/Linux/Makefile b/Builds/Linux/Makefile
index 45968bc55..fd77b1393 100644
--- a/Builds/Linux/Makefile
+++ b/Builds/Linux/Makefile
@@ -92,6 +92,7 @@ OBJECTS := \
   $(OBJDIR)/SpikeDetector_300d85e7.o \
   $(OBJDIR)/AudioNode_94606ff3.o \
   $(OBJDIR)/EventNode_95c842b7.o \
+  $(OBJDIR)/ReferenceNodeEditor_19ee0fac.o \
   $(OBJDIR)/ResamplingNodeEditor_f2d6f061.o \
   $(OBJDIR)/FPGAOutputEditor_cfe00f8a.o \
   $(OBJDIR)/ArduinoOutputEditor_1118f008.o \
@@ -403,6 +404,11 @@ $(OBJDIR)/EventNode_95c842b7.o: ../../Source/Processors/EventNode.cpp
 	@echo "Compiling EventNode.cpp"
 	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
 
+$(OBJDIR)/ReferenceNodeEditor_19ee0fac.o: ../../Source/Processors/Editors/ReferenceNodeEditor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling ReferenceNodeEditor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
 $(OBJDIR)/ResamplingNodeEditor_f2d6f061.o: ../../Source/Processors/Editors/ResamplingNodeEditor.cpp
 	-@mkdir -p $(OBJDIR)
 	@echo "Compiling ResamplingNodeEditor.cpp"
diff --git a/Builds/MacOSX/open-ephys.xcodeproj/project.pbxproj b/Builds/MacOSX/open-ephys.xcodeproj/project.pbxproj
index 2cda0e743..72fbc2d8d 100644
--- a/Builds/MacOSX/open-ephys.xcodeproj/project.pbxproj
+++ b/Builds/MacOSX/open-ephys.xcodeproj/project.pbxproj
@@ -66,6 +66,7 @@
 		4BE0DDA01B73223EF0BD934A = { isa = PBXBuildFile; fileRef = 3DD0741FCFBC7563EC722D9B; };
 		08B501E0D7764C6B613AF529 = { isa = PBXBuildFile; fileRef = B7750B27E4F3748ECCCCF69D; };
 		9CBA3837CC8CAA03A03F2D9C = { isa = PBXBuildFile; fileRef = FA57CE4F63FF1592D6B3F9B5; };
+		D54F398EBE746D5BCC86FB78 = { isa = PBXBuildFile; fileRef = 4D0B72C9F22FDB15C608CF20; };
 		6F41ED502815AAF2F2EAB8B7 = { isa = PBXBuildFile; fileRef = EE3AAE8BD520868168064D38; };
 		9C77BFFE7BA865E20121E707 = { isa = PBXBuildFile; fileRef = 7738196148E539781B237854; };
 		BA64AA28A3E0DC10AB0A9380 = { isa = PBXBuildFile; fileRef = DAFD5D2E1F875321584C7147; };
@@ -293,6 +294,8 @@
 		12866D44BE115E8837468F48 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AudioNode.h; path = ../../Source/Processors/AudioNode.h; sourceTree = SOURCE_ROOT; };
 		FA57CE4F63FF1592D6B3F9B5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = EventNode.cpp; path = ../../Source/Processors/EventNode.cpp; sourceTree = SOURCE_ROOT; };
 		32163C956C8A6F5C1DD7FE7F = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = EventNode.h; path = ../../Source/Processors/EventNode.h; sourceTree = SOURCE_ROOT; };
+		4D0B72C9F22FDB15C608CF20 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ReferenceNodeEditor.cpp; path = ../../Source/Processors/Editors/ReferenceNodeEditor.cpp; sourceTree = SOURCE_ROOT; };
+		E545022A6355CD2E92DE67C5 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ReferenceNodeEditor.h; path = ../../Source/Processors/Editors/ReferenceNodeEditor.h; sourceTree = SOURCE_ROOT; };
 		EE3AAE8BD520868168064D38 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ResamplingNodeEditor.cpp; path = ../../Source/Processors/Editors/ResamplingNodeEditor.cpp; sourceTree = SOURCE_ROOT; };
 		E177F2FF11601F6E11498390 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ResamplingNodeEditor.h; path = ../../Source/Processors/Editors/ResamplingNodeEditor.h; sourceTree = SOURCE_ROOT; };
 		7738196148E539781B237854 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = FPGAOutputEditor.cpp; path = ../../Source/Processors/Editors/FPGAOutputEditor.cpp; sourceTree = SOURCE_ROOT; };
@@ -543,6 +546,8 @@
 				0C5335B0E57C9DC92FC57E5F,
 				7738F51AE0EC63D76EE0F761 ); name = Visualization; sourceTree = "<group>"; };
 		953CC35B9116404D6AA8D1C7 = { isa = PBXGroup; children = (
+				4D0B72C9F22FDB15C608CF20,
+				E545022A6355CD2E92DE67C5,
 				EE3AAE8BD520868168064D38,
 				E177F2FF11601F6E11498390,
 				7738196148E539781B237854,
@@ -830,6 +835,7 @@
 				4BE0DDA01B73223EF0BD934A,
 				08B501E0D7764C6B613AF529,
 				9CBA3837CC8CAA03A03F2D9C,
+				D54F398EBE746D5BCC86FB78,
 				6F41ED502815AAF2F2EAB8B7,
 				9C77BFFE7BA865E20121E707,
 				BA64AA28A3E0DC10AB0A9380,
diff --git a/Builds/VisualStudio2010/open-ephys.vcxproj b/Builds/VisualStudio2010/open-ephys.vcxproj
index d4da6ae92..8dc24bde7 100644
--- a/Builds/VisualStudio2010/open-ephys.vcxproj
+++ b/Builds/VisualStudio2010/open-ephys.vcxproj
@@ -171,6 +171,7 @@
     <ClCompile Include="..\..\Source\Processors\SpikeDetector.cpp"/>
     <ClCompile Include="..\..\Source\Processors\AudioNode.cpp"/>
     <ClCompile Include="..\..\Source\Processors\EventNode.cpp"/>
+    <ClCompile Include="..\..\Source\Processors\Editors\ReferenceNodeEditor.cpp"/>
     <ClCompile Include="..\..\Source\Processors\Editors\ResamplingNodeEditor.cpp"/>
     <ClCompile Include="..\..\Source\Processors\Editors\FPGAOutputEditor.cpp"/>
     <ClCompile Include="..\..\Source\Processors\Editors\ArduinoOutputEditor.cpp"/>
@@ -281,6 +282,7 @@
     <ClInclude Include="..\..\Source\Processors\SpikeDetector.h"/>
     <ClInclude Include="..\..\Source\Processors\AudioNode.h"/>
     <ClInclude Include="..\..\Source\Processors\EventNode.h"/>
+    <ClInclude Include="..\..\Source\Processors\Editors\ReferenceNodeEditor.h"/>
     <ClInclude Include="..\..\Source\Processors\Editors\ResamplingNodeEditor.h"/>
     <ClInclude Include="..\..\Source\Processors\Editors\FPGAOutputEditor.h"/>
     <ClInclude Include="..\..\Source\Processors\Editors\ArduinoOutputEditor.h"/>
diff --git a/Builds/VisualStudio2010/open-ephys.vcxproj.filters b/Builds/VisualStudio2010/open-ephys.vcxproj.filters
index 2ef789be1..e62be6aff 100644
--- a/Builds/VisualStudio2010/open-ephys.vcxproj.filters
+++ b/Builds/VisualStudio2010/open-ephys.vcxproj.filters
@@ -382,6 +382,9 @@
     <ClCompile Include="..\..\Source\Processors\EventNode.cpp">
       <Filter>open-ephys\Source\Processors</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\Source\Processors\Editors\ReferenceNodeEditor.cpp">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\Source\Processors\Editors\ResamplingNodeEditor.cpp">
       <Filter>open-ephys\Source\Processors\Editors</Filter>
     </ClCompile>
@@ -708,6 +711,9 @@
     <ClInclude Include="..\..\Source\Processors\EventNode.h">
       <Filter>open-ephys\Source\Processors</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\Source\Processors\Editors\ReferenceNodeEditor.h">
+      <Filter>open-ephys\Source\Processors\Editors</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\Source\Processors\Editors\ResamplingNodeEditor.h">
       <Filter>open-ephys\Source\Processors\Editors</Filter>
     </ClInclude>
diff --git a/Source/Processors/Editors/ReferenceNodeEditor.cpp b/Source/Processors/Editors/ReferenceNodeEditor.cpp
new file mode 100644
index 000000000..2ec51b2a5
--- /dev/null
+++ b/Source/Processors/Editors/ReferenceNodeEditor.cpp
@@ -0,0 +1,48 @@
+/*
+    ------------------------------------------------------------------
+
+    This file is part of the Open Ephys GUI
+    Copyright (C) 2012 Open Ephys
+
+    ------------------------------------------------------------------
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+*/
+
+
+#include "ReferenceNodeEditor.h"
+#include "../ReferenceNode.h"
+#include <stdio.h>
+
+
+ReferenceNodeEditor::ReferenceNodeEditor (GenericProcessor* parentNode) 
+	: GenericEditor(parentNode)
+
+{
+	desiredWidth = 180;
+
+
+}
+
+ReferenceNodeEditor::~ReferenceNodeEditor()
+{
+	deleteAllChildren();
+}
+
+void ReferenceNodeEditor::buttonEvent (Button* button)
+{
+	
+
+}
\ No newline at end of file
diff --git a/Source/Processors/Editors/ReferenceNodeEditor.h b/Source/Processors/Editors/ReferenceNodeEditor.h
new file mode 100644
index 000000000..bb740c12f
--- /dev/null
+++ b/Source/Processors/Editors/ReferenceNodeEditor.h
@@ -0,0 +1,50 @@
+/*
+    ------------------------------------------------------------------
+
+    This file is part of the Open Ephys GUI
+    Copyright (C) 2012 Open Ephys
+
+    ------------------------------------------------------------------
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+*/
+
+#ifndef __REFERENCENODEEDITOR_H_370C056D__
+#define __REFERENCENODEEDITOR_H_370C056D__
+
+#ifdef WIN32
+#include <Windows.h>
+#endif
+#include "../../../JuceLibraryCode/JuceHeader.h"
+#include "GenericEditor.h"
+
+class ReferenceNodeEditor : public GenericEditor
+{
+public:
+	ReferenceNodeEditor (GenericProcessor* parentNode);
+	virtual ~ReferenceNodeEditor();
+	void buttonEvent(Button* button);
+
+private:	
+
+	JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ReferenceNodeEditor);
+
+};
+
+
+
+
+
+#endif  // __REFERENCENODEEDITOR_H_370C056D__
diff --git a/Source/Processors/ReferenceNode.cpp b/Source/Processors/ReferenceNode.cpp
index 2fa5d7cd5..52c152d8b 100644
--- a/Source/Processors/ReferenceNode.cpp
+++ b/Source/Processors/ReferenceNode.cpp
@@ -1,10 +1,75 @@
 /*
-  ==============================================================================
+    ------------------------------------------------------------------
 
-    ReferenceNode.cpp
-    Created: 26 Nov 2012 2:50:52pm
-    Author:  jsiegle
+    This file is part of the Open Ephys GUI
+    Copyright (C) 2012 Open Ephys
+
+    ------------------------------------------------------------------
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-  ==============================================================================
 */
 
+#include <stdio.h>
+#include "ReferenceNode.h"
+#include "Editors/ReferenceNodeEditor.h"
+
+
+
+ReferenceNode::ReferenceNode()
+	: GenericProcessor("Digital Reference")
+
+{
+
+
+}
+
+ReferenceNode::~ReferenceNode()
+{
+
+}
+
+AudioProcessorEditor* ReferenceNode::createEditor()
+{
+	editor = new ReferenceNodeEditor(this);
+	
+	std::cout << "Creating editor." << std::endl;
+
+	return editor;
+}
+
+
+
+void ReferenceNode::updateSettings()
+{		
+
+
+				
+}
+
+void ReferenceNode::setParameter (int parameterIndex, float newValue)
+{
+
+
+
+}
+
+void ReferenceNode::process(AudioSampleBuffer &buffer, 
+                            MidiBuffer &midiMessages,
+                            int& nSamples)
+{
+
+
+}
+
diff --git a/Source/Processors/ReferenceNode.h b/Source/Processors/ReferenceNode.h
index e5b1a133e..1b8f13e37 100644
--- a/Source/Processors/ReferenceNode.h
+++ b/Source/Processors/ReferenceNode.h
@@ -1,18 +1,68 @@
 /*
-  ==============================================================================
+    ------------------------------------------------------------------
 
-    ReferenceNode.h
-    Created: 26 Nov 2012 2:50:52pm
-    Author:  jsiegle
+    This file is part of the Open Ephys GUI
+    Copyright (C) 2012 Open Ephys
+
+    ------------------------------------------------------------------
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-  ==============================================================================
 */
 
 #ifndef __REFERENCENODE_H_786EA929__
 #define __REFERENCENODE_H_786EA929__
 
 
+#ifdef WIN32
+#include <Windows.h>
+#endif
+#include "../../JuceLibraryCode/JuceHeader.h"
+
+#include "GenericProcessor.h"
+
+
+/**
+
+  Digital reference node
+
+  @see GenericProcessor
+
+*/
+
+class ReferenceNode : public GenericProcessor
+
+{
+public:
+	
+	ReferenceNode();
+	~ReferenceNode();
+	
+	void process (AudioSampleBuffer &buffer, MidiBuffer &midiMessages, int& nSamples);
+	void setParameter (int parameterIndex, float newValue);
+
+	AudioProcessorEditor* createEditor();
+
+	bool hasEditor() const {return true;}
+
+    void updateSettings();
+	
+private:
+
 
+	JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ReferenceNode);
 
+};
 
 #endif  // __REFERENCENODE_H_786EA929__
diff --git a/open-ephys.jucer b/open-ephys.jucer
index 9328c3492..ce5989a4c 100644
--- a/open-ephys.jucer
+++ b/open-ephys.jucer
@@ -288,6 +288,10 @@
         <FILE id="hGnGAjh" name="EventNode.cpp" compile="1" resource="0" file="Source/Processors/EventNode.cpp"/>
         <FILE id="dUtRN6" name="EventNode.h" compile="0" resource="0" file="Source/Processors/EventNode.h"/>
         <GROUP id="AqvwO6w" name="Editors">
+          <FILE id="tz64eOn" name="ReferenceNodeEditor.cpp" compile="1" resource="0"
+                file="Source/Processors/Editors/ReferenceNodeEditor.cpp"/>
+          <FILE id="sxR3wcq" name="ReferenceNodeEditor.h" compile="0" resource="0"
+                file="Source/Processors/Editors/ReferenceNodeEditor.h"/>
           <FILE id="vcZeT2R" name="ResamplingNodeEditor.cpp" compile="1" resource="0"
                 file="Source/Processors/Editors/ResamplingNodeEditor.cpp"/>
           <FILE id="pMjiz6m" name="ResamplingNodeEditor.h" compile="0" resource="0"
-- 
GitLab