fmk Tue Dec 5 21:02:29 2006 UTC
Modified files:
/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.89&r2=1.90&diff_format=u
Index: php-src/ext/ming/ming.c
diff -u php-src/ext/ming/ming.c:1.89 php-src/ext/ming/ming.c:1.90
--- php-src/ext/ming/ming.c:1.89 Thu Nov 9 09:24:17 2006
+++ php-src/ext/ming/ming.c Tue Dec 5 21:02:28 2006
@@ -14,10 +14,11 @@
+----------------------------------------------------------------------+
| Authors: Dave Hayden <[EMAIL PROTECTED]> |
| Frank M. Kromann <[EMAIL PROTECTED]>
|
+ | Stuart R. Anderson <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
*/
-/* $Id: ming.c,v 1.89 2006/11/09 09:24:17 fmk Exp $ */
+/* $Id: ming.c,v 1.90 2006/12/05 21:02:28 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)));
}
/* }}} */
@@ -2099,9 +2137,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);
@@ -2152,6 +2190,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)
@@ -2187,7 +2267,7 @@
}
/* }}} */
-/* {{{ proto void swfmovie::labelframe(object SWFBlock)
+/* {{{ proto void swfmovie::remove(object SWFBlock)
*/
PHP_METHOD(swfmovie, remove)
{
@@ -2277,6 +2357,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;
@@ -2700,6 +2784,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 }
};
@@ -3653,6 +3739,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)));
}
/* }}} */
@@ -3661,6 +3750,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)));
}
/* }}} */
@@ -3669,6 +3761,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)));
}
/* }}} */
@@ -3742,6 +3837,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;
@@ -3751,7 +3859,7 @@
WRONG_PARAM_COUNT;
}
convert_to_object_ex(font);
- SWFTextField_setFont(field, getFont(*font TSRMLS_CC));
+ SWFTextField_setFont(field, getFontOrFontChar(*font TSRMLS_CC));
}
/* }}} */
@@ -4025,6 +4133,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, ...)
{
@@ -4121,6 +4248,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);
@@ -4139,6 +4268,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.18&r2=1.19&diff_format=u
Index: php-src/ext/ming/php_ming.h
diff -u php-src/ext/ming/php_ming.h:1.18 php-src/ext/ming/php_ming.h:1.19
--- php-src/ext/ming/php_ming.h:1.18 Sun Jan 1 13:09:51 2006
+++ php-src/ext/ming/php_ming.h Tue Dec 5 21:02:28 2006
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_ming.h,v 1.18 2006/01/01 13:09:51 sniper Exp $ */
+/* $Id: php_ming.h,v 1.19 2006/12/05 21:02:28 fmk Exp $ */
#ifndef _PHP_MING_H
#define _PHP_MING_H
@@ -35,6 +35,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 +68,8 @@
PHP_METHOD(swfshape, drawcubic);
PHP_METHOD(swfshape, drawcubicto);
+/* SWFMovie */
+
PHP_METHOD(swfmovie, init);
PHP_METHOD(swfmovie, output);
PHP_METHOD(swfmovie, saveToFile);
@@ -70,12 +78,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 +94,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 +110,8 @@
PHP_METHOD(swfsprite, stopSound);
#endif
+/* SWFFont */
+
PHP_METHOD(swffont, init);
PHP_METHOD(swffont, getWidth);
@@ -117,6 +131,8 @@
PHP_METHOD(swffont, getLeading);
+/* SWFText */
+
PHP_METHOD(swftext, init);
PHP_METHOD(swftext, setFont);
PHP_METHOD(swftext, setHeight);
@@ -141,6 +157,8 @@
PHP_METHOD(swftext, getDescent);
PHP_METHOD(swftext, getLeading);
+/* SWFTextField */
+
PHP_METHOD(swftextfield, init);
PHP_METHOD(swftextfield, setFont);
PHP_METHOD(swftextfield, setBounds);
@@ -157,9 +175,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 +213,8 @@
PHP_METHOD(swfdisplayitem, getRot);
#endif
+/* SWFButton */
+
PHP_METHOD(swfbutton, init);
PHP_METHOD(swfbutton, setHit);
PHP_METHOD(swfbutton, setOver);
@@ -209,14 +233,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 +256,8 @@
PHP_METHOD(swfsoundinstance, loopCount);
#endif
+/* SWF Utils */
+
PHP_FUNCTION(ming_keypress);
PHP_FUNCTION(ming_setCubicThreshold);
PHP_FUNCTION(ming_setScale);
@@ -231,6 +265,7 @@
#ifdef HAVE_NEW_MING
PHP_FUNCTION(ming_useConstants);
+PHP_FUNCTION(ming_setSWFCompression);
#endif
#else
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php