Author: Carlos Lopez <[email protected]>
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/synfig-devl