diff MessageOrganiser.mm @ 34:3af380769779

small fixes, logging now sensible.
author Robert Tubb <rt300@eecs.qmul.ac.uk>
date Wed, 26 Nov 2014 14:04:05 +0000
parents 93317878abef
children 3b10a26da293
line wrap: on
line diff
--- a/MessageOrganiser.mm	Tue Nov 25 18:37:54 2014 +0000
+++ b/MessageOrganiser.mm	Wed Nov 26 14:04:05 2014 +0000
@@ -39,6 +39,7 @@
     
     return mids;
 }
+//----------------------------------------------------------------------------------
 // could template for ui element type??
 void MessageOrganiser::mapButtonToAction(UIElement* control, int mappingID){
     UICallbackFunction callbackF;
@@ -47,25 +48,26 @@
     currentMapping.insert(std::pair<int,UIElement*>(mappingID,control));
 }
 
-
+//----------------------------------------------------------------------------------
 void MessageOrganiser::setControlPanel(SliderPanel* p){ // a bit specific??
     controlPanel = p;
     
 };
+//----------------------------------------------------------------------------------
 void MessageOrganiser::setBottomPanel(ButtonPanel * ntb){
     bottomPanel = ntb;
 };
-
+//----------------------------------------------------------------------------------
 
 void MessageOrganiser::setIconPanel(IconPanel * ip){
     presetIconPanel = ip;
 }
-
+//----------------------------------------------------------------------------------
 void MessageOrganiser::setInstructionPanel(TextPanel * ip){
     instructionPanel = ip;
     instructionPanel->show();
 }
-
+//----------------------------------------------------------------------------------
 void MessageOrganiser::setSeqNumPanel(TextPanel * snp){
     seqNumPanel = snp;
 }
@@ -91,13 +93,14 @@
     bottomPanel->hide();
     controlPanel->hide();
 }
+//----------------------------------------------------------------------------------
 void MessageOrganiser::showMyPanels(){
     presetIconPanel->show();
     instructionPanel->show();
     bottomPanel->show();
     controlPanel->show();
 }
-
+//----------------------------------------------------------------------------------
 void MessageOrganiser::triggerCandidateSound(){
     // log event
     sendSynthValuesAgain(); // TODO AAAARG too slow???
@@ -105,7 +108,7 @@
     eventLogger.logEvent(CANDIDATE_PLAYED);
 
 }
-
+//----------------------------------------------------------------------------------
 void MessageOrganiser::paramChangeCallback(int mappingID, int value){
     
     if(onlyChangeCandidateOnTrigger){
@@ -120,16 +123,18 @@
     
     eventLogger.logEvent(CANDIDATE_PARAM_ADJUSTED, evtData);
 };
-
+//----------------------------------------------------------------------------------
 void MessageOrganiser::sendSynthValuesAgain(){
     candidateSynth.sendAllParams();
     targetSynth.sendAllParams();
 };
-
+//----------------------------------------------------------------------------------
 
 void MessageOrganiser::setAllSlidersToValues(vector<int> values){
     controlPanel->setValues(values);
 }
+
+//----------------------------------------------------------------------------------
 // we want to set UI object
 void MessageOrganiser::setUIToParam(int index, int value){
     
@@ -154,7 +159,7 @@
     }
     
 };
-
+//----------------------------------------------------------------------------------
 
 void MessageOrganiser::mapControlToParam(UIElement* control, int mappingID){
     
@@ -198,7 +203,7 @@
     
     eventLogger.logEvent(CONTROL_LIST,typeListLog);
 };
-
+//----------------------------------------------------------------------------------
 void MessageOrganiser::mapXYToParams(ButtronXY* control, int mappingIDX, int mappingIDY){
     UICallbackFunction callback;
     
@@ -215,7 +220,7 @@
     control->setLabel(candidateSynth.getNameForMappingID(mappingIDX), candidateSynth.getNameForMappingID(mappingIDY));
     
 };
-
+//----------------------------------------------------------------------------------
 
 void MessageOrganiser::mapControlToParam(UIElement* control, string paramName){
     // get mapping ID from synth
@@ -223,12 +228,12 @@
     mapControlToParam(control, mappingID);
     control->setLabel(paramName);
 };
-
+//----------------------------------------------------------------------------------
 void MessageOrganiser::buttonPressCallback(int mappingID, int value){
     
 };
 
-
+//----------------------------------------------------------------------------------
 void MessageOrganiser::setSlidersToTarget(){
     // this will actually show sliders with target vals - for "memorisation" purposes mwa heh heh
     // get target values
@@ -254,6 +259,7 @@
         
     }
 }
+//----------------------------------------------------------------------------------
 void MessageOrganiser::setCandidateAndSlidersToRandom(){
     vector<int> rands;
     for(int i = 0; i < candidateSynth.getNumParams(); i++){
@@ -265,10 +271,14 @@
     candidateSynth.setAllParams(rands);
     
 }
+//----------------------------------------------------------------------------------
 
 
 void MessageOrganiser::midiFromLeap(int ctl_num, int ctl_val){
-    
+    static long int howManyLogged;
+    static vector<int> lastLoggedVals = zeros<int>(6);
+    static vector<int> newVals = zeros<int>(6);
+    static long long lastLogTime;
     
     if (!okToGetMidi){
         return;
@@ -286,10 +296,24 @@
 
     setUIToParam(ctl_num, ctl_val);
     
-    vector<int> evtData;
-    evtData.push_back(mids[ctl_num]); // or just index?
-    evtData.push_back(ctl_val);
+    // wait for a certain distance travelled AND time then record?
+    newVals[ctl_num] = ctl_val;
+    long long newLogTime = ofGetSystemTime();
     
-    eventLogger.logEvent(CANDIDATE_PARAM_ADJUSTED, evtData);
+    if (euclideanDistance(newVals, lastLoggedVals) > MIN_LOG_DIST && newLogTime - lastLogTime > 20){
+        eventLogger.logEvent(CANDIDATE_PARAM_ADJUSTED_ALL, newVals);
+        
+        lastLoggedVals = newVals;
+        howManyLogged++;
+    }else{
+        cout << "skipped! so far logged " << howManyLogged << endl;
+    }
+
     
-}
\ No newline at end of file
+}
+
+
+//----------------------------------------------------------------------------------
+//----------------------------------------------------------------------------------
+//----------------------------------------------------------------------------------
+//----------------------------------------------------------------------------------
\ No newline at end of file