fazekasgy@37: /* fazekasgy@37: fazekasgy@37: * Vampy : This plugin is a wrapper around the Vamp plugin API. fazekasgy@37: * It allows for writing Vamp plugins in Python. fazekasgy@37: fazekasgy@37: * Centre for Digital Music, Queen Mary University of London. fazekasgy@37: * Copyright (C) 2008-2009 Gyorgy Fazekas, QMUL. (See Vamp sources fazekasgy@37: * for licence information.) fazekasgy@37: fazekasgy@37: */ fazekasgy@37: fazekasgy@37: #ifndef _PYEXTENSIONMODULE_H_ fazekasgy@37: #define _PYEXTENSIONMODULE_H_ fazekasgy@37: fazekasgy@37: #include fazekasgy@37: #include fazekasgy@37: #include "PyRealTime.h" fazekasgy@37: #include "PyFeature.h" fazekasgy@37: #include "PyFeatureSet.h" fazekasgy@37: #include "PyParameterDescriptor.h" fazekasgy@37: #include "PyOutputDescriptor.h" fazekasgy@37: fazekasgy@37: #ifndef UINT_MAX fazekasgy@37: #define UINT_MAX ((unsigned int) -1) fazekasgy@37: #endif fazekasgy@37: #define UINT_MAXD ((double) UINT_MAX) fazekasgy@37: /* long error() { std::cerr << "type error" << std::endl; return 0; } */ fazekasgy@37: #define _dbl2uint(x) ((x) < 0 || (x) > UINT_MAXD ? 0 : (unsigned int)(x)+0.5) fazekasgy@37: #define _long2uint(x) ((x) < 0 || (x) > UINT_MAXD ? 0 : (unsigned int)(x)) fazekasgy@37: fazekasgy@37: using std::string; fazekasgy@37: using std::vector; fazekasgy@37: fazekasgy@37: enum eVampyFlags { fazekasgy@37: vf_NULL = 0, fazekasgy@37: vf_DEBUG = 1, fazekasgy@37: vf_STRICT = 2, fazekasgy@37: vf_QUIT = 4, fazekasgy@37: vf_REALTIME = 8, fazekasgy@37: vf_BUFFER = 16, fazekasgy@37: vf_ARRAY = 32, fazekasgy@37: vf_DEFAULT_V2 = (32 | 8) fazekasgy@37: }; fazekasgy@37: fazekasgy@37: #define PyDescriptor_Check(v) ((v)->ob_type == &Feature_Type) || ((v)->ob_type == &OutputDescriptor_Type) || ((v)->ob_type == &ParameterDescriptor_Type) fazekasgy@37: fazekasgy@37: #ifndef PyMODINIT_FUNC fazekasgy@37: #define PyMODINIT_FUNC void fazekasgy@37: #endif fazekasgy@37: fazekasgy@37: PyMODINIT_FUNC initvampy(); fazekasgy@37: fazekasgy@37: #endif