void EffectChainSlot::registerChannel(const ChannelHandleAndGroup& handle_group) { if (m_channelInfoByName.contains(handle_group.name())) { qWarning() << debugString() << "WARNING: registerChannel already has channel registered:" << handle_group.name(); return; } double initialValue = 0.0; int deckNumber; if (PlayerManager::isDeckGroup(handle_group.name(), &deckNumber) && (m_iChainSlotNumber + 1) == (unsigned) deckNumber) { initialValue = 1.0; } ControlPushButton* pEnableControl = new ControlPushButton( ConfigKey(m_group, QString("group_%1_enable").arg(handle_group.name())), true, initialValue); pEnableControl->setButtonMode(ControlPushButton::POWERWINDOW); ChannelInfo* pInfo = new ChannelInfo(handle_group, pEnableControl); m_channelInfoByName[handle_group.name()] = pInfo; m_channelStatusMapper.setMapping(pEnableControl, handle_group.name()); connect(pEnableControl, SIGNAL(valueChanged(double)), &m_channelStatusMapper, SLOT(map())); if (m_pEffectChain != nullptr) { if (pEnableControl->toBool()) { m_pEffectChain->enableForChannel(handle_group); } else { m_pEffectChain->disableForChannel(handle_group); } } }
void EffectChain::disableForChannel(const ChannelHandleAndGroup& handle_group) { if (!m_bAddedToEngine) { return; } if (m_enabledChannels.remove(handle_group)) { EffectsRequest* request = new EffectsRequest(); request->type = EffectsRequest::DISABLE_EFFECT_CHAIN_FOR_CHANNEL; request->pTargetChain = m_pEngineEffectChain; request->channel = handle_group.handle(); m_pEffectsManager->writeRequest(request); emit(channelStatusChanged(handle_group.name(), false)); } }