void ChannelSelector::addButton() { int size = parameterButtons.size(); ChannelSelectorButton* b = new ChannelSelectorButton(size+1, PARAMETER, titleFont); parameterButtons.add(b); channelSelectorRegion->addAndMakeVisible(b); if (paramsToggled) b->setToggleState(true, false); else b->setToggleState(false, false); if (!paramsActive) b->setActive(false); b->addListener(this); if (isNotSink) { ChannelSelectorButton* br = new ChannelSelectorButton(size+1, RECORD, titleFont); recordButtons.add(br); channelSelectorRegion->addAndMakeVisible(br); br->addListener(this); ChannelSelectorButton* ba = new ChannelSelectorButton(size+1, AUDIO, titleFont); audioButtons.add(ba); channelSelectorRegion->addAndMakeVisible(ba); ba->addListener(this); } }
void ChannelSelector::addButton() { const int size = parameterButtonsManager.getNumButtons(); ChannelSelectorButton* b = new ChannelSelectorButton (size + 1, PARAMETER, titleFont); parameterButtonsManager.addButton (b); if (paramsToggled) b->setToggleState(true, dontSendNotification); else b->setToggleState(false, dontSendNotification); if (!paramsActive) b->setActive(false); if (isNotSink) { ChannelSelectorButton* br = new ChannelSelectorButton(size + 1, RECORD, titleFont); recordButtonsManager.addButton (br); ChannelSelectorButton* ba = new ChannelSelectorButton(size + 1, AUDIO, titleFont); audioButtonsManager.addButton (ba); } }
void ChannelSelector::buttonClicked(Button* button) { //checkChannelSelectors(); if (button == paramsButton) { // make sure param buttons are visible allButton->setState(true); desiredOffset = parameterOffset; startTimer(20); return; } else if (button == audioButton) { // make sure audio buttons are visible if (audioButton->getState()) { allButton->setState(false); desiredOffset = audioOffset; startTimer(20); } else { paramsButton->setToggleState(true, false); } return; } else if (button == recordButton) { // make sure record buttons are visible; if (recordButton->getState()) { allButton->setState(true); desiredOffset = recordOffset; startTimer(20); } else { paramsButton->setToggleState(true, false); } return; } else if (button == allButton) { // select all active buttons if (offsetLR == recordOffset) { for (int i = 0; i < recordButtons.size(); i++) { recordButtons[i]->setToggleState(true, true); } } else if (offsetLR == parameterOffset) { for (int i = 0; i < parameterButtons.size(); i++) { parameterButtons[i]->setToggleState(true, true); } } else if (offsetLR == audioOffset) { // do nothing--> button is disabled } } else if (button == noneButton) { // deselect all active buttons if (offsetLR == recordOffset) { for (int i = 0; i < recordButtons.size(); i++) { recordButtons[i]->setToggleState(false, true); } } else if (offsetLR == parameterOffset) { for (int i = 0; i < parameterButtons.size(); i++) { parameterButtons[i]->setToggleState(false, true); } } else if (offsetLR == audioOffset) { for (int i = 0; i < audioButtons.size(); i++) { audioButtons[i]->setToggleState(false, true); } } } else { ChannelSelectorButton* b = (ChannelSelectorButton*) button; if (b->getType() == AUDIO) { // get audio node, and inform it of the change GenericEditor* editor = (GenericEditor*) getParentComponent(); Channel* ch = editor->getChannel(b->getChannel()-1); //int channelNum = editor->getStartChannel() + b->getChannel() - 1; bool status = b->getToggleState(); if (acquisitionIsActive) // use setParameter to change parameter safely { editor->getProcessorGraph()-> getAudioNode()-> setChannelStatus(ch, status); } else // change parameter directly { ch->isMonitored = status; } } else if (b->getType() == RECORD) { // get record node, and inform it of the change GenericEditor* editor = (GenericEditor*) getParentComponent(); Channel* ch = editor->getChannel(b->getChannel()-1); //int channelNum = editor->getStartChannel() + b->getChannel() - 1; bool status = b->getToggleState(); if (acquisitionIsActive) // use setParameter to change parameter safely { editor->getProcessorGraph()-> getRecordNode()-> setChannelStatus(ch, status); } else // change parameter directly { ch->isRecording = status; } } else { // do nothing if (radioStatus) // if radio buttons are active { // send a message to parent GenericEditor* editor = (GenericEditor*) getParentComponent(); editor->channelChanged(b->getChannel()); } } } }
void ChannelSelector::buttonClicked(Button* button) { //checkChannelSelectors(); if (button == paramsButton) { // make sure param buttons are visible allButton->setState(true); desiredOffset = parameterOffset; startTimer(20); return; } else if (button == audioButton) { // make sure audio buttons are visible if (audioButton->getState()) { allButton->setState(false); desiredOffset = audioOffset; startTimer(20); } else { paramsButton->setToggleState(true, dontSendNotification); } return; } else if (button == recordButton) { // make sure record buttons are visible; if (recordButton->getState()) { allButton->setState(true); desiredOffset = recordOffset; startTimer(20); } else { paramsButton->setToggleState(true, dontSendNotification); } return; } else if (button == allButton) { // select all active buttons if (offsetLR == recordOffset) { for (int i = 0; i < recordButtonsManager.getNumButtons(); ++i) { recordButtonsManager.getButtonAt (i)->setToggleState (true, sendNotification); } } else if (offsetLR == parameterOffset) { for (int i = 0; i < parameterButtonsManager.getNumButtons(); ++i) { parameterButtonsManager.getButtonAt (i)->setToggleState (true, sendNotification); } } else if (offsetLR == audioOffset) { // do nothing--> button is disabled } } else if (button == noneButton) { // deselect all active buttons if (offsetLR == recordOffset) { for (int i = 0; i < recordButtonsManager.getNumButtons(); ++i) { recordButtonsManager.getButtonAt (i)->setToggleState (false, sendNotification); } } else if (offsetLR == parameterOffset) { for (int i = 0; i < parameterButtonsManager.getNumButtons(); ++i) { parameterButtonsManager.getButtonAt (i)->setToggleState (false, sendNotification); } } else if (offsetLR == audioOffset) { for (int i = 0; i < audioButtonsManager.getNumButtons(); ++i) { audioButtonsManager.getButtonAt (i)->setToggleState (false, sendNotification); } } if (radioStatus) // if radio buttons are active { // send a message to parent GenericEditor* editor = (GenericEditor*) getParentComponent(); editor->channelChanged (-1, false); } } else { ChannelSelectorButton* b = (ChannelSelectorButton*)button; if (b->getType() == AUDIO) { // get audio node, and inform it of the change GenericEditor* editor = (GenericEditor*)getParentComponent(); Channel* ch = editor->getChannel(b->getChannel() - 1); //int channelNum = editor->getStartChannel() + b->getChannel() - 1; bool status = b->getToggleState(); std::cout << "Requesting audio monitor for channel " << ch->nodeIndex + 1 << std::endl; if (acquisitionIsActive) // use setParameter to change parameter safely { AccessClass::getProcessorGraph()-> getAudioNode()->setChannelStatus(ch, status); } else // change parameter directly { ch->isMonitored = status; } } else if (b->getType() == RECORD) { // get record node, and inform it of the change GenericEditor* editor = (GenericEditor*)getParentComponent(); Channel* ch = editor->getChannel(b->getChannel() - 1); //int channelNum = editor->getStartChannel() + b->getChannel() - 1; bool status = b->getToggleState(); if (acquisitionIsActive) // use setParameter to change parameter safely { AccessClass::getProcessorGraph()-> getRecordNode()-> setChannelStatus(ch, status); } else // change parameter directly { //std::cout << "Setting record status for channel " << b->getChannel() << std::endl; ch->setRecordState(status); } AccessClass::getGraphViewer()->repaint(); } else // parameter type { GenericEditor* editor = (GenericEditor*) getParentComponent(); editor->channelChanged (b->getChannel() - 1, b->getToggleState()); // do nothing if (radioStatus) // if radio buttons are active { // send a message to parent GenericEditor* editor = (GenericEditor*) getParentComponent(); editor->channelChanged (b->getChannel(), b->getToggleState()); } } } refreshParameterColors(); }