Пример #1
0
bool Doc::addFixture(Fixture* fixture, quint32 id)
{
    Q_ASSERT(fixture != NULL);

    // No ID given, this method can assign one
    if (id == Fixture::invalidId())
        id = createFixtureId();

    if (m_fixtures.contains(id) == true || id == Fixture::invalidId())
    {
        qWarning() << Q_FUNC_INFO << "a fixture with ID" << id << "already exists!";
        return false;
    }
    else
    {
        fixture->setID(id);
        m_fixtures[id] = fixture;

        /* Patch fixture change signals thru Doc */
        connect(fixture, SIGNAL(changed(quint32)),
                this, SLOT(slotFixtureChanged(quint32)));

        /* Keep track of fixture addresses */
        for (uint i = fixture->universeAddress();
             i < fixture->universeAddress() + fixture->channels(); i++)
        {
            m_addresses[i] = id;
        }

        emit fixtureAdded(id);
        setModified();

        return true;
    }
}
Пример #2
0
bool Doc::addFixture(Fixture* fixture, quint32 id)
{
    Q_ASSERT(fixture != NULL);

    // No ID given, this method can assign one
    if (id == Fixture::invalidId())
        id = createFixtureId();

    if (m_fixtures.contains(id) == true || id == Fixture::invalidId())
    {
        qWarning() << Q_FUNC_INFO << "a fixture with ID" << id << "already exists!";
        return false;
    }
    else
    {
        fixture->setID(id);
        m_fixtures.insert(id, fixture);

        /* Patch fixture change signals thru Doc */
        connect(fixture, SIGNAL(changed(quint32)),
                this, SLOT(slotFixtureChanged(quint32)));

        /* Keep track of fixture addresses */
        for (uint i = fixture->universeAddress();
             i < fixture->universeAddress() + fixture->channels(); i++)
        {
            m_addresses[i] = id;
        }

        // Add the fixture channels capabilities to the universe they belong
        QList<Universe *> universes = inputOutputMap()->claimUniverses();
        int uni = fixture->universe();

        // TODO !!! if a universe for this fixture doesn't exist, add it !!!
        QList<int> forcedHTP = fixture->forcedHTPChannels();
        QList<int> forcedLTP = fixture->forcedLTPChannels();

        for (quint32 i = 0 ; i < fixture->channels(); i++)
        {
            const QLCChannel* channel(fixture->channel(i));
            if (forcedHTP.contains(i))
                universes.at(uni)->setChannelCapability(fixture->address() + i,
                                                        channel->group(), Universe::HTP);
            else if (forcedLTP.contains(i))
                universes.at(uni)->setChannelCapability(fixture->address() + i,
                                                        channel->group(), Universe::LTP);
            else
                universes.at(uni)->setChannelCapability(fixture->address() + i,
                                                        channel->group());
            ChannelModifier *mod = fixture->channelModifier(i);
            universes.at(uni)->setChannelModifier(fixture->address() + i, mod);
        }
        inputOutputMap()->releaseUniverses(true);

        emit fixtureAdded(id);
        setModified();

        return true;
    }
}
Пример #3
0
int Doc_Test::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QObject::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: initTestCase(); break;
        case 1: defaults(); break;
        case 2: createFixtureId(); break;
        case 3: addFixture(); break;
        case 4: deleteFixture(); break;
        case 5: fixture(); break;
        case 6: totalPowerConsumption(); break;
        case 7: addFunction(); break;
        case 8: deleteFunction(); break;
        case 9: function(); break;
        case 10: load(); break;
        case 11: loadWrongRoot(); break;
        case 12: save(); break;
        default: ;
        }
        _id -= 13;
    }
    return _id;
}