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

Reply via email to