mirror of
https://github.com/Palakis/obs-websocket.git
synced 2024-08-30 18:12:16 +00:00
RpcEvent: streamTime and recordingTime are optional
This commit is contained in:
parent
c7b49b28c2
commit
a0dce77a2f
@ -6,7 +6,7 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
if (WIN32 OR APPLE)
|
||||
include(external/FindLibObs.cmake)
|
||||
|
@ -240,10 +240,17 @@ void WSEvents::FrontendEventHandler(enum obs_frontend_event event, void* private
|
||||
void WSEvents::broadcastUpdate(const char* updateType,
|
||||
obs_data_t* additionalFields = nullptr)
|
||||
{
|
||||
uint64_t streamTime = getStreamingTime();
|
||||
uint64_t recordingTime = getRecordingTime();
|
||||
RpcEvent event(QString(updateType), streamTime, recordingTime, additionalFields);
|
||||
std::optional<uint64_t> streamTime;
|
||||
if (obs_frontend_streaming_active()) {
|
||||
streamTime = std::make_optional(getStreamingTime());
|
||||
}
|
||||
|
||||
std::optional<uint64_t> recordingTime;
|
||||
if (obs_frontend_recording_active()) {
|
||||
recordingTime = std::make_optional(getRecordingTime());
|
||||
}
|
||||
|
||||
RpcEvent event(QString(updateType), streamTime, recordingTime, additionalFields);
|
||||
_srv->broadcast(event);
|
||||
}
|
||||
|
||||
|
@ -68,12 +68,12 @@ std::string OBSRemoteProtocol::encodeEvent(const RpcEvent& event)
|
||||
obs_data_set_string(eventData, "update-type", updateType.toUtf8().constData());
|
||||
|
||||
if (obs_frontend_streaming_active()) {
|
||||
QString streamingTimecode = Utils::nsToTimestamp(event.streamTime());
|
||||
QString streamingTimecode = Utils::nsToTimestamp(event.streamTime().value());
|
||||
obs_data_set_string(eventData, "stream-timecode", streamingTimecode.toUtf8().constData());
|
||||
}
|
||||
|
||||
if (obs_frontend_recording_active()) {
|
||||
QString recordingTimecode = Utils::nsToTimestamp(event.recordingTime());
|
||||
QString recordingTimecode = Utils::nsToTimestamp(event.recordingTime().value());
|
||||
obs_data_set_string(eventData, "rec-timecode", recordingTimecode.toUtf8().constData());
|
||||
}
|
||||
|
||||
|
@ -20,7 +20,7 @@ with this program. If not, see <https://www.gnu.org/licenses/>
|
||||
|
||||
RpcEvent::RpcEvent(
|
||||
const QString& updateType,
|
||||
uint64_t streamTime, uint64_t recordingTime,
|
||||
std::optional<uint64_t> streamTime, std::optional<uint64_t> recordingTime,
|
||||
obs_data_t* additionalFields
|
||||
) :
|
||||
_updateType(updateType),
|
||||
|
@ -18,6 +18,7 @@ with this program. If not, see <https://www.gnu.org/licenses/>
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <optional>
|
||||
#include <obs-data.h>
|
||||
#include <QtCore/QString>
|
||||
|
||||
@ -28,7 +29,7 @@ class RpcEvent
|
||||
public:
|
||||
explicit RpcEvent(
|
||||
const QString& updateType,
|
||||
uint64_t streamTime, uint64_t recordingTime,
|
||||
std::optional<uint64_t> streamTime, std::optional<uint64_t> recordingTime,
|
||||
obs_data_t* additionalFields = nullptr
|
||||
);
|
||||
|
||||
@ -37,12 +38,12 @@ public:
|
||||
return _updateType;
|
||||
}
|
||||
|
||||
const uint64_t streamTime() const
|
||||
const std::optional<uint64_t> streamTime() const
|
||||
{
|
||||
return _streamTime;
|
||||
}
|
||||
|
||||
const uint64_t recordingTime() const
|
||||
const std::optional<uint64_t> recordingTime() const
|
||||
{
|
||||
return _recordingTime;
|
||||
}
|
||||
@ -54,7 +55,7 @@ public:
|
||||
|
||||
private:
|
||||
QString _updateType;
|
||||
uint64_t _streamTime;
|
||||
uint64_t _recordingTime;
|
||||
std::optional<uint64_t> _streamTime;
|
||||
std::optional<uint64_t> _recordingTime;
|
||||
OBSDataAutoRelease _additionalFields;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user