From 33abc099e20872642169bb287716ab889a8471c7 Mon Sep 17 00:00:00 2001
From: jsiegle <jsiegle@mit.edu>
Date: Sun, 9 Jun 2013 19:43:53 -0400
Subject: [PATCH] In the process of making it possible to provide custom names
 for channels

---
 Source/Processors/DataThreads/DataThread.h    |  3 ++
 .../Processors/DataThreads/RHD2000Thread.cpp  | 53 ++++++++++++++++++-
 Source/Processors/DataThreads/RHD2000Thread.h |  3 ++
 Source/Processors/SourceNode.cpp              |  2 +
 4 files changed, 60 insertions(+), 1 deletion(-)

diff --git a/Source/Processors/DataThreads/DataThread.h b/Source/Processors/DataThreads/DataThread.h
index 03a18aa30..72c4aa45c 100755
--- a/Source/Processors/DataThreads/DataThread.h
+++ b/Source/Processors/DataThreads/DataThread.h
@@ -93,6 +93,9 @@ public:
         return 0;
     }
 
+    /** Changes the names of channels, if the thread needs custom names. */
+    virtual void updateChannelNames() { }
+
     SourceNode* sn;
 
     int16 eventCode;
diff --git a/Source/Processors/DataThreads/RHD2000Thread.cpp b/Source/Processors/DataThreads/RHD2000Thread.cpp
index 3d4a19019..60231bd0b 100644
--- a/Source/Processors/DataThreads/RHD2000Thread.cpp
+++ b/Source/Processors/DataThreads/RHD2000Thread.cpp
@@ -28,7 +28,7 @@ RHD2000Thread::RHD2000Thread(SourceNode* sn) : DataThread(sn), isTransmitting(fa
     fastSettleEnabled(false), chipRegisters(30000.0f), dspEnabled(true), boardSampleRate(30000.0f),
     desiredDspCutoffFreq(0.5f), desiredUpperBandwidth(7500.0f), desiredLowerBandwidth(1.0f),
     savedSampleRateIndex(16), audioOutputL(-1), audioOutputR(-1), dacOutputShouldChange(false),
-    acquireAdcChannels(false),
+    acquireAdcChannels(false), acquireAuxChannels(true),
     cableLengthPortA(0.914f), cableLengthPortB(0.914f), cableLengthPortC(0.914f), cableLengthPortD(0.914f) // default is 3 feet (0.914 m)
 {
     evalBoard = new Rhd2000EvalBoard;
@@ -407,6 +407,57 @@ int RHD2000Thread::getNumChannels()
         return 1; // to prevent crashing with 0 channels
 }
 
+void RHD2000Thread::updateChannelNames()
+{
+
+    int chNum = -1;
+
+    for (int i = 0; i < MAX_NUM_DATA_STREAMS; i++)
+    {
+    
+        for (int j = 0; j < numChannelsPerDataStream[i]; j++)
+        {
+            chNum++;
+
+            sn->channels[chNum]->setName(String(chNum));
+        }
+    }
+
+    if (acquireAuxChannels)
+    {
+        for (int i = 0; i < MAX_NUM_DATA_STREAMS; i++)
+        {
+        
+            for (int j = 0; j < 3; j++)
+            {
+                
+                chNum++;
+
+                String chName = "AUX";
+              //  chName += (j+1);
+
+              //  sn->channels[chNum]->setName(chName);
+            }
+        }
+    }
+
+
+    if (acquireAdcChannels)
+    {
+        for (int j = 0; j < 8; j++)
+        {
+            chNum++;
+
+            String chName = "ADC";
+           // chName += (j+1);
+
+          //  sn->channels[chNum]->setName(chName);
+        }
+    }        
+
+}
+
+
 int RHD2000Thread::getNumEventChannels()
 {
     return 16; // 8 inputs, 8 outputs
diff --git a/Source/Processors/DataThreads/RHD2000Thread.h b/Source/Processors/DataThreads/RHD2000Thread.h
index 71f77d7ce..47faa406f 100644
--- a/Source/Processors/DataThreads/RHD2000Thread.h
+++ b/Source/Processors/DataThreads/RHD2000Thread.h
@@ -82,6 +82,8 @@ public:
 
     bool isAcquisitionActive();
 
+    void updateChannelNames();
+
 private:
 
     ScopedPointer<Rhd2000EvalBoard> evalBoard;
@@ -104,6 +106,7 @@ private:
 
     bool dacOutputShouldChange;
     bool acquireAdcChannels;
+    bool acquireAuxChannels;
 
     bool fastSettleEnabled;
 
diff --git a/Source/Processors/SourceNode.cpp b/Source/Processors/SourceNode.cpp
index 67fa66afc..5a8b53ccc 100755
--- a/Source/Processors/SourceNode.cpp
+++ b/Source/Processors/SourceNode.cpp
@@ -114,6 +114,7 @@ void SourceNode::updateSettings()
     {
 
         inputBuffer = dataThread->getBufferAddress();
+        dataThread->updateChannelNames();
         std::cout << "Input buffer address is " << inputBuffer << std::endl;
     }
 
@@ -125,6 +126,7 @@ void SourceNode::updateSettings()
         eventChannels.add(ch);
     }
 
+
 }
 
 void SourceNode::actionListenerCallback(const String& msg)
-- 
GitLab