aboutsummaryrefslogtreecommitdiffstats
path: root/tests/samplebinding/complex_conversions.h
diff options
context:
space:
mode:
Diffstat (limited to 'tests/samplebinding/complex_conversions.h')
-rw-r--r--tests/samplebinding/complex_conversions.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/samplebinding/complex_conversions.h b/tests/samplebinding/complex_conversions.h
new file mode 100644
index 000000000..8caaef03b
--- /dev/null
+++ b/tests/samplebinding/complex_conversions.h
@@ -0,0 +1,23 @@
+template<>
+struct Converter<Complex>
+{
+ static PyObject* toPython(ValueHolder<Complex> cpx)
+ {
+ /*
+ fprintf(stderr, "[%s:%d] cpx.real: %f, cpx.imag: %f\n",
+ __PRETTY_FUNCTION__, __LINE__, cpx.value.real(), cpx.value.imag());
+ PyObject* result = PyComplex_FromDoubles(cpx.value.real(), cpx.value.imag());
+ fprintf(stderr, "[%s:%d]", __PRETTY_FUNCTION__, __LINE__);
+ PyObject_Print(result, stderr, 0);
+ fprintf(stderr, "\n");
+ return result;
+ */
+ return PyComplex_FromDoubles(cpx.value.real(), cpx.value.imag());
+ }
+ static Complex toCpp(PyObject* pyobj)
+ {
+ double real = PyComplex_RealAsDouble(pyobj);
+ double imag = PyComplex_ImagAsDouble(pyobj);
+ return Complex(real, imag);
+ }
+};