151 lines
5.2 KiB
C++
151 lines
5.2 KiB
C++
/*******************************************************************************
|
|
Copyright © 2017 Philips Lighting Holding B.V.
|
|
All Rights Reserved.
|
|
********************************************************************************/
|
|
|
|
#include <huestream/config/HueConfig.h>
|
|
#include "FeedbackMessage.h"
|
|
|
|
namespace huestream {
|
|
namespace connectionflow {
|
|
|
|
FeedbackMessage::FeedbackMessage(RequestType reqType, Id id) :
|
|
_id(id), _requestType(reqType), _bridge(std::make_shared<Bridge>()) {
|
|
}
|
|
|
|
FeedbackMessage::FeedbackMessage(RequestType reqType, Id id, BridgePtr bridge) :
|
|
_id(id), _requestType(reqType), _bridge(bridge) {
|
|
}
|
|
|
|
FeedbackMessage::~FeedbackMessage() {
|
|
}
|
|
|
|
std::map<Id, FeedbackType> FeedbackMessage::idTypeMap = {
|
|
{PROCEDURE_STARTED, INFO},
|
|
{START_LOADING, INFO},
|
|
{FINISH_LOADING_NO_BRIDGE_CONFIGURED, INFO},
|
|
{FINISH_LOADING_BRIDGE_CONFIGURED, INFO},
|
|
{START_SEARCHING, INFO},
|
|
{FINISH_SEARCHING_NO_BRIDGES_FOUND, INFO},
|
|
{FINISH_SEARCH_BRIDGES_FOUND, INFO},
|
|
{START_AUTHORIZING, INFO},
|
|
{PRESS_PUSH_LINK, USER},
|
|
{FINISH_AUTHORIZING_AUTHORIZED, INFO},
|
|
{FINISH_AUTHORIZING_FAILED, INFO},
|
|
{START_RETRIEVING, INFO},
|
|
{FINISH_RETRIEVING_FAILED, INFO},
|
|
{FINISH_RETRIEVING_READY_TO_START, INFO},
|
|
{FINISH_RETRIEVING_ACTION_REQUIRED, INFO},
|
|
{START_SAVING, INFO},
|
|
{FINISH_SAVING_SAVED, INFO},
|
|
{FINISH_SAVING_FAILED, INFO},
|
|
{START_ACTIVATING, INFO},
|
|
{FINISH_ACTIVATING_ACTIVE, INFO},
|
|
{FINISH_ACTIVATING_FAILED, INFO},
|
|
{NO_BRIDGE_FOUND, USER},
|
|
{BRIDGE_NOT_FOUND, USER},
|
|
{INVALID_MODEL, USER},
|
|
{INVALID_VERSION, USER},
|
|
{NO_GROUP_AVAILABLE, USER},
|
|
{BUSY_STREAMING, USER},
|
|
{SELECT_GROUP, USER},
|
|
{DONE_NO_BRIDGE_FOUND, INFO},
|
|
{DONE_BRIDGE_FOUND, INFO},
|
|
{DONE_RESET, INFO},
|
|
{DONE_ACTION_REQUIRED, INFO},
|
|
{DONE_COMPLETED, INFO},
|
|
{DONE_ABORTED, INFO},
|
|
{PROCEDURE_FINISHED, INFO},
|
|
{INTERNAL_ERROR, USER}
|
|
};
|
|
|
|
std::map<Id, string> FeedbackMessage::idTagMap = {
|
|
{PROCEDURE_STARTED, "PROCEDURE_STARTED"},
|
|
{START_LOADING, "START_LOADING"},
|
|
{FINISH_LOADING_NO_BRIDGE_CONFIGURED, "FINISH_LOADING_NO_BRIDGE_CONFIGURED"},
|
|
{FINISH_LOADING_BRIDGE_CONFIGURED, "FINISH_LOADING_BRIDGE_CONFIGURED"},
|
|
{START_SEARCHING, "START_SEARCHING"},
|
|
{FINISH_SEARCHING_NO_BRIDGES_FOUND, "FINISH_SEARCHING_NO_BRIDGES_FOUND"},
|
|
{FINISH_SEARCH_BRIDGES_FOUND, "FINISH_SEARCH_BRIDGES_FOUND"},
|
|
{START_AUTHORIZING, "START_AUTHORIZING"},
|
|
{PRESS_PUSH_LINK, "PRESS_PUSH_LINK"},
|
|
{FINISH_AUTHORIZING_AUTHORIZED, "FINISH_AUTHORIZING_AUTHORIZED"},
|
|
{FINISH_AUTHORIZING_FAILED, "FINISH_AUTHORIZING_FAILED"},
|
|
{START_RETRIEVING, "START_RETRIEVING"},
|
|
{FINISH_RETRIEVING_FAILED, "FINISH_RETRIEVING_FAILED"},
|
|
{FINISH_RETRIEVING_READY_TO_START, "FINISH_RETRIEVING_READY_TO_START"},
|
|
{FINISH_RETRIEVING_ACTION_REQUIRED, "FINISH_RETRIEVING_ACTION_REQUIRED"},
|
|
{START_SAVING, "START_SAVING"},
|
|
{FINISH_SAVING_SAVED, "FINISH_SAVING_SAVED"},
|
|
{FINISH_SAVING_FAILED, "FINISH_SAVING_FAILED"},
|
|
{START_ACTIVATING, "START_ACTIVATING"},
|
|
{FINISH_ACTIVATING_ACTIVE, "FINISH_ACTIVATING_ACTIVE"},
|
|
{FINISH_ACTIVATING_FAILED, "FINISH_ACTIVATING_FAILED"},
|
|
{NO_BRIDGE_FOUND, "NO_BRIDGE_FOUND" },
|
|
{BRIDGE_NOT_FOUND, "BRIDGE_NOT_FOUND" },
|
|
{INVALID_MODEL, "INVALID_MODEL" },
|
|
{INVALID_VERSION, "INVALID_VERSION" },
|
|
{NO_GROUP_AVAILABLE, "NO_GROUP_AVAILABLE" },
|
|
{BUSY_STREAMING, "BRIDGE_BUSY"},
|
|
{SELECT_GROUP, "SELECT_GROUP"},
|
|
{DONE_NO_BRIDGE_FOUND, "DONE_NO_BRIDGE_FOUND"},
|
|
{DONE_BRIDGE_FOUND, "DONE_BRIDGE_FOUND"},
|
|
{DONE_RESET, "DONE_RESET"},
|
|
{DONE_ACTION_REQUIRED, "DONE_ACTION_REQUIRED"},
|
|
{DONE_COMPLETED, "DONE_COMPLETED"},
|
|
{DONE_ABORTED, "DONE_ABORTED"},
|
|
{PROCEDURE_FINISHED, "PROCEDURE_FINISHED"},
|
|
{INTERNAL_ERROR, "INTERNAL_ERROR"}
|
|
};
|
|
|
|
std::map<RequestType, string> FeedbackMessage::requestStringMap = {
|
|
{None, "None"},
|
|
{LoadBridge, "Load"},
|
|
{Connect, "Connect"},
|
|
{ConnectIp, "ConnectIp"},
|
|
{SetManualBridge, "SetManual"},
|
|
{Reset, "Reset"},
|
|
{Select, "Select"},
|
|
{Activate, "Activate"}
|
|
};
|
|
|
|
PROP_IMPL(FeedbackMessage, Id, id, Id);
|
|
PROP_IMPL(FeedbackMessage, RequestType, requestType, RequestType);
|
|
PROP_IMPL(FeedbackMessage, BridgePtr, bridge, Bridge);
|
|
|
|
|
|
FeedbackType FeedbackMessage::GetMessageType() const {
|
|
auto it = idTypeMap.find(_id);
|
|
if (it != idTypeMap.end())
|
|
return it->second;
|
|
return INFO;
|
|
}
|
|
|
|
string FeedbackMessage::GetTag() const {
|
|
auto it = idTagMap.find(_id);
|
|
if (it != idTagMap.end())
|
|
return it->second;
|
|
return "UNKOWN";
|
|
}
|
|
|
|
string FeedbackMessage::GetUserMessage() const {
|
|
string userMessage = HueConfig::GetInstance()->GetTranslator()->Translate(GetTag());
|
|
auto groupOwnerByOtherClient = _bridge->GetGroupOwnedByOtherClient();
|
|
if (_id == BUSY_STREAMING && groupOwnerByOtherClient != nullptr) {
|
|
userMessage = userMessage + ": " + groupOwnerByOtherClient->GetFriendlyOwnerName() + " (" + groupOwnerByOtherClient->GetName() + ").";
|
|
}
|
|
return userMessage;
|
|
}
|
|
|
|
string FeedbackMessage::GetDebugMessage() const {
|
|
auto requestString = string("Unknown");
|
|
auto it = requestStringMap.find(_requestType);
|
|
if (it != requestStringMap.end())
|
|
requestString = it->second;
|
|
|
|
return requestString + ": " + GetTag();
|
|
}
|
|
|
|
|
|
}
|
|
}
|