fazekasgy@31: #ifndef _PYFEATURE_H_ fazekasgy@31: #define _PYFEATURE_H_ fazekasgy@31: fazekasgy@31: #include "vamp-sdk/Plugin.h" fazekasgy@31: // #include "PyTypeInterface.h" fazekasgy@31: fazekasgy@31: typedef struct { fazekasgy@31: PyObject_HEAD fazekasgy@31: PyObject *dict; /* Attributes dictionary */ fazekasgy@31: // Vamp::Plugin::Feature *feature; fazekasgy@31: /// pointer to type interface required fazekasgy@31: // PyTypeInterface ti; fazekasgy@31: } FeatureObject; fazekasgy@31: fazekasgy@31: PyAPI_DATA(PyTypeObject) Feature_Type; fazekasgy@31: fazekasgy@31: #define PyFeature_CheckExact(v) ((v)->ob_type == &Feature_Type) fazekasgy@31: #define PyFeature_Check(v) PyObject_TypeCheck(v, &Feature_Type) fazekasgy@31: ///fast macro version as per API convention fazekasgy@31: #define PyFeature_AS_DICT(v) ((const FeatureObject* const) (v))->dict fazekasgy@31: fazekasgy@31: fazekasgy@31: /* PyFeature C++ API */ fazekasgy@31: fazekasgy@31: /// Not required: we will never have to pass a feature back from the wrapper fazekasgy@31: // PyAPI_FUNC(PyObject *) fazekasgy@31: // PyFeature_FromFeature(Vamp::RealTime&); fazekasgy@31: fazekasgy@31: // PyAPI_FUNC(const Vamp::Plugin::Feature*) fazekasgy@31: // PyFeature_AsFeature (PyObject *self); fazekasgy@31: fazekasgy@31: ///fast macro version as per API convention fazekasgy@31: // #define PyFeature_AS_FEATURE(v) ((const FeatureObject* const) (v))->feature fazekasgy@31: fazekasgy@31: cannam@34: #endif