Changeset 3114


Ignore:
Timestamp:
Oct 26, 2008, 10:27:32 PM (14 years ago)
Author:
nico
Message:
  • Add binding for 7 new functions
  • Add just_for_fun() function in sample program drivers.php
Location:
libcaca/trunk/caca-php
Files:
2 edited

Legend:

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

    r3113 r3114  
    22<?
    33
    4 echo "libcaca version: ".caca_get_version()."\n";
     4
     5//--- Just for fun ---//
     6
     7function just_for_fun() {
     8
     9$moo = <<<EOT
     10         (__) 
     11         (oo)
     12   /------\/
     13  / |    ||   
     14 *  /\---/\
     15    ~~   ~~   
     16EOT;
     17
     18        $cv = caca_create_canvas(0, 0);
     19        caca_set_color_ansi($cv, CACA_LIGHTBLUE, CACA_DEFAULT);
     20        caca_import_string($cv, $moo, "text");
     21
     22        for($j = 0; $j < caca_get_canvas_height($cv); $j++) {
     23                for($i = 0; $i < caca_get_canvas_width($cv); $i += 2) {
     24                        caca_set_color_ansi($cv, (caca_rand(1, 10) > 5 ? CACA_LIGHTBLUE  : CACA_WHITE), CACA_DEFAULT);
     25                        $a = caca_get_attr($cv, -1, -1);
     26                        caca_put_attr($cv, $i, $j, $a);
     27                        caca_put_attr($cv, $i + 1, $j, $a);
     28                }
     29        }
     30        caca_set_color_ansi($cv, CACA_LIGHTGREEN, CACA_DEFAULT);
     31        caca_put_str($cv, 8, 0, "Moo!");
     32        echo caca_export_string($cv, "utf8");
     33}
     34       
     35
     36just_for_fun();
     37
     38//--- Show caca's information ---//
     39
     40echo "libcaca version: ".caca_get_version()."\n\n";
    541echo "Available drivers:\n";
    642$list = caca_get_display_driver_list();
    743foreach($list as $type => $name)
    844        echo "* $name ($type)\n";
     45echo "\n";
     46
     47echo "Available export modules:\n";
     48$list = caca_get_export_list();
     49foreach($list as $type => $name)
     50        echo "* $name ($type)\n";
     51echo "\n";
     52
     53echo "Available caca fonts:\n";
     54$list = caca_get_font_list();
     55foreach($list as $name)
     56        echo "* $name\n";
     57echo "\n";
  • libcaca/trunk/caca-php/php_caca.c

    r3113 r3114  
    957957
    958958PHP_FUNCTION(caca_get_dither_color_list) {
     959        zval *_zval;
     960        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &_zval) == FAILURE) {
     961                RETURN_FALSE;
     962        }
     963        caca_dither_t *dither;
     964        ZEND_FETCH_RESOURCE(dither, caca_dither_t*, &_zval, -1, PHP_CACA_DITHER_RES_NAME, le_caca_dither);
     965
     966        char const * const *list = caca_get_dither_antialias_list(dither);
     967        int i;
     968        array_init(return_value);       
     969        for(i = 0; list[i]; i += 2)
     970                add_assoc_string(return_value, (char*) list[i], (char*) list[i + 1], 1);
    959971}
    960972
     
    966978
    967979PHP_FUNCTION(caca_get_dither_charset_list) {
     980        zval *_zval;
     981        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &_zval) == FAILURE) {
     982                RETURN_FALSE;
     983        }
     984        caca_dither_t *dither;
     985        ZEND_FETCH_RESOURCE(dither, caca_dither_t*, &_zval, -1, PHP_CACA_DITHER_RES_NAME, le_caca_dither);
     986
     987        char const * const *list = caca_get_dither_charset_list(dither);
     988        int i;
     989        array_init(return_value);       
     990        for(i = 0; list[i]; i += 2)
     991                add_assoc_string(return_value, (char*) list[i], (char*) list[i + 1], 1);
    968992}
    969993
     
    975999
    9761000PHP_FUNCTION(caca_get_dither_algorithm_list) {
     1001        zval *_zval;
     1002        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &_zval) == FAILURE) {
     1003                RETURN_FALSE;
     1004        }
     1005        caca_dither_t *dither;
     1006        ZEND_FETCH_RESOURCE(dither, caca_dither_t*, &_zval, -1, PHP_CACA_DITHER_RES_NAME, le_caca_dither);
     1007
     1008        char const * const *list = caca_get_dither_algorithm_list(dither);
     1009        int i;
     1010        array_init(return_value);       
     1011        for(i = 0; list[i]; i += 2)
     1012                add_assoc_string(return_value, (char*) list[i], (char*) list[i + 1], 1);
    9771013}
    9781014
     
    9841020
    9851021PHP_FUNCTION(caca_get_font_list) {
     1022        char const * const *list = caca_get_font_list();
     1023        int i;
     1024        array_init(return_value);       
     1025        for(i = 0; list[i]; i += 1)
     1026                add_next_index_string(return_value, (char*) list[i], 1);
    9861027}
    9871028
    9881029PHP_FUNCTION(caca_get_font_width) {
     1030        zval *_zval;
     1031        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &_zval) == FAILURE) {
     1032                RETURN_FALSE;
     1033        }
     1034        caca_font_t *font;
     1035        ZEND_FETCH_RESOURCE(font, caca_font_t*, &_zval, -1, PHP_CACA_FONT_RES_NAME, le_caca_font);
     1036        RETURN_LONG(caca_get_font_width(font));
    9891037}
    9901038
    9911039PHP_FUNCTION(caca_get_font_height) {
     1040        zval *_zval;
     1041        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &_zval) == FAILURE) {
     1042                RETURN_FALSE;
     1043        }
     1044        caca_font_t *font;
     1045        ZEND_FETCH_RESOURCE(font, caca_font_t*, &_zval, -1, PHP_CACA_FONT_RES_NAME, le_caca_font);
     1046        RETURN_LONG(caca_get_font_height(font));
    9921047}
    9931048
     
    10621117
    10631118PHP_FUNCTION(caca_get_export_list) {
     1119        char const * const *list = caca_get_export_list();
     1120        int i;
     1121        array_init(return_value);       
     1122        for(i = 0; list[i]; i += 2)
     1123                add_assoc_string(return_value, (char*) list[i], (char*) list[i + 1], 1);
    10641124}
    10651125
Note: See TracChangeset for help on using the changeset viewer.