Skip to content

Commit

Permalink
Check universe on bigdisplay dataReady!
Browse files Browse the repository at this point in the history
  • Loading branch information
marcusbirkin committed Jun 5, 2021
1 parent 438e2cf commit bde47cc
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 10 deletions.
24 changes: 16 additions & 8 deletions src/bigdisplay.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -104,35 +104,36 @@ void BigDisplay::displayLevel()

void BigDisplay::dataReady(int universe, quint16 address, QPointF data)
{
Q_UNUSED(universe);
quint8 level = data.y() > 0 ? data.y() : 0;

switch (ui->tabWidget->currentIndex())
{
case tabModes_bit8:
if (address == ui->spinBox_8->address())
if (address == ui->spinBox_8->address() && universe == ui->spinBox_8->universe())
m_level = level;

break;

case tabModes_bit16:
if (address == ui->spinBox_16_Coarse->address())
if (address == ui->spinBox_16_Coarse->address() && universe == ui->spinBox_16_Coarse->universe())
m_level = (m_level & 0x00FF) | (0xFF00 & (level << 8));

if (address == ui->spinBox_16_Fine->address())
if (address == ui->spinBox_16_Fine->address() && universe == ui->spinBox_16_Fine->universe())
m_level = (m_level & 0xFF00) | (0x00FF & level);

break;

case tabModes_rgb:
if (address == ui->spinBox_RGB_1->address())
if (address == ui->spinBox_RGB_1->address() && universe == ui->spinBox_RGB_1->universe())
m_level = (m_level & 0x00FFFFu) | (0xFF0000u & ((quint32)level << 16));

if (address == ui->spinBox_RGB_2->address())
if (address == ui->spinBox_RGB_2->address() && universe == ui->spinBox_RGB_2->universe())
m_level = (m_level & 0xFF00FFu) | (0x00FF00u & ((quint32)level << 8));

if (address == ui->spinBox_RGB_3->address())
if (address == ui->spinBox_RGB_3->address() && universe == ui->spinBox_RGB_3->universe())
m_level = (m_level & 0xFFFF00u) | (0x0000FFu & level);
break;

break;

default:
m_level = -1;
Expand All @@ -141,3 +142,10 @@ void BigDisplay::dataReady(int universe, quint16 address, QPointF data)

displayLevel();
}

void BigDisplay::on_tabWidget_currentChanged(int index)
{
Q_UNUSED(index);
m_level = 0;
displayLevel();
}
2 changes: 2 additions & 0 deletions src/bigdisplay.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ class BigDisplay : public QWidget
private slots:
void dataReady(int universe, quint16 address, QPointF data);

void on_tabWidget_currentChanged(int index);

private:
void displayLevel();

Expand Down
7 changes: 5 additions & 2 deletions src/widgets/monitorspinbox.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,13 @@ void monitorspinbox::setupListener(int universe) {
if (m_listener == Q_NULLPTR || m_listener->universe() != universe) {
m_listener = sACNManager::getInstance()->getListener(universe);

disconnect(m_listener.data(), Q_NULLPTR, this, Q_NULLPTR);

connect(
m_listener.data(), &sACNListener::dataReady,
this, [this](int address, QPointF data) {
emit dataReady(m_listener->universe(), address, data);
this, [this, universe](int address, QPointF data) {
if (m_listener->universe() == universe)
emit dataReady(universe, address, data);
}
);
}
Expand Down

0 comments on commit bde47cc

Please sign in to comment.