Browse Source

* Add php binding for caca_load_font, caca_get_font_blocks, caca_put_figchar

* Add a working sample file examples/figfont.php
* Rename sample programs:
     examples1.php > cacapig.php
     drivers.php > cacainfo.php
tags/v0.99.beta17
Nicolas Vion nico 16 years ago
parent
commit
7f6e6d3fd8
5 changed files with 57 additions and 3 deletions
  1. +0
    -0
      caca-php/examples/cacainfo.php
  2. +0
    -0
      caca-php/examples/cacapig.php
  3. +24
    -0
      caca-php/examples/figfont.php
  4. +32
    -2
      caca-php/php_caca.c
  5. +1
    -1
      caca-php/php_caca.h

caca-php/examples/drivers.php → caca-php/examples/cacainfo.php View File


caca-php/examples/example1.php → caca-php/examples/cacapig.php View File


+ 24
- 0
caca-php/examples/figfont.php View File

@@ -0,0 +1,24 @@
#!/usr/bin/php5
<?php

if ($argc < 3) {
die("Too few arguments.\nUsage: cmd <path of font> <string>\n");
}

$cv = caca_create_canvas(0, 0);

if (!caca_canvas_set_figfont($cv, $argv[1])) {
die("Could not open font\n");
}

$str = $argv[2];
$color = 0;
for ($i = 0; $i < strlen($str); $i++) {
caca_set_color_ansi($cv, 1 + (($color += 4) % 15), CACA_TRANSPARENT);
caca_put_figchar($cv, ord($str[$i]));
}

echo caca_export_string($cv, "utf8");




+ 32
- 2
caca-php/php_caca.c View File

@@ -111,7 +111,7 @@ static function_entry caca_functions[] = {
PHP_FE(caca_get_font_list, NULL)
PHP_FE(caca_get_font_width, NULL)
PHP_FE(caca_get_font_height, NULL)
PHP_FE(caca_get_font_bloc, NULL)
PHP_FE(caca_get_font_blocks, NULL)
PHP_FE(caca_render_canvas, NULL)
PHP_FE(caca_canvas_set_figfont, NULL)
PHP_FE(caca_put_figchar, NULL)
@@ -1204,6 +1204,13 @@ PHP_FUNCTION(caca_dither_bitmap_gd) {
}

PHP_FUNCTION(caca_load_font) {
char *str;
long str_len;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &str, &str_len) == FAILURE) {
RETURN_FALSE;
}
caca_font_t *font = caca_load_font(str, str_len);
ZEND_REGISTER_RESOURCE(return_value, font, le_caca_font);
}

PHP_FUNCTION(caca_get_font_list) {
@@ -1234,7 +1241,20 @@ PHP_FUNCTION(caca_get_font_height) {
RETURN_LONG(caca_get_font_height(font));
}

PHP_FUNCTION(caca_get_font_bloc) {
PHP_FUNCTION(caca_get_font_blocks) {
zval *_zval;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &_zval) == FAILURE) {
RETURN_FALSE;
}
caca_font_t *font;
ZEND_FETCH_RESOURCE(font, caca_font_t*, &_zval, -1, PHP_CACA_FONT_RES_NAME, le_caca_font);

uint32_t const *list = caca_get_font_blocks(font);

int i;
array_init(return_value);
for(i = 0; list[i]; i += 1)
add_next_index_long(return_value, list[i]);
}

PHP_FUNCTION(caca_render_canvas) {
@@ -1253,6 +1273,16 @@ PHP_FUNCTION(caca_canvas_set_figfont) {
}

PHP_FUNCTION(caca_put_figchar) {
zval *_zval;
long c;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &_zval, &c) == FAILURE) {
RETURN_FALSE;
}
caca_canvas_t *canvas;
ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas);

//TODO: get a string instead of a long
caca_put_figchar(canvas, c);
}

PHP_FUNCTION(caca_flush_figlet) {


+ 1
- 1
caca-php/php_caca.h View File

@@ -128,7 +128,7 @@ PHP_FUNCTION(caca_load_font);
PHP_FUNCTION(caca_get_font_list);
PHP_FUNCTION(caca_get_font_width);
PHP_FUNCTION(caca_get_font_height);
PHP_FUNCTION(caca_get_font_bloc);
PHP_FUNCTION(caca_get_font_blocks);
PHP_FUNCTION(caca_render_canvas);
PHP_FUNCTION(caca_canvas_set_figfont);
PHP_FUNCTION(caca_put_figchar);


Loading…
Cancel
Save