📄 ming-dev.c
字号:
PHP_FUNCTION(swffill_moveTo){ zval **x, **y; if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &x, &y) == FAILURE) { WRONG_PARAM_COUNT; } convert_to_double_ex(x); convert_to_double_ex(y); SWFFill_moveTo(getFill(getThis() TSRMLS_CC), Z_DVAL_PP(x), Z_DVAL_PP(y));}/* }}} *//* {{{ proto void swffill_scaleTo(float xScale [, float yScale]) Scales this SWFFill by xScale in the x direction, yScale in the y, or both to xScale if only one arg */PHP_FUNCTION(swffill_scaleTo){ zval **x, **y; if (ZEND_NUM_ARGS() == 1) { if (zend_get_parameters_ex(1, &x) == FAILURE) { WRONG_PARAM_COUNT; } convert_to_double_ex(x); SWFFill_scaleXYTo(getFill(getThis() TSRMLS_CC), Z_DVAL_PP(x), Z_DVAL_PP(x)); } else if (ZEND_NUM_ARGS() == 2) { if (zend_get_parameters_ex(2, &x, &y) == FAILURE) { WRONG_PARAM_COUNT; } convert_to_double_ex(x); convert_to_double_ex(y); SWFFill_scaleXYTo(getFill(getThis() TSRMLS_CC), Z_DVAL_PP(x), Z_DVAL_PP(y)); } else { WRONG_PARAM_COUNT; }}/* }}} *//* {{{ proto void swffill_rotateTo(float degrees) Rotates this SWFFill the given (clockwise) degrees from its original orientation */PHP_FUNCTION(swffill_rotateTo){ zval **degrees; if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, °rees) == FAILURE) { WRONG_PARAM_COUNT; } convert_to_double_ex(degrees); SWFFill_rotateTo(getFill(getThis() TSRMLS_CC), Z_DVAL_PP(degrees));}/* }}} *//* {{{ proto void swffill_skewXTo(float xSkew) Sets this SWFFill's x skew value to xSkew */PHP_FUNCTION(swffill_skewXTo){ zval **x; if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &x) == FAILURE) { WRONG_PARAM_COUNT; } convert_to_double_ex(x); SWFFill_skewXTo(getFill(getThis() TSRMLS_CC), Z_DVAL_PP(x));}/* }}} *//* {{{ proto void swffill_skewYTo(float ySkew) Sets this SWFFill's y skew value to ySkew */PHP_FUNCTION(swffill_skewYTo){ zval **y; if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &y) == FAILURE) { WRONG_PARAM_COUNT; } convert_to_double_ex(y); SWFFill_skewYTo(getFill(getThis() TSRMLS_CC), Z_DVAL_PP(y));}/* }}} *//* }}} *//* {{{ SWFFont*/static zend_function_entry swffont_functions[] = { PHP_FALIAS(swffont, swffont_init, NULL) PHP_FALIAS(getwidth, swffont_getWidth, NULL) PHP_FALIAS(getascent, swffont_getAscent, NULL) PHP_FALIAS(getdescent, swffont_getDescent, NULL) PHP_FALIAS(getleading, swffont_getLeading, NULL) { NULL, NULL, NULL }};/* {{{ internal function SWFText getFont(zval *id) Returns the Font object in zval *id */static SWFFont getFont(zval *id TSRMLS_DC){ void *font = SWFgetProperty(id, "font", 4, le_swffontp TSRMLS_CC); if (!font) { php_error(E_ERROR, "called object is not an SWFFont!"); } return (SWFFont)font;}/* }}} *//* {{{ proto class swffont_init(string filename) Returns a new SWFFont object from given file */PHP_FUNCTION(swffont_init){ zval **zfile; SWFFont font; int ret; if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &zfile) == FAILURE) { WRONG_PARAM_COUNT; } convert_to_string_ex(zfile); if (strcmp(Z_STRVAL_PP(zfile)+Z_STRLEN_PP(zfile)-4, ".fdb") == 0) { php_stream * stream; FILE * file; stream = php_stream_open_wrapper(Z_STRVAL_PP(zfile), "rb", REPORT_ERRORS|ENFORCE_SAFE_MODE, NULL); if (stream == NULL) { RETURN_FALSE; } if (FAILURE == php_stream_cast(stream, PHP_STREAM_AS_STDIO, (void*)&file, REPORT_ERRORS)) { php_stream_close(stream); RETURN_FALSE; } font = loadSWFFontFromFile(file); php_stream_close(stream); } else { font = newSWFBrowserFont(Z_STRVAL_PP(zfile)); } ret = zend_list_insert(font, le_swffontp); object_init_ex(getThis(), &font_class_entry); add_property_resource(getThis(), "font", ret); zend_list_addref(ret);}static void destroy_SWFFont_resource(zend_rsrc_list_entry *resource TSRMLS_DC){ destroySWFBlock((SWFBlock)resource->ptr);}/* }}} *//* {{{ proto int swffont_getWidth(string) Calculates the width of the given string in this font at full height */PHP_FUNCTION(swffont_getWidth){ zval **zstring; float width; if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &zstring) == FAILURE) { WRONG_PARAM_COUNT; } convert_to_string_ex(zstring); width = SWFFont_getStringWidth(getFont(getThis() TSRMLS_CC), Z_STRVAL_PP(zstring)); RETURN_DOUBLE(width);}/* }}} *//* {{{ proto int swffont_getAscent(void) Returns the ascent of the font, or 0 if not available */PHP_FUNCTION(swffont_getAscent){ RETURN_DOUBLE(SWFFont_getAscent(getFont(getThis() TSRMLS_CC)));}/* }}} *//* {{{ proto int swffont_getDescent(void) Returns the descent of the font, or 0 if not available */PHP_FUNCTION(swffont_getDescent){ RETURN_DOUBLE(SWFFont_getDescent(getFont(getThis() TSRMLS_CC)));}/* }}} *//* {{{ proto int swffont_getLeading(void) Returns the leading of the font, or 0 if not available */PHP_FUNCTION(swffont_getLeading){ RETURN_DOUBLE(SWFFont_getLeading(getFont(getThis() TSRMLS_CC)));}/* }}} *//* }}} *//* {{{ SWFGradient*/static zend_function_entry swfgradient_functions[] = { PHP_FALIAS(swfgradient, swfgradient_init, NULL) PHP_FALIAS(addentry, swfgradient_addEntry, NULL) { NULL, NULL, NULL }};/* {{{ proto class swfgradient_init(void) Returns a new SWFGradient object */PHP_FUNCTION(swfgradient_init){ SWFGradient gradient = newSWFGradient(); int ret = zend_list_insert(gradient, le_swfgradientp); object_init_ex(getThis(), &gradient_class_entry); add_property_resource(getThis(), "gradient", ret); zend_list_addref(ret);}static void destroy_SWFGradient_resource(zend_rsrc_list_entry *resource TSRMLS_DC){ destroySWFGradient((SWFGradient)resource->ptr);}/* }}} *//* {{{ internal function getGradient Returns the SWFGradient object contained in zval *id */static SWFGradient getGradient(zval *id TSRMLS_DC){ void *gradient = SWFgetProperty(id, "gradient", 8, le_swfgradientp TSRMLS_CC); if (!gradient) { php_error(E_ERROR, "called object is not an SWFGradient!"); } return (SWFGradient)gradient;}/* }}} *//* {{{ proto void swfgradient_addEntry(float ratio, string r, string g, string b [, string a]) Adds given entry to the gradient */PHP_FUNCTION(swfgradient_addEntry){ zval **ratio, **r, **g, **b; byte a = 0xff; if (ZEND_NUM_ARGS() == 4) { if (zend_get_parameters_ex(4, &ratio, &r, &g, &b) == FAILURE) { WRONG_PARAM_COUNT; } } else if (ZEND_NUM_ARGS() == 5) { zval **za; if (zend_get_parameters_ex(5, &ratio, &r, &g, &b, &za) == FAILURE) { WRONG_PARAM_COUNT; } convert_to_long_ex(za); a = Z_LVAL_PP(za); } else { WRONG_PARAM_COUNT; } convert_to_double_ex(ratio); convert_to_long_ex(r); convert_to_long_ex(g); convert_to_long_ex(b); SWFGradient_addEntry( getGradient(getThis() TSRMLS_CC), Z_DVAL_PP(ratio), Z_LVAL_PP(r), Z_LVAL_PP(g), Z_LVAL_PP(b), a );}/* }}} *//* }}} *//* {{{ SWFMorph */static zend_function_entry swfmorph_functions[] = { PHP_FALIAS(swfmorph, swfmorph_init, NULL) PHP_FALIAS(getshape1, swfmorph_getShape1, NULL) PHP_FALIAS(getshape2, swfmorph_getShape2, NULL) { NULL, NULL, NULL }};/* {{{ proto object swfmorph_init(void) Returns a new SWFMorph object */PHP_FUNCTION(swfmorph_init){ SWFMorph morph = newSWFMorphShape(); int ret = zend_list_insert(morph, le_swfmorphp); object_init_ex(getThis(), &morph_class_entry); add_property_resource(getThis(), "morph", ret); zend_list_addref(ret);}static void destroy_SWFMorph_resource(zend_rsrc_list_entry *resource TSRMLS_DC){ destroySWFMorph((SWFMorph)resource->ptr);}/* }}} *//* {{{ internal function getMorph Returns the SWFMorph object contained in zval *id */static SWFMorph getMorph(zval *id TSRMLS_DC){ void *morph = SWFgetProperty(id, "morph", 5, le_swfmorphp TSRMLS_CC); if (!morph) { php_error(E_ERROR, "called object is not an SWFMorph!"); } return (SWFMorph)morph;}/* }}} *//* {{{ proto object swfmorph_getShape1(void) Return's this SWFMorph's start shape object */PHP_FUNCTION(swfmorph_getShape1){ SWFMorph morph = getMorph(getThis() TSRMLS_CC); SWFShape shape = SWFMorph_getShape1(morph); int ret = zend_list_insert(shape, le_swfshapep); object_init_ex(return_value, &shape_class_entry); add_property_resource(return_value, "shape", ret); zend_list_addref(ret);}/* }}} *//* {{{ proto object swfmorph_getShape2(void) Return's this SWFMorph's start shape object */PHP_FUNCTION(swfmorph_getShape2){ SWFMorph morph = getMorph(getThis() TSRMLS_CC); SWFShape shape = SWFMorph_getShape2(morph); int ret = zend_list_insert(shape, le_swfshapep); object_init_ex(return_value, &shape_class_entry); add_property_resource(return_value, "shape", ret); zend_list_addref(ret);}/* }}} *//* {{{ SWFMovie*/static zend_function_entry swfmovie_functions[] = { PHP_FALIAS(swfmovie, swfmovie_init, NULL) PHP_FALIAS(nextframe, swfmovie_nextFrame, NULL) PHP_FALIAS(labelframe, swfmovie_labelFrame, NULL) PHP_FALIAS(add, swfmovie_add, NULL) PHP_FALIAS(remove, swfmovie_remove, NULL) PHP_FALIAS(output, swfmovie_output, NULL) PHP_FALIAS(save, swfmovie_save, NULL) PHP_FALIAS(savetofile, swfmovie_saveToFile, NULL) PHP_FALIAS(setbackground, swfmovie_setBackground, NULL) PHP_FALIAS(protect, swfmovie_Protect, NULL) PHP_FALIAS(setrate, swfmovie_setRate, NULL) PHP_FALIAS(setdimension, swfmovie_setDimension, NULL) PHP_FALIAS(setframes, swfmovie_setFrames, NULL) PHP_FALIAS(streammp3, swfmovie_streamMp3, NULL) { NULL, NULL, NULL }};/* }}} *//* {{{ swfmovie_init*/PHP_FUNCTION(swfmovie_init){ zval **version; SWFMovie movie; int ret; if (ZEND_NUM_ARGS() == 1) { if (zend_get_parameters_ex(1, &version) == FAILURE) { WRONG_PARAM_COUNT; } convert_to_long_ex(version); movie = newSWFMovie(Z_LVAL_PP(version)); } else { movie = newSWFMovie(4); /* default version 4 */ } ret = zend_list_insert(movie, le_swfmoviep); object_init_ex(getThis(), &movie_class_entry); add_property_resource(getThis(), "movie", ret); zend_list_addref(ret);}static void destroy_SWFMovie_resource(zend_rsrc_list_entry *resource TSRMLS_DC){ destroySWFMovie((SWFMovie)resource->ptr);}/* }}} *//* {{{ getMovie*/static SWFMovie getMovie(zval *id TSRMLS_DC){ void *movie = SWFgetProperty(id, "movie", 5, le_swfmoviep TSRMLS_CC); if (!movie) { php_error(E_ERROR, "called object is not an SWFMovie!"); } return (SWFMovie)movie;}/* }}} *//* {{{ swfmovie_nextframe*/PHP_FUNCTION(swfmovie_nextFrame){ SWFMovie_nextFrame(getMovie(getThis() TSRMLS_CC));}/* }}} *//* {{{ swfmovie_labelframe*/PHP_FUNCTION(swfmovie_labelFrame){ zval **label; if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &label) == FAILURE) { WRONG_PARAM_COUNT; } convert_to_string_ex(label); SWFMovie_labelFrame(getMovie(getThis() TSRMLS_CC), Z_STRVAL_PP(label));}/* }}} *//* {{{ swfmovie_add*/PHP_FUNCTION(swfmovie_add){ zval **zchar; int ret; SWFBlock block; SWFDisplayItem item; SWFMovie movie = getMovie(getThis() TSRMLS_CC); if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &zchar) == FAILURE) { WRONG_PARAM_COUNT; } convert_to_object_ex(zchar); /* XXX - SWFMovie_add deals w/ all block types. Probably will need to add that.. */ if (Z_OBJCE_PP(zchar) == &action_class_entry) { block = (SWFBlock) getAction(*zchar TSRMLS_CC); } else { block = (SWFBlock) getCharacter(*zchar TSRMLS_CC); } item = SWFMovie_add(movie, block); if(item != NULL) { /* try and create a displayitem object */ ret = zend_list_insert(item, le_swfdisplayitemp); object_init_ex(return_value, &displayitem_class_entry); add_property_resource(return_value, "displayitem", ret); }}/* }}} *//* {{{ swfmovie_remove*/PHP_FUNCTION(swfmovie_remove){ zval **zchar; SWFDisplayItem item; SWFMovie movie = getMovie(getThis() TSRMLS_CC); if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &zchar) == FAILURE) { WRONG_PARAM_COUNT; } convert_to_object_ex(zchar); item = getDisplayItem(*zchar TSRMLS_CC); SWFMovie_remove(movie, item);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -