-%include carrays.i
+%rename("%(strip:[MRAA_])s", %$isenumitem) "";
+
+%include stdint.i
+%include std_string.i
+%include exception.i
#ifdef DOXYGEN
- %include common_doc.i
- %include gpio_class_doc.i
- %include i2c_class_doc.i
- %include pwm_class_doc.i
- %include aio_class_doc.i
- %include spi_class_doc.i
+ //and doesn't seem to work correctly in SWIG's preprocessor
+ #ifdef SWIGPYTHON
+ %include common_hpp_doc.i
+ %include gpio_class_doc.i
+ %include i2c_class_doc.i
+ %include pwm_class_doc.i
+ %include aio_class_doc.i
+ %include spi_class_doc.i
+ %include uart_class_doc.i
+ #endif
#endif
%{
- #include "common.h"
+ #include "common.hpp"
#include "gpio.hpp"
#include "pwm.hpp"
#include "i2c.hpp"
#include "spi.hpp"
#include "aio.hpp"
+ #include "uart.hpp"
%}
-%init %{
- //Adding mraa_init() to the module initialisation process
- mraa_init();
-%}
-
-%rename(getVersion) mraa_get_version;
-
-%rename(setPriority) mraa_set_priority;
-
-%rename(printError) mraa_result_print(mraa_result_t error);
-
-%rename(getPlatform) mraa_get_platform_type;
+%exception {
+ try {
+ $action
+ } catch(const std::invalid_argument& e) {
+ SWIG_exception(SWIG_ValueError, e.what());
+ } catch(...) {
+ SWIG_exception(SWIG_RuntimeError, "Unknown exception");
+ }
+}
-%typemap(in) uint8_t = char;
+%include "common.hpp"
%include "types.h"
-#### GPIO ####
+%ignore Gpio::nop(uv_work_t* req);
+%ignore Gpio::v8isr(uv_work_t* req);
+%ignore Gpio::v8isr(uv_work_t* req, int status);
+%ignore Gpio::uvwork(void *ctx);
%include "gpio.hpp"
-#### i2c ####
-
%include "i2c.hpp"
-#### PWM ####
-
%include "pwm.hpp"
-#### SPI ####
-
%include "spi.hpp"
-#### AIO ####
-
%include "aio.hpp"
+
+%include "uart.hpp"