Requests: More requests and code cleanup

(plus very slight performance improvement)
This commit is contained in:
tt2468
2021-09-03 12:52:50 -07:00
parent 25b3bd44ba
commit 96dcc49adb
6 changed files with 142 additions and 57 deletions

View File

@ -69,3 +69,90 @@ RequestResult RequestHandler::RemoveSceneItem(const Request& request)
return RequestResult::Success();
}
RequestResult RequestHandler::GetSceneItemEnabled(const Request& request)
{
RequestStatus::RequestStatus statusCode;
std::string comment;
OBSSceneItemAutoRelease sceneItem = request.ValidateSceneItem("sceneName", "sceneItemId", statusCode, comment);
if (!sceneItem)
return RequestResult::Error(statusCode, comment);
json responseData;
responseData["sceneItemEnabled"] = obs_sceneitem_visible(sceneItem);
return RequestResult::Success(responseData);
}
RequestResult RequestHandler::SetSceneItemEnabled(const Request& request)
{
RequestStatus::RequestStatus statusCode;
std::string comment;
OBSSceneItemAutoRelease sceneItem = request.ValidateSceneItem("sceneName", "sceneItemId", statusCode, comment);
if (!(sceneItem && request.ValidateBoolean("sceneItemEnabled", statusCode, comment)))
return RequestResult::Error(statusCode, comment);
bool sceneItemEnabled = request.RequestData["sceneItemEnabled"];
obs_sceneitem_set_visible(sceneItem, sceneItemEnabled);
return RequestResult::Success();
}
RequestResult RequestHandler::GetSceneItemLocked(const Request& request)
{
RequestStatus::RequestStatus statusCode;
std::string comment;
OBSSceneItemAutoRelease sceneItem = request.ValidateSceneItem("sceneName", "sceneItemId", statusCode, comment);
if (!sceneItem)
return RequestResult::Error(statusCode, comment);
json responseData;
responseData["sceneItemLocked"] = obs_sceneitem_locked(sceneItem);
return RequestResult::Success(responseData);
}
RequestResult RequestHandler::SetSceneItemLocked(const Request& request)
{
RequestStatus::RequestStatus statusCode;
std::string comment;
OBSSceneItemAutoRelease sceneItem = request.ValidateSceneItem("sceneName", "sceneItemId", statusCode, comment);
if (!(sceneItem && request.ValidateBoolean("sceneItemLocked", statusCode, comment)))
return RequestResult::Error(statusCode, comment);
bool sceneItemLocked = request.RequestData["sceneItemLocked"];
obs_sceneitem_set_locked(sceneItem, sceneItemLocked);
return RequestResult::Success();
}
RequestResult RequestHandler::GetSceneItemIndex(const Request& request)
{
RequestStatus::RequestStatus statusCode;
std::string comment;
OBSSceneItemAutoRelease sceneItem = request.ValidateSceneItem("sceneName", "sceneItemId", statusCode, comment);
if (!sceneItem)
return RequestResult::Error(statusCode, comment);
json responseData;
responseData["sceneItemIndex"] = obs_sceneitem_get_order_position(sceneItem);
return RequestResult::Success(responseData);
}
RequestResult RequestHandler::SetSceneItemIndex(const Request& request)
{
RequestStatus::RequestStatus statusCode;
std::string comment;
OBSSceneItemAutoRelease sceneItem = request.ValidateSceneItem("sceneName", "sceneItemId", statusCode, comment);
if (!(sceneItem && request.ValidateNumber("sceneItemIndex", statusCode, comment, 0, 8192)))
return RequestResult::Error(statusCode, comment);
int sceneItemIndex = request.RequestData["sceneItemIndex"];
obs_sceneitem_set_order_position(sceneItem, sceneItemIndex);
return RequestResult::Success();
}