changeset 44:d810aa9ca03a

times. cosmetic stuff
author Robert Tubb <rt300@eecs.qmul.ac.uk>
date Mon, 15 Dec 2014 17:33:41 +0000
parents 4ad0d218f890
children 80112c9349c4
files ExpMessageOrganiser.mm ExplorePresetManager.h ExplorePresetManager.mm MessageOrganiser.mm SequenceController.h SequenceController.mm TrainingMessageOrganiser.mm UI code/Buttron.h UI code/Buttron.mm UI code/ButtronSlider.mm UI code/IconPanel.mm globalVariables.h presetManager.h testApp.mm
diffstat 14 files changed, 118 insertions(+), 65 deletions(-) [+]
line wrap: on
line diff
--- a/ExpMessageOrganiser.mm	Mon Dec 15 12:51:09 2014 +0000
+++ b/ExpMessageOrganiser.mm	Mon Dec 15 17:33:41 2014 +0000
@@ -18,17 +18,20 @@
     
     setupDefaultMapping(whichInterfaceAreWeUsing);
     expPresetManager.goToFirstEmptySlot();
-    showCurrentSlot();
+    
     instructionPanel->setLabel("Find a sound\n that expresses:");
     instructionPanel->show();
     bottomPanel->show();
     bottomPanel->showAllElements();
     controlPanel->show();
-    controlPanel->showHint(false);
     controlPanel->showValueIndicators(true);
+    if (whichInterfaceAreWeUsing == LEAP6DOF){
+        distanceSlider->show();
+    }
     
     okToGetMidi = true;
-    controlPanel->setActive(true); 
+    controlPanel->setActive(true);
+    showCurrentSlot();
 }
 
 
@@ -50,15 +53,17 @@
     }
     presetIconPanel->setTextAndImage(expPresetManager.getCurrentPresetSlot()->name, expPresetManager.getCurrentPresetSlot()->getImage(),expPresetManager.getCurrentPresetSlot()->isFilled);
     
-    controlPanel->setIndicatorTexture(expPresetManager.getCurrentPresetSlot()->getImage());
+    //controlPanel->setIndicatorTexture(expPresetManager.getCurrentPresetSlot()->getImage());
     
     if(expPresetManager.getCurrentPresetSlot()->isFilled){
         // show this preset on sliders
         loadPreset(expPresetManager.getCurrentPresetSlot()->name);
+        controlPanel->setAndShowHint(expPresetManager.getCurrentPresetSlot()->getValues(), expPresetManager.getCurrentPresetSlot()->getImage());
+        targetSynth.setAllParams(expPresetManager.getCurrentPresetSlot()->getValues());
     }else{
         // show default slidervals
         loadDefaultSound();
-        
+        controlPanel->showHint(false);
     }
 }
 
@@ -112,5 +117,14 @@
         return;
     }
     
+    if(mappingID == NEXT_PRESET_HIT){
+        
+        expPresetManager.nextSlot();
+        showCurrentSlot();
+
+        
+        return;
+    }
+    
 }
 
--- a/ExplorePresetManager.h	Mon Dec 15 12:51:09 2014 +0000
+++ b/ExplorePresetManager.h	Mon Dec 15 17:33:41 2014 +0000
@@ -91,7 +91,7 @@
     bool writeValuesToSlot(vector<int> values);
     PresetSlot* getCurrentPresetSlot();
     PresetSlot* getPresetSlotAtIndex(int index);
-
+    void nextSlot();
 protected:
     
     void initPresetSlots();
--- a/ExplorePresetManager.mm	Mon Dec 15 12:51:09 2014 +0000
+++ b/ExplorePresetManager.mm	Mon Dec 15 17:33:41 2014 +0000
@@ -34,8 +34,10 @@
     // now put it into a real preset, so it will be saved to file
     savePreset(getPresetSlotAtIndex(currentPresetSlotIndex));
     
