diff options
author | Mark A. Hershberger <mah@debian.(none)> | 2009-03-25 00:37:27 -0400 |
---|---|---|
committer | Mark A. Hershberger <mah@debian.(none)> | 2009-03-25 00:37:27 -0400 |
commit | 2d4e5b09576bb4f0ba716cc82cdf29ea04d9184b (patch) | |
tree | 41ccc042009cba53e4ce43e727fcba4c1cfbf7f3 /ext/ming | |
parent | d29a4fd2dd3b5d4cf6e80b602544d7b71d794e76 (diff) | |
download | php-2d4e5b09576bb4f0ba716cc82cdf29ea04d9184b.tar.gz |
Imported Upstream version 5.2.2upstream/5.2.2
Diffstat (limited to 'ext/ming')
-rw-r--r-- | ext/ming/config.m4 | 6 | ||||
-rw-r--r-- | ext/ming/ming.c | 183 | ||||
-rw-r--r-- | ext/ming/php_ming.h | 46 |
3 files changed, 212 insertions, 23 deletions
diff --git a/ext/ming/config.m4 b/ext/ming/config.m4 index 611b86504..90b556398 100644 --- a/ext/ming/config.m4 +++ b/ext/ming/config.m4 @@ -1,5 +1,5 @@ dnl -dnl $Id: config.m4,v 1.22.2.6 2005/12/21 21:44:13 sniper Exp $ +dnl $Id: config.m4,v 1.22.2.6.2.4 2007/03/06 10:13:40 tony2001 Exp $ dnl PHP_ARG_WITH(ming, for MING support, @@ -41,6 +41,8 @@ if test "$PHP_MING" != "no"; then PHP_ADD_LIBRARY_WITH_PATH(ming, $MING_DIR/$PHP_LIBDIR, MING_SHARED_LIBADD) PHP_CHECK_LIBRARY(ming, SWFPrebuiltClip, [ AC_DEFINE(HAVE_SWFPREBUILTCLIP, 1, [ ]) ], [], []) + PHP_CHECK_LIBRARY(ming, SWFMovie_namedAnchor, [ AC_DEFINE(HAVE_SWFMOVIE_NAMEDANCHOR, 1, [ ]) ], [], []) + PHP_CHECK_LIBRARY(ming, Ming_setSWFCompression, [ AC_DEFINE(HAVE_MING_SETSWFCOMPRESSION, 1, [ ]) ], [], []) old_CPPFLAGS=$CPPFLAGS CPPFLAGS=-I$MING_INC_DIR @@ -78,7 +80,7 @@ yes AC_TRY_COMPILE([ #include <ming.h> ], [ -int main(void) { SWFMovie_output(NULL, NULL, NULL, 0); return 0; } +SWFMovie_output(NULL, NULL, NULL, 0); ], [ AC_DEFINE(HAVE_MING_MOVIE_LEVEL, 1, [ ]) ], []) diff --git a/ext/ming/ming.c b/ext/ming/ming.c index 13e906c48..66b511c64 100644 --- a/ext/ming/ming.c +++ b/ext/ming/ming.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | PHP Version 5 | +----------------------------------------------------------------------+ - | Copyright (c) 1997-2006 The PHP Group | + | Copyright (c) 1997-2007 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | @@ -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.1 2006/05/22 14:22:18 iliaa Exp $ */ +/* $Id: ming.c,v 1.79.2.4.2.8 2007/01/06 19:25:31 nlopess Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -52,6 +53,9 @@ static zend_function_entry ming_functions[] = { #ifdef HAVE_NEW_MING PHP_FALIAS(ming_useconstants, ming_useConstants, NULL) #endif +#ifdef HAVE_MING_SETSWFCOMPRESSION + PHP_FALIAS(ming_setswfcompression, ming_setSWFCompression, NULL) +#endif { NULL, NULL, NULL } }; @@ -142,6 +146,20 @@ PHP_FUNCTION(ming_useConstants) /* }}} */ #endif +#ifdef HAVE_MING_SETSWFCOMPRESSION +/* {{{ 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; static int le_swfshapep; static int le_swffillp; @@ -351,6 +369,7 @@ PHP_METHOD(swfbitmap, __construct) { zval **zfile, **zmask = NULL; SWFBitmap bitmap; + SWFJpegWithAlpha bitmap_alpha; SWFInput input, maskinput; int ret; @@ -383,15 +402,22 @@ PHP_METHOD(swfbitmap, __construct) } 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 +443,9 @@ static SWFBitmap getBitmap(zval *id TSRMLS_DC) 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 +454,9 @@ PHP_METHOD(swfbitmap, getWidth) 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 +1547,9 @@ PHP_METHOD(swffont, getWideWidth) 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 +1558,9 @@ PHP_METHOD(swffont, getAscent) 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 +1569,9 @@ PHP_METHOD(swffont, getDescent) 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 +2142,9 @@ PHP_METHOD(swfmovie, __construct) 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 +2195,50 @@ PHP_METHOD(swfmovie, labelFrame) } /* }}} */ +#ifdef HAVE_SWFMOVIE_NAMEDANCHOR +/* {{{ 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)); +} +/* }}} */ +#endif + +/* {{{ 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 +2274,7 @@ PHP_METHOD(swfmovie, add) } /* }}} */ -/* {{{ proto void swfmovie::labelframe(object SWFBlock) +/* {{{ proto void swfmovie::remove(object SWFBlock) */ PHP_METHOD(swfmovie, remove) { @@ -2279,6 +2364,10 @@ static void phpStreamOutputMethod(byte b, void * data) 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; @@ -2476,17 +2565,31 @@ PHP_METHOD(swfmovie, setFrames) /* }}} */ #ifdef HAVE_NEW_MING -/* {{{ proto void swfmovie::streamMP3(mixed file) - Sets sound stream of the SWF movie. The parameter can be stream or string. */ +/* {{{ proto int swfmovie::streamMP3(mixed file [, float skip]) + Sets sound stream of the SWF movie. The parameter can be stream or string. Retuens the number of frames. */ PHP_METHOD(swfmovie, streamMP3) { - zval **zfile; + zval **zfile, **zskip; + float skip; SWFSoundStream sound; SWFInput input; SWFMovie movie = getMovie(getThis() TSRMLS_CC); - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &zfile) == FAILURE) { - WRONG_PARAM_COUNT; + switch (ZEND_NUM_ARGS()) { + case 1: + if(zend_get_parameters_ex(1, &zfile) == FAILURE) + WRONG_PARAM_COUNT; + skip = 0; + break; + case 2: + if(zend_get_parameters_ex(2, &zfile, &zskip) == FAILURE) + WRONG_PARAM_COUNT; + convert_to_double_ex(zskip); + skip = Z_DVAL_PP(zskip); + break; + default: + WRONG_PARAM_COUNT; + break; } if (Z_TYPE_PP(zfile) != IS_RESOURCE) { @@ -2498,7 +2601,8 @@ PHP_METHOD(swfmovie, streamMP3) } sound = newSWFSoundStream_fromInput(input); - SWFMovie_setSoundStream(movie, sound); + SWFMovie_setSoundStreamAt(movie, sound, skip); + RETURN_LONG(SWFSoundStream_getFrames(sound)); } /* }}} */ @@ -2687,6 +2791,10 @@ static zend_function_entry swfmovie_functions[] = { PHP_ME(swfmovie, importChar, NULL, 0) PHP_ME(swfmovie, importFont, NULL, 0) PHP_ME(swfmovie, addFont, NULL, 0) + PHP_ME(swfmovie, protect, NULL, 0) +#endif +#ifdef HAVE_SWFMOVIE_NAMEDANCHOR + PHP_ME(swfmovie, namedAnchor, NULL, 0) #endif { NULL, NULL, NULL } }; @@ -3640,6 +3748,9 @@ PHP_METHOD(swftext, getWideWidth) 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))); } /* }}} */ @@ -3648,6 +3759,9 @@ PHP_METHOD(swftext, getAscent) 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))); } /* }}} */ @@ -3656,6 +3770,9 @@ PHP_METHOD(swftext, getDescent) 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))); } /* }}} */ @@ -3729,6 +3846,19 @@ static SWFTextField getTextField(zval *id TSRMLS_DC) /* {{{ 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; @@ -3738,7 +3868,7 @@ PHP_METHOD(swftextfield, setFont) WRONG_PARAM_COUNT; } convert_to_object_ex(font); - SWFTextField_setFont(field, getFont(*font TSRMLS_CC)); + SWFTextField_setFont(field, getFontOrFontChar(*font TSRMLS_CC)); } /* }}} */ @@ -4108,6 +4238,8 @@ PHP_MINIT_FUNCTION(ming) 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); @@ -4126,6 +4258,21 @@ PHP_MINIT_FUNCTION(ming) 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); diff --git a/ext/ming/php_ming.h b/ext/ming/php_ming.h index 144e46b2b..1a6fde889 100644 --- a/ext/ming/php_ming.h +++ b/ext/ming/php_ming.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | PHP Version 5 | +----------------------------------------------------------------------+ - | Copyright (c) 1997-2006 The PHP Group | + | Copyright (c) 1997-2007 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | @@ -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.3 2007/01/06 19:25:31 nlopess Exp $ */ #ifndef _PHP_MING_H #define _PHP_MING_H @@ -35,6 +36,12 @@ PHP_METHOD(swfbitmap, init); 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, drawcircle); PHP_METHOD(swfshape, drawcubic); PHP_METHOD(swfshape, drawcubicto); +/* SWFMovie */ + PHP_METHOD(swfmovie, init); PHP_METHOD(swfmovie, output); PHP_METHOD(swfmovie, saveToFile); @@ -70,12 +79,16 @@ PHP_METHOD(swfmovie, add); PHP_METHOD(swfmovie, remove); PHP_METHOD(swfmovie, nextFrame); PHP_METHOD(swfmovie, labelFrame); +#ifdef HAVE_SWFMOVIE_NAMEDANCHOR +PHP_METHOD(swfmovie, namedAnchor); +#endif 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 +97,9 @@ PHP_METHOD(swfmovie, stopSound); 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 +113,8 @@ PHP_METHOD(swfsprite, startSound); PHP_METHOD(swfsprite, stopSound); #endif +/* SWFFont */ + PHP_METHOD(swffont, init); PHP_METHOD(swffont, getWidth); @@ -117,6 +134,8 @@ PHP_METHOD(swffont, getShape); PHP_METHOD(swffont, getLeading); +/* SWFText */ + PHP_METHOD(swftext, init); PHP_METHOD(swftext, setFont); PHP_METHOD(swftext, setHeight); @@ -141,6 +160,8 @@ PHP_METHOD(swftext, getAscent); PHP_METHOD(swftext, getDescent); PHP_METHOD(swftext, getLeading); +/* SWFTextField */ + PHP_METHOD(swftextfield, init); PHP_METHOD(swftextfield, setFont); PHP_METHOD(swftextfield, setBounds); @@ -157,9 +178,13 @@ PHP_METHOD(swftextfield, addString); 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 +216,8 @@ PHP_METHOD(swfdisplayitem, getYSkew); PHP_METHOD(swfdisplayitem, getRot); #endif +/* SWFButton */ + PHP_METHOD(swfbutton, init); PHP_METHOD(swfbutton, setHit); PHP_METHOD(swfbutton, setOver); @@ -209,14 +236,22 @@ PHP_METHOD(swfbutton, addAction); 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 +259,8 @@ PHP_METHOD(swfsoundinstance, loopOutPoint); PHP_METHOD(swfsoundinstance, loopCount); #endif +/* SWF Utils */ + PHP_FUNCTION(ming_keypress); PHP_FUNCTION(ming_setCubicThreshold); PHP_FUNCTION(ming_setScale); @@ -232,6 +269,9 @@ PHP_FUNCTION(ming_useSWFVersion); #ifdef HAVE_NEW_MING PHP_FUNCTION(ming_useConstants); #endif +#ifdef HAVE_MING_SETSWFCOMPRESSION +PHP_FUNCTION(ming_setSWFCompression); +#endif #else #define ming_module_ptr NULL |