Mercurial > hg > tweakathon2ios
view MessageOrganiser.h @ 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 | 2396eb9dcddd |
line wrap: on
line source
// // MessageOrganiser.h // tweakathlon // // Created by Robert Tubb on 10/12/2013. // // This object handles the mapping from GUI to params // // and sends their messages to PD and eventLogger #pragma once #include "eventLogger.h" #include <map.h> #include <vector> #include <string> #include "boost/bind.hpp" #include "boost/function.hpp" #include <UIElement.h> #include <Buttron.h> #include <ButtronSlider.h> #include <ButtronXY.h> #include "TestController.h" #include "timeController.h" #include "PDSynthWrapper.h" #include "ofxTimer.h" #include "sliderPanel.h" //#include "testApp.h" #include "targetSymbol.h" #include "3Dbox.h" #include "6Dbox.h" #include "TextPanel.h" #include "CountdownText.h" #include "buttonPanel.h" #include "ExplorePresetManager.h" #include "IconPanel.h" // should be called TIMED TEST MESSAGE ORGANISER ? // event logger needs to know // which controls were showing in what mode // which controls were mapped to what param // what was the target sound params // all the updates of control movements, submit, quit etc // this is the bit that handles mapping from UI elements to synth i.e testApp DOESNT DO THAT // has links to panel sliders can show hide them // controls flow of stuff //--------------------------------------------------------------------- //--------------------------------------------------------------------- extern TimeController timeController; extern EventLogger eventLogger; extern ExplorePresetManager expPresetManager; //typedef boost::function<void(void)> AppModeChangeFunction; class MessageOrganiser { public: void init(PDSynthWrapper& cs, PDSynthWrapper& ts); // could template for ui element type?? void mapButtonToAction(UIElement* control, int mappingID); void setupDefaultMapping(controlPanelType whichInterfaceAreWeUsing); void setControlPanel(SliderPanel* p); void setBottomPanel(ButtonPanel * ntb); void setIconPanel(IconPanel * ip); void setSkipButton(Buttron* b); void setInstructionPanel(TextPanel * ip); void setSeqNumPanel(TextPanel * snp); void setScoreNumPanel(TextPanel * snp); void setDistanceSlider(ButtronSlider * s); void setMiddlePanel(TextPanel* tp); //----------------------------------------------------------------------------- void hideMyPanels(); void showMyPanels(); void midiFromLeap(int ctl_num, int ctl_val); void setPanelType(controlPanelType p); void update(); protected: PDSynthWrapper candidateSynth; PDSynthWrapper targetSynth; ButtonPanel* bottomPanel; // shows during test : play buttons and submit SliderPanel* controlPanel; IconPanel* presetIconPanel; TextPanel* instructionPanel; TextPanel * seqNumPanel; TextPanel * scoreNumPanel; TextPanel* middlePanel; map<int,UIElement*> currentMapping; // could get more sophisticated if not 1-1 ? vector<int> getMappingIDsFromSynths(); void triggerCandidateSound(); void paramChangeCallback(int mappingID, int value); void sendSynthValuesAgain(); void setAllSlidersToValues(vector<int> values); void setCandidateAndSlidersToRandom(); void setSlidersToCandidate(); // we want to set UI object void setUIToParam(int index, int value); void mapControlToParam(UIElement* control, int mappingID); void showSeqNum(int num); void showScoreNum(int num); //----------------------------------------------------------------------------- void mapSlidersToParams(vector<UIElement*> elems, vector<int> mids); void mapXYToParams(ButtronXY* control, int mappingIDX, int mappingIDY); void mapControlToParam(UIElement* control, string paramName); virtual void buttonPressCallback(int mappingID, int value); void setSlidersToTarget(); void setSlidersToDefault(); void showTargetAsHints(); bool onlyChangeCandidateOnTrigger; bool okToGetMidi; controlPanelType panelType; ButtronSlider * distanceSlider; Buttron* skipButton; };