view TrainingMessageOrganiser.h @ 38:fea11c3d1d94

tweaking endlessly
author Robert Tubb <rt300@eecs.qmul.ac.uk>
date Thu, 04 Dec 2014 17:03:01 +0000
parents 52dbd5b4cfa9
children 2bd658b44c2d
line wrap: on
line source
//
//  TrainingMessageOrganiser.h
//  riftathon
//
//  Created by Robert Tubb on 17/10/2014.
//
//

#ifndef __riftathon__TrainingMessageOrganiser__
#define __riftathon__TrainingMessageOrganiser__

#include <iostream>
#include "MessageOrganiser.h"
#include "SequenceController.h"
#include "globalVariables.h"
#include "IconPanel.h"
#include "TextPanel.h"
#include "TrainingScoreManager.h"
#include "6Dbox.h"
#include "eventLogger.h"

extern ExplorePresetManager expPresetManager;
extern EventLogger eventLogger;

class TrainingMessageOrganiser : public MessageOrganiser {
public:
    int numParamsToUse;
    void init( PDSynthWrapper& cs, PDSynthWrapper& ts, bool soundOnlyMode);
    void setMiddlePanel(TextPanel* tp);
    void setup(controlPanelType whichInterfaceAreWeUsing);
    vector<int> getMappingIDsFromSynths();
    void displayInstructions(string text);
    void onNextTick(int tickNumber);
    void onNextTickAnim(int tickNumber);
    
    void showMyPanels();
    void setForgotButton(Buttron* butt);
    //void midiFromLeap(int ctl_num, int ctl_val);
    //-----------------------------------------------------------------------
protected:
    void showUserHowTheyDid();
    void buttonPressCallback(int mappingID, int value);
    
    void debugVals(vector<int> vals){
        cout << "DEBUG VALS: " << endl;
        for(int i = 0; i< vals.size(); i++){
            cout << vals[i] << ", ";
        }
        cout << endl;
    }
    void updateCountdown(int n);
    void lastOfAll();
    void lastOfRun(int which);
    void showCountdown();
    void hideSliders();
    void showsTarget();
    void logNewStep(AnimStep newStep);
    TrainingTestResult doResults(AnimStep newStep,
                                 Preset * currentTargetPreset,
                                 vector<int> startingPosition,
                                 vector<int> currentPosition	);
    
    void previewNeutralCount(AnimStep newStep, Preset * currentTargetPreset);
    void previewMove(AnimStep newStep, Preset * currentTargetPreset);
    void previewLast(AnimStep newStep, Preset * currentTargetPreset);
    //void matchingNeutralCount(AnimStep newStep);
    void matchingMove(AnimStep newStep, Preset * currentTargetPreset);
    void matchingLast(AnimStep newStep, Preset * currentTargetPreset);
    //void guidedMove(AnimStep newStep);
    //void guidedHit(AnimStep newStep);
    
    void flashResult(TrainingTestResult r);
    void doGuides(bool showGuides, Preset * currentTargetPreset);
    void doIcons(bool showIcons, Preset * currentTargetPreset);
    void doHand(bool showControllableHand, bool showAnimatedHand = false, float animTime = 0, vector<int> newTargetValues = vector<int>());
    ofColor interactableColor;
    ofColor nonInteractableColor;
    int downCounter;
    
    vector<int> oldTargetValues;
    //-----------------------------------------------------------------------------
    TextPanel* middlePanel;
    SequenceController sequenceController;
    TrainingScoreManager trainingScoreManager;
    Buttron* forgotButton;

    
};
#endif /* defined(__riftathon__TrainingMessageOrganiser__) */