mirror of
https://github.com/Palakis/obs-websocket.git
synced 2024-08-30 18:12:16 +00:00
Requests: Add GetMediaInputState
This commit is contained in:
parent
7403264d42
commit
08eb2defbc
@ -108,6 +108,7 @@ set(obs-websocket_SOURCES
|
||||
src/requesthandler/RequestHandler_SceneItems.cpp
|
||||
src/requesthandler/RequestHandler_Stream.cpp
|
||||
src/requesthandler/RequestHandler_Record.cpp
|
||||
src/requesthandler/RequestHandler_MediaInputs.cpp
|
||||
src/requesthandler/rpc/Request.cpp
|
||||
src/requesthandler/rpc/RequestResult.cpp
|
||||
src/forms/SettingsDialog.cpp
|
||||
|
@ -97,6 +97,9 @@ const std::map<std::string, RequestMethodHandler> RequestHandler::_handlerMap
|
||||
{"PauseRecord", &RequestHandler::PauseRecord},
|
||||
{"ResumeRecord", &RequestHandler::ResumeRecord},
|
||||
//{"GetRecordDirectory", &RequestHandler::GetRecordDirectory},
|
||||
|
||||
// Media Inputs
|
||||
{"GetMediaInputStatus", &RequestHandler::GetMediaInputStatus},
|
||||
};
|
||||
|
||||
RequestHandler::RequestHandler(SessionPtr session) :
|
||||
|
@ -119,6 +119,9 @@ class RequestHandler {
|
||||
RequestResult ResumeRecord(const Request&);
|
||||
RequestResult GetRecordDirectory(const Request&);
|
||||
|
||||
// Media Inputs
|
||||
RequestResult GetMediaInputStatus(const Request&);
|
||||
|
||||
SessionPtr _session;
|
||||
static const std::map<std::string, RequestMethodHandler> _handlerMap;
|
||||
};
|
||||
|
21
src/requesthandler/RequestHandler_MediaInputs.cpp
Normal file
21
src/requesthandler/RequestHandler_MediaInputs.cpp
Normal file
@ -0,0 +1,21 @@
|
||||
#include "RequestHandler.h"
|
||||
|
||||
RequestResult RequestHandler::GetMediaInputStatus(const Request& request)
|
||||
{
|
||||
RequestStatus::RequestStatus statusCode;
|
||||
std::string comment;
|
||||
OBSSourceAutoRelease input = request.ValidateInput("inputName", statusCode, comment);
|
||||
if (!input)
|
||||
return RequestResult::Error(statusCode, comment);
|
||||
|
||||
json responseData;
|
||||
responseData["mediaState"] = Utils::Obs::StringHelper::GetMediaInputStateString(input);
|
||||
|
||||
auto mediaState = obs_source_media_get_state(input);
|
||||
if (mediaState == OBS_MEDIA_STATE_PLAYING || mediaState == OBS_MEDIA_STATE_PAUSED) {
|
||||
responseData["mediaDuration"] = obs_source_media_get_duration(input);
|
||||
responseData["mediaCursor"] = obs_source_media_get_time(input);
|
||||
}
|
||||
|
||||
return RequestResult::Success(responseData);
|
||||
}
|
Loading…
Reference in New Issue
Block a user