📄 ming.c
字号:
SWFSoundInstance inst = getSoundInstance(getThis() TSRMLS_CC); if((ZEND_NUM_ARGS() != 1) || zend_get_parameters_ex(1, &zpoint) == FAILURE) WRONG_PARAM_COUNT; convert_to_long_ex(zpoint); SWFSoundInstance_setLoopInPoint(inst, Z_LVAL_PP(zpoint));}/* }}} *//* {{{ swfsoundinstance_loopoutpoint(point) */PHP_FUNCTION(swfsoundinstance_loopOutPoint){ zval **zpoint; SWFSoundInstance inst = getSoundInstance(getThis() TSRMLS_CC); if((ZEND_NUM_ARGS() != 1) || zend_get_parameters_ex(1, &zpoint) == FAILURE) WRONG_PARAM_COUNT; convert_to_long_ex(zpoint); SWFSoundInstance_setLoopOutPoint(inst, Z_LVAL_PP(zpoint));}/* }}} *//* {{{ swfsoundinstance_loopcount(point) */PHP_FUNCTION(swfsoundinstance_loopCount){ zval **zcount; SWFSoundInstance inst = getSoundInstance(getThis() TSRMLS_CC); if((ZEND_NUM_ARGS() != 1) || zend_get_parameters_ex(1, &zcount) == FAILURE) WRONG_PARAM_COUNT; convert_to_long_ex(zcount); SWFSoundInstance_setLoopCount(inst, Z_LVAL_PP(zcount));}/* }}} *//* }}} *//* {{{ 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(setrate, swfmovie_setRate, NULL) PHP_FALIAS(setdimension, swfmovie_setDimension, NULL) PHP_FALIAS(setframes, swfmovie_setFrames, NULL) PHP_FALIAS(streammp3, swfmovie_streamMp3, NULL) PHP_FALIAS(addexport, swfmovie_addExport, NULL) PHP_FALIAS(writeexports, swfmovie_writeExports, NULL) PHP_FALIAS(startsound, swfmovie_startSound, NULL) PHP_FALIAS(stopsound, swfmovie_stopSound, NULL) PHP_FALIAS(importchar, swfmovie_importChar, NULL) PHP_FALIAS(importfont, swfmovie_importFont, NULL) PHP_FALIAS(addfont, swfmovie_addFont, NULL) { NULL, NULL, NULL }};/* {{{ swfmovie_init */PHP_FUNCTION(swfmovie_init){ zval **version; SWFMovie movie; int ret;//fprintf(stderr, "SWFMovie_output %x %d\n", SWFMovie_output, getpid()); sleep(30); if(ZEND_NUM_ARGS() == 1) { if(zend_get_parameters_ex(1, &version) == FAILURE) WRONG_PARAM_COUNT; convert_to_long_ex(version); movie = newSWFMovieWithVersion(Z_LVAL_PP(version)); } else movie = newSWFMovie(); /* 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 */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;}/* }}} */ PHP_FUNCTION(swfmovie_importChar){ SWFMovie movie; SWFCharacter res; int ret; zval **libswf, **name; if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &libswf, &name) == FAILURE) WRONG_PARAM_COUNT; convert_to_string_ex(libswf); convert_to_string_ex(name); movie = getMovie(getThis() TSRMLS_CC); res = SWFMovie_importCharacter(movie, Z_STRVAL_PP(libswf), Z_STRVAL_PP(name)); if(res != NULL) { /* try and create a sprite object */ ret = zend_list_insert(res, le_swfspritep); object_init_ex(return_value, &sprite_class_entry); add_property_resource(return_value, "sprite", ret); } }PHP_FUNCTION(swfmovie_addFont){ SWFMovie movie; SWFFontCharacter res; int ret; SWFFont font; zval **zfont; if(ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &zfont) == FAILURE) WRONG_PARAM_COUNT; convert_to_object_ex(zfont); movie = getMovie(getThis() TSRMLS_CC); font = getFont(*zfont TSRMLS_CC); res = SWFMovie_addFont(movie, font); if(res != NULL) { /* try and create a fontchar object */ ret = zend_list_insert(res, le_swffontcharp); object_init_ex(return_value, &fontchar_class_entry); add_property_resource(return_value, "fontcharacter", ret); } }PHP_FUNCTION(swfmovie_importFont){ SWFMovie movie; SWFFontCharacter res; int ret; zval **libswf, **name; if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &libswf, &name) == FAILURE) WRONG_PARAM_COUNT; convert_to_string_ex(libswf); convert_to_string_ex(name); movie = getMovie(getThis() TSRMLS_CC); res = SWFMovie_importFont(movie, Z_STRVAL_PP(libswf), Z_STRVAL_PP(name)); if(res != NULL) { /* try and create a fontchar object */ ret = zend_list_insert(res, le_swffontcharp); object_init_ex(return_value, &fontchar_class_entry); add_property_resource(return_value, "fontcharacter", ret); } }/* {{{ 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);}/* }}} *//* {{{ swfmovie_output */void phpByteOutputMethod(byte b, void *data){ TSRMLS_FETCH(); php_write(&b, 1 TSRMLS_CC);}PHP_FUNCTION(swfmovie_output){ zval **zlimit = NULL; int limit = -1; SWFMovie movie = getMovie(getThis() TSRMLS_CC); switch (ZEND_NUM_ARGS()) { case 1: 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; } break; } RETURN_LONG(SWFMovie_output(movie, &phpByteOutputMethod, NULL, limit));}/* }}} *//* {{{ swfmovie_saveToFile */void phpFileOutputMethod(byte b, void *data){ fwrite(&b, 1, 1, (FILE *)data);}PHP_FUNCTION(swfmovie_saveToFile){ zval **x, **zlimit = NULL; int limit = -1; void *what; switch (ZEND_NUM_ARGS()) { case 1: if(zend_get_parameters_ex(1, &x) == FAILURE) WRONG_PARAM_COUNT; break; case 2: 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; } break; default: WRONG_PARAM_COUNT; } ZEND_FETCH_RESOURCE(what, FILE *, x, -1,"File-Handle",php_file_le_fopen()); RETURN_LONG(SWFMovie_output(getMovie(getThis() TSRMLS_CC), &phpFileOutputMethod, what, limit));}/* }}} *//* {{{ swfmovie_save */PHP_FUNCTION(swfmovie_save){ zval **x, **zlimit = NULL; int limit = -1; FILE *file; long retval; switch (ZEND_NUM_ARGS()) { case 1: if (zend_get_parameters_ex(1, &x) == FAILURE) WRONG_PARAM_COUNT; break; case 2: 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; } break; default: WRONG_PARAM_COUNT; } if(Z_TYPE_PP(x) == IS_RESOURCE) { ZEND_FETCH_RESOURCE(file, FILE *, x, -1,"File-Handle",php_file_le_fopen()); RETURN_LONG(SWFMovie_output(getMovie(getThis() TSRMLS_CC), &phpFileOutputMethod, file, limit)); } convert_to_string_ex(x); file = VCWD_FOPEN(Z_STRVAL_PP(x), "wb"); if(file == NULL) php_error(E_ERROR, "couldn't open file %s for writing", Z_STRVAL_PP(x)); retval = SWFMovie_output(getMovie(getThis() TSRMLS_CC), &phpFileOutputMethod, (void *)file, limit); fclose(file); RETURN_LONG(retval);}/* }}} *//* {{{ swfmovie_setbackground */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));}/* }}} *//* {{{ swfmovie_setrate */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, Z_DVAL_PP(rate));}/* }}} *//* {{{ swfmovie_setDimension */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, Z_DVAL_PP(x), Z_DVAL_PP(y));}/* }}} *//* {{{ swfmovie_setframes */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));}/* }}} *//* {{{ swfmovie_streamMp3 */PHP_FUNCTION(swfmovie_streamMp3){ zval **zfile, **zskip; float skip; SWFSoundStream sound; SWFInput input; SWFMovie movie = getMovie(getThis() TSRMLS_CC);//fprintf(stderr, "newSWFSoundStream_fromInput %x %d\n", newSWFSoundStream_fromInput, getpid()); sleep(30); 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; } 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_setSoundStreamAt(movie, sound, skip); RETURN_LONG(SWFSoundStream_getFrames(sound));}/* }}} *//* {{{ swfmovie_addexport */PHP_FUNCTION(swfmovie_addExport){ zval **zchar, **zname; int ret; SWFBlock block; SWFDisplayItem item; char *name; SWFMovie movie = getMovie(getThis() TSRMLS_CC); if(ZEND_NUM_ARGS() !=
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -