diff MessageOrganiser.h @ 9:d5e928887f51

More refactoring. Mode for Synth value changes only sent to PD on triggering sound.
author Robert Tubb <rt300@eecs.qmul.ac.uk>
date Fri, 17 Oct 2014 17:50:41 +0100
parents d59de9fd3496
children 91c3fba6e5b9
line wrap: on
line diff
--- a/MessageOrganiser.h	Fri Oct 17 16:35:22 2014 +0100
+++ b/MessageOrganiser.h	Fri Oct 17 17:50:41 2014 +0100
@@ -63,6 +63,8 @@
     void init(PDSynthWrapper& cs, PDSynthWrapper& ts){
         candidateSynth = cs;
         targetSynth = ts;
+        
+        onlyChangeCandidateOnTrigger = true;
     }
     // could template for ui element type??
     void mapButtonToAction(UIElement* control, int mappingID){
@@ -71,16 +73,45 @@
         control->addHandler(callbackF, mappingID);
         currentMapping.insert(std::pair<int,UIElement*>(mappingID,control));
     }
+    void setControlPanel(SliderPanel* p){ // a bit specific?? 
+        panel = p;
+        
+    };
+    void setBottomPanel(ButtonPanel * ntb){
+        bottomPanel = ntb;
+    };
 protected:
 
     PDSynthWrapper candidateSynth;
     PDSynthWrapper targetSynth;
+    ButtonPanel* bottomPanel; // shows during test : play buttons and submit
+    SliderPanel* panel;
+    map<int,UIElement*> currentMapping; // could get more sophisticated if not 1-1 ?
     
 
-    map<int,UIElement*> currentMapping; // could get more sophisticated if not 1-1 ?
+    void triggerCandidateSound(){
+        // log event
+        sendSynthValuesAgain();
+        candidateSynth.trigger();
+        eventLogger.logEvent(CANDIDATE_PLAYED);
+        // flash panel?
+        panel->flash();
+    }
     
-    SliderPanel* panel;
+    void paramChangeCallback(int mappingID, int value){
+        
+        if(onlyChangeCandidateOnTrigger){
+            candidateSynth.paramChangeCallback(mappingID, value, false);
+        }else{
+            candidateSynth.paramChangeCallback(mappingID, value, true);
+        }
     
+        vector<int> evtData;
+        evtData.push_back(mappingID); // or just index?
+        evtData.push_back(value);
+        
+        eventLogger.logEvent(CANDIDATE_PARAM_ADJUSTED, evtData);
+    };
 
     void sendSynthValuesAgain(){
         candidateSynth.sendAllParams();
@@ -150,9 +181,6 @@
         control->setLabel(paramName);
     };
 
-    virtual void paramChangeCallback(int mappingID, int value){
-        // virtual?
-    };
     virtual void buttonPressCallback(int mappingID, int value){
         
     };
@@ -167,6 +195,8 @@
             setUIToParam(i, vals[i]);
         }
     }
+    
+    bool onlyChangeCandidateOnTrigger;
 
 };