X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fswfcombine.c;h=557e7bdbd9c31422a50555735e89f0de239e5382;hb=c30c5469c531b461673d0e8d1ca28de007bc465d;hp=1204cc1d07b0c8ddde24f01c07bffc76ccd4da5e;hpb=f7df364754f1e995ca99b0f1b2004c58ed8df991;p=swftools.git diff --git a/src/swfcombine.c b/src/swfcombine.c index 1204cc1..557e7bd 100644 --- a/src/swfcombine.c +++ b/src/swfcombine.c @@ -40,6 +40,8 @@ struct config_t char cat; char merge; char isframe; + char local_with_networking; + char local_with_filesystem; int loglevel; int sizex; char hassizex; @@ -171,6 +173,16 @@ int args_callback_option(char*name,char*val) { config.scaley = atoi(val)/100.0; return 1; } + else if (!strcmp(name, "N")) + { + config.local_with_networking = 1; + return 0; + } + else if (!strcmp(name, "L")) + { + config.local_with_filesystem = 1; + return 0; + } else if (!strcmp(name, "t") || !strcmp(name, "T")) { if(master_filename) { @@ -212,6 +224,8 @@ static struct options_t options[] = { {"r", "rate"}, {"X", "width"}, {"Y", "height"}, +{"N", "local-with-networking"}, +{"L", "local-with-filesystem"}, {"z", "zlib"}, {0,0} }; @@ -285,10 +299,12 @@ void args_callback_usage(char *name) printf("-f , --frame The following identifier is a frame or framelabel, not an id or objectname\n"); printf("-x , --movex x Adjust position of slave by pixels\n"); printf("-y , --movey y Adjust position of slave by pixels\n"); - printf("-s , --scale Adjust size of slave by percent (e.g. 100%% = original size)\n"); + printf("-s , --scale Adjust size of slave by percent (e.g. 100% = original size)\n"); printf("-r , --rate Set movie framerate to (frames/sec)\n"); printf("-X , --width Force movie bbox width to (default: use master width (not with -t))\n"); printf("-Y , --height Force movie bbox height to (default: use master height (not with -t))\n"); + printf("-N , --local-with-networking Make output file \"local-with-networking\"\n"); + printf("-L , --local-with-filesystem Make output file \"local-with-filesystem\"\n"); printf("-z , --zlib Enable Flash 6 (MX) Zlib Compression\n"); printf("\n"); } @@ -314,6 +330,7 @@ static void makestackmaster(SWF*swf) SRECT box; int fileversion = config.zlib?6:3; int frameRate = 256; + U32 fileAttributes = 0; RGBA rgb; rgb.r=rgb.b=rgb.g=0; memset(&box, 0, sizeof(box)); @@ -331,7 +348,9 @@ static void makestackmaster(SWF*swf) } close(fi); swf_RemoveJPEGTables(&head); + fileAttributes |= head.fileAttributes; removeCommonTags(&head); + msg(" File %s has bounding box %d:%d:%d:%d\n", slave_filename[t], head.movieSize.xmin, head.movieSize.ymin, @@ -371,6 +390,7 @@ static void makestackmaster(SWF*swf) swf->fileVersion = fileversion; swf->movieSize = box; swf->frameRate = frameRate; + swf->fileAttributes = fileAttributes; swf->firstTag = swf_InsertTag(0, ST_SETBACKGROUNDCOLOR); tag = swf->firstTag; @@ -1018,8 +1038,12 @@ void normalcombine(SWF*master, char*slave_name, SWF*slave, SWF*newswf) if (spriteid<0 && !config.isframe) { if(slavename) { - if(strcmp(slavename,"!!dummy!!")) + if(strcmp(slavename,"!!dummy!!")) { msg(" Didn't find anything named %s in file. No substitutions will occur.", slavename); + if(!strcmp(slavename, "swf")) { + msg(" (If you were trying to combine rfxview with a document, try replacing 'swf' with 'viewport'."); + } + } } else msg(" Didn't find id %d in file. No substitutions will occur.", slaveid); @@ -1058,7 +1082,7 @@ void normalcombine(SWF*master, char*slave_name, SWF*slave, SWF*newswf) FLAGS_WRITEDEFINES|FLAGS_WRITENONDEFINES| FLAGS_WRITESPRITE ); } - swf_DeleteTag(newswf, tag); + swf_DeleteTag(newswf, newswf->firstTag); } void combine(SWF*master, char*slave_name, SWF*slave, SWF*newswf) @@ -1069,6 +1093,8 @@ void combine(SWF*master, char*slave_name, SWF*slave, SWF*newswf) if(!master->fileVersion && slave) master->fileVersion = slave->fileVersion; + + master->fileAttributes |= slave->fileAttributes; swf_FoldAll(master); swf_FoldAll(slave); @@ -1291,6 +1317,11 @@ int main(int argn, char *argv[]) if(!newswf.fileVersion) newswf.fileVersion = 4; + if(config.local_with_filesystem) + newswf.fileAttributes &= ~FILEATTRIBUTE_USENETWORK; + if(config.local_with_networking) + newswf.fileAttributes |= FILEATTRIBUTE_USENETWORK; + fi = open(outputname, O_BINARY|O_RDWR|O_TRUNC|O_CREAT, 0777); if(config.zlib) {