From 85df039c0f03e23a02249404253d5c12cdaaa220 Mon Sep 17 00:00:00 2001 From: Jojo-1000 <33495614+Jojo-1000@users.noreply.github.com> Date: Tue, 3 Dec 2019 20:32:51 +0100 Subject: [PATCH] Fix ParseDescription, now also works for different manufacturers. --- hueplusplus/Hue.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/hueplusplus/Hue.cpp b/hueplusplus/Hue.cpp index 9d260fb..6c0438e 100755 --- a/hueplusplus/Hue.cpp +++ b/hueplusplus/Hue.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -104,19 +105,16 @@ std::string HueFinder::NormalizeMac(std::string input) { std::string HueFinder::ParseDescription(const std::string & description) { - const char* manufacturer = "Royal Philips Electronics"; - const char* manURL = "http://www.philips.com"; const char* model = "Philips hue bridge"; const char* serialBegin = ""; const char* serialEnd = ""; - if (description.find(manufacturer) != std::string::npos && description.find(manURL) != std::string::npos - && description.find(model) != std::string::npos) { + if (description.find(model) != std::string::npos) { std::size_t begin = description.find(serialBegin); std::size_t end = description.find(serialEnd, begin); if (begin != std::string::npos && end != std::string::npos) { begin += std::strlen(serialBegin); if (begin < description.size()) { - std::string result = description.substr(begin, end); + std::string result = description.substr(begin, end - begin); return result; } } -- libgit2 0.21.4