config.movey = atoi(val);
return 1;
}
+ else if (!strcmp(name, "d"))
+ {
+ config.dummy = 1;
+ return 0;
+ }
+ else if (!strcmp(name, "r"))
+ {
+ config.framerate = atoi(val)*256/100;
+ return 1;
+ }
+ else if (!strcmp(name, "X"))
+ {
+ config.sizex = atoi(val)*20;
+ config.hassizex = 1;
+ return 1;
+ }
+ else if (!strcmp(name, "Y"))
+ {
+ config.sizey = atoi(val)*20;
+ config.hassizey = 1;
+ return 1;
+ }
else if (!strcmp(name, "s"))
{
config.scalex = config.scaley = atoi(val)/100.0;
struct options_t options[] =
{{"o","output"},
{"s","scale"},
+ {"d","dummy"},
{"x","xpos"},
{"y","ypos"},
+ {"X","width"},
+ {"Y","height"},
+ {"r","rate"},
{"l","overlay"},
+ {"t","stack"},
{"v","verbose"},
{"V","version"},
{"c","clip"},
void args_callback_usage(char*name)
{
- printf("Usage: %s [-l] [-o outputfile] [name=]masterfile [-x xpos] [-y ypos] [-s scale] [name1=]slavefile1 .. [-x xpos] [-y ypos] [-s scale] [nameN=]slavefileN\n", name);
+ printf("Usage: %s [-l][-t] [-o outputfile] [[name=]masterfile] [-x xpos] [-y ypos] [-s scale] [name1=]slavefile1 .. [-x xpos] [-y ypos] [-s scale] [nameN=]slavefileN\n", name);
printf("\n");
- printf("-o outputfile explicitly specify output file. (otherwise, output.swf will be used)\n");
+ printf("-o outputfile (output) explicitly specify output file. (otherwise, output.swf will be used)\n");
+ printf("-t (stack) place each slave into a seperate frame (no master movie)\n");
printf("-l (overlay) Don't remove any master objects, only overlay new objects\n");
printf("-c (clip) Clip the slave objects by the corresponding master objects\n");
printf("-v (verbose) Use more than one -v for greater effect \n");
+ printf("-d (dummy) Don't require slave objects \n");
printf("-x xpos (move x) Adjust position of slave by xpos twips (1/20 pixel)\n");
printf("-y ypos (move y) Adjust position of slave by ypos twips (1/20 pixel)\n");
printf("-s scale (scale) Adjust size of slave by scale%\n");
+ printf("-r framerate (rate) Set movie framerate (100 frames/sec)\n");
+ printf("-X width (width) Force movie width to scale (default: use master width) (not with -t)\n");
+ printf("-Y height (height) Force movie height to scale (default: use master height) (not with -t)\n");
}
/* read a whole file in memory */
int strlength = 0;
int fileversion = 1;
- logf("<error> stacking doesn't work yet. Prepare for problems.");
-
/* scan all slaves for bounding box */
for(t=0;t<numslaves;t++)
{
int t;
config.overlay = 0;
+ config.antistream = 0;
config.alloctest = 0;
config.clip = 0;
config.loglevel = 2;
config.movey = 0;
config.scalex = 1.0;
config.scaley = 1.0;
+ config.sizex = 0;
+ config.sizey = 0;
+ config.hassizex = 0;
+ config.hassizey = 0;
+ config.framerate = 0;
config.stack = 0;
+ config.dummy = 0;
processargs(argn, argv);
initLog(0,-1,0,0,-1,config.loglevel);
logf("<debug> Read %d bytes from masterfile\n", masterlength);
fclose(fi);
}
-
+
for(t=0;t<numslaves;t++)
logf("<verbose> slave entity(%d) %s (named \"%s\")\n", t+1, slave_filename[t], slave_name[t]);
+ if(config.dummy)
+ {
+ if(numslaves)
+ {
+ logf("<error> --dummy (-d) implies there are zero slave objects. You supplied %d.", numslaves);
+ exit(1);
+ }
+ numslaves = 1;
+ slave_filename[t] = "!!dummy!!";
+ slave_name[t] = "!!dummy!!";
+ }
+
if (config.alloctest)
{
int*bitmap = malloc(sizeof(int)*65536);
logf("<notice> Combine [%s]%s and [%s]%s", master_name, master_filename,
slave_name[t], slave_filename[t]);
- fi = fopen(slave_filename[t], "rb");
- if(!fi) {
- fprintf(stderr, "Failed to open %s\n", slave_filename[t]);
- return 1;
+ if(!config.dummy)
+ {
+ fi = fopen(slave_filename[t], "rb");
+ if(!fi) {
+ fprintf(stderr, "Failed to open %s\n", slave_filename[t]);
+ return 1;
+ }
+ slavedata = fi_slurp(fi, &slavelength);
+ if(!slavedata) {
+ fprintf(stderr, "Failed to read from %s\n", slave_filename[t]);
+ return 1;
+ }
+ logf("<debug> Read %d bytes from slavefile\n", slavelength);
+ fclose(fi);
}
- slavedata = fi_slurp(fi, &slavelength);
- if(!slavedata) {
- fprintf(stderr, "Failed to read from %s\n", slave_filename[t]);
- return 1;
+ else
+ {
+ slavedata = (u8*)malloc(16);
+ slavedata[0] = 'F';
+ slavedata[1] = 'W';
+ slavedata[2] = 'S';
+ slavedata[3] = 4; //version
+ *(u32*)&slavedata[4] = 14; // length
+ slavedata[8] = 0; // boundingbox
+ *(u16*)&slavedata[9] = 0; // rate
+ *(u16*)&slavedata[11] = 0; // count
+ *(u16*)&slavedata[13] = 0; // end tag
+ slavelength = 17;
}
- logf("<debug> Read %d bytes from slavefile\n", slavelength);
- fclose(fi);
newdata = combine(masterdata, masterlength, slave_name[t], slavedata, slavelength, &newlength);
if(!newdata) {