diff --git a/libobs/obs-module.c b/libobs/obs-module.c index 5a2eebe05..56ca80547 100644 --- a/libobs/obs-module.c +++ b/libobs/obs-module.c @@ -189,6 +189,20 @@ const char *obs_get_module_data_path(obs_module_t *module) return module ? module->data_path : NULL; } +obs_module_t *obs_get_module(const char *name) +{ + obs_module_t *module = obs->first_module; + while (module) { + if (strcmp(module->mod_name, name) == 0) { + return module; + } + + module = module->next; + } + + return NULL; +} + char *obs_find_module_file(obs_module_t *module, const char *file) { struct dstr output = {0}; diff --git a/libobs/obs.h b/libobs/obs.h index 5abe683dc..95eb9e025 100644 --- a/libobs/obs.h +++ b/libobs/obs.h @@ -420,6 +420,9 @@ EXPORT int obs_open_module(obs_module_t **module, const char *path, */ EXPORT bool obs_init_module(obs_module_t *module); +/** Returns a module based upon its name, or NULL if not found */ +EXPORT obs_module_t *obs_get_module(const char *name); + /** Logs loaded modules */ EXPORT void obs_log_loaded_modules(void);