Changeset 3126 for libcaca/trunk/caca-php/php_caca.c
- Timestamp:
- Oct 28, 2008, 3:02:27 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcaca/trunk/caca-php/php_caca.c
r3123 r3126 22 22 PHP_FE(caca_create_event, NULL) 23 23 PHP_FE(caca_create_canvas, NULL) 24 PHP_FE(caca_manage_canvas, NULL)25 PHP_FE(caca_unmanage_canvas, NULL)26 24 PHP_FE(caca_set_canvas_size, NULL) 27 25 PHP_FE(caca_get_canvas_width, NULL) … … 117 115 PHP_FE(caca_put_figchar, NULL) 118 116 PHP_FE(caca_flush_figlet, NULL) 117 PHP_FE(caca_file_open, NULL) 119 118 PHP_FE(caca_file_close, NULL) 120 119 PHP_FE(caca_file_tell, NULL) … … 362 361 363 362 void *gd_get_pixels(gdImage *img) { 364 if (img->trueColor) { 365 int line_size = img->sx * sizeof(int); 366 void *result = malloc(img->sy * line_size); 367 int j; 368 for (j = 0; j < img->sy; j++) 369 memcpy(result + (j * line_size), (const void *) img->tpixels[j], line_size); 370 return result; 371 } 372 return NULL; 373 } 374 375 363 if (!img->trueColor) 364 return NULL; 365 366 int line_size = img->sx * sizeof(int); 367 void *result = malloc(img->sy * line_size); 368 int j; 369 for (j = 0; j < img->sy; j++) 370 memcpy(result + (j * line_size), (const void *) img->tpixels[j], line_size); 371 return result; 372 } 376 373 377 374 //------- PHP Binding's specific functions ----------// … … 395 392 } 396 393 ZEND_REGISTER_RESOURCE(return_value, canvas, le_caca_canvas); 397 }398 399 PHP_FUNCTION(caca_manage_canvas) {400 }401 402 PHP_FUNCTION(caca_unmanage_canvas) {403 394 } 404 395 … … 1240 1231 1241 1232 PHP_FUNCTION(caca_canvas_set_figfont) { 1233 zval *_zval; 1234 char *font; 1235 long font_len; 1236 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &_zval, &font, &font_len) == FAILURE) { 1237 RETURN_FALSE; 1238 } 1239 caca_canvas_t *canvas; 1240 ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas); 1241 RETURN_SUCCESS(caca_canvas_set_figfont(canvas, font)); 1242 1242 } 1243 1243 … … 1246 1246 1247 1247 PHP_FUNCTION(caca_flush_figlet) { 1248 zval *_zval; 1249 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &_zval) == FAILURE) { 1250 RETURN_FALSE; 1251 } 1252 caca_canvas_t *canvas; 1253 ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas); 1254 RETURN_SUCCESS(caca_flush_figlet(canvas)); 1255 } 1256 1257 PHP_FUNCTION(caca_file_open) { 1258 char *path, *mode; 1259 long path_len, mode_len; 1260 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &path, &path_len, &mode, &mode_len) == FAILURE) { 1261 RETURN_FALSE; 1262 } 1263 caca_file_t *file = caca_file_open(path, mode); 1264 ZEND_REGISTER_RESOURCE(return_value, file, le_caca_file); 1248 1265 } 1249 1266 1250 1267 PHP_FUNCTION(caca_file_close) { 1268 zval *_zval; 1269 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &_zval) == FAILURE) { 1270 RETURN_FALSE; 1271 } 1272 caca_file_t *file; 1273 ZEND_FETCH_RESOURCE(file, caca_file_t*, &_zval, -1, PHP_CACA_FILE_RES_NAME, le_caca_file); 1274 //TODO: check that file was not already closed 1275 RETURN_SUCCESS(caca_file_close(file)); 1251 1276 } 1252 1277 1253 1278 PHP_FUNCTION(caca_file_tell) { 1279 zval *_zval; 1280 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &_zval) == FAILURE) { 1281 RETURN_FALSE; 1282 } 1283 caca_file_t *file; 1284 ZEND_FETCH_RESOURCE(file, caca_file_t*, &_zval, -1, PHP_CACA_FILE_RES_NAME, le_caca_file); 1285 RETURN_LONG(caca_file_tell(file)); 1254 1286 } 1255 1287 … … 1264 1296 1265 1297 PHP_FUNCTION(caca_file_eof) { 1298 zval *_zval; 1299 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &_zval) == FAILURE) { 1300 RETURN_FALSE; 1301 } 1302 caca_file_t *file; 1303 ZEND_FETCH_RESOURCE(file, caca_file_t*, &_zval, -1, PHP_CACA_FILE_RES_NAME, le_caca_file); 1304 RETURN_BOOL(caca_file_eof(file) != 0); 1266 1305 } 1267 1306 1268 1307 PHP_FUNCTION(caca_import_string) { 1269 1308 zval *_zval; 1270 char *src, * type;1271 long src_len, type_len = 0;1272 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rss", &_zval, &src, &src_len, & type, &type_len) == FAILURE) {1273 RETURN_FALSE; 1274 } 1275 caca_canvas_t *canvas; 1276 ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas); 1277 1278 RETURN_LONG(caca_import_memory(canvas, src, src_len, type));1309 char *src, *format; 1310 long src_len, format_len = 0; 1311 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rss", &_zval, &src, &src_len, &format, &format_len) == FAILURE) { 1312 RETURN_FALSE; 1313 } 1314 caca_canvas_t *canvas; 1315 ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas); 1316 1317 RETURN_LONG(caca_import_memory(canvas, src, src_len, format)); 1279 1318 } 1280 1319 1281 1320 PHP_FUNCTION(caca_import_file) { 1321 zval *_zval; 1322 char *filename, *format; 1323 long filename_len, format_len = 0; 1324 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rss", &_zval, &filename, &filename_len, &format, &format_len) == FAILURE) { 1325 RETURN_FALSE; 1326 } 1327 caca_canvas_t *canvas; 1328 ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas); 1329 1330 RETURN_LONG(caca_import_file(canvas, filename, format)); 1282 1331 } 1283 1332 1284 1333 PHP_FUNCTION(caca_get_import_list) { 1334 char const * const *list = caca_get_import_list(); 1335 int i; 1336 array_init(return_value); 1337 for(i = 0; list[i]; i += 2) 1338 add_assoc_string(return_value, (char*) list[i], (char*) list[i + 1], 1); 1285 1339 } 1286 1340 … … 1402 1456 caca_display_t *display; 1403 1457 FETCH_DISPLAY(display); 1404 RETURN_LONG(caca_get_display_time(display)); //TODO: check return value1458 RETURN_LONG(caca_get_display_time(display)); 1405 1459 } 1406 1460
Note: See TracChangeset
for help on using the changeset viewer.