-    filledSlots++;
-    currentPresetSlotIndex++;
+    if (!getPresetSlotAtIndex(currentPresetSlotIndex)->isFilled){
+        filledSlots++;
+    }
+
     if(filledSlots == MAX_PRESETS){
         cout << "FINISHED EXP STAGE!" << endl;
         currentPresetSlotIndex = 0;
@@ -44,6 +46,14 @@
     return false;
 }
 //--------------------------------------------------------------------------------
+void ExplorePresetManager::nextSlot(){
+    currentPresetSlotIndex++;
+    if (currentPresetSlotIndex >= thePresetSlots.size()){
+        currentPresetSlotIndex = 0;
+    }
+}
+
+//--------------------------------------------------------------------------------
 PresetSlot* ExplorePresetManager::getCurrentPresetSlot(){
     
     return getPresetSlotAtIndex(currentPresetSlotIndex);
--- a/MessageOrganiser.mm	Mon Dec 15 12:51:09 2014 +0000
+++ b/MessageOrganiser.mm	Mon Dec 15 17:33:41 2014 +0000
@@ -84,7 +84,15 @@
 }
 void MessageOrganiser::showSeqNum(int num){
     stringstream s;
-    s << num;
+    if (num == 0){
+        s << "-> N";
+    }else if(num == 1){
+        s << "-> A";
+    }else if(num == 2){
+        s << "-> B";
+    }else if(num == 3){
+        s << "-> C";
+    }
     seqNumPanel->setText(s.str());
     seqNumPanel->show();
 }
--- a/SequenceController.h	Mon Dec 15 12:51:09 2014 +0000
+++ b/SequenceController.h	Mon Dec 15 17:33:41 2014 +0000
@@ -16,16 +16,17 @@
 
 #define MIN_TARGETS_IN_SEQUENCE 1
 #define NUM_REPETITIONS_AT_LEVEL 2
-#define MAX_TARGETS_IN_SEQUENCE 4
+#define MAX_TARGETS_IN_SEQUENCE 3
 #define MIN_TEMPO   90
 #define MAX_TEMPO   520
 #define TEMPO_RANDOM_AMOUNT
 #define MAX_TIME 2800
 #define MIN_TIME 200
-#define NUM_TEMPO_STEPS 20
+#define NUM_TEMPO_STEPS 15
 #define END_NEUTRAL_MATCH 0
 
 #define NUM_PRESETS 8
+#define SLIDER_SLOW_FACTOR 1.4
 #define SPACER_BARS false
 #define NO_GUIDES_LEVEL false
 
