Author: Carlos Lopez <genet...@gmail.com> Date: Sat Feb 11 12:52:44 2012 +0100
Allow to use custom sequence separator for other targets than png which uses image sequence. --- synfig-core/src/modules/mod_bmp/trgt_bmp.cpp | 7 ++++--- synfig-core/src/modules/mod_bmp/trgt_bmp.h | 1 + .../modules/mod_imagemagick/trgt_imagemagick.cpp | 6 ++++-- .../src/modules/mod_imagemagick/trgt_imagemagick.h | 1 + synfig-core/src/modules/mod_jpeg/trgt_jpeg.cpp | 6 ++++-- synfig-core/src/modules/mod_jpeg/trgt_jpeg.h | 1 + .../src/modules/mod_magickpp/trgt_magickpp.cpp | 2 +- .../src/modules/mod_magickpp/trgt_magickpp.h | 5 +++-- .../src/modules/mod_openexr/trgt_openexr.cpp | 6 ++++-- synfig-core/src/modules/mod_openexr/trgt_openexr.h | 1 + synfig-core/src/modules/mod_ppm/trgt_ppm.cpp | 6 ++++-- synfig-core/src/modules/mod_ppm/trgt_ppm.h | 1 + 12 files changed, 29 insertions(+), 14 deletions(-) diff --git a/synfig-core/src/modules/mod_bmp/trgt_bmp.cpp b/synfig-core/src/modules/mod_bmp/trgt_bmp.cpp index 5a126ff..2b302e6 100644 --- a/synfig-core/src/modules/mod_bmp/trgt_bmp.cpp +++ b/synfig-core/src/modules/mod_bmp/trgt_bmp.cpp @@ -108,7 +108,7 @@ inline short little_endian_short(const short &x) #define little_endian_short(x) (x) #endif -bmp::bmp(const char *Filename, const synfig::TargetParam& /* params */) +bmp::bmp(const char *Filename, const synfig::TargetParam& params) { file=NULL; filename=Filename; @@ -116,7 +116,7 @@ bmp::bmp(const char *Filename, const synfig::TargetParam& /* params */) buffer=0; color_buffer=0; set_remove_alpha(); - + sequence_separator=params.sequence_separator; } bmp::~bmp() @@ -177,7 +177,8 @@ bmp::start_frame(synfig::ProgressCallback *callback) if(multi_image) { String newfilename(filename_sans_extension(filename) + - etl::strprintf(".%04d",imagecount) + + sequence_separator + + etl::strprintf("%04d",imagecount) + filename_extension(filename)); file=fopen(newfilename.c_str(),POPEN_BINARY_WRITE_TYPE); if(callback)callback->task(newfilename+_(" (animated)")); diff --git a/synfig-core/src/modules/mod_bmp/trgt_bmp.h b/synfig-core/src/modules/mod_bmp/trgt_bmp.h index 9d93b97..aa5127b 100644 --- a/synfig-core/src/modules/mod_bmp/trgt_bmp.h +++ b/synfig-core/src/modules/mod_bmp/trgt_bmp.h @@ -50,6 +50,7 @@ private: unsigned char *buffer; synfig::Color *color_buffer; synfig::PixelFormat pf; + synfig::String sequence_separator; public: bmp(const char *filename, const synfig::TargetParam& /* params */); diff --git a/synfig-core/src/modules/mod_imagemagick/trgt_imagemagick.cpp b/synfig-core/src/modules/mod_imagemagick/trgt_imagemagick.cpp index c23ef14..1291054 100644 --- a/synfig-core/src/modules/mod_imagemagick/trgt_imagemagick.cpp +++ b/synfig-core/src/modules/mod_imagemagick/trgt_imagemagick.cpp @@ -79,7 +79,7 @@ SYNFIG_TARGET_SET_CVS_ID(imagemagick_trgt,"$Id$"); /* === M E T H O D S ======================================================= */ imagemagick_trgt::imagemagick_trgt(const char *Filename, - const synfig::TargetParam& /* params */) + const synfig::TargetParam& params) { pid=-1; file=NULL; @@ -87,6 +87,7 @@ imagemagick_trgt::imagemagick_trgt(const char *Filename, multi_image=false; buffer=NULL; color_buffer=0; + sequence_separator=params.sequence_separator; } imagemagick_trgt::~imagemagick_trgt() @@ -159,7 +160,8 @@ imagemagick_trgt::start_frame(synfig::ProgressCallback *cb) if (multi_image) newfilename = (filename_sans_extension(filename) + - etl::strprintf(".%04d",imagecount) + + sequence_separator + + etl::strprintf("%04d",imagecount) + filename_extension(filename)); else newfilename = filename; diff --git a/synfig-core/src/modules/mod_imagemagick/trgt_imagemagick.h b/synfig-core/src/modules/mod_imagemagick/trgt_imagemagick.h index 253fb4c..e303dca 100644 --- a/synfig-core/src/modules/mod_imagemagick/trgt_imagemagick.h +++ b/synfig-core/src/modules/mod_imagemagick/trgt_imagemagick.h @@ -54,6 +54,7 @@ private: unsigned char *buffer; synfig::Color *color_buffer; synfig::PixelFormat pf; + synfig::String sequence_separator; public: imagemagick_trgt(const char *filename, const synfig::TargetParam& /* params */); diff --git a/synfig-core/src/modules/mod_jpeg/trgt_jpeg.cpp b/synfig-core/src/modules/mod_jpeg/trgt_jpeg.cpp index 890b533..e81420f 100644 --- a/synfig-core/src/modules/mod_jpeg/trgt_jpeg.cpp +++ b/synfig-core/src/modules/mod_jpeg/trgt_jpeg.cpp @@ -57,7 +57,7 @@ SYNFIG_TARGET_SET_CVS_ID(jpeg_trgt,"$Id$"); /* === M E T H O D S ======================================================= */ jpeg_trgt::jpeg_trgt(const char *Filename, - const synfig::TargetParam& /* params */) + const synfig::TargetParam& params) { file=NULL; filename=Filename; @@ -66,6 +66,7 @@ jpeg_trgt::jpeg_trgt(const char *Filename, quality=95; color_buffer=0; set_remove_alpha(); + sequence_separator=params.sequence_separator; } jpeg_trgt::~jpeg_trgt() @@ -110,7 +111,8 @@ jpeg_trgt::start_frame(synfig::ProgressCallback *callback) else if(multi_image) { String newfilename(filename_sans_extension(filename) + - etl::strprintf(".%04d",imagecount) + + sequence_separator + + etl::strprintf("%04d",imagecount) + filename_extension(filename)); file=fopen(newfilename.c_str(),POPEN_BINARY_WRITE_TYPE); if(callback)callback->task(newfilename); diff --git a/synfig-core/src/modules/mod_jpeg/trgt_jpeg.h b/synfig-core/src/modules/mod_jpeg/trgt_jpeg.h index 8cbb4dc..f321dd6 100644 --- a/synfig-core/src/modules/mod_jpeg/trgt_jpeg.h +++ b/synfig-core/src/modules/mod_jpeg/trgt_jpeg.h @@ -60,6 +60,7 @@ private: synfig::String filename; unsigned char *buffer; synfig::Color *color_buffer; + synfig::String sequence_separator; public: jpeg_trgt(const char *filename, const synfig::TargetParam& /* params */); virtual ~jpeg_trgt(); diff --git a/synfig-core/src/modules/mod_magickpp/trgt_magickpp.cpp b/synfig-core/src/modules/mod_magickpp/trgt_magickpp.cpp index 0570685..c5cd448 100644 --- a/synfig-core/src/modules/mod_magickpp/trgt_magickpp.cpp +++ b/synfig-core/src/modules/mod_magickpp/trgt_magickpp.cpp @@ -188,7 +188,7 @@ magickpp_trgt::~magickpp_trgt() // include '%04d' in the filename, so the files will be numbered // with a fixed width, '0'-padded number synfig::info("can't join images of this type - numbering instead"); - filename = (filename_sans_extension(filename) + ".%04d" + filename_extension(filename)); + filename = (filename_sans_extension(filename) + sequence_separator + "%04d" + filename_extension(filename)); } synfig::info("writing %d image%s to %s", images.size(), images.size() == 1 ? "" : "s", filename.c_str()); diff --git a/synfig-core/src/modules/mod_magickpp/trgt_magickpp.h b/synfig-core/src/modules/mod_magickpp/trgt_magickpp.h index 8705e1d..c8e4d0f 100644 --- a/synfig-core/src/modules/mod_magickpp/trgt_magickpp.h +++ b/synfig-core/src/modules/mod_magickpp/trgt_magickpp.h @@ -52,12 +52,13 @@ private: bool transparent; synfig::Color *color_buffer; std::vector<Magick::Image> images; + synfig::String sequence_separator; public: magickpp_trgt(const char *filename, - const synfig::TargetParam& /* params */) : - filename(filename) { } + const synfig::TargetParam& params) : + filename(filename): sequence_separator(params.sequence_separator) { } virtual ~magickpp_trgt(); virtual bool set_rend_desc(synfig::RendDesc *desc); diff --git a/synfig-core/src/modules/mod_openexr/trgt_openexr.cpp b/synfig-core/src/modules/mod_openexr/trgt_openexr.cpp index fd29524..3aff765 100644 --- a/synfig-core/src/modules/mod_openexr/trgt_openexr.cpp +++ b/synfig-core/src/modules/mod_openexr/trgt_openexr.cpp @@ -62,7 +62,7 @@ exr_trgt::ready() } exr_trgt::exr_trgt(const char *Filename, - const synfig::TargetParam& /* params */): + const synfig::TargetParam& params): multi_image(false), imagecount(0), filename(Filename), @@ -75,6 +75,7 @@ exr_trgt::exr_trgt(const char *Filename, // OpenEXR uses linear gamma gamma().set_gamma(1.0); + sequence_separator=params.sequence_separator; } exr_trgt::~exr_trgt() @@ -113,7 +114,8 @@ exr_trgt::start_frame(synfig::ProgressCallback *cb) if(multi_image) { frame_name = (filename_sans_extension(filename) + - etl::strprintf(".%04d",imagecount) + + sequence_separator + + etl::strprintf("%04d",imagecount) + filename_extension(filename)); if(cb)cb->task(frame_name); } diff --git a/synfig-core/src/modules/mod_openexr/trgt_openexr.h b/synfig-core/src/modules/mod_openexr/trgt_openexr.h index a7bfb28..461cfda 100644 --- a/synfig-core/src/modules/mod_openexr/trgt_openexr.h +++ b/synfig-core/src/modules/mod_openexr/trgt_openexr.h @@ -59,6 +59,7 @@ private: #endif bool ready(); + synfig::String sequence_separator; public: exr_trgt(const char *filename, const synfig::TargetParam& /* params */); virtual ~exr_trgt(); diff --git a/synfig-core/src/modules/mod_ppm/trgt_ppm.cpp b/synfig-core/src/modules/mod_ppm/trgt_ppm.cpp index 0012c54..d5247cd 100644 --- a/synfig-core/src/modules/mod_ppm/trgt_ppm.cpp +++ b/synfig-core/src/modules/mod_ppm/trgt_ppm.cpp @@ -55,13 +55,14 @@ SYNFIG_TARGET_SET_CVS_ID(ppm,"$Id$"); /* === M E T H O D S ======================================================= */ -ppm::ppm(const char *Filename, const synfig::TargetParam& /* params */) +ppm::ppm(const char *Filename, const synfig::TargetParam& params ) { filename=Filename; multi_image=false; buffer=NULL; color_buffer=0; set_remove_alpha(); + sequence_separator=params.sequence_separator; } ppm::~ppm() @@ -102,7 +103,8 @@ ppm::start_frame(synfig::ProgressCallback *callback) else if(multi_image) { String newfilename(filename_sans_extension(filename) + - etl::strprintf(".%04d",imagecount) + + sequence_separator + + etl::strprintf("%04d",imagecount) + filename_extension(filename)); file=SmartFILE(fopen(newfilename.c_str(),POPEN_BINARY_WRITE_TYPE)); if(callback)callback->task(newfilename); diff --git a/synfig-core/src/modules/mod_ppm/trgt_ppm.h b/synfig-core/src/modules/mod_ppm/trgt_ppm.h index fd93e38..48d541b 100644 --- a/synfig-core/src/modules/mod_ppm/trgt_ppm.h +++ b/synfig-core/src/modules/mod_ppm/trgt_ppm.h @@ -52,6 +52,7 @@ private: synfig::String filename; synfig::Color *color_buffer; unsigned char *buffer; + synfig::String sequence_separator; public: ppm(const char *filename, const synfig::TargetParam& /* params */); virtual ~ppm(); ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl