mirror of
https://github.com/Palakis/obs-websocket.git
synced 2024-08-30 18:12:16 +00:00
Fixes #35
This commit is contained in:
parent
68cf9af6a3
commit
afaaff298f
@ -36,9 +36,12 @@ WSRequestHandler::WSRequestHandler(QWebSocket *client) :
|
||||
messageMap["SetCurrentScene"] = WSRequestHandler::HandleSetCurrentScene;
|
||||
messageMap["GetCurrentScene"] = WSRequestHandler::HandleGetCurrentScene;
|
||||
messageMap["GetSceneList"] = WSRequestHandler::HandleGetSceneList;
|
||||
messageMap["SetSourceOrder"] = WSRequestHandler::ErrNotImplemented;
|
||||
messageMap["SetSourceRender"] = WSRequestHandler::HandleSetSourceRender;
|
||||
messageMap["SetSceneItemPositionAndSize"] = WSRequestHandler::ErrNotImplemented;
|
||||
|
||||
messageMap["SetSourceRender"] = WSRequestHandler::HandleSetSourceRender; // Retrocompat
|
||||
messageMap["SetSceneItemRender"] = WSRequestHandler::HandleSetSourceRender;
|
||||
messageMap["SetSceneItemPosition"] = WSRequestHandler::HandleSetSceneItemPosition;
|
||||
messageMap["SetSceneItemTransform"] = WSRequestHandler::HandleSetSceneItemTransform;
|
||||
|
||||
messageMap["GetStreamingStatus"] = WSRequestHandler::HandleGetStreamingStatus;
|
||||
messageMap["StartStopStreaming"] = WSRequestHandler::HandleStartStopStreaming;
|
||||
messageMap["StartStopRecording"] = WSRequestHandler::HandleStartStopRecording;
|
||||
@ -51,7 +54,6 @@ WSRequestHandler::WSRequestHandler(QWebSocket *client) :
|
||||
messageMap["GetVolume"] = WSRequestHandler::HandleGetVolume;
|
||||
messageMap["ToggleMute"] = WSRequestHandler::ToggleMute;
|
||||
messageMap["SetMute"] = WSRequestHandler::SetMute;
|
||||
messageMap["GetVolumes"] = WSRequestHandler::ErrNotImplemented;
|
||||
|
||||
authNotRequired.insert("GetVersion");
|
||||
authNotRequired.insert("GetAuthRequired");
|
||||
@ -464,7 +466,70 @@ void WSRequestHandler::SetMute(WSRequestHandler *owner)
|
||||
obs_source_release(item);
|
||||
}
|
||||
|
||||
void WSRequestHandler::HandleSetSceneItemPosition(WSRequestHandler *owner)
|
||||
{
|
||||
const char *item_name = obs_data_get_string(owner->_requestData, "item");
|
||||
if (!item_name)
|
||||
{
|
||||
owner->SendErrorResponse("invalid request parameters");
|
||||
}
|
||||
|
||||
vec2 item_position = {0};
|
||||
item_position.x = obs_data_get_double(owner->_requestData, "x");
|
||||
item_position.y = obs_data_get_double(owner->_requestData, "y");
|
||||
|
||||
obs_source_t* current_scene = obs_frontend_get_current_scene();
|
||||
obs_sceneitem_t *scene_item = Utils::GetSceneItemFromName(current_scene, item_name);
|
||||
|
||||
if (scene_item)
|
||||
{
|
||||
obs_sceneitem_set_pos(scene_item, &item_position);
|
||||
|
||||
obs_sceneitem_release(scene_item);
|
||||
owner->SendOKResponse();
|
||||
}
|
||||
else
|
||||
{
|
||||
owner->SendErrorResponse("specified scene item doesn't exist");
|
||||
}
|
||||
|
||||
obs_source_release(current_scene);
|
||||
}
|
||||
|
||||
void WSRequestHandler::HandleSetSceneItemTransform(WSRequestHandler *owner)
|
||||
{
|
||||
const char *item_name = obs_data_get_string(owner->_requestData, "item");
|
||||
if (!item_name)
|
||||
{
|
||||
owner->SendErrorResponse("invalid request parameters");
|
||||
}
|
||||
|
||||
vec2 scale;
|
||||
scale.x = obs_data_get_double(owner->_requestData, "x-scale");
|
||||
scale.y = obs_data_get_double(owner->_requestData, "y-scale");
|
||||
|
||||
float rotation = obs_data_get_double(owner->_requestData, "rotation");
|
||||
|
||||
obs_source_t* current_scene = obs_frontend_get_current_scene();
|
||||
obs_sceneitem_t *scene_item = Utils::GetSceneItemFromName(current_scene, item_name);
|
||||
|
||||
if (scene_item)
|
||||
{
|
||||
obs_sceneitem_set_scale(scene_item, &scale);
|
||||
obs_sceneitem_set_rot(scene_item, rotation);
|
||||
|
||||
obs_sceneitem_release(scene_item);
|
||||
owner->SendOKResponse();
|
||||
}
|
||||
else
|
||||
{
|
||||
owner->SendErrorResponse("specified scene item doesn't exist");
|
||||
}
|
||||
|
||||
obs_source_release(current_scene);
|
||||
}
|
||||
|
||||
void WSRequestHandler::ErrNotImplemented(WSRequestHandler *owner)
|
||||
{
|
||||
owner->SendErrorResponse("not implemented");
|
||||
}
|
||||
}
|
@ -53,8 +53,11 @@ class WSRequestHandler : public QObject
|
||||
static void HandleSetCurrentScene(WSRequestHandler *owner);
|
||||
static void HandleGetCurrentScene(WSRequestHandler *owner);
|
||||
static void HandleGetSceneList(WSRequestHandler *owner);
|
||||
static void HandleSetSourceRender(WSRequestHandler *owner);
|
||||
|
||||
static void HandleSetSourceRender(WSRequestHandler *owner);
|
||||
static void HandleSetSceneItemPosition(WSRequestHandler *owner);
|
||||
static void HandleSetSceneItemTransform(WSRequestHandler *owner);
|
||||
|
||||
static void HandleGetStreamingStatus(WSRequestHandler *owner);
|
||||
static void HandleStartStopStreaming(WSRequestHandler *owner);
|
||||
static void HandleStartStopRecording(WSRequestHandler *owner);
|
||||
|
Loading…
x
Reference in New Issue
Block a user