Mercurial > hg > tweakathon2ios
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__) */ |