%module{Slic3r::XS}; %{ #include #include "libslic3r/GCode/PressureEqualizer.hpp" %} %name{Slic3r::GCode::PressureEqualizer} class GCodePressureEqualizer { GCodePressureEqualizer(StaticPrintConfig* config) %code%{ RETVAL = new GCodePressureEqualizer(dynamic_cast(config)); %}; ~GCodePressureEqualizer(); void reset(); // Process a next batch of G-code lines. Flush the internal buffers if asked for. // const char* process(const char *szGCode, bool flush); // std::string process(const char *szGCode, bool flush) // %code{% const char *out = THIS->process(szGCode, flush); RETVAL = (out == NULL) ? "" : std::string(out); %}; %{ SV* GCodePressureEqualizer::process(const char *szGCode, bool flush) CODE: const char *out = THIS->process(szGCode, flush); RETVAL = newSVpv(out, THIS->get_output_buffer_length()); OUTPUT: RETVAL %} };