mirror of
https://github.com/Palakis/obs-websocket.git
synced 2024-08-30 18:12:16 +00:00
Create new category and add MediaPlayPause
request
This commit is contained in:
parent
b1df0dca97
commit
1c6670c9b0
@ -35,6 +35,7 @@ set(obs-websocket_SOURCES
|
|||||||
src/WSRequestHandler_StudioMode.cpp
|
src/WSRequestHandler_StudioMode.cpp
|
||||||
src/WSRequestHandler_Transitions.cpp
|
src/WSRequestHandler_Transitions.cpp
|
||||||
src/WSRequestHandler_Outputs.cpp
|
src/WSRequestHandler_Outputs.cpp
|
||||||
|
src/WSRequestHandler_MediaControl.cpp
|
||||||
src/WSEvents.cpp
|
src/WSEvents.cpp
|
||||||
src/Config.cpp
|
src/Config.cpp
|
||||||
src/Utils.cpp
|
src/Utils.cpp
|
||||||
|
@ -143,7 +143,10 @@ const QHash<QString, RpcMethodHandler> WSRequestHandler::messageMap {
|
|||||||
{ "ListOutputs", &WSRequestHandler::ListOutputs },
|
{ "ListOutputs", &WSRequestHandler::ListOutputs },
|
||||||
{ "GetOutputInfo", &WSRequestHandler::GetOutputInfo },
|
{ "GetOutputInfo", &WSRequestHandler::GetOutputInfo },
|
||||||
{ "StartOutput", &WSRequestHandler::StartOutput },
|
{ "StartOutput", &WSRequestHandler::StartOutput },
|
||||||
{ "StopOutput", &WSRequestHandler::StopOutput }
|
{ "StopOutput", &WSRequestHandler::StopOutput },
|
||||||
|
|
||||||
|
{ "MediaPlayPause", &WSRequestHandler::MediaPlayPause }
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const QSet<QString> WSRequestHandler::authNotRequired {
|
const QSet<QString> WSRequestHandler::authNotRequired {
|
||||||
|
@ -162,4 +162,6 @@ class WSRequestHandler {
|
|||||||
RpcResponse GetOutputInfo(const RpcRequest&);
|
RpcResponse GetOutputInfo(const RpcRequest&);
|
||||||
RpcResponse StartOutput(const RpcRequest&);
|
RpcResponse StartOutput(const RpcRequest&);
|
||||||
RpcResponse StopOutput(const RpcRequest&);
|
RpcResponse StopOutput(const RpcRequest&);
|
||||||
|
|
||||||
|
RpcResponse MediaPlayPause(const RpcRequest&);
|
||||||
};
|
};
|
||||||
|
35
src/WSRequestHandler_MediaControl.cpp
Normal file
35
src/WSRequestHandler_MediaControl.cpp
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
#include "Utils.h"
|
||||||
|
|
||||||
|
#include "WSRequestHandler.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pause or play a media source. Supports ffmpeg and vlc media sources (as of OBS v25.0.8)
|
||||||
|
*
|
||||||
|
* @param {String} `sourceName` Source name.
|
||||||
|
* @param {boolean} `playPause` Whether to pause or play the source. `false` for play, `true` for pause.
|
||||||
|
*
|
||||||
|
* @api requests
|
||||||
|
* @name MediaPlayPause
|
||||||
|
* @category media control
|
||||||
|
* @since 4.8.0
|
||||||
|
*/
|
||||||
|
RpcResponse WSRequestHandler::MediaPlayPause(const RpcRequest& request) {
|
||||||
|
if ((!request.hasField("sourceName")) || (!request.hasField("playPause"))) {
|
||||||
|
return request.failed("missing request parameters");
|
||||||
|
}
|
||||||
|
|
||||||
|
QString sourceName = obs_data_get_string(request.parameters(), "sourceName");
|
||||||
|
bool playPause = obs_data_get_bool(request.parameters(), "playPause");
|
||||||
|
if (sourceName.isEmpty()) {
|
||||||
|
return request.failed("invalid request parameters");
|
||||||
|
}
|
||||||
|
|
||||||
|
OBSSourceAutoRelease source = obs_get_source_by_name(sourceName.toUtf8());
|
||||||
|
if (!source) {
|
||||||
|
return request.failed("specified source doesn't exist");
|
||||||
|
}
|
||||||
|
|
||||||
|
obs_source_media_play_pause(source, playPause);
|
||||||
|
return request.success();
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user