docs: Document the rest of the undocumented requests

This commit is contained in:
tt2468 2021-12-28 18:28:04 -08:00
parent ec79124b5f
commit 9385a2449e
2 changed files with 157 additions and 0 deletions

View File

@ -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;

View File

@ -19,6 +19,22 @@ with this program. If not, see <https://www.gnu.org/licenses/>
#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;