void FixtureConsole::setSceneValue(const SceneValue& scv)
{
    Q_ASSERT(scv.fxi == m_fixture);

    QListIterator <QObject*> it(children());
    while (it.hasNext() == true)
    {
        ConsoleChannel* cc = qobject_cast<ConsoleChannel*> (it.next());
        if (cc != NULL && cc->channel() == scv.channel)
        {
            cc->enable(true);
            cc->setValue(scv.value);
        }
    }
}
void FixtureConsole::slotInputValueChanged(quint32 uni,
        quint32 ch,
        uchar value)
{
    if (uni == _app->inputMap()->editorUniverse())
    {
        ConsoleChannel* cc;

        cc = channel(ch);
        if (cc != NULL)
        {
            cc->setValue(value);
            cc->setChecked(true);
        }
    }
}
void FixtureConsole::setValues(const QList <SceneValue>& list)
{
    enableAllChannels(false);

    QListIterator <SceneValue> it(list);
    while (it.hasNext() == true)
    {
        SceneValue val(it.next());
        if (val.channel < quint32(children().size()))
        {
            ConsoleChannel* cc = channel(val.channel);
            if (cc != NULL)
            {
                cc->enable(true);
                cc->setValue(val.value);
            }
        }
    }
}
Beispiel #4
0
void GroupsConsole::init()
{
    int idx = 0;
    foreach(quint32 id, m_ids)
    {
        ChannelsGroup *grp = m_doc->channelsGroup(id);
        SceneValue scv = grp->getChannels().at(0);

        ConsoleChannel* cc = new ConsoleChannel(this, m_doc, scv.fxi, scv.channel, false);
        cc->setLabel(grp->name());
        cc->setChannelsGroup(id);
        if (idx < m_levels.count())
            cc->setValue(m_levels.at(idx));
        layout()->addWidget(cc);
        m_groups.append(cc);

        connect(cc, SIGNAL(groupValueChanged(quint32, uchar)),
                this, SIGNAL(groupValueChanged(quint32, uchar)));
        idx++;
    }
Beispiel #5
0
void SimpleDesk::slotUniversesWritten(const QByteArray& ua)
{
    quint32 start = (m_universePageSpin->value() - 1) * m_channelsPerPage;
    // add the universe bits to retrieve the absolute address (0 - 2048)
    start = start | (m_currentUniverse << 9);

    for (quint32 i = 0; i < (quint32)ua.length(); i++)
    {
        //m_engine->setValue(i, ua.at(i));
        // update current page sliders
        if (i >= start && i < start + (quint32)m_channelsPerPage)
        {
            const Fixture* fx = m_doc->fixture(m_doc->fixtureForAddress(i));
            if (fx != NULL)
            {
                ConsoleChannel *cc = m_universeSliders[i - start];
                cc->setValue(ua.at(i), false);
            }
        }
    }
}
Beispiel #6
0
void SimpleDesk::slotUniversePageChanged(int page)
{
    qDebug() << Q_FUNC_INFO;
    quint32 start = (page - 1) * m_channelsPerPage;
    QString ssEven =  "QGroupBox { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #C3D1C9, stop: 1 #AFBBB4); "
                     " border: 1px solid gray; border-radius: 4px; }";
    QString ssOdd = "QGroupBox { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #D6D2D0, stop: 1 #AFACAB); "
                     " border: 1px solid gray; border-radius: 4px; }";
    QString ssNone = "QGroupBox { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #D6D5E0, stop: 1 #A7A6AF); "
                     " border: 1px solid gray; border-radius: 4px; }";

    /* now, calculate the absolute address including current universe (0 - 2048) */
    quint32 absoluteAddr = start | (m_currentUniverse << 9);

    /* Set the new page for this universe */
    m_universesPage.replace(m_currentUniverse, page);

    //qDebug() << "[slotUniversePageChanged] start: " << start << ", absoluteAddr: " << absoluteAddr;

    for (quint32 i = 0; i < m_channelsPerPage; i++)
    {
        ConsoleChannel* slider = m_universeSliders[i];
        if (slider != NULL)
        {
            m_universeGroup->layout()->removeWidget(slider);
            disconnect(slider, SIGNAL(valueChanged(quint32,quint32,uchar)),
                   this, SLOT(slotUniverseSliderValueChanged(quint32,quint32,uchar)));
            delete slider;
        }
        const Fixture* fx = m_doc->fixture(m_doc->fixtureForAddress(absoluteAddr + i));
        if (fx == NULL)
        {
            slider = new ConsoleChannel(this, m_doc, Fixture::invalidId(), start + i, false);
            slider->setStyleSheet(ssNone);
        }
        else
        {
            uint ch = (absoluteAddr + i) - fx->universeAddress();
            slider = new ConsoleChannel(this, m_doc, fx->id(), ch, false);
            if (fx->id() % 2 == 0)
                slider->setStyleSheet(ssOdd);
            else
                slider->setStyleSheet(ssEven);
        }

        if ((start + i) < 512)
        {
            slider->setEnabled(true);
            slider->setProperty(PROP_ADDRESS, absoluteAddr + i);
            slider->setLabel(QString::number(start + i + 1));
            //qDebug() << "Set slider value[" << (absoluteAddr + i) << "] = " << m_engine->value(absoluteAddr + i);
            slider->setValue(m_engine->value(absoluteAddr + i), false);
            connect(slider, SIGNAL(valueChanged(quint32,quint32,uchar)),
                    this, SLOT(slotUniverseSliderValueChanged(quint32,quint32,uchar)));
        }
        else
        {
            slider->setEnabled(false);
            slider->setProperty(PROP_ADDRESS, QVariant());
            slider->setValue(0);
            slider->setLabel("---");
            slider->setPalette(this->palette());
        }

        m_universeGroup->layout()->addWidget(slider);
        m_universeSliders[i] = slider;
    }
}