changeset 49:a62e033117fa

sequence controller now generated new. but doesn't fix the bug. bad access cropping up...
author Robert Tubb <rt300@eecs.qmul.ac.uk>
date Mon, 12 Jan 2015 18:40:00 +0000
parents 2396eb9dcddd
children d0f6c5293d6a
files SequenceController.h SequenceController.mm TrainingMessageOrganiser.h TrainingMessageOrganiser.mm TrainingScoreManager.h UI code/ButtronSlider.mm UI code/UIElementContainer.h testApp.mm
diffstat 8 files changed, 37 insertions(+), 31 deletions(-) [+]
line wrap: on
line diff
--- a/SequenceController.h	Thu Dec 18 17:02:28 2014 +0000
+++ b/SequenceController.h	Mon Jan 12 18:40:00 2015 +0000
@@ -15,7 +15,7 @@
 #include "TrainingScoreManager.h"
 
 #define MIN_TARGETS_IN_SEQUENCE 1
-#define NUM_REPETITIONS_AT_LEVEL 1
+#define NUM_REPETITIONS_AT_LEVEL 2
 #define MAX_TARGETS_IN_SEQUENCE 3
 #define MIN_TEMPO   90
 #define MAX_TEMPO   520
--- a/SequenceController.mm	Thu Dec 18 17:02:28 2014 +0000
+++ b/SequenceController.mm	Mon Jan 12 18:40:00 2015 +0000
@@ -196,6 +196,7 @@
     }else{
         generateTestSequence(1);
         generateTestSequence(2);
+        generateTestSequence(3);
     }
     
     setToStart();
@@ -296,7 +297,7 @@
     // just make something simple to check sanity
     generateCountIn(2,run);
     
-    vector<int> seq = randomSequence(2);
+    vector<int> seq = randomSequence(run);
     
     // first we have a preparation count in
     AnimStep nextStep;
--- a/TrainingMessageOrganiser.h	Thu Dec 18 17:02:28 2014 +0000
+++ b/TrainingMessageOrganiser.h	Mon Jan 12 18:40:00 2015 +0000
@@ -78,11 +78,10 @@
     ofColor interactableColor;
     ofColor nonInteractableColor;
     int downCounter;
-    
-    vector<int> oldTargetValues;
+ 
     //-----------------------------------------------------------------------------
     
-    SequenceController sequenceController;
+    SequenceController *sequenceController;
     TrainingScoreManager trainingScoreManager;
     Buttron* forgotButton;
 
--- a/TrainingMessageOrganiser.mm	Thu Dec 18 17:02:28 2014 +0000
+++ b/TrainingMessageOrganiser.mm	Mon Jan 12 18:40:00 2015 +0000
@@ -18,8 +18,8 @@
     
     numParamsToUse = TOTAL_NUM_PARAMS;
     
-    
-    sequenceController.init(soundOnlyMode,whichInterfaceAreWeUsing, demoMode);
+    sequenceController = new SequenceController();
+    sequenceController->init(soundOnlyMode,whichInterfaceAreWeUsing, demoMode);
     
     setup(whichInterfaceAreWeUsing);
 }
@@ -86,7 +86,7 @@
             // skip to next run?
             eventLogger.logEvent(RUN_SKIPPED);
         }else{
-            candidateSynth.setMetroTime(sequenceController.getStartIntervalTime()/4.);
+            candidateSynth.setMetroTime(sequenceController->getStartIntervalTime()/4.);
             candidateSynth.startMetronome();
             candidateSynth.playDownbeatBlip();
             bottomPanel->hide();
@@ -102,13 +102,14 @@
     
     if(mappingID == TO_MENU_ID){
         // tell testapp to start again?
-        candidateSynth.stopMetronome();
-        controlPanel->hide();
-        controlPanel->setColor(ofColor::black);
-        sequenceController.clearAll();
-        seqNumPanel->hide();
-        eventLogger.logEvent(RUN_SKIPPED);
-        eventLogger.saveSessionToFile();
+//        candidateSynth.stopMetronome();
+//        controlPanel->hide();
+//        controlPanel->setColor(ofColor::black);
+//        sequenceController->clearAll();
+//        seqNumPanel->hide();
+//        eventLogger.logEvent(RUN_SKIPPED);
+//        eventLogger.saveSessionToFile();
+        reset();
     }
     
     if(mappingID == FORGOT_SEQ_ID){
@@ -117,10 +118,10 @@
         cout << "FORGOT" << endl;
     }
     if(mappingID == SKIP_RUN_ID){
-        sequenceController.skipRun();
-        int r = sequenceController.getCurrentRunNumber();
+        sequenceController->skipRun();
+        int r = sequenceController->getCurrentRunNumber();
         stringstream s;
-        s << "SKIP RUN " << r+1;
+        s << ">> " << r+1;
         skipButton->setLabel(s.str());
         
     
@@ -150,19 +151,20 @@
     candidateSynth.stopMetronome();
     stringstream s;
     
-    s << "FINISHED RUN " << which << " OF " << sequenceController.getTotNumRuns() << endl;
+    s << "FINISHED RUN " << which << " OF " << sequenceController->getTotNumRuns() << endl;
     controlPanel->hide();
     controlPanel->setColor(ofColor::black);
     middlePanel->setText(s.str());
     middlePanel->show();
     //playCandidateButton->setLabel("NEXT");
     s.str("");
-    s << "SKIP RUN " << which+1;
+    s << ">> " << which+1;
     skipButton->setLabel(s.str());
     
     bottomPanel->show();
     seqNumPanel->hide();
     forgotButton->hide();
+    instructionPanel->setText("");
     eventLogger.logEvent(FINISHED_RUN);
     eventLogger.saveSessionToFile();
     // TODO keep track of how far we are into experiment
@@ -235,15 +237,17 @@
         flashResult(result);
     }
     
-    AnimStep newStep = sequenceController.getNextStep(); // ADVANCES COUNTS 
+    AnimStep newStep = sequenceController->getNextStep(); // ADVANCES COUNTS 
     
     
     
     if(newStep.isLastOfAll){
+        oldStep = newStep;
         lastOfAll();
         return;
     }
     if(newStep.isLastOfRun){
+        oldStep = newStep;
         lastOfRun(newStep.runNumber);
         return;
     }
@@ -330,7 +334,7 @@
     
     displayInstructions("Get ready for preview");
     seqNumPanel->hide();
-    oldTargetValues = newTargetValues;
+
     controlPanel->setColor(ofColor::black);
 }
 //-----------------------------------------------------------------------------
