diff --git a/config/hyperion.config.json b/config/hyperion.config.json index e83f7e98..b6793e8a 100644 --- a/config/hyperion.config.json +++ b/config/hyperion.config.json @@ -33,7 +33,7 @@ "color" : { "hsv" : { - "saturationGain" : 1.5, + "saturationGain" : 1.2, "valueGain" : 1.5 }, "red" : diff --git a/libsrc/protoserver/ProtoClientConnection.cpp b/libsrc/protoserver/ProtoClientConnection.cpp index 0b5de81c..f7deb85d 100644 --- a/libsrc/protoserver/ProtoClientConnection.cpp +++ b/libsrc/protoserver/ProtoClientConnection.cpp @@ -8,6 +8,7 @@ #include // Qt includes +#include #include #include @@ -116,17 +117,13 @@ void ProtoClientConnection::handleMessage(const proto::HyperionRequest & message void ProtoClientConnection::handleColorCommand(const proto::ColorRequest &message) { - if (message.rgbcolor().size() != 3) - { - sendErrorReply("The rgbcolor field requires a length of 3"); - return; - } - // extract parameters int priority = message.priority(); int duration = message.has_duration() ? message.duration() : -1; - const std::string & rgbColor = message.rgbcolor(); - RgbColor color = {uint8_t(rgbColor[0]), uint8_t(rgbColor[1]), uint8_t(rgbColor[2])}; + RgbColor color; + color.red = qRed(message.rgbcolor()); + color.green = qGreen(message.rgbcolor()); + color.blue = qBlue(message.rgbcolor()); // set output _hyperion->setColor(priority, color, duration); diff --git a/libsrc/protoserver/message.proto b/libsrc/protoserver/message.proto index 7d5e231c..cd1f087c 100644 --- a/libsrc/protoserver/message.proto +++ b/libsrc/protoserver/message.proto @@ -23,8 +23,8 @@ message ColorRequest { // priority to use when setting the color required int32 priority = 1; - // 3-byte value containing the rgb color - required bytes rgbColor = 2; + // integer value containing the rgb color (0x00RRGGBB) + required int32 rgbColor = 2; // duration of the request (negative results in infinite) optional int32 duration = 3;