cvs: php-src(PHP_5_2) /ext/ming ming.c php_ming.h
| From: | Frank M. Kromann | Date: | Tue, 05 Dec 2006 21:02:45 +0000 |
| Subject: | cvs: php-src(PHP_5_2) /ext/ming ming.c php_ming.h | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-41921@lists.php.net to get a copy of this message | ||
fmk Tue Dec 5 21:02:45 2006 UTC
Modified files: (Branch: PHP_5_2)
/php-src/ext/ming ming.c php_ming.h
Log:
#39429 Update API
http://cvs.php.net/viewvc.cgi/php-src/ext/ming/ming.c?r1=1.79.2.4.2.4&r2=1.79.2.4.2.5&diff_format=u Index: php-src/ext/ming/ming.c diff -u php-src/ext/ming/ming.c:1.79.2.4.2.4 php-src/ext/ming/ming.c:1.79.2.4.2.5 --- php-src/ext/ming/ming.c:1.79.2.4.2.4 Thu Nov 9 09:19:20 2006 +++ php-src/ext/ming/ming.c Tue Dec 5 21:02:45 2006 @@ -14,10 +14,11 @@ +----------------------------------------------------------------------+ | Authors: Dave Hayden <dave@opaque.net> | | Frank M. Kromann <fmk@php.net> | + | Stuart R. Anderson <anderson@netsweng.com> | +----------------------------------------------------------------------+ */ -/* $Id: ming.c,v 1.79.2.4.2.4 2006/11/09 09:19:20 fmk Exp $ */ +/* $Id: ming.c,v 1.79.2.4.2.5 2006/12/05 21:02:45 fmk Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -51,6 +52,7 @@ PHP_FALIAS(ming_keypress, ming_keypress, NULL) #ifdef HAVE_NEW_MING PHP_FALIAS(ming_useconstants, ming_useConstants, NULL) + PHP_FALIAS(ming_setswfcompression, ming_setSWFCompression, NULL) #endif { NULL, NULL, NULL } }; @@ -140,6 +142,19 @@ Ming_useConstants(Z_LVAL_PP(num)); } /* }}} */ + +/* {{{ set output compression */ +PHP_FUNCTION(ming_setSWFCompression) +{ + zval **num; + if(ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &num) == FAILURE) + WRONG_PARAM_COUNT; + + convert_to_long_ex(num); + Ming_setSWFCompression(Z_LVAL_PP(num)); +} +/* }}} */ + #endif static int le_swfmoviep; @@ -351,6 +366,7 @@ { zval **zfile, **zmask = NULL; SWFBitmap bitmap; + SWFJpegWithAlpha bitmap_alpha; SWFInput input, maskinput; int ret; @@ -383,15 +399,22 @@ } else { maskinput = getInput(zmask TSRMLS_CC); } - bitmap = newSWFJpegWithAlpha_fromInput(input, maskinput); + bitmap_alpha = newSWFJpegWithAlpha_fromInput(input, maskinput); + if(bitmap_alpha) { + ret = zend_list_insert(bitmap_alpha, le_swfbitmapp); + object_init_ex(getThis(), bitmap_class_entry_ptr); + add_property_resource(getThis(), "bitmap", ret); + zend_list_addref(ret); + } } else { bitmap = newSWFBitmap_fromInput(input); + if(bitmap) { + ret = zend_list_insert(bitmap, le_swfbitmapp); + object_init_ex(getThis(), bitmap_class_entry_ptr); + add_property_resource(getThis(), "bitmap", ret); + zend_list_addref(ret); + } } - - ret = zend_list_insert(bitmap, le_swfbitmapp); - object_init_ex(getThis(), bitmap_class_entry_ptr); - add_property_resource(getThis(), "bitmap", ret); - zend_list_addref(ret); } static void destroy_SWFBitmap_resource(zend_rsrc_list_entry *resource TSRMLS_DC) @@ -417,6 +440,9 @@ Returns the width of this bitmap */ PHP_METHOD(swfbitmap, getWidth) { + if(ZEND_NUM_ARGS() != 0) { + WRONG_PARAM_COUNT; + } RETURN_DOUBLE(SWFBitmap_getWidth(getBitmap(getThis() TSRMLS_CC))); } /* }}} */ @@ -425,6 +451,9 @@ Returns the height of this bitmap */ PHP_METHOD(swfbitmap, getHeight) { + if(ZEND_NUM_ARGS() != 0) { + WRONG_PARAM_COUNT; + } RETURN_DOUBLE(SWFBitmap_getHeight(getBitmap(getThis() TSRMLS_CC))); } /* }}} */ @@ -1515,6 +1544,9 @@ Returns the ascent of the font, or 0 if not available */ PHP_METHOD(swffont, getAscent) { + if(ZEND_NUM_ARGS() != 0) { + WRONG_PARAM_COUNT; + } RETURN_DOUBLE(SWFFont_getAscent(getFont(getThis() TSRMLS_CC))); } /* }}} */ @@ -1523,6 +1555,9 @@ Returns the descent of the font, or 0 if not available */ PHP_METHOD(swffont, getDescent) { + if(ZEND_NUM_ARGS() != 0) { + WRONG_PARAM_COUNT; + } RETURN_DOUBLE(SWFFont_getDescent(getFont(getThis() TSRMLS_CC))); } /* }}} */ @@ -1531,6 +1566,9 @@ Returns the leading of the font, or 0 if not available */ PHP_METHOD(swffont, getLeading) { + if(ZEND_NUM_ARGS() != 0) { + WRONG_PARAM_COUNT; + } RETURN_DOUBLE(SWFFont_getLeading(getFont(getThis() TSRMLS_CC))); } /* }}} */ @@ -2101,9 +2139,9 @@ WRONG_PARAM_COUNT; } convert_to_long_ex(version); - movie = newSWFMovie(Z_LVAL_PP(version)); + movie = newSWFMovieWithVersion(Z_LVAL_PP(version)); } else { - movie = newSWFMovie(4); /* default version 4 */ + movie = newSWFMovie(); /* default version 4 */ } ret = zend_list_insert(movie, le_swfmoviep); @@ -2154,6 +2192,48 @@ } /* }}} */ +/* {{{ proto void swfmovie::namedanchor(string name) +*/ +PHP_METHOD(swfmovie, namedAnchor) +{ + zval **name; + + if(ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &name) == FAILURE) { + WRONG_PARAM_COUNT; + } + + convert_to_string_ex(name); + + SWFMovie_namedAnchor(getMovie(getThis() TSRMLS_CC), Z_STRVAL_PP(name)); +} +/* }}} */ + +/* {{{ proto void swfmovie::protect([ string pasword]) +*/ +PHP_METHOD(swfmovie, protect) +{ + zval **zchar; + SWFMovie movie = getMovie(getThis() TSRMLS_CC); + + switch(ZEND_NUM_ARGS() ) { + case 0: + SWFMovie_protect(movie, NULL); + break; + case 1: + if( zend_get_parameters_ex(1, &zchar) == FAILURE) { + WRONG_PARAM_COUNT; + } + convert_to_string_ex(zchar); + SWFMovie_protect(movie,Z_STRVAL_PP(zchar)); + break; + default: + WRONG_PARAM_COUNT; + break; + } +} +/* }}} */ + + /* {{{ proto object swfmovie::add(object SWFBlock) */ PHP_METHOD(swfmovie, add) @@ -2189,7 +2269,7 @@ } /* }}} */ -/* {{{ proto void swfmovie::labelframe(object SWFBlock) +/* {{{ proto void swfmovie::remove(object SWFBlock) */ PHP_METHOD(swfmovie, remove) { @@ -2279,6 +2359,10 @@ php_stream_write((php_stream*)data, &b, 1); } +/* I'm not sure about the logic here as Ming_setSWFCompression() should be + * used with current Ming. I'll have to add some tests to the test suite to + * verify this functionallity before I can say for sure + */ PHP_METHOD(swfmovie, saveToFile) { zval **x; @@ -2702,6 +2786,8 @@ PHP_ME(swfmovie, importChar, NULL, 0) PHP_ME(swfmovie, importFont, NULL, 0) PHP_ME(swfmovie, addFont, NULL, 0) + PHP_ME(swfmovie, namedAnchor, NULL, 0) + PHP_ME(swfmovie, protect, NULL, 0) #endif { NULL, NULL, NULL } }; @@ -3655,6 +3741,9 @@ Returns the ascent of the current font at its current size, or 0 if not available */ PHP_METHOD(swftext, getAscent) { + if(ZEND_NUM_ARGS() != 0) { + WRONG_PARAM_COUNT; + } RETURN_DOUBLE(SWFText_getAscent(getText(getThis() TSRMLS_CC))); } /* }}} */ @@ -3663,6 +3752,9 @@ Returns the descent of the current font at its current size, or 0 if not available */ PHP_METHOD(swftext, getDescent) { + if(ZEND_NUM_ARGS() != 0) { + WRONG_PARAM_COUNT; + } RETURN_DOUBLE(SWFText_getDescent(getText(getThis() TSRMLS_CC))); } /* }}} */ @@ -3671,6 +3763,9 @@ Returns the leading of the current font at its current size, or 0 if not available */ PHP_METHOD(swftext, getLeading) { + if(ZEND_NUM_ARGS() != 0) { + WRONG_PARAM_COUNT; + } RETURN_DOUBLE(SWFText_getLeading(getText(getThis() TSRMLS_CC))); } /* }}} */ @@ -3744,6 +3839,19 @@ /* {{{ proto void swftextfield::setFont(object font) Sets the font for this textfield */ +static +SWFBlock getFontOrFontChar(zval *id TSRMLS_DC) +{ + if(Z_OBJCE_P(id) == font_class_entry_ptr) { + return (SWFBlock)getFont(id TSRMLS_CC); + } else if(Z_OBJCE_P(id) == fontchar_class_entry_ptr) { + return (SWFBlock)getFontCharacter(id TSRMLS_CC); + } else { + php_error(E_ERROR, "called object is not an SWFFont or SWFFontCharacter"); + } + return NULL; +} + PHP_METHOD(swftextfield, setFont) { zval **font; @@ -3753,7 +3861,7 @@ WRONG_PARAM_COUNT; } convert_to_object_ex(font); - SWFTextField_setFont(field, getFont(*font TSRMLS_CC)); + SWFTextField_setFont(field, getFontOrFontChar(*font TSRMLS_CC)); } /* }}} */ @@ -4027,6 +4135,25 @@ /* {{{ todo PHP_MINIT_FUNCTION(ming) */ +#if PHP_API_VERSION == 20020918 +static php4_fix_funcnames(char *class_name, zend_function_entry *funcs) +{ + zend_function_entry *pf = funcs; + char *pname; + + while(funcs->fname) { + if( strcmp(funcs->fname,"__construct") == 0 ) { + pname=strdup(class_name); + } else { + pname=strdup(funcs->fname); + } + funcs->fname=pname; + while(*pname) { *pname=tolower(*pname);pname++;} + funcs++; + } +} +#endif + /* custom error handler propagates ming errors up to php */ static void php_ming_error(const char *msg, ...) { @@ -4123,6 +4250,8 @@ CONSTANT("SWFTEXTFIELD_DRAWBOX", SWFTEXTFIELD_DRAWBOX); CONSTANT("SWFTEXTFIELD_NOSELECT", SWFTEXTFIELD_NOSELECT); CONSTANT("SWFTEXTFIELD_HTML", SWFTEXTFIELD_HTML); + CONSTANT("SWFTEXTFIELD_USEFONT", SWFTEXTFIELD_USEFONT); + CONSTANT("SWFTEXTFIELD_AUTOSIZE", SWFTEXTFIELD_AUTOSIZE); /* flags for SWFTextField_align */ CONSTANT("SWFTEXTFIELD_ALIGN_LEFT", SWFTEXTFIELD_ALIGN_LEFT); @@ -4141,6 +4270,21 @@ CONSTANT("SWFACTION_KEYUP", SWFACTION_KEYUP); CONSTANT("SWFACTION_DATA", SWFACTION_DATA); + /* flags for SWFSound */ + CONSTANT("SWF_SOUND_NOT_COMPRESSED", SWF_SOUND_NOT_COMPRESSED); + CONSTANT("SWF_SOUND_ADPCM_COMPRESSED", SWF_SOUND_ADPCM_COMPRESSED); + CONSTANT("SWF_SOUND_MP3_COMPRESSED", SWF_SOUND_MP3_COMPRESSED); + CONSTANT("SWF_SOUND_NOT_COMPRESSED_LE", SWF_SOUND_NOT_COMPRESSED_LE); + CONSTANT("SWF_SOUND_NELLY_COMPRESSED", SWF_SOUND_NELLY_COMPRESSED); + CONSTANT("SWF_SOUND_5KHZ", SWF_SOUND_5KHZ); + CONSTANT("SWF_SOUND_11KHZ", SWF_SOUND_11KHZ); + CONSTANT("SWF_SOUND_22KHZ", SWF_SOUND_22KHZ); + CONSTANT("SWF_SOUND_44KHZ", SWF_SOUND_44KHZ); + CONSTANT("SWF_SOUND_8BITS", SWF_SOUND_8BITS); + CONSTANT("SWF_SOUND_16BITS", SWF_SOUND_16BITS); + CONSTANT("SWF_SOUND_MONO", SWF_SOUND_MONO); + CONSTANT("SWF_SOUND_STEREO", SWF_SOUND_STEREO); + le_swfshapep = zend_register_list_destructors_ex(destroy_SWFShape_resource, NULL, "SWFShape", module_number); le_swffillp = zend_register_list_destructors_ex(destroy_SWFFill_resource, NULL, "SWFFill", module_number); le_swfgradientp = zend_register_list_destructors_ex(destroy_SWFGradient_resource, NULL, "SWFGradient", module_number); http://cvs.php.net/viewvc.cgi/php-src/ext/ming/php_ming.h?r1=1.17.2.1&r2=1.17.2.1.2.1&diff_format=u Index: php-src/ext/ming/php_ming.h diff -u php-src/ext/ming/php_ming.h:1.17.2.1 php-src/ext/ming/php_ming.h:1.17.2.1.2.1 --- php-src/ext/ming/php_ming.h:1.17.2.1 Sun Jan 1 12:50:09 2006 +++ php-src/ext/ming/php_ming.h Tue Dec 5 21:02:45 2006 @@ -14,10 +14,11 @@ +----------------------------------------------------------------------+ | Authors: Dave Hayden <dave@opaque.net> | | Frank M. Kromann <fmk@php.net> | + | Stuart R. Anderson <anderson@netsweng.com> | +----------------------------------------------------------------------+ */ -/* $Id: php_ming.h,v 1.17.2.1 2006/01/01 12:50:09 sniper Exp $ */ +/* $Id: php_ming.h,v 1.17.2.1.2.1 2006/12/05 21:02:45 fmk Exp $ */ #ifndef _PHP_MING_H #define _PHP_MING_H @@ -35,6 +36,12 @@ PHP_METHOD(swfbitmap, getWidth); PHP_METHOD(swfbitmap, getHeight); +PHP_METHOD(swfvideostream, init); +PHP_METHOD(swfvideostream, setdimention); +PHP_METHOD(swfvideostream, getnumframes); + +PHP_METHOD(swfprebuiltclip, init); + PHP_METHOD(swffill, init); PHP_METHOD(swffill, moveTo); PHP_METHOD(swffill, scaleTo); @@ -62,6 +69,8 @@ PHP_METHOD(swfshape, drawcubic); PHP_METHOD(swfshape, drawcubicto); +/* SWFMovie */ + PHP_METHOD(swfmovie, init); PHP_METHOD(swfmovie, output); PHP_METHOD(swfmovie, saveToFile); @@ -70,12 +79,14 @@ PHP_METHOD(swfmovie, remove); PHP_METHOD(swfmovie, nextFrame); PHP_METHOD(swfmovie, labelFrame); +PHP_METHOD(swfmovie, namedAnchor); PHP_METHOD(swfmovie, setBackground); PHP_METHOD(swfmovie, setRate); PHP_METHOD(swfmovie, setDimension); PHP_METHOD(swfmovie, setFrames); #ifdef HAVE_NEW_MING +PHP_METHOD(swfmovie, protect); PHP_METHOD(swfmovie, streamMp3); PHP_METHOD(swfmovie, addExport); PHP_METHOD(swfmovie, writeExports); @@ -84,7 +95,9 @@ PHP_METHOD(swfmovie, importChar); PHP_METHOD(swfmovie, importFont); PHP_METHOD(swfmovie, addFont); -#endif +# endif + +/* SWFSprint */ PHP_METHOD(swfsprite, init); PHP_METHOD(swfsprite, add); @@ -98,6 +111,8 @@ PHP_METHOD(swfsprite, stopSound); #endif +/* SWFFont */ + PHP_METHOD(swffont, init); PHP_METHOD(swffont, getWidth); @@ -117,6 +132,8 @@ PHP_METHOD(swffont, getLeading); +/* SWFText */ + PHP_METHOD(swftext, init); PHP_METHOD(swftext, setFont); PHP_METHOD(swftext, setHeight); @@ -141,6 +158,8 @@ PHP_METHOD(swftext, getDescent); PHP_METHOD(swftext, getLeading); +/* SWFTextField */ + PHP_METHOD(swftextfield, init); PHP_METHOD(swftextfield, setFont); PHP_METHOD(swftextfield, setBounds); @@ -157,9 +176,13 @@ PHP_METHOD(swftextfield, setPadding); PHP_METHOD(swftextfield, addChars); +/* SWFFontChar */ + PHP_METHOD(swffontchar, addChars); PHP_METHOD(swffontchar, addUTF8Chars); +/* SWFDisplayItem */ + PHP_METHOD(swfdisplayitem, move); PHP_METHOD(swfdisplayitem, moveTo); PHP_METHOD(swfdisplayitem, scale); @@ -191,6 +214,8 @@ PHP_METHOD(swfdisplayitem, getRot); #endif +/* SWFButton */ + PHP_METHOD(swfbutton, init); PHP_METHOD(swfbutton, setHit); PHP_METHOD(swfbutton, setOver); @@ -209,14 +234,22 @@ PHP_METHOD(swfbutton, addSound); #endif +/* SWFAction */ + PHP_METHOD(swfaction, init); +/* SWFMorph */ + PHP_METHOD(swfmorph, init); PHP_METHOD(swfmorph, getShape1); PHP_METHOD(swfmorph, getShape2); +/* SWFSound */ + PHP_METHOD(swfsound, init); +/* SWFSoundInstance */ + #ifdef HAVE_NEW_MING PHP_METHOD(swfsoundinstance, noMultiple); PHP_METHOD(swfsoundinstance, loopInPoint); @@ -224,6 +257,8 @@ PHP_METHOD(swfsoundinstance, loopCount); #endif +/* SWF Utils */ + PHP_FUNCTION(ming_keypress); PHP_FUNCTION(ming_setCubicThreshold); PHP_FUNCTION(ming_setScale); @@ -231,6 +266,7 @@ #ifdef HAVE_NEW_MING PHP_FUNCTION(ming_useConstants); +PHP_FUNCTION(ming_setSWFCompression); #endif #else
http://cvs.php.net/viewvc.cgi/php-src/ext/ming/ming.c?r1=1.79.2.4.2.4&r2=1.79.2.4.2.5&diff_format=u Index: php-src/ext/ming/ming.c diff -u php-src/ext/ming/ming.c:1.79.2.4.2.4 php-src/ext/ming/ming.c:1.79.2.4.2.5 --- php-src/ext/ming/ming.c:1.79.2.4.2.4 Thu Nov 9 09:19:20 2006 +++ php-src/ext/ming/ming.c Tue Dec 5 21:02:45 2006 @@ -14,10 +14,11 @@ +----------------------------------------------------------------------+ | Authors: Dave Hayden <dave@opaque.net> | | Frank M. Kromann <fmk@php.net> | + | Stuart R. Anderson <anderson@netsweng.com> | +----------------------------------------------------------------------+ */ -/* $Id: ming.c,v 1.79.2.4.2.4 2006/11/09 09:19:20 fmk Exp $ */ +/* $Id: ming.c,v 1.79.2.4.2.5 2006/12/05 21:02:45 fmk Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -51,6 +52,7 @@ PHP_FALIAS(ming_keypress, ming_keypress, NULL) #ifdef HAVE_NEW_MING PHP_FALIAS(ming_useconstants, ming_useConstants, NULL) + PHP_FALIAS(ming_setswfcompression, ming_setSWFCompression, NULL) #endif { NULL, NULL, NULL } }; @@ -140,6 +142,19 @@ Ming_useConstants(Z_LVAL_PP(num)); } /* }}} */ + +/* {{{ set output compression */ +PHP_FUNCTION(ming_setSWFCompression) +{ + zval **num; + if(ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &num) == FAILURE) + WRONG_PARAM_COUNT; + + convert_to_long_ex(num); + Ming_setSWFCompression(Z_LVAL_PP(num)); +} +/* }}} */ + #endif static int le_swfmoviep; @@ -351,6 +366,7 @@ { zval **zfile, **zmask = NULL; SWFBitmap bitmap; + SWFJpegWithAlpha bitmap_alpha; SWFInput input, maskinput; int ret; @@ -383,15 +399,22 @@ } else { maskinput = getInput(zmask TSRMLS_CC); } - bitmap = newSWFJpegWithAlpha_fromInput(input, maskinput); + bitmap_alpha = newSWFJpegWithAlpha_fromInput(input, maskinput); + if(bitmap_alpha) { + ret = zend_list_insert(bitmap_alpha, le_swfbitmapp); + object_init_ex(getThis(), bitmap_class_entry_ptr); + add_property_resource(getThis(), "bitmap", ret); + zend_list_addref(ret); + } } else { bitmap = newSWFBitmap_fromInput(input); + if(bitmap) { + ret = zend_list_insert(bitmap, le_swfbitmapp); + object_init_ex(getThis(), bitmap_class_entry_ptr); + add_property_resource(getThis(), "bitmap", ret); + zend_list_addref(ret); + } } - - ret = zend_list_insert(bitmap, le_swfbitmapp); - object_init_ex(getThis(), bitmap_class_entry_ptr); - add_property_resource(getThis(), "bitmap", ret); - zend_list_addref(ret); } static void destroy_SWFBitmap_resource(zend_rsrc_list_entry *resource TSRMLS_DC) @@ -417,6 +440,9 @@ Returns the width of this bitmap */ PHP_METHOD(swfbitmap, getWidth) { + if(ZEND_NUM_ARGS() != 0) { + WRONG_PARAM_COUNT; + } RETURN_DOUBLE(SWFBitmap_getWidth(getBitmap(getThis() TSRMLS_CC))); } /* }}} */ @@ -425,6 +451,9 @@ Returns the height of this bitmap */ PHP_METHOD(swfbitmap, getHeight) { + if(ZEND_NUM_ARGS() != 0) { + WRONG_PARAM_COUNT; + } RETURN_DOUBLE(SWFBitmap_getHeight(getBitmap(getThis() TSRMLS_CC))); } /* }}} */ @@ -1515,6 +1544,9 @@ Returns the ascent of the font, or 0 if not available */ PHP_METHOD(swffont, getAscent) { + if(ZEND_NUM_ARGS() != 0) { + WRONG_PARAM_COUNT; + } RETURN_DOUBLE(SWFFont_getAscent(getFont(getThis() TSRMLS_CC))); } /* }}} */ @@ -1523,6 +1555,9 @@ Returns the descent of the font, or 0 if not available */ PHP_METHOD(swffont, getDescent) { + if(ZEND_NUM_ARGS() != 0) { + WRONG_PARAM_COUNT; + } RETURN_DOUBLE(SWFFont_getDescent(getFont(getThis() TSRMLS_CC))); } /* }}} */ @@ -1531,6 +1566,9 @@ Returns the leading of the font, or 0 if not available */ PHP_METHOD(swffont, getLeading) { + if(ZEND_NUM_ARGS() != 0) { + WRONG_PARAM_COUNT; + } RETURN_DOUBLE(SWFFont_getLeading(getFont(getThis() TSRMLS_CC))); } /* }}} */ @@ -2101,9 +2139,9 @@ WRONG_PARAM_COUNT; } convert_to_long_ex(version); - movie = newSWFMovie(Z_LVAL_PP(version)); + movie = newSWFMovieWithVersion(Z_LVAL_PP(version)); } else { - movie = newSWFMovie(4); /* default version 4 */ + movie = newSWFMovie(); /* default version 4 */ } ret = zend_list_insert(movie, le_swfmoviep); @@ -2154,6 +2192,48 @@ } /* }}} */ +/* {{{ proto void swfmovie::namedanchor(string name) +*/ +PHP_METHOD(swfmovie, namedAnchor) +{ + zval **name; + + if(ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &name) == FAILURE) { + WRONG_PARAM_COUNT; + } + + convert_to_string_ex(name); + + SWFMovie_namedAnchor(getMovie(getThis() TSRMLS_CC), Z_STRVAL_PP(name)); +} +/* }}} */ + +/* {{{ proto void swfmovie::protect([ string pasword]) +*/ +PHP_METHOD(swfmovie, protect) +{ + zval **zchar; + SWFMovie movie = getMovie(getThis() TSRMLS_CC); + + switch(ZEND_NUM_ARGS() ) { + case 0: + SWFMovie_protect(movie, NULL); + break; + case 1: + if( zend_get_parameters_ex(1, &zchar) == FAILURE) { + WRONG_PARAM_COUNT; + } + convert_to_string_ex(zchar); + SWFMovie_protect(movie,Z_STRVAL_PP(zchar)); + break; + default: + WRONG_PARAM_COUNT; + break; + } +} +/* }}} */ + + /* {{{ proto object swfmovie::add(object SWFBlock) */ PHP_METHOD(swfmovie, add) @@ -2189,7 +2269,7 @@ } /* }}} */ -/* {{{ proto void swfmovie::labelframe(object SWFBlock) +/* {{{ proto void swfmovie::remove(object SWFBlock) */ PHP_METHOD(swfmovie, remove) { @@ -2279,6 +2359,10 @@ php_stream_write((php_stream*)data, &b, 1); } +/* I'm not sure about the logic here as Ming_setSWFCompression() should be + * used with current Ming. I'll have to add some tests to the test suite to + * verify this functionallity before I can say for sure + */ PHP_METHOD(swfmovie, saveToFile) { zval **x; @@ -2702,6 +2786,8 @@ PHP_ME(swfmovie, importChar, NULL, 0) PHP_ME(swfmovie, importFont, NULL, 0) PHP_ME(swfmovie, addFont, NULL, 0) + PHP_ME(swfmovie, namedAnchor, NULL, 0) + PHP_ME(swfmovie, protect, NULL, 0) #endif { NULL, NULL, NULL } }; @@ -3655,6 +3741,9 @@ Returns the ascent of the current font at its current size, or 0 if not available */ PHP_METHOD(swftext, getAscent) { + if(ZEND_NUM_ARGS() != 0) { + WRONG_PARAM_COUNT; + } RETURN_DOUBLE(SWFText_getAscent(getText(getThis() TSRMLS_CC))); } /* }}} */ @@ -3663,6 +3752,9 @@ Returns the descent of the current font at its current size, or 0 if not available */ PHP_METHOD(swftext, getDescent) { + if(ZEND_NUM_ARGS() != 0) { + WRONG_PARAM_COUNT; + } RETURN_DOUBLE(SWFText_getDescent(getText(getThis() TSRMLS_CC))); } /* }}} */ @@ -3671,6 +3763,9 @@ Returns the leading of the current font at its current size, or 0 if not available */ PHP_METHOD(swftext, getLeading) { + if(ZEND_NUM_ARGS() != 0) { + WRONG_PARAM_COUNT; + } RETURN_DOUBLE(SWFText_getLeading(getText(getThis() TSRMLS_CC))); } /* }}} */ @@ -3744,6 +3839,19 @@ /* {{{ proto void swftextfield::setFont(object font) Sets the font for this textfield */ +static +SWFBlock getFontOrFontChar(zval *id TSRMLS_DC) +{ + if(Z_OBJCE_P(id) == font_class_entry_ptr) { + return (SWFBlock)getFont(id TSRMLS_CC); + } else if(Z_OBJCE_P(id) == fontchar_class_entry_ptr) { + return (SWFBlock)getFontCharacter(id TSRMLS_CC); + } else { + php_error(E_ERROR, "called object is not an SWFFont or SWFFontCharacter"); + } + return NULL; +} + PHP_METHOD(swftextfield, setFont) { zval **font; @@ -3753,7 +3861,7 @@ WRONG_PARAM_COUNT; } convert_to_object_ex(font); - SWFTextField_setFont(field, getFont(*font TSRMLS_CC)); + SWFTextField_setFont(field, getFontOrFontChar(*font TSRMLS_CC)); } /* }}} */ @@ -4027,6 +4135,25 @@ /* {{{ todo PHP_MINIT_FUNCTION(ming) */ +#if PHP_API_VERSION == 20020918 +static php4_fix_funcnames(char *class_name, zend_function_entry *funcs) +{ + zend_function_entry *pf = funcs; + char *pname; + + while(funcs->fname) { + if( strcmp(funcs->fname,"__construct") == 0 ) { + pname=strdup(class_name); + } else { + pname=strdup(funcs->fname); + } + funcs->fname=pname; + while(*pname) { *pname=tolower(*pname);pname++;} + funcs++; + } +} +#endif + /* custom error handler propagates ming errors up to php */ static void php_ming_error(const char *msg, ...) { @@ -4123,6 +4250,8 @@ CONSTANT("SWFTEXTFIELD_DRAWBOX", SWFTEXTFIELD_DRAWBOX); CONSTANT("SWFTEXTFIELD_NOSELECT", SWFTEXTFIELD_NOSELECT); CONSTANT("SWFTEXTFIELD_HTML", SWFTEXTFIELD_HTML); + CONSTANT("SWFTEXTFIELD_USEFONT", SWFTEXTFIELD_USEFONT); + CONSTANT("SWFTEXTFIELD_AUTOSIZE", SWFTEXTFIELD_AUTOSIZE); /* flags for SWFTextField_align */ CONSTANT("SWFTEXTFIELD_ALIGN_LEFT", SWFTEXTFIELD_ALIGN_LEFT); @@ -4141,6 +4270,21 @@ CONSTANT("SWFACTION_KEYUP", SWFACTION_KEYUP); CONSTANT("SWFACTION_DATA", SWFACTION_DATA); + /* flags for SWFSound */ + CONSTANT("SWF_SOUND_NOT_COMPRESSED", SWF_SOUND_NOT_COMPRESSED); + CONSTANT("SWF_SOUND_ADPCM_COMPRESSED", SWF_SOUND_ADPCM_COMPRESSED); + CONSTANT("SWF_SOUND_MP3_COMPRESSED", SWF_SOUND_MP3_COMPRESSED); + CONSTANT("SWF_SOUND_NOT_COMPRESSED_LE", SWF_SOUND_NOT_COMPRESSED_LE); + CONSTANT("SWF_SOUND_NELLY_COMPRESSED", SWF_SOUND_NELLY_COMPRESSED); + CONSTANT("SWF_SOUND_5KHZ", SWF_SOUND_5KHZ); + CONSTANT("SWF_SOUND_11KHZ", SWF_SOUND_11KHZ); + CONSTANT("SWF_SOUND_22KHZ", SWF_SOUND_22KHZ); + CONSTANT("SWF_SOUND_44KHZ", SWF_SOUND_44KHZ); + CONSTANT("SWF_SOUND_8BITS", SWF_SOUND_8BITS); + CONSTANT("SWF_SOUND_16BITS", SWF_SOUND_16BITS); + CONSTANT("SWF_SOUND_MONO", SWF_SOUND_MONO); + CONSTANT("SWF_SOUND_STEREO", SWF_SOUND_STEREO); + le_swfshapep = zend_register_list_destructors_ex(destroy_SWFShape_resource, NULL, "SWFShape", module_number); le_swffillp = zend_register_list_destructors_ex(destroy_SWFFill_resource, NULL, "SWFFill", module_number); le_swfgradientp = zend_register_list_destructors_ex(destroy_SWFGradient_resource, NULL, "SWFGradient", module_number); http://cvs.php.net/viewvc.cgi/php-src/ext/ming/php_ming.h?r1=1.17.2.1&r2=1.17.2.1.2.1&diff_format=u Index: php-src/ext/ming/php_ming.h diff -u php-src/ext/ming/php_ming.h:1.17.2.1 php-src/ext/ming/php_ming.h:1.17.2.1.2.1 --- php-src/ext/ming/php_ming.h:1.17.2.1 Sun Jan 1 12:50:09 2006 +++ php-src/ext/ming/php_ming.h Tue Dec 5 21:02:45 2006 @@ -14,10 +14,11 @@ +----------------------------------------------------------------------+ | Authors: Dave Hayden <dave@opaque.net> | | Frank M. Kromann <fmk@php.net> | + | Stuart R. Anderson <anderson@netsweng.com> | +----------------------------------------------------------------------+ */ -/* $Id: php_ming.h,v 1.17.2.1 2006/01/01 12:50:09 sniper Exp $ */ +/* $Id: php_ming.h,v 1.17.2.1.2.1 2006/12/05 21:02:45 fmk Exp $ */ #ifndef _PHP_MING_H #define _PHP_MING_H @@ -35,6 +36,12 @@ PHP_METHOD(swfbitmap, getWidth); PHP_METHOD(swfbitmap, getHeight); +PHP_METHOD(swfvideostream, init); +PHP_METHOD(swfvideostream, setdimention); +PHP_METHOD(swfvideostream, getnumframes); + +PHP_METHOD(swfprebuiltclip, init); + PHP_METHOD(swffill, init); PHP_METHOD(swffill, moveTo); PHP_METHOD(swffill, scaleTo); @@ -62,6 +69,8 @@ PHP_METHOD(swfshape, drawcubic); PHP_METHOD(swfshape, drawcubicto); +/* SWFMovie */ + PHP_METHOD(swfmovie, init); PHP_METHOD(swfmovie, output); PHP_METHOD(swfmovie, saveToFile); @@ -70,12 +79,14 @@ PHP_METHOD(swfmovie, remove); PHP_METHOD(swfmovie, nextFrame); PHP_METHOD(swfmovie, labelFrame); +PHP_METHOD(swfmovie, namedAnchor); PHP_METHOD(swfmovie, setBackground); PHP_METHOD(swfmovie, setRate); PHP_METHOD(swfmovie, setDimension); PHP_METHOD(swfmovie, setFrames); #ifdef HAVE_NEW_MING +PHP_METHOD(swfmovie, protect); PHP_METHOD(swfmovie, streamMp3); PHP_METHOD(swfmovie, addExport); PHP_METHOD(swfmovie, writeExports); @@ -84,7 +95,9 @@ PHP_METHOD(swfmovie, importChar); PHP_METHOD(swfmovie, importFont); PHP_METHOD(swfmovie, addFont); -#endif +# endif + +/* SWFSprint */ PHP_METHOD(swfsprite, init); PHP_METHOD(swfsprite, add); @@ -98,6 +111,8 @@ PHP_METHOD(swfsprite, stopSound); #endif +/* SWFFont */ + PHP_METHOD(swffont, init); PHP_METHOD(swffont, getWidth); @@ -117,6 +132,8 @@ PHP_METHOD(swffont, getLeading); +/* SWFText */ + PHP_METHOD(swftext, init); PHP_METHOD(swftext, setFont); PHP_METHOD(swftext, setHeight); @@ -141,6 +158,8 @@ PHP_METHOD(swftext, getDescent); PHP_METHOD(swftext, getLeading); +/* SWFTextField */ + PHP_METHOD(swftextfield, init); PHP_METHOD(swftextfield, setFont); PHP_METHOD(swftextfield, setBounds); @@ -157,9 +176,13 @@ PHP_METHOD(swftextfield, setPadding); PHP_METHOD(swftextfield, addChars); +/* SWFFontChar */ + PHP_METHOD(swffontchar, addChars); PHP_METHOD(swffontchar, addUTF8Chars); +/* SWFDisplayItem */ + PHP_METHOD(swfdisplayitem, move); PHP_METHOD(swfdisplayitem, moveTo); PHP_METHOD(swfdisplayitem, scale); @@ -191,6 +214,8 @@ PHP_METHOD(swfdisplayitem, getRot); #endif +/* SWFButton */ + PHP_METHOD(swfbutton, init); PHP_METHOD(swfbutton, setHit); PHP_METHOD(swfbutton, setOver); @@ -209,14 +234,22 @@ PHP_METHOD(swfbutton, addSound); #endif +/* SWFAction */ + PHP_METHOD(swfaction, init); +/* SWFMorph */ + PHP_METHOD(swfmorph, init); PHP_METHOD(swfmorph, getShape1); PHP_METHOD(swfmorph, getShape2); +/* SWFSound */ + PHP_METHOD(swfsound, init); +/* SWFSoundInstance */ + #ifdef HAVE_NEW_MING PHP_METHOD(swfsoundinstance, noMultiple); PHP_METHOD(swfsoundinstance, loopInPoint); @@ -224,6 +257,8 @@ PHP_METHOD(swfsoundinstance, loopCount); #endif +/* SWF Utils */ + PHP_FUNCTION(ming_keypress); PHP_FUNCTION(ming_setCubicThreshold); PHP_FUNCTION(ming_setScale); @@ -231,6 +266,7 @@ #ifdef HAVE_NEW_MING PHP_FUNCTION(ming_useConstants); +PHP_FUNCTION(ming_setSWFCompression); #endif #else