--- a/SequenceController.mm	Mon Dec 15 12:51:09 2014 +0000
+++ b/SequenceController.mm	Mon Dec 15 17:33:41 2014 +0000
@@ -159,28 +159,26 @@
 
 SequenceController::SequenceController(){
     int tih[] = {
-        2637,
-        2337,
-        2123,
-        1791,
-        1538,
-        1355,
-        1206,
-        1090,
-        991,
-        912,
-        842,
-        784,
-        731,
-        687,
-        646,
-        612,
-        551,
-        502
+        2500,
+        1944,
+        1590,
+        1346,
+        1166,
+        1029,
+        921,
+        833,
+        760,
+        700,
+        648,
+        603,
+        564,
+        530,
+        500
     };
-    for(int i = 0; i < 25; i++){
+    for(int i = 0; i < NUM_TEMPO_STEPS; i++){
         timeIntervalsHard.push_back(tih[i]);
     }
+
     
     currentRunNumber = 0; // actually goes from 1 0 is pre-start
     
@@ -222,10 +220,18 @@
 //-------------------------------------------------------------------
 void SequenceController::skipRun(){
     // loop thru steps until next run reached
+    if ( (*currentStep).isLastOfAll){
+        return;
+    }
+    currentStep++; // IGNORE CURRENT STEP (LAST OF OLD RUN)
+    
     bool nextRunReached = false;
     
     while (!nextRunReached){
         currentStep++;
+        if ( (*currentStep).isLastOfAll){
+            return;
+        }
         if ((*currentStep).runNumber != currentRunNumber && (*currentStep).runNumber != 0){
             nextRunReached = true;
             currentRunNumber = (*currentStep).runNumber;
@@ -240,7 +246,7 @@
 float SequenceController::getStartIntervalTime(){
     float t =  timeIntervalsHard[0];
     if (panelType == ALL_SLIDERS){
-        t = 1.5*t;
+        t = SLIDER_SLOW_FACTOR*t;
     }
     return t;
 }
@@ -268,7 +274,7 @@
             cout << "-generate run finished-" << endl;
         }
     }
-    totNumRuns = run;
+    totNumRuns = run-1;
     steps.back().isLastOfAll = true;
 };
 
@@ -290,7 +296,7 @@
     //        nextStep.setTimeFromTempo();
     nextStep.timeAllowedMs = timeIntervalsHard[0];
     if (panelType == ALL_SLIDERS){
-        nextStep.timeAllowedMs = 1.5*nextStep.timeAllowedMs;
+        nextStep.timeAllowedMs = SLIDER_SLOW_FACTOR*nextStep.timeAllowedMs;
     }
     nextStep.setTempoFromTime();
     nextStep.showsGuides = true;
@@ -374,7 +380,7 @@
 //        nextStep.setTimeFromTempo();
         nextStep.timeAllowedMs = timeIntervalsHard[tempoLevel];
         if (panelType == ALL_SLIDERS){
-            nextStep.timeAllowedMs = 1.5*nextStep.timeAllowedMs;
+            nextStep.timeAllowedMs = SLIDER_SLOW_FACTOR*nextStep.timeAllowedMs;
         }
         nextStep.setTempoFromTime();
         nextStep.showsGuides = true;
@@ -384,10 +390,10 @@
         
         //nextStep = makeFirstCountIn();
         steps.push_back(nextStep);
-        if(numInSequence > 1){
-            // xtra count for tricky one
-            steps.push_back(nextStep);
-        }
+
+            // two bar coun tin
+        steps.push_back(nextStep);
+
         
         
         // generate a sequence of random preset indices
@@ -406,7 +412,7 @@
         
         steps.back().isLastOfSeq = true;
         if(numInSequence == 1){
-            curTempo += tempoInc; // easier!!!??? will mess up time points
+            curTempo += tempoInc; // make no 1 easier!!!??? will mess up time points
         }else{
             curTempo += tempoInc;
         }
--- a/TrainingMessageOrganiser.mm	Mon Dec 15 12:51:09 2014 +0000
+++ b/TrainingMessageOrganiser.mm	Mon Dec 15 17:33:41 2014 +0000
@@ -117,7 +117,7 @@
         sequenceController.skipRun();
         int r = sequenceController.getCurrentRunNumber();
         stringstream s;
-        s << "SKIP RUN " << r;
+        s << "GOTO RUN " << r+1;
         skipButton->setLabel(s.str());
         
     
@@ -153,8 +153,8 @@
     middlePanel->setText(s.str());
     middlePanel->show();
     //playCandidateButton->setLabel("NEXT");
-
-    s << "SKIP RUN " << which+1;
+    s.str("");
+    s << "GOTO RUN " << which+1;
     skipButton->setLabel(s.str());
     
     bottomPanel->show();
@@ -232,7 +232,7 @@
         flashResult(result);
     }
     
-    AnimStep newStep = sequenceController.getNextStep();
+    AnimStep newStep = sequenceController.getNextStep(); // ADVANCES COUNTS 
     
     
     
@@ -529,11 +529,11 @@
 {
     // show how to get there
     if (showAnimatedHand){
-        if (panelType == LEAP6DOF){
+        //if (panelType == LEAP6DOF){
         controlPanel->animateToNewValues(newTargetValues, animTime);
         controlPanel->showValueIndicators(true); // for animation
         controlPanel->setActive(false);
-        }
+        //}
         
     }else if(showControllableHand){
         controlPanel->showValueIndicators(true); // for animation
--- a/UI code/Buttron.h	Mon Dec 15 12:51:09 2014 +0000
+++ b/UI code/Buttron.h	Mon Dec 15 17:33:41 2014 +0000
@@ -77,10 +77,12 @@
         on = true;
     }
     virtual bool handleMyTouch(int x, int y, touchType ttype, int touchID);
-
+    void setBgImage(ofImage * img){
+        bgImage = img;
+    }
 protected:
     Mode behaviourMode;
-    
+    ofImage * bgImage;
 };
 
 
--- a/UI code/Buttron.mm	Mon Dec 15 12:51:09 2014 +0000
+++ b/UI code/Buttron.mm	Mon Dec 15 17:33:41 2014 +0000
@@ -53,6 +53,7 @@
     backgroundLo = props.generalBackground;
     behaviourMode = MOMENTARY;
     on = false;
+    bgImage = NULL;
 }
 //------------------------------------------------------------------
 Buttron::Buttron(float ax,
@@ -84,6 +85,7 @@
     //cout << "drawing button" << endl;
     ofFill();
     UIElement::draw(); // should do background
+    //drawBackground();
     drawOutline();
     drawTextLabel();
     
@@ -165,6 +167,7 @@
     ofCircle(x+width-cornerSize, y+height-cornerSize, radius);
     
     // fill in background
+
     ofRect(x+cornerSize,y+thickness,width-2*cornerSize,height-2*thickness);
     ofRect(x+thickness, y+cornerSize, radius, height-2*cornerSize);
     ofRect(x+width-cornerSize, y+cornerSize, radius, height-2*cornerSize);
--- a/UI code/ButtronSlider.mm	Mon Dec 15 12:51:09 2014 +0000
+++ b/UI code/ButtronSlider.mm	Mon Dec 15 17:33:41 2014 +0000
@@ -53,6 +53,7 @@
     hintPosAnimIncr = 0;
     posAnimIncr = 0;
     onlyOneTouchAllowed = true;
+    indicatorShowing = true;    
 }
 //
 //---------------------------------------------------------------------
