# HG changeset patch # User Robert Tubb # Date 1413914305 -3600 # Node ID 2a7320a8cbed00a000c0e150a347bd05f3a63ef1 # Parent 2da0350a4aa23fcbf707b2d9195229862f9803e7 explore mode shows stuff, can go thru saving various presets. diff -r 2da0350a4aa2 -r 2a7320a8cbed ExpMessageOrganiser.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ExpMessageOrganiser.h Tue Oct 21 18:58:25 2014 +0100 @@ -0,0 +1,109 @@ +// +// expMessageOrganiser.h +// riftathon +// +// Created by Robert Tubb on 21/10/2014. +// +// + +#ifndef __riftathon__expMessageOrganiser__ +#define __riftathon__expMessageOrganiser__ + +#include +#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 mappingIDsForChangeableParams = getMappingIDsFromSynths(); + + controlPanelType cpt = REVISITABLE; + vector elemList; + for(int i = 0; i < numParamsToUse; i++){ + elemList.push_back(SLIDER); + } + + vector UIElemHandles = panel->generateControls(elemList, cpt); + + mapSlidersToParams(UIElemHandles, mappingIDsForChangeableParams); + + bottomPanel->show(); + } + + vector getMappingIDsFromSynths(){ + vector index; + for(int i = 0; i < numParamsToUse; i++){ + index.push_back(i); + } + vector mids = candidateSynth.getMappingIDForIndices(index); + + return mids; + } + + void showCurrentSlot(){ + currentPresetSlot = expPresetManager.getCurrentPresetSlot(); + presetIconPanel->setTextAndImage(currentPresetSlot->name, currentPresetSlot->getImage()); + } + + void loadPreset(string pname){ + + vector 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__) */ diff -r 2da0350a4aa2 -r 2a7320a8cbed ExpMessageOrganiser.mm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ExpMessageOrganiser.mm Tue Oct 21 18:58:25 2014 +0100 @@ -0,0 +1,9 @@ +// +// expMessageOrganiser.cpp +// riftathon +// +// Created by Robert Tubb on 21/10/2014. +// +// + +#include "ExpMessageOrganiser.h" diff -r 2da0350a4aa2 -r 2a7320a8cbed ExplorePresetManager.h --- a/ExplorePresetManager.h Tue Oct 21 18:06:44 2014 +0100 +++ b/ExplorePresetManager.h Tue Oct 21 18:58:25 2014 +0100 @@ -84,13 +84,30 @@ } //---------------------------------------------------------------------------- - void presentNextPresetSlot(){ + void goToFirstEmptySlot(){ + currentPresetSlot = filledSlots + 1; + } + bool writeValuesToSlot(vector values){ + getPresetAtIndex(currentPresetSlot)->setValues(values); + getPresetAtIndex(currentPresetSlot)->isFilled = true; + + filledSlots++; + currentPresetSlot++; + if(filledSlots == MAX_PRESETS){ + cout << "FINISHED EXP STAGE!" << endl; + return true; + } + return false; + } + Preset* getCurrentPresetSlot(){ + return getPresetAtIndex(currentPresetSlot); } protected: int filledSlots; + int currentPresetSlot; string presetSlotFilename; vector categories; diff -r 2da0350a4aa2 -r 2a7320a8cbed MessageOrganiser.h --- a/MessageOrganiser.h Tue Oct 21 18:06:44 2014 +0100 +++ b/MessageOrganiser.h Tue Oct 21 18:58:25 2014 +0100 @@ -73,6 +73,8 @@ control->addHandler(callbackF, mappingID); currentMapping.insert(std::pair(mappingID,control)); } + + void setControlPanel(SliderPanel* p){ // a bit specific?? panel = p; diff -r 2da0350a4aa2 -r 2a7320a8cbed TrainingMessageOrganiser.h --- a/TrainingMessageOrganiser.h Tue Oct 21 18:06:44 2014 +0100 +++ b/TrainingMessageOrganiser.h Tue Oct 21 18:58:25 2014 +0100 @@ -57,11 +57,7 @@ return mids; } - - void setupNewTest(){ - - - }; + //----------------------------------------------------------------------- void displayInstructions(Step s){ diff -r 2da0350a4aa2 -r 2a7320a8cbed presetManager.h --- a/presetManager.h Tue Oct 21 18:06:44 2014 +0100 +++ b/presetManager.h Tue Oct 21 18:58:25 2014 +0100 @@ -135,6 +135,7 @@ PresetManager(); void savePreset(string name, vector stuff); void generatePresetSlot(const string name, const string imagefn); + void saveFilledSlotToFile(); vector recallPreset(int presetID); vector recallPreset(string name); void startLoadAll(); // load everything from the json file diff -r 2da0350a4aa2 -r 2a7320a8cbed presetManager.mm --- a/presetManager.mm Tue Oct 21 18:06:44 2014 +0100 +++ b/presetManager.mm Tue Oct 21 18:58:25 2014 +0100 @@ -164,6 +164,10 @@ } //----------------------------------------------cu----------------------------- +void PresetManager::saveFilledSlotToFile(){ + // uuuhhhh +} +//----------------------------------------------cu----------------------------- vector PresetManager::recallPreset(string name){ vector::iterator p; for(p = thePresets.begin(); p < thePresets.end(); p++){