don't hardcode white to 0 but instead encode it in the QColor alpha channel

master
Michael Zanetti 2018-12-03 19:48:21 +01:00
parent cfb3e1415c
commit 651ce9a283
2 changed files with 4 additions and 2 deletions

View File

@ -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;

View File

@ -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<QColor>();
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);