@@ -105,7 +106,7 @@
     double loc = y + thickness +  (1 - hintValue)*(height-3*thickness);
     //ofRect(x-thickness,loc, width+2*thickness,hthick);
     ofSetColor(255, 255, 255);
-    (*handTextureRef).draw(x-thickness,loc-hthick/2, width+2*thickness,hthick);
+    (*handTextureRef).draw(x+thickness,loc-hthick/2, width-4*thickness,hthick);
 }
 
 void ButtronSlider::animateHintToNewValue(int newVal, float timeToTake){
--- a/UI code/IconPanel.mm	Mon Dec 15 12:51:09 2014 +0000
+++ b/UI code/IconPanel.mm	Mon Dec 15 17:33:41 2014 +0000
@@ -46,12 +46,12 @@
         
         drawTextLabel();
         
-        if(showTick){
-            drawTick();
-        }
-        if(showCross){
-            drawCross();
-        }
+//        if(showTick){
+//            drawTick();
+//        }
+//        if(showCross){
+//            drawCross();
+//        }
         
     }
     ofEnableDepthTest();
--- a/globalVariables.h	Mon Dec 15 12:51:09 2014 +0000
+++ b/globalVariables.h	Mon Dec 15 17:33:41 2014 +0000
@@ -26,6 +26,7 @@
 #define VOLUME_CHANGE_ID    99263748
 #define START_TRAINING_SEQUENCE_ID 99189938
 #define SAVE_PRESET_HIT     99245748
+#define NEXT_PRESET_HIT     99241148
 #define TO_MENU_ID          99545741
 #define SKIP_RUN_ID         99765346
 #define FORGOT_SEQ_ID       99123123
--- a/presetManager.h	Mon Dec 15 12:51:09 2014 +0000
+++ b/presetManager.h	Mon Dec 15 17:33:41 2014 +0000
@@ -136,7 +136,6 @@
     void savePreset(Preset * aPreset);
     void savePreset(string name, vector<int> stuff);
     void generatePresetSlot(const string name, const string imagefn);
-    void saveFilledSlotToFile();
     vector<int> getPresetValuesForID(int presetID);
     vector<int> getPresetValuesForName(string name);
     void startLoadAll(); // load everything from the json file
