Mercurial > hg > tweakathon2ios
view ExpMessageOrganiser.h @ 17:2a7320a8cbed
explore mode shows stuff, can go thru saving various presets.
author | Robert Tubb <rt300@eecs.qmul.ac.uk> |
---|---|
date | Tue, 21 Oct 2014 18:58:25 +0100 |
parents | |
children | 36cdb73691da |
line wrap: on
line source
// // expMessageOrganiser.h // riftathon // // Created by Robert Tubb on 21/10/2014. // // #ifndef __riftathon__expMessageOrganiser__ #define __riftathon__expMessageOrganiser__ #include <iostream> #include "MessageOrganiser.h" #include "SequenceController.h" #include "globalVariables.h" extern ExplorePresetManager expPresetManager; class ExpMessageOrganiser : public MessageOrganiser { public: void init( PDSynthWrapper& cs, PDSynthWrapper& ts){ numParamsToUse = TOTAL_NUM_PARAMS; MessageOrganiser::init(cs,ts); } void setup(){ // do stuff like load first slot setupDefaultMapping(); expPresetManager.goToFirstEmptySlot(); showCurrentSlot(); } void setupDefaultMapping(){ vector<int> mappingIDsForChangeableParams = getMappingIDsFromSynths(); controlPanelType cpt = REVISITABLE; vector<controllerType> elemList; for(int i = 0; i < numParamsToUse; i++){ elemList.push_back(SLIDER); } vector<UIElement*> UIElemHandles = panel->generateControls(elemList, cpt); mapSlidersToParams(UIElemHandles, mappingIDsForChangeableParams); bottomPanel->show(); } vector<int> getMappingIDsFromSynths(){ vector<int> index; for(int i = 0; i < numParamsToUse; i++){ index.push_back(i); } vector<int> mids = candidateSynth.getMappingIDForIndices(index); return mids; } void showCurrentSlot(){ currentPresetSlot = expPresetManager.getCurrentPresetSlot(); presetIconPanel->setTextAndImage(currentPresetSlot->name, currentPresetSlot->getImage()); } void loadPreset(string pname){ vector<int> values = expPresetManager.recallPreset(pname); if (values.size()){ candidateSynth.setAllParams(values); setAllSlidersToValues(values); }else{ cout << "ERROR, no preset found" << endl; } } //----------------------------------------------------------------------------- void buttonPressCallback(int mappingID, int value){ if (mappingID == TRIGGER_CANDIDATE_ID){ triggerCandidateSound(); return; } if(mappingID == SAVE_PRESET_HIT){ expPresetManager.writeValuesToSlot(candidateSynth.getAllParamValues()); showCurrentSlot(); return; } } private: Preset* currentPresetSlot; int numParamsToUse; }; #endif /* defined(__riftathon__expMessageOrganiser__) */