X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fpython%2Ftag.h;h=98f8b82a9074b0192d0609ca0760ed703da00675;hb=879d0eec420fe0fd5ddcd56c8fe62b82a6744edd;hp=48a303ee68018d2b3034b840d70ac5b96cb73ef6;hpb=726d172d02228a2e9b084efba8d3173994343c2b;p=swftools.git diff --git a/lib/python/tag.h b/lib/python/tag.h index 48a303e..98f8b82 100644 --- a/lib/python/tag.h +++ b/lib/python/tag.h @@ -23,16 +23,35 @@ #ifndef __tag_h__ #define __tag_h__ -#include "../rfxswf.h" -#undef HAVE_STAT #include +#undef HAVE_STAT +#include "../rfxswf.h" -extern PyTypeObject TagClass; - -PyObject* tag_new(); -PyObject* tag_new2(TAG*tag); +#include "tagmap.h" + +typedef struct _tag_internals +{ + int (*parse)(struct _tag_internals*); + int (*fillTAG)(struct _tag_internals*); + void (*dealloc)(struct _tag_internals*); + int datasize; + void*data; + PyObject* (*getattr)(struct _tag_internals*, char* a); + int (*setattr)(struct _tag_internals*, char* a, PyObject*val); + PyMethodDef* tagfunctions; + TAG*tag; + PyObject* tagmap; +} tag_internals_t; + +PyObject* tag_new(tag_internals_t*tag_internals); +PyObject* tag_new2(TAG*_tag, PyObject* tagmap); TAG* tag_getTAG(PyObject*self, TAG*prevTag, PyObject*tagmap); PyObject* tag_getDependencies(PyObject*self); +tag_internals_t* tag_getinternals(PyObject*tag); +void register_tag(int id, tag_internals_t*spec); PyMethodDef* tag_getMethods(); + +extern PyTypeObject TagClass; + #endif