PageRenderTime 19ms CodeModel.GetById 8ms app.highlight 7ms RepoModel.GetById 1ms app.codeStats 0ms

/xbmc/visualizations/Goom/goom2k4-0/src/goomsl.h

http://github.com/xbmc/xbmc
C++ Header | 34 lines | 24 code | 10 blank | 0 comment | 0 complexity | 6386f23ebdaccc286067d226bc89ab71 MD5 | raw file
 1#ifndef _GOOMSL_H
 2#define _GOOMSL_H
 3
 4#include "goomsl_hash.h"
 5
 6typedef struct _GoomSL GoomSL;
 7typedef void (*GoomSL_ExternalFunction)(GoomSL *gsl, GoomHash *global_vars, GoomHash *local_vars);
 8
 9GoomSL*gsl_new(void);
10void   gsl_free(GoomSL *gss);
11
12char *gsl_init_buffer(const char *file_name);
13void  gsl_append_file_to_buffer(const char *file_name, char **buffer);
14
15void   gsl_compile (GoomSL *scanner, const char *script);
16void   gsl_execute (GoomSL *scanner);
17int    gsl_is_compiled  (GoomSL *gss);
18void   gsl_bind_function(GoomSL *gss, const char *fname, GoomSL_ExternalFunction func);
19
20int    gsl_malloc  (GoomSL *_this, int size);
21void  *gsl_get_ptr (GoomSL *_this, int id);
22void   gsl_free_ptr(GoomSL *_this, int id);
23
24GoomHash *gsl_globals(GoomSL *_this);
25
26#define GSL_LOCAL_PTR(gsl,local,name)   gsl_get_ptr(gsl, *(int*)goom_hash_get(local,name)->ptr)
27#define GSL_LOCAL_INT(gsl,local,name)   (*(int*)goom_hash_get(local,name)->ptr)
28#define GSL_LOCAL_FLOAT(gsl,local,name) (*(float*)goom_hash_get(local,name)->ptr)
29
30#define GSL_GLOBAL_PTR(gsl,name)   gsl_get_ptr(gsl, *(int*)goom_hash_get(gsl_globals(gsl),name)->ptr)
31#define GSL_GLOBAL_INT(gsl,name)   (*(int*)goom_hash_get(gsl_globals(gsl),name)->ptr)
32#define GSL_GLOBAL_FLOAT(gsl,name) (*(float*)goom_hash_get(gsl_globals(gsl),name)->ptr)
33
34#endif