| @@ -300,6 +300,19 @@ PHP_MINIT_FUNCTION(caca) { | |||
| } \ | |||
| ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas); | |||
| #define FETCH_DISPLAY(display) \ | |||
| zval *_zval; \ | |||
| if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &_zval) == FAILURE) { \ | |||
| RETURN_FALSE; \ | |||
| } \ | |||
| ZEND_FETCH_RESOURCE(display, caca_display_t*, &_zval, -1, PHP_CACA_DISPLAY_RES_NAME, le_caca_display); | |||
| #define FETCH_EVENT(event) \ | |||
| zval *_zval; \ | |||
| if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &_zval) == FAILURE) { \ | |||
| RETURN_FALSE; \ | |||
| } \ | |||
| ZEND_FETCH_RESOURCE(event, caca_event_t*, &_zval, -1, PHP_CACA_EVENT_RES_NAME, le_caca_event); | |||
| //-------CACA'S FUNCTIONS----------------// | |||
| @@ -680,30 +693,70 @@ PHP_FUNCTION(caca_set_display_time) { | |||
| } | |||
| PHP_FUNCTION(caca_get_display_time) { | |||
| caca_display_t *display; | |||
| FETCH_DISPLAY(display); | |||
| RETURN_LONG(caca_get_display_time(display)); //TODO: check return value | |||
| } | |||
| PHP_FUNCTION(caca_get_display_width) { | |||
| caca_display_t *display; | |||
| FETCH_DISPLAY(display); | |||
| RETURN_LONG(caca_get_display_width(display)); | |||
| } | |||
| PHP_FUNCTION(caca_get_display_height) { | |||
| caca_display_t *display; | |||
| FETCH_DISPLAY(display); | |||
| RETURN_LONG(caca_get_display_height(display)); | |||
| } | |||
| PHP_FUNCTION(caca_set_display_title) { | |||
| zval *_zval; | |||
| char *str; | |||
| long str_len = 0; | |||
| if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &_zval, &str, &str_len) == FAILURE) { | |||
| RETURN_FALSE; | |||
| } | |||
| caca_display_t *display; | |||
| ZEND_FETCH_RESOURCE(display, caca_display_t*, &_zval, -1, PHP_CACA_DISPLAY_RES_NAME, le_caca_display); | |||
| RETURN_BOOL(caca_set_display(display, str) == 0); | |||
| } | |||
| PHP_FUNCTION(caca_set_mouse) { | |||
| zval *_zval; | |||
| long value = 0; | |||
| if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &_zval, &value) == FAILURE) { | |||
| RETURN_FALSE; | |||
| } | |||
| caca_display_t *display; | |||
| ZEND_FETCH_RESOURCE(display, caca_display_t*, &_zval, -1, PHP_CACA_DISPLAY_RES_NAME, le_caca_display); | |||
| RETURN_BOOL(caca_set_display(display, value) == 0); | |||
| } | |||
| PHP_FUNCTION(caca_set_cursor) { | |||
| zval *_zval; | |||
| long value = 0; | |||
| if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &_zval, &value) == FAILURE) { | |||
| RETURN_FALSE; | |||
| } | |||
| caca_display_t *display; | |||
| ZEND_FETCH_RESOURCE(display, caca_display_t*, &_zval, -1, PHP_CACA_DISPLAY_RES_NAME, le_caca_display); | |||
| RETURN_BOOL(caca_set_cursor(display, value) == 0); | |||
| } | |||
| PHP_FUNCTION(caca_get_event) { | |||
| } | |||
| PHP_FUNCTION(caca_get_mouse_x) { | |||
| caca_display_t *display; | |||
| FETCH_DISPLAY(display); | |||
| RETURN_LONG(caca_get_mouse_x(display)); | |||
| } | |||
| PHP_FUNCTION(caca_get_mouse_y) { | |||
| caca_display_t *display; | |||
| FETCH_DISPLAY(display); | |||
| RETURN_LONG(caca_get_mouse_y(display)); | |||
| } | |||
| PHP_FUNCTION(caca_get_event_type) { | |||
| @@ -713,17 +766,32 @@ PHP_FUNCTION(caca_get_event_key_ch) { | |||
| } | |||
| PHP_FUNCTION(caca_get_event_mouse_button) { | |||
| caca_event_t *event; | |||
| FETCH_EVENT(event); | |||
| RETURN_LONG(caca_get_event_mouse_button(event)); | |||
| } | |||
| PHP_FUNCTION(caca_get_event_mouse_x) { | |||
| caca_event_t *event; | |||
| FETCH_EVENT(event); | |||
| RETURN_LONG(caca_get_event_mouse_x(event)); | |||
| } | |||
| PHP_FUNCTION(caca_get_event_mouse_y) { | |||
| caca_event_t *event; | |||
| FETCH_EVENT(event); | |||
| RETURN_LONG(caca_get_event_mouse_y(event)); | |||
| } | |||
| PHP_FUNCTION(caca_get_event_resize_width) { | |||
| caca_event_t *event; | |||
| FETCH_EVENT(event); | |||
| RETURN_LONG(caca_get_event_resize_width(event)); | |||
| } | |||
| PHP_FUNCTION(caca_get_event_resize_height) { | |||
| caca_event_t *event; | |||
| FETCH_EVENT(event); | |||
| RETURN_LONG(caca_get_event_resize_height(event)); | |||
| } | |||