diff --git a/libobs/obs-data.c b/libobs/obs-data.c index 94d278140..5f01df243 100644 --- a/libobs/obs-data.c +++ b/libobs/obs-data.c @@ -18,6 +18,7 @@ #include "util/bmem.h" #include "util/threading.h" #include "util/darray.h" +#include "util/platform.h" #include "graphics/vec2.h" #include "graphics/vec3.h" #include "graphics/vec4.h" @@ -639,6 +640,19 @@ obs_data_t *obs_data_create_from_json(const char *json_string) return data; } +obs_data_t *obs_data_create_from_json_file(const char *json_file) +{ + char *file_data = os_quick_read_utf8_file(json_file); + obs_data_t *data = NULL; + + if (file_data) { + data = obs_data_create_from_json(file_data); + bfree(file_data); + } + + return data; +} + void obs_data_addref(obs_data_t *data) { if (data) diff --git a/libobs/obs-data.h b/libobs/obs-data.h index cf9265cb1..cad13d2fc 100644 --- a/libobs/obs-data.h +++ b/libobs/obs-data.h @@ -62,6 +62,7 @@ enum obs_data_number_type { EXPORT obs_data_t *obs_data_create(); EXPORT obs_data_t *obs_data_create_from_json(const char *json_string); +EXPORT obs_data_t *obs_data_create_from_json_file(const char *json_file); EXPORT void obs_data_addref(obs_data_t *data); EXPORT void obs_data_release(obs_data_t *data);