diff --git a/elgato/aveabulb.cpp b/elgato/aveabulb.cpp index a39bba7b..ed1b0369 100644 --- a/elgato/aveabulb.cpp +++ b/elgato/aveabulb.cpp @@ -106,7 +106,7 @@ bool AveaBulb::setColor(const QColor &color) m_red = scaleColorValueUp(color.red()); m_green = scaleColorValueUp(color.green()); m_blue = scaleColorValueUp(color.blue()); - m_white = 0; + m_white = scaleColorValueUp(color.alpha()); m_color = color; diff --git a/elgato/devicepluginelgato.cpp b/elgato/devicepluginelgato.cpp index 559a0903..cdbaf2f6 100644 --- a/elgato/devicepluginelgato.cpp +++ b/elgato/devicepluginelgato.cpp @@ -493,6 +493,7 @@ DeviceManager::DeviceError DevicePluginElgato::executeAction(Device *device, con return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == aveaColorActionTypeId) { QColor color = action.param(aveaColorActionColorParamTypeId).value().value(); + color.setAlpha(0); // Alpha is white if (!bulb->setColor(color)) return DeviceManager::DeviceErrorHardwareNotAvailable; @@ -513,7 +514,8 @@ DeviceManager::DeviceError DevicePluginElgato::executeAction(Device *device, con color.setRed(red); color.setGreen(0); color.setBlue(blue); - if (!bulb->setWhite(4095) || !bulb->setColor(color)) { + color.setAlpha(255); // Alpha is white + if (!bulb->setColor(color)) { return DeviceManager::DeviceErrorHardwareNotAvailable; } device->setStateValue(aveaColorStateTypeId, color);