Mercurial > hg > tweakathon2ios
changeset 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 | 2da0350a4aa2 |
children | 36cdb73691da |
files | ExpMessageOrganiser.h ExpMessageOrganiser.mm ExplorePresetManager.h MessageOrganiser.h TrainingMessageOrganiser.h presetManager.h presetManager.mm |
diffstat | 7 files changed, 144 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- /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 <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__) */
--- /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"
--- 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<int> 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<string> categories;
--- 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<int,UIElement*>(mappingID,control)); } + + void setControlPanel(SliderPanel* p){ // a bit specific?? panel = p;
--- 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){
--- 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<int> stuff); void generatePresetSlot(const string name, const string imagefn); + void saveFilledSlotToFile(); vector<int> recallPreset(int presetID); vector<int> recallPreset(string name); void startLoadAll(); // load everything from the json file
--- 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<int> PresetManager::recallPreset(string name){ vector<Preset *>::iterator p; for(p = thePresets.begin(); p < thePresets.end(); p++){