From 74c2379ebaac07634badd5860ec5dc2bfb7c71d2 Mon Sep 17 00:00:00 2001 From: jp9000 Date: Fri, 23 Apr 2021 12:38:50 -0700 Subject: [PATCH] libobs: Add obs_data_get_last_json() Helper function to return the last generated json string for this object. --- docs/sphinx/reference-settings.rst | 13 +++++++++++++ libobs/obs-data.c | 5 +++++ libobs/obs-data.h | 1 + 3 files changed, 19 insertions(+) diff --git a/docs/sphinx/reference-settings.rst b/docs/sphinx/reference-settings.rst index edc9d04c6..821483d8e 100644 --- a/docs/sphinx/reference-settings.rst +++ b/docs/sphinx/reference-settings.rst @@ -67,6 +67,19 @@ General Functions .. function:: const char *obs_data_get_json(obs_data_t *data) + Generates a new json string. The string allocation is stored within + the data object itself, and does not need to be manually freed. + + :return: Json string for this object + +--------------------- + +.. function:: const char *obs_data_get_last_json(obs_data_t *data) + + Returns the last json string generated for this data object. Does not + generate a new string. Use :c:func:`obs_data_get_json()` to generate + a json string first. + :return: Json string for this object --------------------- diff --git a/libobs/obs-data.c b/libobs/obs-data.c index 35dce70a6..71c10d02c 100644 --- a/libobs/obs-data.c +++ b/libobs/obs-data.c @@ -742,6 +742,11 @@ const char *obs_data_get_json(obs_data_t *data) return data->json; } +const char *obs_data_get_last_json(obs_data_t *data) +{ + return data ? data->json : NULL; +} + bool obs_data_save_json(obs_data_t *data, const char *file) { const char *json = obs_data_get_json(data); diff --git a/libobs/obs-data.h b/libobs/obs-data.h index 20ea19d57..09a1f2764 100644 --- a/libobs/obs-data.h +++ b/libobs/obs-data.h @@ -70,6 +70,7 @@ EXPORT void obs_data_addref(obs_data_t *data); EXPORT void obs_data_release(obs_data_t *data); EXPORT const char *obs_data_get_json(obs_data_t *data); +EXPORT const char *obs_data_get_last_json(obs_data_t *data); EXPORT bool obs_data_save_json(obs_data_t *data, const char *file); EXPORT bool obs_data_save_json_safe(obs_data_t *data, const char *file, const char *temp_ext,