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_AUTOMOC ON)
|
||||||
set(CMAKE_AUTOUIC ON)
|
set(CMAKE_AUTOUIC ON)
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 11)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
if (WIN32 OR APPLE)
|
if (WIN32 OR APPLE)
|
||||||
include(external/FindLibObs.cmake)
|
include(external/FindLibObs.cmake)
|
||||||
|
@ -240,10 +240,17 @@ void WSEvents::FrontendEventHandler(enum obs_frontend_event event, void* private
|
|||||||
void WSEvents::broadcastUpdate(const char* updateType,
|
void WSEvents::broadcastUpdate(const char* updateType,
|
||||||
obs_data_t* additionalFields = nullptr)
|
obs_data_t* additionalFields = nullptr)
|
||||||
{
|
{
|
||||||
uint64_t streamTime = getStreamingTime();
|
std::optional<uint64_t> streamTime;
|
||||||
uint64_t recordingTime = getRecordingTime();
|
if (obs_frontend_streaming_active()) {
|
||||||
RpcEvent event(QString(updateType), streamTime, recordingTime, additionalFields);
|
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);
|
_srv->broadcast(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,12 +68,12 @@ std::string OBSRemoteProtocol::encodeEvent(const RpcEvent& event)
|
|||||||
obs_data_set_string(eventData, "update-type", updateType.toUtf8().constData());
|
obs_data_set_string(eventData, "update-type", updateType.toUtf8().constData());
|
||||||
|
|
||||||
if (obs_frontend_streaming_active()) {
|
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());
|
obs_data_set_string(eventData, "stream-timecode", streamingTimecode.toUtf8().constData());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (obs_frontend_recording_active()) {
|
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());
|
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(
|
RpcEvent::RpcEvent(
|
||||||
const QString& updateType,
|
const QString& updateType,
|
||||||
uint64_t streamTime, uint64_t recordingTime,
|
std::optional<uint64_t> streamTime, std::optional<uint64_t> recordingTime,
|
||||||
obs_data_t* additionalFields
|
obs_data_t* additionalFields
|
||||||
) :
|
) :
|
||||||
_updateType(updateType),
|
_updateType(updateType),
|
||||||
|
@ -18,6 +18,7 @@ with this program. If not, see <https://www.gnu.org/licenses/>
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <optional>
|
||||||
#include <obs-data.h>
|
#include <obs-data.h>
|
||||||
#include <QtCore/QString>
|
#include <QtCore/QString>
|
||||||
|
|
||||||
@ -28,7 +29,7 @@ class RpcEvent
|
|||||||
public:
|
public:
|
||||||
explicit RpcEvent(
|
explicit RpcEvent(
|
||||||
const QString& updateType,
|
const QString& updateType,
|
||||||
uint64_t streamTime, uint64_t recordingTime,
|
std::optional<uint64_t> streamTime, std::optional<uint64_t> recordingTime,
|
||||||
obs_data_t* additionalFields = nullptr
|
obs_data_t* additionalFields = nullptr
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -37,12 +38,12 @@ public:
|
|||||||
return _updateType;
|
return _updateType;
|
||||||
}
|
}
|
||||||
|
|
||||||
const uint64_t streamTime() const
|
const std::optional<uint64_t> streamTime() const
|
||||||
{
|
{
|
||||||
return _streamTime;
|
return _streamTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
const uint64_t recordingTime() const
|
const std::optional<uint64_t> recordingTime() const
|
||||||
{
|
{
|
||||||
return _recordingTime;
|
return _recordingTime;
|
||||||
}
|
}
|
||||||
@ -54,7 +55,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
QString _updateType;
|
QString _updateType;
|
||||||
uint64_t _streamTime;
|
std::optional<uint64_t> _streamTime;
|
||||||
uint64_t _recordingTime;
|
std::optional<uint64_t> _recordingTime;
|
||||||
OBSDataAutoRelease _additionalFields;
|
OBSDataAutoRelease _additionalFields;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user