Example #1
0
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));
    }
}
Example #2
0
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);
        }
    }
}