void DistrhoUISoulForce::imageSwitchClicked(ImageSwitch* imageSwitch, bool down)
{
    const uint buttonId(imageSwitch->getId());

    editParameter(buttonId, true);
    setParameterValue(buttonId, down ? 1.0f : 0.0f);
    editParameter(buttonId, false);
}
void DistrhoUISoulForce::imageButtonClicked(ImageButton* imageButton, int)
{
    const uint buttonId(imageButton->getId());

    if (buttonId != DistrhoPluginSoulForce::kParameterFootswitch)
        return;

    fFootDown = !fFootDown;

    editParameter(buttonId, true);
    setParameterValue(buttonId, fFootDown ? 1.0f : 0.0f);
    editParameter(buttonId, false);

    repaint();
}
void EditConfigWindow::editParameter(ConfigMap::RegisterType type)
{
    QTableWidgetItem * ti = m_tables[type]->item(m_currentIndex[type], 0);
    QString id = ti->text();
    ConfigMap::Parameter newParameter = m_config->findParameter(id.toStdString())->second;
    if (editParameter(newParameter))
    {
        m_config->setNewParameter(id.toStdString(), newParameter);
    }
}
void EditConfigWindow::addNewParameter(ConfigMap::RegisterType type)
{
    ConfigMap::Parameter newParameter;
    newParameter.m_type = type;
    QString newName;
    if (!getNewName(newName))
        return;

    if (editParameter(newParameter))
    {
        m_config->setNewParameter(newName.toStdString(), newParameter);
        m_tables[type]->clearContents();
        m_map = m_config->m_map;
        initTab(type);
    }
}
void DistrhoUIPingPongPan::imageKnobDragFinished(ImageKnob* knob)
{
    editParameter(knob->getId(), false);
}
void DistrhoUIPingPongPan::imageKnobDragStarted(ImageKnob* knob)
{
    editParameter(knob->getId(), true);
}
void EditConfigWindow::editOutput()
{
    editParameter(ConfigMap::OUTPUT_REGISTER);
}
void EditConfigWindow::editInput()
{
    editParameter(ConfigMap::INPUT_REGISTER);
}
void EditConfigWindow::editCoil()
{
    editParameter(ConfigMap::COIL);
}
void DistrhoUISoulForce::imageKnobDragFinished(ImageKnob* knob)
{
    editParameter(knob->getId(), false);
}
void DistrhoUISoulForce::imageKnobDragStarted(ImageKnob* knob)
{
    editParameter(knob->getId(), true);
}