+
+ if(one_file_per_page) {
+ // remove empty device
+ gfxresult_t*result = out->finish(out);out=0;
+ result->destroy(result);result=0;
+ } else {
+ gfxresult_t*result = out->finish(out);
+ msg("<notice> Writing SWF file %s", outputname);
+ if(result->save(result, outputname) < 0) {
+ exit(1);
+ }
+ int width = (int)(ptroff_t)result->get(result, "width");
+ int height = (int)(ptroff_t)result->get(result, "height");
+ result->destroy(result);result=0;
+
+ if(preloader || viewer) {
+ const char*zip = "";
+ if(zlib) {
+ zip = "-z";
+ }
+ if(!preloader && viewer) {
+ systemf("swfcombine %s -X %d -Y %d \"%s\" viewport=\"%s\" -o \"%s\"",zip,width,height,
+ viewer, outputname, outputname);
+ if(!system_quiet)
+ printf("\n");
+ }
+ if(preloader && !viewer) {
+ msg("<warning> --preloader option without --viewer option doesn't make very much sense.");
+ ret = systemf("swfcombine %s -Y %d -X %d %s/PreLoaderTemplate.swf loader=\"%s\" movie=\"%s\" -o \"%s\"",zip,width,height,
+ SWFDIR, preloader, outputname, outputname);
+ if(!system_quiet)
+ printf("\n");
+ }
+ if(preloader && viewer) {
+#ifdef HAVE_MKSTEMP
+ char tmpname[] = "__swf__XXXXXX";
+ mkstemp(tmpname);
+#else
+ char*tmpname = "__tmp__.swf";
+#endif
+ systemf("swfcombine \"%s\" viewport=%s -o %s",
+ viewer, outputname, tmpname);
+ systemf("swfcombine %s -X %d -Y %d -r %f %s/PreLoaderTemplate.swf loader=%s movie=%s -o \"%s\"",zip,width,height,
+ getRate(preloader), SWFDIR, preloader, tmpname, outputname);
+ systemf("rm %s", tmpname);
+ }
+ }