mirror of
https://github.com/Palakis/obs-websocket.git
synced 2024-08-30 18:12:16 +00:00
Add Code for BroadcastWebSocketMessage
This commit is contained in:
parent
b4857e2c79
commit
76d8b688fd
@ -49,6 +49,9 @@ public:
|
||||
const char* GetRecordingTimecode();
|
||||
obs_data_t* GetStats();
|
||||
|
||||
void broadcastUpdate(const char* updateType,
|
||||
obs_data_t* additionalFields);
|
||||
|
||||
bool HeartbeatIsActive;
|
||||
|
||||
private slots:
|
||||
@ -70,9 +73,6 @@ private:
|
||||
uint64_t _lastBytesSent;
|
||||
uint64_t _lastBytesSentTime;
|
||||
|
||||
void broadcastUpdate(const char* updateType,
|
||||
obs_data_t* additionalFields);
|
||||
|
||||
void OnSceneChange();
|
||||
void OnSceneListChange();
|
||||
void OnSceneCollectionChange();
|
||||
|
@ -36,6 +36,8 @@ QHash<QString, HandlerResponse(*)(WSRequestHandler*)> WSRequestHandler::messageM
|
||||
{ "SetFilenameFormatting", WSRequestHandler::HandleSetFilenameFormatting },
|
||||
{ "GetFilenameFormatting", WSRequestHandler::HandleGetFilenameFormatting },
|
||||
|
||||
{ "BroadcastWebSocketMessage", WSRequestHandler::HandleBroadcastWebSocketMessage },
|
||||
|
||||
{ "SetCurrentScene", WSRequestHandler::HandleSetCurrentScene },
|
||||
{ "GetCurrentScene", WSRequestHandler::HandleGetCurrentScene },
|
||||
{ "GetSceneList", WSRequestHandler::HandleGetSceneList },
|
||||
|
@ -74,6 +74,8 @@ class WSRequestHandler : public QObject {
|
||||
static HandlerResponse HandleSetFilenameFormatting(WSRequestHandler* req);
|
||||
static HandlerResponse HandleGetFilenameFormatting(WSRequestHandler* req);
|
||||
|
||||
static HandlerResponse HandleBroadcastWebSocketMessage(WSRequestHandler* req);
|
||||
|
||||
static HandlerResponse HandleSetCurrentScene(WSRequestHandler* req);
|
||||
static HandlerResponse HandleGetCurrentScene(WSRequestHandler* req);
|
||||
static HandlerResponse HandleGetSceneList(WSRequestHandler* req);
|
||||
|
@ -231,6 +231,45 @@ HandlerResponse WSRequestHandler::HandleGetStats(WSRequestHandler* req) {
|
||||
return req->SendOKResponse(response);
|
||||
}
|
||||
|
||||
/**
|
||||
* Broadcast some Data (String) to all connected Websocket-Clients
|
||||
*
|
||||
* @param {String} `realm` Some Identifier to be choosen by the client
|
||||
* @param {String} `data` User-defined data String
|
||||
*
|
||||
* @api requests
|
||||
* @name Authenticate
|
||||
* @category general
|
||||
* @since 0.3
|
||||
*/
|
||||
HandlerResponse WSRequestHandler::HandleBroadcastWebSocketMessage(WSRequestHandler* req) {
|
||||
if (!req->hasField("realm") || !req->hasField("data")) {
|
||||
return req->SendErrorResponse("missing request parameters");
|
||||
}
|
||||
|
||||
QString realm = obs_data_get_string(req->data, "realm");
|
||||
QString data = obs_data_get_string(req->data, "data");
|
||||
|
||||
if (realm.isEmpty()) {
|
||||
return req->SendErrorResponse("realm not specified!");
|
||||
}
|
||||
|
||||
if (data.isEmpty()) {
|
||||
return req->SendErrorResponse("data not specified!");
|
||||
}
|
||||
|
||||
auto events = GetEventsSystem();
|
||||
|
||||
OBSDataAutoRelease broadcastData = obs_data_create();
|
||||
obs_data_set_string(broadcastData, "realm", realm.toUtf8().constData());
|
||||
obs_data_set_string(broadcastData, "data", data.toUtf8().constData());
|
||||
|
||||
events->broadcastUpdate("BroadcastWebSocketMessage", broadcastData);
|
||||
|
||||
return req->SendOKResponse();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get basic OBS video information
|
||||
*
|
||||
|
Loading…
x
Reference in New Issue
Block a user