comparison TrainingMessageOrganiser.h @ 10:e25d2b1b185e

Sequence manager generates sequences of target sounds. psudocode for onTick()
author Robert Tubb <rt300@eecs.qmul.ac.uk>
date Fri, 17 Oct 2014 19:23:30 +0100
parents d5e928887f51
children 91c3fba6e5b9
comparison
equal deleted inserted replaced
9:d5e928887f51 10:e25d2b1b185e
10 #define __riftathon__TrainingMessageOrganiser__ 10 #define __riftathon__TrainingMessageOrganiser__
11 11
12 #include <iostream> 12 #include <iostream>
13 #include "trainingTestController.h" 13 #include "trainingTestController.h"
14 #include "MessageOrganiser.h" 14 #include "MessageOrganiser.h"
15 #include "SequenceController.h"
16
17 extern ExplorePresetManager expPresetManager;
18
15 class TrainingMessageOrganiser : public MessageOrganiser { 19 class TrainingMessageOrganiser : public MessageOrganiser {
16 public: 20 public:
17 void init( PDSynthWrapper& cs, PDSynthWrapper& ts){ 21 void init( PDSynthWrapper& cs, PDSynthWrapper& ts){
18 22
19 trainingTestController = new TrainingTestController; 23 trainingTestController = new TrainingTestController;
50 54
51 void setupNewTest(){ 55 void setupNewTest(){
52 56
53 57
54 }; 58 };
59
60 void onNextTick(int tickNumber){
61 if ( tickNumber % 2){
62 // load next target preset
63 int i = sequenceController.getNextPresetIndex();
64
65 currentTargetPreset = expPresetManager.getPreset(i);
66
67 if (sequencePreview){
68 // show next target preset
69
70 // show image
71 // show name
72 // show controllersettings
73
74
75 }else{ // the user is matching it
76 // show image
77 // show name
78
79 // if guided
80 // show controller guide
81 }
82
83
84 }else{ // we're plying the sound
85
86 //
87 if (sequencePreview){
88 // send target values again
89 targetSynth.setAllParams(currentTargetPreset->getValues());
90 targetSynth.trigger();
91
92 // flash the interface?
93 }else{
94 // else the user should be hitting the play button
95
96 }
97 }
98 }
99
55 100
56 protected: 101 protected:
102
103 void loadPreset(string pname){
104
105 vector<int> values = expPresetManager.recallPreset(pname);
106 if (values.size()){
107 candidateSynth.setAllParams(values);
108 setAllSlidersToValues(values);
109 }else{
110 cout << "ERROR, no preset found" << endl;
111 }
112 }
113
114
115 void showATargetPresetWithGuide(Preset * p){ // this is when demoing the sequence to the user
116 // p.show icon
117 vector<int> values = p->getValues();
118 if (values.size()){
119 candidateSynth.setAllParams(values);
120 setAllSlidersToValues(values);
121 }else{
122 cout << "WARNING, preset to show had no values" << endl;
123 }
124 }
125
57 void mapSlidersToParams(vector<UIElement*> elems, vector<int> mids){ 126 void mapSlidersToParams(vector<UIElement*> elems, vector<int> mids){
58 127
59 vector<UIElement*>::iterator elit; 128 vector<UIElement*>::iterator elit;
60 vector<int> typeListLog; 129 vector<int> typeListLog;
61 int i = 0; 130 int i = 0;
84 153
85 void buttonPressCallback(int mappingID, int value){ 154 void buttonPressCallback(int mappingID, int value){
86 if(mappingID == VOLUME_CHANGE_ID){ 155 if(mappingID == VOLUME_CHANGE_ID){
87 targetSynth.sendVolume(value); 156 targetSynth.sendVolume(value);
88 candidateSynth.sendVolume(value); 157 candidateSynth.sendVolume(value);
89 158 return;
90 } 159 }
91 160
92 if (mappingID == TRIGGER_CANDIDATE_ID){ 161 if (mappingID == TRIGGER_CANDIDATE_ID){
93 triggerCandidateSound(); 162 triggerCandidateSound();
163 // compare to target
164 return;
165 }
166 if(mappingID == SAVE_PRESET_HIT){
167 expPresetManager.savePreset("blah", candidateSynth.getAllParamValues());
168 return;
169 }
170 if(mappingID == RECALL_PRESET_HIT){
171
172 loadPreset("blah");
94 return; 173 return;
95 } 174 }
96 } 175 }
97 176 SequenceController sequenceController;
98 TrainingTestController* trainingTestController; 177 TrainingTestController* trainingTestController;
178 bool sequencePreview;
179 Preset * currentTargetPreset;
99 }; 180 };
100 #endif /* defined(__riftathon__TrainingMessageOrganiser__) */ 181 #endif /* defined(__riftathon__TrainingMessageOrganiser__) */