From 90f730ca714fb53f47ee16be46fcb06bd98d53ed Mon Sep 17 00:00:00 2001 From: Michael Roitzsch Date: Sun, 27 Jun 2004 11:58:47 +0000 Subject: include the new goom version 2k4-dev15 everybody: test, test, test CVS patchset: 6756 CVS date: 2004/06/27 11:58:47 --- src/post/goom/goom_script.c | 107 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 src/post/goom/goom_script.c (limited to 'src/post/goom/goom_script.c') diff --git a/src/post/goom/goom_script.c b/src/post/goom/goom_script.c new file mode 100644 index 000000000..5645d583e --- /dev/null +++ b/src/post/goom/goom_script.c @@ -0,0 +1,107 @@ +#include "goom_script.h" +#include +#include +#include + +static PluginParameters *getBaseForVariable (PluginInfo *pluginInfo, const char *name) { + + int i; + if (name == NULL) { + printf("ERROR: No variable container name specified\n"); + return NULL; + } + + /* TODO: using an hashmap */ + for (i=0;inbParams;i++) { + if (!strcmp(name, pluginInfo->params[i].name)) { + return &(pluginInfo->params[i]); + } + } + + printf ("ERROR: No such variable container: %s\n", name); + return NULL; +} + +static PluginParam *getParamForVariable(PluginParameters *params, const char *name) { + + int i; + if (name == NULL) + return NULL; + + for (i=0;inbParams;i++) { + if (params->params[i] && (!strcmp(name, params->params[i]->name))) { + return params->params[i]; + } + } + printf ("ERROR: No such variable into %s: %s\n", params->name, name); + return NULL; +} + +PluginParam *goom_script_get_param(PluginInfo *pluginInfo, const char *name) { + + int i; + char *base; + char *var; + int len = strlen(name); + int hasDot = 0; + PluginParameters *pparams; + + if (name == NULL) + return NULL; + if (pluginInfo == NULL) { + printf("ERROR: programming %s on line %d\n", __FILE__, __LINE__); + return NULL; + } + + base = (char*)calloc(len+1,1); + var = (char*)calloc(len+1,1); + + for (i=0;iscanner, pluginInfo, cmds); + goom_script_scanner_execute(pluginInfo->scanner); +} + +/* set a script that will be executed every loop */ +void goom_set_main_script(PluginInfo *pluginInfo, const char *script) { + + pluginInfo->main_script_str = script; + goom_script_scanner_compile(pluginInfo->main_scanner, pluginInfo, script); +} + +void goom_execute_main_script(PluginInfo *pluginInfo) { + + goom_script_scanner_execute(pluginInfo->main_scanner); +} + +/* return a script containing the current goom state */ +char *goom_create_state_script(PluginInfo *pluginInfo) { + printf("not implemented\n"); + return NULL; +} + -- cgit v1.2.3