diff --git a/src/requesthandler/RequestHandler_MediaInputs.cpp b/src/requesthandler/RequestHandler_MediaInputs.cpp index e651ddf7..8df95162 100644 --- a/src/requesthandler/RequestHandler_MediaInputs.cpp +++ b/src/requesthandler/RequestHandler_MediaInputs.cpp @@ -25,6 +25,32 @@ bool IsMediaTimeValid(obs_source_t *input) return mediaState == OBS_MEDIA_STATE_PLAYING || mediaState == OBS_MEDIA_STATE_PAUSED; } +/** + * Gets the status of a media input. + * + * Media States: + * - `OBS_MEDIA_STATE_NONE` + * - `OBS_MEDIA_STATE_PLAYING` + * - `OBS_MEDIA_STATE_OPENING` + * - `OBS_MEDIA_STATE_BUFFERING` + * - `OBS_MEDIA_STATE_PAUSED` + * - `OBS_MEDIA_STATE_STOPPED` + * - `OBS_MEDIA_STATE_ENDED` + * - `OBS_MEDIA_STATE_ERROR` + * + * @requestField inputName | String | Name of the media input + * + * @responseField mediaState | String | State of the media input + * @responseField mediaDuration | Number | Total duration of the playing media in milliseconds. `null` if not playing + * @responseField mediaCursor | Number | Position of the cursor in milliseconds. `null` if not playing + * + * @requestType GetMediaInputStatus + * @complexity 2 + * @rpcVersion -1 + * @initialVersion 5.0.0 + * @api requests + * @category media inputs + */ RequestResult RequestHandler::GetMediaInputStatus(const Request& request) { RequestStatus::RequestStatus statusCode; @@ -47,6 +73,21 @@ RequestResult RequestHandler::GetMediaInputStatus(const Request& request) return RequestResult::Success(responseData); } +/** + * Sets the cursor position of a media input. + * + * This request does not perform bounds checking of the cursor position. + * + * @requestField inputName | String | Name of the media input + * @requestField mediaCursor | Number | New cursor position to set | >= 0 + * + * @requestType SetMediaInputCursor + * @complexity 2 + * @rpcVersion -1 + * @initialVersion 5.0.0 + * @api requests + * @category media inputs + */ RequestResult RequestHandler::SetMediaInputCursor(const Request& request) { RequestStatus::RequestStatus statusCode; @@ -66,6 +107,21 @@ RequestResult RequestHandler::SetMediaInputCursor(const Request& request) return RequestResult::Success(); } +/** + * Offsets the current cursor position of a media input by the specified value. + * + * This request does not perform bounds checking of the cursor position. + * + * @requestField inputName | String | Name of the media input + * @requestField mediaCursorOffset | Number | Value to offset the current cursor position by | None + * + * @requestType OffsetMediaInputCursor + * @complexity 2 + * @rpcVersion -1 + * @initialVersion 5.0.0 + * @api requests + * @category media inputs + */ RequestResult RequestHandler::OffsetMediaInputCursor(const Request& request) { RequestStatus::RequestStatus statusCode; @@ -88,6 +144,19 @@ RequestResult RequestHandler::OffsetMediaInputCursor(const Request& request) return RequestResult::Success(); } +/** + * Triggers an action on a media input. + * + * @requestField inputName | String | Name of the media input + * @requestField mediaAction | String | Identifier of the `ObsMediaInputAction` enum + * + * @requestType TriggerMediaInputAction + * @complexity 2 + * @rpcVersion -1 + * @initialVersion 5.0.0 + * @api requests + * @category media inputs + */ RequestResult RequestHandler::TriggerMediaInputAction(const Request& request) { RequestStatus::RequestStatus statusCode; diff --git a/src/requesthandler/RequestHandler_Record.cpp b/src/requesthandler/RequestHandler_Record.cpp index e18071c8..c6e2e21a 100644 --- a/src/requesthandler/RequestHandler_Record.cpp +++ b/src/requesthandler/RequestHandler_Record.cpp @@ -19,6 +19,22 @@ with this program. If not, see #include "RequestHandler.h" +/** + * Gets the status of the record output. + * + * @responseField outputActive | Boolean | Whether the output is active + * @responseField ouputPaused | Boolean | Whether the output is paused + * @responseField outputTimecode | String | Current formatted timecode string for the output + * @responseField outputDuration | Number | Current duration in milliseconds for the output + * @responseField outputBytes | Number | Number of bytes sent by the output + * + * @requestType GetRecordStatus + * @complexity 2 + * @rpcVersion -1 + * @initialVersion 5.0.0 + * @api requests + * @category record + */ RequestResult RequestHandler::GetRecordStatus(const Request&) { OBSOutputAutoRelease recordOutput = obs_frontend_get_recording_output(); @@ -35,6 +51,16 @@ RequestResult RequestHandler::GetRecordStatus(const Request&) return RequestResult::Success(responseData); } +/** + * Toggles the status of the record output. + * + * @requestType ToggleRecord + * @complexity 1 + * @rpcVersion -1 + * @initialVersion 5.0.0 + * @api requests + * @category record + */ RequestResult RequestHandler::ToggleRecord(const Request&) { json responseData; @@ -49,6 +75,16 @@ RequestResult RequestHandler::ToggleRecord(const Request&) return RequestResult::Success(responseData); } +/** + * Starts the record output. + * + * @requestType StartRecord + * @complexity 1 + * @rpcVersion -1 + * @initialVersion 5.0.0 + * @api requests + * @category record + */ RequestResult RequestHandler::StartRecord(const Request&) { if (obs_frontend_recording_active()) @@ -60,6 +96,16 @@ RequestResult RequestHandler::StartRecord(const Request&) return RequestResult::Success(); } +/** + * Stops the record output. + * + * @requestType StopRecord + * @complexity 1 + * @rpcVersion -1 + * @initialVersion 5.0.0 + * @api requests + * @category record + */ RequestResult RequestHandler::StopRecord(const Request&) { if (!obs_frontend_recording_active()) @@ -71,6 +117,16 @@ RequestResult RequestHandler::StopRecord(const Request&) return RequestResult::Success(); } +/** + * Toggles pause on the record output. + * + * @requestType ToggleRecordPause + * @complexity 1 + * @rpcVersion -1 + * @initialVersion 5.0.0 + * @api requests + * @category record + */ RequestResult RequestHandler::ToggleRecordPause(const Request&) { json responseData; @@ -85,6 +141,16 @@ RequestResult RequestHandler::ToggleRecordPause(const Request&) return RequestResult::Success(responseData); } +/** + * Pauses the record output. + * + * @requestType PauseRecord + * @complexity 1 + * @rpcVersion -1 + * @initialVersion 5.0.0 + * @api requests + * @category record + */ RequestResult RequestHandler::PauseRecord(const Request&) { if (obs_frontend_recording_paused()) @@ -96,6 +162,16 @@ RequestResult RequestHandler::PauseRecord(const Request&) return RequestResult::Success(); } +/** + * Resumes the record output. + * + * @requestType ResumeRecord + * @complexity 1 + * @rpcVersion -1 + * @initialVersion 5.0.0 + * @api requests + * @category record + */ RequestResult RequestHandler::ResumeRecord(const Request&) { if (!obs_frontend_recording_paused()) @@ -107,6 +183,18 @@ RequestResult RequestHandler::ResumeRecord(const Request&) return RequestResult::Success(); } +/** + * Gets the current directory that the record output is set to. + * + * @responseField recordDirectory | String | Output directory + * + * @requestType GetRecordDirectory + * @complexity 1 + * @rpcVersion -1 + * @initialVersion 5.0.0 + * @api requests + * @category record + */ RequestResult RequestHandler::GetRecordDirectory(const Request&) { json responseData;