Changeset 3126 for libcaca


Ignore:
Timestamp:
Oct 28, 2008, 3:02:27 AM (11 years ago)
Author:
nico
Message:
  • Add php bindings for 9 functions
  • Modify php bloc headers in samples programs
  • Add list of import/export formats in examples/drivers.php
Location:
libcaca/trunk/caca-php
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/caca-php/examples/demo.php

    r3110 r3126  
    11#!/usr/bin/php5
    2 <?
     2<?php
    33/*
    44 *  demo.php      demo for libcaca php binding
  • libcaca/trunk/caca-php/examples/dithering.php

    r3124 r3126  
    11#!/usr/bin/php5
    2 <?
     2<?php
     3
    34$img = imagecreatefrompng(dirname(__FILE__)."/logo-caca.png");
     5if (!$img)
     6        die("Can not open image.\n");
     7
    48$dither = caca_create_dither_gd($img);
    59if (!$dither)
  • libcaca/trunk/caca-php/examples/drivers.php

    r3114 r3126  
    11#!/usr/bin/php5
    2 <?
    3 
     2<?php
    43
    54//--- Just for fun ---//
     
    4544echo "\n";
    4645
    47 echo "Available export modules:\n";
     46echo "Available import formats:\n";
     47$list = caca_get_import_list();
     48foreach($list as $format => $name)
     49        echo "* $name ($format)\n";
     50echo "\n";
     51
     52echo "Available export formats:\n";
    4853$list = caca_get_export_list();
    49 foreach($list as $type => $name)
    50         echo "* $name ($type)\n";
     54foreach($list as $format => $name)
     55        echo "* $name ($format)\n";
    5156echo "\n";
    5257
  • libcaca/trunk/caca-php/examples/example1.php

    r3111 r3126  
    11#!/usr/bin/php5
    2 <?
     2<?php
    33
    44$pig_str = <<<EOT
  • libcaca/trunk/caca-php/php_caca.c

    r3123 r3126  
    2222        PHP_FE(caca_create_event, NULL)
    2323        PHP_FE(caca_create_canvas, NULL)
    24         PHP_FE(caca_manage_canvas, NULL)
    25         PHP_FE(caca_unmanage_canvas, NULL)
    2624        PHP_FE(caca_set_canvas_size, NULL)
    2725        PHP_FE(caca_get_canvas_width, NULL)
     
    117115        PHP_FE(caca_put_figchar, NULL)
    118116        PHP_FE(caca_flush_figlet, NULL)
     117        PHP_FE(caca_file_open, NULL)
    119118        PHP_FE(caca_file_close, NULL)
    120119        PHP_FE(caca_file_tell, NULL)
     
    362361
    363362void *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}
    376373
    377374//------- PHP Binding's specific functions ----------//
     
    395392        }
    396393        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) {
    403394}
    404395
     
    12401231
    12411232PHP_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));
    12421242}
    12431243
     
    12461246
    12471247PHP_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
     1257PHP_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);
    12481265}
    12491266
    12501267PHP_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));
    12511276}
    12521277
    12531278PHP_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));
    12541286}
    12551287
     
    12641296
    12651297PHP_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);
    12661305}
    12671306
    12681307PHP_FUNCTION(caca_import_string) {
    12691308        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));
    12791318}
    12801319
    12811320PHP_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));
    12821331}
    12831332
    12841333PHP_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);
    12851339}
    12861340
     
    14021456        caca_display_t *display;
    14031457        FETCH_DISPLAY(display);
    1404         RETURN_LONG(caca_get_display_time(display)); //TODO: check return value
     1458        RETURN_LONG(caca_get_display_time(display));
    14051459}
    14061460
  • libcaca/trunk/caca-php/php_caca.h

    r3123 r3126  
    3939
    4040PHP_FUNCTION(caca_create_canvas);
    41 PHP_FUNCTION(caca_manage_canvas);
    42 PHP_FUNCTION(caca_unmanage_canvas);
    4341PHP_FUNCTION(caca_set_canvas_size);
    4442PHP_FUNCTION(caca_get_canvas_width);
     
    134132PHP_FUNCTION(caca_put_figchar);
    135133PHP_FUNCTION(caca_flush_figlet);
     134PHP_FUNCTION(caca_file_open);
    136135PHP_FUNCTION(caca_file_close);
    137136PHP_FUNCTION(caca_file_tell);
Note: See TracChangeset for help on using the changeset viewer.