Add support for inline scripts

* Script can be defined in the macro segment or loaded from a file
* Supports both LUA and Python
* Can be used for actions and conditions
* obs_script_create and obs_script_destroy are resolved at runtime
  (Let's hope the API remains stable)
This commit is contained in:
WarmUpTill
2025-06-01 11:58:11 +02:00
committed by WarmUpTill
parent 73b542a4db
commit daeb9275a3
12 changed files with 989 additions and 3 deletions

View File

@@ -0,0 +1,23 @@
#pragma once
#include <obs-data.h>
#include <string>
// Based on obs-scripting.h
struct obs_script;
typedef struct obs_script obs_script_t;
enum obs_script_lang {
OBS_SCRIPT_LANG_UNKNOWN,
OBS_SCRIPT_LANG_LUA,
OBS_SCRIPT_LANG_PYTHON
};
namespace advss {
obs_script_t *CreateOBSScript(const char *path, obs_data_t *settings);
void DestroyOBSScript(obs_script_t *script);
std::string GetLUACompatiblePath(const std::string &path);
} // namespace advss