@@ -129,34 +129,38 @@ void MergerEditor::mouseDown(const MouseEvent& e)
129129 if (e.mods .isRightButtonDown ())
130130 {
131131
132- PopupMenu m;
133- m.addItem (1 , " Choose input 2:" ,false );
132+ PopupMenu menu;
133+ int menuItemIndex = 1 ;
134+
135+ menu.addItem (menuItemIndex, // index
136+ " Choose input 2:" , // message
137+ false ); // isSelectable
134138
135139 Array<GenericProcessor*> availableProcessors = AccessClass::getProcessorGraph ()->getListOfProcessors ();
140+
141+ Array<GenericProcessor*> selectableProcessors;
136142
137- int i;
138-
139- for (i = 0 ; i < availableProcessors.size (); i++)
143+ for (auto & processor : availableProcessors)
140144 {
141- if (// !availableProcessors[i]->isSink() &&
142- !availableProcessors[i]->isMerger () &&
143- !availableProcessors[i]->isSplitter () &&
144- availableProcessors[i]->getDestNode () != getProcessor ())
145+ if (!processor->isMerger () &&
146+ !processor->isSplitter () &&
147+ processor->getDestNode () == 0 )
145148 {
146149
147- String name = String (availableProcessors[i] ->getNodeId ());
150+ String name = String (processor ->getNodeId ());
148151 name += " - " ;
149- name += availableProcessors[i] ->getName ();
152+ name += processor ->getName ();
150153
151- m.addItem (i+2 , name);
152- // processorsInList.add(availableProcessors[i]);
154+ menu.addItem (++menuItemIndex, // index
155+ name, // message
156+ true ); // isSelectable
157+
158+ selectableProcessors.add (processor);
153159 }
154160 }
155161
156- // m.addItem(++i, "Merging:", false);
157-
158- int eventMerge = ++i;
159- int continuousMerge = ++i;
162+ int eventMerge = ++menuItemIndex;
163+ int continuousMerge = ++menuItemIndex;
160164
161165 bool * eventPtr;
162166 bool * continuousPtr;
@@ -170,20 +174,22 @@ void MergerEditor::mouseDown(const MouseEvent& e)
170174 continuousPtr = &merger->mergeContinuousB ;
171175 }
172176
173- m .addItem (eventMerge, " Events" , !acquisitionIsActive, *eventPtr);
174- m .addItem (continuousMerge, " Continuous" , !acquisitionIsActive, *continuousPtr);
177+ menu .addItem (eventMerge, " Events" , !acquisitionIsActive, *eventPtr);
178+ menu .addItem (continuousMerge, " Continuous" , !acquisitionIsActive, *continuousPtr);
175179
176- const int result = m.show ();
180+ const int result = menu.show (); // returns 0 if nothing is selected
181+
182+ std::cout << " Selection: " << result << std::endl;
177183
178184 if (result > 1 && result < eventMerge)
179185 {
180- std::cout << " Selected " << availableProcessors [result-2 ]->getName () << std::endl;
186+ std::cout << " Selected " << selectableProcessors [result-2 ]->getName () << std::endl;
181187
182188 switchSource (1 );
183189
184190 Merger* processor = (Merger*) getProcessor ();
185- processor->setMergerSourceNode (availableProcessors [result-2 ]);
186- availableProcessors [result-2 ]->setDestNode (getProcessor ());
191+ processor->setMergerSourceNode (selectableProcessors [result-2 ]);
192+ selectableProcessors [result-2 ]->setDestNode (getProcessor ());
187193
188194 AccessClass::getGraphViewer ()->updateNodeLocations ();
189195
@@ -198,30 +204,8 @@ void MergerEditor::mouseDown(const MouseEvent& e)
198204 CoreServices::updateSignalChain (this );
199205 }
200206 }
201-
202-
203-
204207}
205208
206- void MergerEditor::switchSource (int source)
207- {
208- if (source == 0 )
209- {
210- pipelineSelectorA->setToggleState (true , dontSendNotification);
211- pipelineSelectorB->setToggleState (false , dontSendNotification);
212- Merger* processor = (Merger*) getProcessor ();
213- processor->switchIO (0 );
214-
215- }
216- else if (source == 1 )
217- {
218- pipelineSelectorB->setToggleState (true , dontSendNotification);
219- pipelineSelectorA->setToggleState (false , dontSendNotification);
220- Merger* processor = (Merger*) getProcessor ();
221- processor->switchIO (1 );
222-
223- }
224- }
225209
226210Array<GenericEditor*> MergerEditor::getConnectedEditors ()
227211{
@@ -284,3 +268,23 @@ void MergerEditor::switchSource()
284268 processor->switchIO ();
285269
286270}
271+
272+ void MergerEditor::switchSource (int source)
273+ {
274+ if (source == 0 )
275+ {
276+ pipelineSelectorA->setToggleState (true , dontSendNotification);
277+ pipelineSelectorB->setToggleState (false , dontSendNotification);
278+ Merger* processor = (Merger*) getProcessor ();
279+ processor->switchIO (0 );
280+
281+ }
282+ else if (source == 1 )
283+ {
284+ pipelineSelectorB->setToggleState (true , dontSendNotification);
285+ pipelineSelectorA->setToggleState (false , dontSendNotification);
286+ Merger* processor = (Merger*) getProcessor ();
287+ processor->switchIO (1 );
288+
289+ }
290+ }
0 commit comments