@@ -358,7 +362,6 @@
     }else{
         showSeqNum(-1);
     }
-    oldTargetValues = newTargetValues;
     
     controlPanel->setColor(ofColor::black);
     bottomPanel->hide();
@@ -417,8 +420,7 @@
     // trigger where we're at at the moment
     triggerCandidateSound();
     
-    
-    oldTargetValues = newTargetValues;
+
     if (!newStep.showsGuides || !newStep.showsIcons){
         controlPanel->setColor(ofColor::red);
         // set sliders to default texture
@@ -449,7 +451,7 @@
     showSeqNum(newStep.whichInSequence);
     
     triggerCandidateSound();
-    oldTargetValues = newTargetValues;
+
     if (!newStep.showsGuides || !newStep.showsIcons){
         controlPanel->setColor(ofColor::red);
         // set sliders to default texture
@@ -481,7 +483,7 @@
                                            step.tempoLevel,
                                            step.totalLengthOfSeq);
     
-    sequenceController.saveResultForCurrentStep(result);
+    sequenceController->saveResultForCurrentStep(result);
     instructionPanel->setColor(result.colorBand);
     
     
@@ -572,7 +574,8 @@
     candidateSynth.stopMetronome();
     controlPanel->hide();
     controlPanel->setColor(ofColor::black);
-    sequenceController.clearAll();
+    sequenceController->clearAll();
+    trainingScoreManager.reset();
     seqNumPanel->hide();
     eventLogger.saveSessionToFile(); //?
     
--- a/TrainingScoreManager.h	Thu Dec 18 17:02:28 2014 +0000
+++ b/TrainingScoreManager.h	Mon Jan 12 18:40:00 2015 +0000
@@ -36,6 +36,9 @@
     TrainingScoreManager(){
         totalScored = 0;
     };
+    void reset(){
+        totalScored = 0;
+    };
     int getBandForDistance(float dist) const{
         int band = -1;
         auto dimComp = sqrt(TOTAL_NUM_PARAMS);
--- a/UI code/ButtronSlider.mm	Thu Dec 18 17:02:28 2014 +0000
+++ b/UI code/ButtronSlider.mm	Mon Jan 12 18:40:00 2015 +0000
@@ -123,7 +123,6 @@
     posAnimIncr = (targVal - value )*amtPerFrame;
     
     animFrac = pow( 0.05, 1000./(ofGetFrameRate() * timeToTake));
-    cout << "ANIM " << animFrac << endl;
     animating = true;
 }
 void ButtronSlider::update(){
--- a/UI code/UIElementContainer.h	Thu Dec 18 17:02:28 2014 +0000
+++ b/UI code/UIElementContainer.h	Mon Jan 12 18:40:00 2015 +0000
@@ -126,7 +126,8 @@
         for( auto eit = subElements.begin(); eit < subElements.end(); eit++){
             
             (*eit)->show();
-            
+            (*eit)->setOn(false);
+    
         }
     }
 private:
--- a/testApp.mm	Thu Dec 18 17:02:28 2014 +0000
+++ b/testApp.mm	Mon Jan 12 18:40:00 2015 +0000
@@ -173,7 +173,7 @@
     //trainingMessageOrganiser.mapButtonToAction(menuButton, TO_MENU_ID);
     bottomButtonPanel->addButton(menuButton);
     
-    Buttron * skipButton = new Buttron(props->buttonWidth*1.4,680, *props);
+    Buttron * skipButton = new Buttron(props->buttonWidth*0.5,680, *props);
     skipButton->setLabel("SKIP RUN");
     trainingMessageOrganiser.mapButtonToAction(skipButton, SKIP_RUN_ID);
     trainingMessageOrganiser.setSkipButton(skipButton);