/* ------------------------------------------------------------ * Enums * ------------------------------------------------------------ */ %apply int { enum SWIGTYPE }; %apply const int& { const enum SWIGTYPE& }; %typemap(in,fragment=SWIG_As_frag(int)) const enum SWIGTYPE& ($basetype temp) { temp = SWIG_static_cast(SWIG_As(int)($input),$basetype); if (SWIG_arg_fail($argnum)) SWIG_fail; $1 = &temp; } %typemap(varin,fragment=SWIG_AsVal_frag(int)) enum SWIGTYPE { if (sizeof(int) != sizeof($1)) { PyErr_SetString(PyExc_AttributeError, "enum variable '$name' can not be set"); return 1; } if (!SWIG_AsVal(int)($input, (int*)(void*)(&$1))) { return 1; } } /* typemaps needed due to unnamed enums */ %define PY_ENUM_OUT_TYPEMAPS(from_meth,pyfrag) %typemap(out,fragment=pyfrag) enum SWIGTYPE "$result = from_meth(($1));"; %typemap(out,fragment=pyfrag) const enum SWIGTYPE& "$result = from_meth((*$1));"; %typemap(varout,fragment=pyfrag) enum SWIGTYPE, const enum SWIGTYPE& "$result = from_meth($1);"; %typemap(constcode,fragment=pyfrag) enum SWIGTYPE "PyDict_SetItemString(d,\"$symname\", from_meth($value));"; %typemap(directorin,fragment=pyfrag) enum SWIGTYPE *DIRECTORIN "$input = from_meth(*$1_name);"; %typemap(directorin,fragment=pyfrag) enum SWIGTYPE, const enum SWIGTYPE& "$input = from_meth($1_name);"; %typemap(throws,fragment=pyfrag) enum SWIGTYPE "PyErr_SetObject(PyExc_RuntimeError, from_meth($1)); SWIG_fail;"; %enddef PY_ENUM_OUT_TYPEMAPS(SWIG_From(int),SWIG_From_frag(int));