From: Brendan Le Foll Date: Thu, 1 May 2014 14:42:42 +0000 (+0100) Subject: swig: make swig generation of objects generic X-Git-Tag: v0.2.2~13 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8c016318a674f5fe17058d26fe17d0b37ca81f3f;p=contrib%2Fmraa.git swig: make swig generation of objects generic Signed-off-by: Brendan Le Foll --- diff --git a/src/javascript/maajs.i b/src/javascript/maajs.i index e5b31a5..3fb77c5 100644 --- a/src/javascript/maajs.i +++ b/src/javascript/maajs.i @@ -5,9 +5,7 @@ %include -%rename("%(strip:[maa_])s") ""; - -%feature("autodoc", "1"); +%feature("autodoc", "3"); #ifdef DOXYGEN %include ../maa_doc.i diff --git a/src/maa.i b/src/maa.i index d32ae8a..2511888 100644 --- a/src/maa.i +++ b/src/maa.i @@ -9,3 +9,186 @@ %rename(get_version) maa_get_version(); %include "maa.h" +#### GPIO #### + +%rename(Gpio) maa_gpio_context; + +typedef struct { + /*@{*/ + int pin; /**< the pin number, as known to the os. */ + FILE *value_fp; /**< the file pointer to the value of the gpio */ + /*@}*/ +} maa_gpio_context; + +%nodefault maa_gpio_context; +%extend maa_gpio_context { + maa_gpio_context(int pin, int raw=0) + { + if (raw) + return maa_gpio_init_raw(pin); + return maa_gpio_init(pin); + } + ~maa_gpio_context() + { + maa_gpio_close($self); + } + int write(int value) + { + return maa_gpio_write($self, value); + } + int dir(gpio_dir_t dir) + { + return maa_gpio_dir($self, dir); + } + int read() + { + return maa_gpio_read($self); + } + int mode(gpio_mode_t mode) + { + return maa_gpio_mode($self, mode); + } +} + +#### i2c #### + +%rename(I2c) maa_i2c_context; + +typedef struct { + /*@{*/ + int hz; /**< frequency of communication */ + int fh; /**< the file handle to the /dev/i2c-* device */ + int addr; /**< the address of the i2c slave */ + maa_gpio_context gpio; + /*@}*/ +} maa_i2c_context; + +%nodefault maa_i2c_context; +%extend maa_i2c_context { + maa_i2c_context() + { + return maa_i2c_init(); + } + ~maa_i2c_context() + { + maa_i2c_stop($self); + } + int frequency(int hz) + { + return maa_i2c_frequency($self, hz); + } + int read(char *data, int length) + { + return maa_i2c_read($self, data, length); + } + int read() + { + return maa_i2c_read_byte($self); + } + int write(char *data, int length) + { + return maa_i2c_write($self, data, length); + } + int write(int data) + { + return maa_i2c_write_byte($self, data); + } +} + +#### PWM #### + +%rename(Pwm) maa_pwm_context; + +typedef struct { + /*@{*/ + int pin; /**< the pin number, as known to the os. */ + int chipid; /**< the chip id, which the pwm resides */ + FILE *duty_fp; /**< File pointer to duty file */ + /*@}*/ +} maa_pwm_context; + +%nodefault maa_pwm_context; +%extend maa_pwm_context { + maa_pwm_context(int pin) + { + return maa_pwm_init(pin); + } + maa_pwm_context(int chipid, int pin) + { + return maa_pwm_init_raw(chipid, pin); + } + ~maa_pwm_context() + { + maa_pwm_close($self); + } + int write(float percentage) + { + return maa_pwm_write($self, percentage); + } + int read() + { + return maa_pwm_read($self); + } + int period(float seconds) + { + return maa_pwm_period($self, seconds); + } + int period_ms(int ms) + { + return maa_pwm_period_ms($self, ms); + } + int period_us(int us) + { + return maa_pwm_period_us($self, us); + } + int pulsewidth(float seconds) + { + return maa_pwm_pulsewidth($self, seconds); + } + int pulsewidth_ms(int ms) + { + return maa_pwm_pulsewidth($self, ms); + } + int pulsewidth_us(int us) + { + return maa_pwm_pulsewidth($self, us); + } + int enable(int enable) + { + return maa_pwm_enable($self, enable); + } +} + +#### SPI #### + +%rename(Spi) maa_spi_context; + +typedef struct { + /*@{*/ + int spifd; /**< File descriptor to SPI Device */ + /*@}*/ +} maa_spi_context; + +%nodefault maa_spi_context; +%extend maa_spi_context { + maa_spi_context() + { + return maa_spi_init(); + } + ~maa_spi_context() + { + maa_spi_stop($self); + } + int mode(unsigned short mode) + { + return maa_spi_mode($self, mode); + } + int frequency(int hz) + { + return maa_spi_frequency($self, hz); + } + unsigned int write(unsigned int data) + { + return maa_spi_write($self, data); + } +} diff --git a/src/python/pymaa.i b/src/python/pymaa.i index 8cca2e8..2a76c59 100644 --- a/src/python/pymaa.i +++ b/src/python/pymaa.i @@ -11,86 +11,3 @@ %include ../maa.i -#### GPIO #### - -%rename(Gpio) maa_gpio_context; - -typedef struct { - /*@{*/ - int pin; /**< the pin number, as known to the os. */ - FILE *value_fp; /**< the file pointer to the value of the gpio */ - /*@}*/ -} maa_gpio_context; - -%nodefault maa_gpio_context; -%extend maa_gpio_context { - maa_gpio_context(int pin) - { - return maa_gpio_init(pin); - } - ~maa_gpio_context() - { - maa_gpio_close($self); - } - int write(int value) - { - return maa_gpio_write($self, value); - } - int dir(gpio_dir_t dir) - { - return maa_gpio_dir($self, dir); - } - int read() - { - return maa_gpio_read($self); - } - int mode(gpio_mode_t mode) - { - return maa_gpio_mode($self, mode); - } -} - -#### i2c #### - -%rename(I2c) maa_i2c_context; - -typedef struct { - /*@{*/ - int hz; /**< frequency of communication */ - int fh; /**< the file handle to the /dev/i2c-* device */ - int addr; /**< the address of the i2c slave */ - maa_gpio_context gpio; - /*@}*/ -} maa_i2c_context; - -%nodefault maa_i2c_context; -%extend maa_i2c_context { - maa_i2c_context() - { - return maa_i2c_init(); - } - ~maa_i2c_context() - { - maa_i2c_stop($self); - } - int frequency(int hz) - { - return maa_i2c_frequency($self, hz); - } - int read(char *data, int length) - { - return maa_i2c_read($self, data, length); - } - int read() - { - return maa_i2c_read_byte($self); - } - int write(char *data, int length) - { - return maa_i2c_write($self, data, length); - } - int write(int data) - { - return maa_i2c_write_byte($self, data); - } -}