21
21
#include <stdio.h>
22
22
23
23
24
- static void iotjs_gpio_destroy (iotjs_gpio_t * gpio );
25
24
static iotjs_gpio_t * iotjs_gpio_instance_from_jval (const iotjs_jval_t * jgpio );
26
25
IOTJS_DEFINE_NATIVE_HANDLE_INFO_THIS_MODULE (gpio );
27
26
@@ -49,14 +48,14 @@ static void iotjs_gpio_destroy(iotjs_gpio_t* gpio) {
49
48
50
49
51
50
static iotjs_gpio_reqwrap_t * iotjs_gpio_reqwrap_create (
52
- const iotjs_jval_t * jcallback , const iotjs_jval_t * jgpio , GpioOp op ) {
51
+ const iotjs_jval_t * jcallback , iotjs_gpio_t * gpio , GpioOp op ) {
53
52
iotjs_gpio_reqwrap_t * gpio_reqwrap = IOTJS_ALLOC (iotjs_gpio_reqwrap_t );
54
53
IOTJS_VALIDATED_STRUCT_CONSTRUCTOR (iotjs_gpio_reqwrap_t , gpio_reqwrap );
55
54
56
55
iotjs_reqwrap_initialize (& _this -> reqwrap , jcallback , (uv_req_t * )& _this -> req );
57
56
58
57
_this -> req_data .op = op ;
59
- _this -> gpio_instance = iotjs_gpio_instance_from_jval ( jgpio ) ;
58
+ _this -> gpio_instance = gpio ;
60
59
return gpio_reqwrap ;
61
60
}
62
61
@@ -229,22 +228,22 @@ static void gpio_set_configurable(iotjs_gpio_t* gpio,
229
228
}
230
229
231
230
232
- #define GPIO_ASYNC (call , jthis , jcallback , op ) \
231
+ #define GPIO_ASYNC (call , this , jcallback , op ) \
233
232
do { \
234
233
uv_loop_t* loop = iotjs_environment_loop(iotjs_environment_get()); \
235
234
iotjs_gpio_reqwrap_t* req_wrap = \
236
- iotjs_gpio_reqwrap_create(jcallback, jthis , op); \
235
+ iotjs_gpio_reqwrap_create(jcallback, this , op); \
237
236
uv_work_t* req = iotjs_gpio_reqwrap_req(req_wrap); \
238
237
uv_queue_work(loop, req, iotjs_gpio_##call##_worker, \
239
238
iotjs_gpio_after_worker); \
240
239
} while (0)
241
240
242
241
243
- #define GPIO_ASYNC_WITH_VALUE (call , jthis , jcallback , op , val ) \
242
+ #define GPIO_ASYNC_WITH_VALUE (call , this , jcallback , op , val ) \
244
243
do { \
245
244
uv_loop_t* loop = iotjs_environment_loop(iotjs_environment_get()); \
246
245
iotjs_gpio_reqwrap_t* req_wrap = \
247
- iotjs_gpio_reqwrap_create(jcallback, jthis , op); \
246
+ iotjs_gpio_reqwrap_create(jcallback, this , op); \
248
247
uv_work_t* req = iotjs_gpio_reqwrap_req(req_wrap); \
249
248
iotjs_gpio_reqdata_t* req_data = iotjs_gpio_reqwrap_data(req_wrap); \
250
249
req_data->value = val; \
@@ -265,7 +264,7 @@ JHANDLER_FUNCTION(GpioConstructor) {
265
264
gpio_set_configurable (gpio , JHANDLER_GET_ARG (0 , object ));
266
265
267
266
const iotjs_jval_t * jcallback = JHANDLER_GET_ARG (1 , function );
268
- GPIO_ASYNC (open , jgpio , jcallback , kGpioOpOpen );
267
+ GPIO_ASYNC (open , gpio , jcallback , kGpioOpOpen );
269
268
}
270
269
271
270
@@ -275,12 +274,11 @@ JHANDLER_FUNCTION(Write) {
275
274
DJHANDLER_CHECK_ARG_IF_EXIST (1 , function );
276
275
277
276
const iotjs_jval_t * jcallback = JHANDLER_GET_ARG_IF_EXIST (1 , function );
278
- const iotjs_jval_t * jgpio = JHANDLER_GET_THIS (object );
279
277
280
278
bool value = JHANDLER_GET_ARG (0 , boolean );
281
279
282
280
if (jcallback ) {
283
- GPIO_ASYNC_WITH_VALUE (write , jgpio , jcallback , kGpioOpWrite , value );
281
+ GPIO_ASYNC_WITH_VALUE (write , gpio , jcallback , kGpioOpWrite , value );
284
282
} else {
285
283
if (!iotjs_gpio_write (gpio , value )) {
286
284
JHANDLER_THROW (COMMON , "GPIO WriteSync Error" );
@@ -297,10 +295,9 @@ JHANDLER_FUNCTION(Read) {
297
295
DJHANDLER_CHECK_ARG_IF_EXIST (0 , function );
298
296
299
297
const iotjs_jval_t * jcallback = JHANDLER_GET_ARG_IF_EXIST (0 , function );
300
- const iotjs_jval_t * jgpio = JHANDLER_GET_THIS (object );
301
298
302
299
if (jcallback ) {
303
- GPIO_ASYNC (read , jgpio , jcallback , kGpioOpRead );
300
+ GPIO_ASYNC (read , gpio , jcallback , kGpioOpRead );
304
301
iotjs_jhandler_return_null (jhandler );
305
302
} else {
306
303
int value = iotjs_gpio_read (gpio );
@@ -317,10 +314,9 @@ JHANDLER_FUNCTION(Close) {
317
314
DJHANDLER_CHECK_ARG_IF_EXIST (0 , function );
318
315
319
316
const iotjs_jval_t * jcallback = JHANDLER_GET_ARG_IF_EXIST (0 , function );
320
- const iotjs_jval_t * jgpio = JHANDLER_GET_THIS (object );
321
317
322
318
if (jcallback ) {
323
- GPIO_ASYNC (close , jgpio , jcallback , kGpioOpClose );
319
+ GPIO_ASYNC (close , gpio , jcallback , kGpioOpClose );
324
320
} else {
325
321
if (!iotjs_gpio_close (gpio )) {
326
322
JHANDLER_THROW (COMMON , "GPIO CloseSync Error" );
0 commit comments