Webui: view led configuration + lights (#223)

* make hyperion websocket api event based

* implement new websocket handling for generalconf

* migrate all webui stuff to new event based websocket api
some cleanup ... now all html templates are in content
refactoring of web stuff

* add hyperionport to global
start impl. removing advanced key

* separate dashboard
serverinfo is updated every 3 seconds automatily
add input selection
cleanup and remove not needed stuff

* prepare infrastructure for server sided file execution

* webui minor fixes

* fix compile

* implement led layout view with live colors

* live led vies

* fix general conf
unrigister ledcolors request, when not on leds.html

* fix compiler warning

* prepare realtime ledview and enhance ui
This commit is contained in:
redPanther
2016-09-05 17:26:29 +02:00
committed by GitHub
parent b99e75d7e4
commit bbffa078fd
14 changed files with 292 additions and 52 deletions

View File

@@ -273,6 +273,8 @@ void JsonClientConnection::handleMessage(const std::string &messageString)
handleConfigCommand(message, command, tan);
else if (command == "componentstate")
handleComponentStateCommand(message, command, tan);
else if (command == "ledcolors")
handleLedColorsCommand(message, command, tan);
else
handleNotImplemented();
}
@@ -975,6 +977,31 @@ void JsonClientConnection::handleComponentStateCommand(const Json::Value& messag
}
}
void JsonClientConnection::handleLedColorsCommand(const Json::Value&, const std::string &command, const int tan)
{
// create result
Json::Value result;
result["success"] = true;
result["command"] = command;
result["tan"] = tan;
Json::Value & leds = result["result"] = Json::Value(Json::arrayValue);
const PriorityMuxer::InputInfo & priorityInfo = _hyperion->getPriorityInfo(_hyperion->getCurrentPriority());
std::vector<ColorRgb> ledBuffer = priorityInfo.ledColors;
for (ColorRgb& color : ledBuffer)
{
int idx = leds.size();
Json::Value & item = leds[idx];
item["index"] = idx;
item["red"] = color.red;
item["green"] = color.green;
item["blue"] = color.blue;
}
// send the result
sendMessage(result);
}
void JsonClientConnection::handleNotImplemented()
{
sendErrorReply("Command not implemented");