--- a/testApp.mm	Mon Dec 15 12:51:09 2014 +0000
+++ b/testApp.mm	Mon Dec 15 17:33:41 2014 +0000
@@ -113,12 +113,16 @@
     expMessageOrganiser.mapButtonToAction(playCandidateButton, TRIGGER_CANDIDATE_ID);
     bottomButtonPanel->addButton(playCandidateButton);
 
-    
     Buttron * savePresetButton = new Buttron(props->buttonWidth*1.4,680, *props);
-    savePresetButton->setLabel("SAVE/NEXT");
+    savePresetButton->setLabel("SAVE");
     expMessageOrganiser.mapButtonToAction(savePresetButton, SAVE_PRESET_HIT);
     bottomButtonPanel->addButton(savePresetButton);
     
+    Buttron * nextPresetButton = new Buttron(props->buttonWidth*1.4,680, *props);
+    nextPresetButton->setLabel("NEXT");
+    expMessageOrganiser.mapButtonToAction(nextPresetButton, NEXT_PRESET_HIT);
+    bottomButtonPanel->addButton(nextPresetButton);
+    
     
     Buttron * menuButton = new Buttron(props->buttonWidth*1.4,680, *props);
     menuButton->setLabel("MENU");
@@ -166,18 +170,14 @@
     bottomButtonPanel->addButton(menuButton);
     
     Buttron * skipButton = new Buttron(props->buttonWidth*1.4,680, *props);
-    skipButton->setLabel("SKIP RUN 1");
+    skipButton->setLabel("GOTO RUN 2");
     trainingMessageOrganiser.mapButtonToAction(skipButton, SKIP_RUN_ID);
     trainingMessageOrganiser.setSkipButton(skipButton);
     //trainingMessageOrganiser.mapButtonToAction(menuButton, TO_MENU_ID);
     bottomButtonPanel->addButton(skipButton);
     
     bottomButtonPanel->hide();
-    
-    ButtronSlider* distanceSlider = new ButtronSlider(ofGetWidth()-80, 200, 60, ofGetHeight()-400, FILL, *props);
-    trainingMessageOrganiser.setDistanceSlider(distanceSlider);
-    distanceSlider->hide();
-    UIElements.push_back(distanceSlider);
+
     
     trainingMessageOrganiser.setBottomPanel(bottomButtonPanel);
     UIElements.push_back(bottomButtonPanel);
@@ -304,7 +304,7 @@
     UIElements.push_back(iconPanel);
     iconPanel->hide();
     
-    TextPanel* seqNumPanel = new TextPanel("0",500, 190, 150, 150, *props);
+    TextPanel* seqNumPanel = new TextPanel(" ",470, 185, 150, 150, *props);
     trainingMessageOrganiser.setSeqNumPanel(seqNumPanel);
     expMessageOrganiser.setSeqNumPanel(seqNumPanel);
     searchMessageOrganiser.setSeqNumPanel(seqNumPanel);
@@ -320,7 +320,8 @@
     UIElements.push_back(scoreNumPanel);
     scoreNumPanel->show();
     
-    TextPanel * middlePanel = new TextPanel("Middle panel", 400, 400, 400,400,(*props));
+    TextPanel * middlePanel = new TextPanel("Middle panel", 300, 400, 400,400,(*props));
+    
     middlePanel->setFontSize(LARGEFONT);
     UIElements.push_back(middlePanel);
     expMessageOrganiser.setMiddlePanel(middlePanel);
@@ -328,6 +329,13 @@
     searchMessageOrganiser.setMiddlePanel(middlePanel);
     middlePanel->hide();
     
+    
+    ButtronSlider* distanceSlider = new ButtronSlider(ofGetWidth()-80, 200, 60, ofGetHeight()-400, FILL, *props);
+    trainingMessageOrganiser.setDistanceSlider(distanceSlider);
+    expMessageOrganiser.setDistanceSlider(distanceSlider);
+    distanceSlider->hide();
+    UIElements.push_back(distanceSlider);
+    
 //    Leap6DBox * box = new Leap6DBox(400 , 210 , (*props).XYsize*0.75,(*props).XYsize*0.75,150,50, *props);
 //    searchMessageOrganiser.setBox(box);
 //    trainingMessageOrganiser.setBox(box);