⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ming.c

📁 php-4.4.7学习linux时下载的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
	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));}/* }}} *//* {{{ proto object swfmovie_add(object SWFBlock) */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);	}}/* }}} *//* {{{ proto void swfmovie_labelframe(object SWFBlock)*/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);}/* }}} *//* {{{ proto int swfmovie_output([int compression])*/static void phpByteOutputMethod(byte b, void *data){	TSRMLS_FETCH();	php_write(&b, 1 TSRMLS_CC);}PHP_FUNCTION(swfmovie_output){	SWFMovie movie = getMovie(getThis() TSRMLS_CC);#ifdef HAVE_MING_ZLIB	zval **zlimit = NULL;	int limit = -1;	int argc = ZEND_NUM_ARGS();	if(argc==0) {		limit = 6;	} else {		if (zend_get_parameters_ex(1, &zlimit) == FAILURE) {			WRONG_PARAM_COUNT;		}		convert_to_long_ex(zlimit);		limit = Z_LVAL_PP(zlimit);		if ((limit < 0) || (limit > 9)) {			php_error(E_WARNING,"compression level must be within 0..9");			RETURN_FALSE;		}	}#endif#ifdef HAVE_NEW_MING	RETURN_LONG(SWFMovie_output(movie, &phpByteOutputMethod, NULL, limit));#else	RETURN_LONG(SWFMovie_output(movie, &phpByteOutputMethod, NULL));#endif}/* }}} *//* {{{ proto int swfmovie_saveToFile(stream x [, int compression])*/static void phpStreamOutputMethod(byte b, void * data){	TSRMLS_FETCH();	php_stream_write((php_stream*)data, &b, 1);}PHP_FUNCTION(swfmovie_saveToFile){	zval **x;#ifdef HAVE_MING_ZLIB	zval **zlimit = NULL;	int limit = -1;#endif	SWFMovie movie = getMovie(getThis() TSRMLS_CC);	php_stream *what;	switch (ZEND_NUM_ARGS()) {	case 1:		if (zend_get_parameters_ex(1, &x) == FAILURE)			WRONG_PARAM_COUNT;		break;	case 2:#ifdef HAVE_MING_ZLIB		if (zend_get_parameters_ex(2, &x, &zlimit) == FAILURE)			WRONG_PARAM_COUNT;		convert_to_long_ex(zlimit);		limit = Z_LVAL_PP(zlimit);		if ((limit < 0) || (limit > 9)) {			php_error(E_WARNING,"compression level must be within 0..9");			RETURN_FALSE;		}#endif		break;	default:		WRONG_PARAM_COUNT;	}	ZEND_FETCH_RESOURCE(what, php_stream *, x, -1,"File-Handle",php_file_le_stream());#ifdef HAVE_NEW_MING	RETURN_LONG(SWFMovie_output(movie, &phpStreamOutputMethod, what, limit));#else	RETURN_LONG(SWFMovie_output(movie, &phpStreamOutputMethod, what));#endif}/* }}} *//* {{{ proto int swfmovie_save(mixed where [, int compression])  Saves the movie. 'where' can be stream and the movie will be saved there otherwise it is treated as string and written in file with that name */PHP_FUNCTION(swfmovie_save){	zval **x;#ifdef HAVE_MING_ZLIB	zval **zlimit = NULL;	int limit = -1;#endif	long retval;	php_stream *stream;	switch (ZEND_NUM_ARGS()) {	case 1:		if (zend_get_parameters_ex(1, &x) == FAILURE) {			WRONG_PARAM_COUNT;		}		break;	case 2:#ifdef HAVE_MING_ZLIB		if (zend_get_parameters_ex(2, &x, &zlimit) == FAILURE) {			WRONG_PARAM_COUNT;		}		convert_to_long_ex(zlimit);		limit = Z_LVAL_PP(zlimit);		if ((limit < 0) || (limit > 9)) {			php_error(E_WARNING,"compression level must be within 0..9");			RETURN_FALSE;		}#endif		break;	default:		WRONG_PARAM_COUNT;	}		  	if (Z_TYPE_PP(x) == IS_RESOURCE) {		ZEND_FETCH_RESOURCE(stream, php_stream *, x, -1,"File-Handle",php_file_le_stream());#ifdef HAVE_NEW_MING		RETURN_LONG(SWFMovie_output(getMovie(getThis() TSRMLS_CC), &phpStreamOutputMethod, stream, limit));#else		RETURN_LONG(SWFMovie_output(getMovie(getThis() TSRMLS_CC), &phpStreamOutputMethod, stream));#endif	}	convert_to_string_ex(x);	stream = php_stream_open_wrapper(Z_STRVAL_PP(x), "wb", REPORT_ERRORS|ENFORCE_SAFE_MODE, NULL);	if (stream == NULL) {		RETURN_FALSE;	}	#ifdef HAVE_NEW_MING	retval = SWFMovie_output(getMovie(getThis() TSRMLS_CC), &phpStreamOutputMethod, (void *)stream, limit);#else	retval = SWFMovie_output(getMovie(getThis() TSRMLS_CC), &phpStreamOutputMethod, (void *)stream);#endif	php_stream_close(stream);	RETURN_LONG(retval);}/* }}} *//* {{{ proto void swfmovie_setBackground(int r, int g, int b)   Sets background color (r,g,b) */PHP_FUNCTION(swfmovie_setBackground){	zval **r, **g, **b;	SWFMovie movie = getMovie(getThis() TSRMLS_CC);	if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &r, &g, &b) == FAILURE) {		WRONG_PARAM_COUNT;	}	convert_to_long_ex(r);	convert_to_long_ex(g);	convert_to_long_ex(b);	SWFMovie_setBackground(movie, Z_LVAL_PP(r), Z_LVAL_PP(g), Z_LVAL_PP(b));}/* }}} *//* {{{ proto void swfmovie_setRate(float rate)   Sets movie rate */PHP_FUNCTION(swfmovie_setRate){	zval **rate;	SWFMovie movie = getMovie(getThis() TSRMLS_CC);	if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &rate) == FAILURE) {		WRONG_PARAM_COUNT;	}	convert_to_double_ex(rate);	SWFMovie_setRate(movie, FLOAT_Z_DVAL_PP(rate));}/* }}} *//* {{{ proto void swfmovie_setDimension(float x, float y)   Sets movie dimension */PHP_FUNCTION(swfmovie_setDimension){	zval **x, **y;	SWFMovie movie = getMovie(getThis() TSRMLS_CC);	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);	SWFMovie_setDimension(movie, FLOAT_Z_DVAL_PP(x), FLOAT_Z_DVAL_PP(y));}/* }}} *//* {{{ proto void swfmovie_setFrames(int frames)   Sets number of frames */PHP_FUNCTION(swfmovie_setFrames){	zval **frames;	SWFMovie movie = getMovie(getThis() TSRMLS_CC);	if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &frames) == FAILURE) {		WRONG_PARAM_COUNT;	}	convert_to_long_ex(frames);	SWFMovie_setNumberOfFrames(movie, Z_LVAL_PP(frames));}/* }}} */#ifdef HAVE_NEW_MING/* {{{ proto void swfmovie_streamMp3(mixed file)   Sets sound stream of the SWF movie. The parameter can be stream or string. */PHP_FUNCTION(swfmovie_streamMp3){	zval **zfile;	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;	}		if (Z_TYPE_PP(zfile) != IS_RESOURCE) {		convert_to_string_ex(zfile);		input = newSWFInput_buffer(Z_STRVAL_PP(zfile), Z_STRLEN_PP(zfile));		zend_list_addref(zend_list_insert(input, le_swfinputp));	} else {		input = getInput(zfile TSRMLS_CC);	}		sound = newSWFSoundStream_fromInput(input);	SWFMovie_setSoundStream(movie, sound);}/* }}} */#endif/* }}} *//* {{{ SWFShape*/static zend_function_entry swfshape_functions[] = {	PHP_FALIAS(swfshape,          swfshape_init,               NULL)	PHP_FALIAS(setline,           swfshape_setline,            NULL)	PHP_FALIAS(addfill,           swfshape_addfill,            NULL)	PHP_FALIAS(setleftfill,       swfshape_setleftfill,        NULL)	PHP_FALIAS(setrightfill,      swfshape_setrightfill,       NULL)	PHP_FALIAS(movepento,         swfshape_movepento,          NULL)	PHP_FALIAS(movepen,           swfshape_movepen,            NULL)	PHP_FALIAS(drawlineto,        swfshape_drawlineto,         NULL)	PHP_FALIAS(drawline,          swfshape_drawline,           NULL)	PHP_FALIAS(drawcurveto,       swfshape_drawcurveto,        NULL)	PHP_FALIAS(drawcurve,         swfshape_drawcurve,          NULL)	PHP_FALIAS(drawglyph,         swfshape_drawglyph,          NULL)	PHP_FALIAS(drawcircle,        swfshape_drawcircle,         NULL)	PHP_FALIAS(drawarc,           swfshape_drawarc,            NULL)	PHP_FALIAS(drawcubic,         swfshape_drawcubic,          NULL)	PHP_FALIAS(drawcubicto,       swfshape_drawcubicto,        NULL)	{ NULL, NULL, NULL }};/* {{{ proto object swfshape_init(void)   Returns a new SWFShape object */PHP_FUNCTION(swfshape_init){	SWFShape shape = newSWFShape();	int ret = zend_list_insert(shape, le_swfshapep);	object_init_ex(getThis(), &shape_class_entry);	add_property_resource(getThis(), "shape", ret);	zend_list_addref(ret);}static void destroy_SWFShape_resource(zend_rsrc_list_entry *resource TSRMLS_DC){	destroySWFShape((SWFShape)resource->ptr);}/* }}} *//* {{{ internal function getShape   Returns the SWFShape object contained in zval *id */static SWFShape getShape(zval *id TSRMLS_DC){	void *shape = SWFgetProperty(id, "shape", 5, le_swfshapep TSRMLS_CC);	if (!shape) {		php_error_docref(NULL TSRMLS_CC, E_ERROR, "Called object is not an SWFShape");	}	return (SWFShape)shape;}/* }}} *//* {{{ proto void swfshape_setline(int width, int r, int g, int b [, int a])   Sets the current line style for this SWFShape */PHP_FUNCTION(swfshape_setline){	zval **w, **r, **g, **b, **a;	if (ZEND_NUM_ARGS() == 4) {		if (zend_get_parameters_ex(4, &w, &r, &g, &b) == FAILURE) {			WRONG_PARAM_COUNT;		}	} else if (ZEND_NUM_ARGS() == 5) {		if (zend_get_parameters_ex(5, &w, &r, &g, &b, &a) == FAILURE) {			WRONG_PARAM_COUNT;		}		convert_to_long_ex(a);	} else if (ZEND_NUM_ARGS() == 1) {		SWFShape_setLine(getShape(getThis() TSRMLS_CC), 0, 0, 0, 0, 0);		return;	} else {		WRONG_PARAM_COUNT;	}	convert_to_long_ex(w);	convert_to_long_ex(r);	convert_to_long_ex(g);	convert_to_long_ex(b);	if (ZEND_NUM_ARGS() == 4) {		SWFShape_setLine(getShape(getThis() TSRMLS_CC),			(unsigned short)Z_LVAL_PP(w), BYTE_Z_LVAL_PP(r), BYTE_Z_LVAL_PP(g), BYTE_Z_LVAL_PP(b), 0xff		);	} else {		SWFShape_setLine(getShape(getThis() TSRMLS_CC),			(unsigned short)Z_LVAL_PP(w), BYTE_Z_LVAL_PP(r), BYTE_Z_LVAL_PP(g), BYTE_Z_LVAL_PP(b), BYTE_Z_LVAL_PP(a)		);	}}/* }}} *//* {{{ proto object swfshape_addfill(mixed arg1, int arg2, [int b [, int a]])   Returns a fill object, for use with swfshape_setleftfill and swfshape_setrightfill. If 1 or 2 parameter(s) is (are) passed first should be object (from gradient class) and the second int (flags). Gradient fill is performed. If 3 or 4 parameters are passed : r, g, b [, a]. Solid fill is performed. */PHP_FUNCTION(swfshape_addfill){	SWFFill fill=NULL;	int ret;	if (ZEND_NUM_ARGS() == 1 || ZEND_NUM_ARGS() == 2) {		/* it's a gradient or bitmap */		zval **arg1;		unsigned char flags = 0;		if (ZEND_NUM_ARGS() == 2) {			zval **arg2;			if (zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) {				WRONG_PARAM_COUNT;			}			convert_to_long_ex(arg2);			flags = (unsigned char)Z_LVAL_PP(arg2);		} else {			if (zend_get_parameters_ex(1, &arg1) == FAILURE) {				WRONG_PARAM_COUNT;			}		}		convert_to_object_ex(arg1);		if (Z_OBJCE_PP(arg1) == &gradient_class_entry) {			if (flags == 0) {				flags = SWFFILL_LINEAR_GRADIENT;			}			fill = SWFShape_addGradientFill(getShape(getThis() TSRMLS_CC), getGradient(*arg1 TSRMLS_CC), flags);		} else if (Z_OBJCE_PP(arg1) == &bitmap_class_entry) {			if (flags == 0) {				flags = SWFFILL_TILED_BITMAP;			}			fill = SWFShape_addBitmapFill(getShape(getThis() TSRMLS_CC), getBitmap(*arg1 TSRMLS_CC), flags);		} else {			php_error_docref(NULL TSRMLS_CC, E_ERROR, "Argument is not a bitmap nor a gradient");		}	} else if (ZEND_NUM_ARGS() == 3 || ZEND_NUM_ARGS() == 4) {		/* it's a solid fill */		zval **r, **g, **b, **za;		byte a = 0xff;		if (ZEND_NUM_ARGS() == 3) {			if (zend_get_parameters_ex(3, &r, &g, &b) == FAILURE) {				WRONG_PARAM_COUNT;			}		} else if (ZEND_NUM_ARGS() == 4) {			if (zend_get_parameters_ex(4, &r, &g, &b, &za) == FAILURE) {				WRONG_PARAM_COUNT;			}			convert_to_long_ex(za);			a = BYTE_Z_LVAL_PP(za);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -