Merge branch 'genete_static_values'
[synfig.git] / synfig-core / src / synfig / importer.h
index 30ec899..7244f2c 100644 (file)
 #include "string.h"
 #include "time.h"
 #include "gamma.h"
+#include "renddesc.h" 
 
 /* === M A C R O S ========================================================= */
 
 //! Defines various variables and the create method, common for all importers.
 //! To be used in the private part of the importer class definition.
-#define SYNFIG_IMPORTER_MODULE_EXT public: static const char name__[], version__[], ext__[],cvs_id__[]; static Importer *create(const char *filename);
+#define SYNFIG_IMPORTER_MODULE_EXT \
+               public: static const char name__[], version__[], ext__[],cvs_id__[]; \
+               static Importer *create(const char *filename);
 
 //! Sets the name of the importer.
 #define SYNFIG_IMPORTER_SET_NAME(class,x) const char class::name__[]=x
@@ -52,7 +55,8 @@
 //! Sets the CVS ID of the importer.
 #define SYNFIG_IMPORTER_SET_CVS_ID(class,x) const char class::cvs_id__[]=x
 
-//! Defines de implementation of the create method for the importer.
+//! Defines de implementation of the create method for the importer
+//! \param filename The file name to be imported by the importer.
 #define SYNFIG_IMPORTER_INIT(class) synfig::Importer* class::create(const char *filename) { return new class(filename); }
 
 /* === T Y P E D E F S ===================================================== */
@@ -69,16 +73,18 @@ class ProgressCallback;
 *
 *      It is the base class for all the importers. It defines the has a static Book
 *      pointer class that is a map for the importers factory creators and the strings
-*      of the importers class names. It allows to create the a pointer to a particular
-*      importer just by using the string of the name of the importer.
-*      Also it creates a virtual member get_frame that must be declared in the inherited
-*      classes.
-*
+*      of the extension that the importer can understand. It allows to create the a
+*      pointer to a particular importer just by using the extension of the name of file
+*      to import. Also it creates a virtual member get_frame that must be declared in
+*      the inherited classes.
+*      \see module.h
 **     \
 */
 class Importer : public etl::shared_object
 {
 public:
+       //! Type that represents a pointer to a Importer's constructor.
+       //! As a pointer to the constructor, it represents a "factory" of importers.
        typedef Importer* (*Factory)(const char *filename);
        typedef std::map<String,Factory> Book;
        static Book* book_;
@@ -97,7 +103,7 @@ public:
        typedef etl::handle<const Importer> ConstHandle;
 
 private:
-       //! Gamm of the imoporter.
+       //! Gamma of the importer.
        //! \todo Do not hardcode the gamma to 2.2
        Gamma gamma_;
 
@@ -119,8 +125,8 @@ public:
        **      \return \c true on success, \c false on error
        **      \see ProgressCallback, Surface
        */
-       virtual bool get_frame(Surface &surface,Time time, ProgressCallback *callback=NULL)=0;
-       virtual bool get_frame(Surface &surface,Time time,
+       virtual bool get_frame(Surface &surface, const RendDesc &renddesc, Time time, ProgressCallback *callback=NULL)=0;
+       virtual bool get_frame(Surface &surface, const RendDesc &renddesc,Time time,
                                                   bool &trimmed __attribute__ ((unused)),
                                                   unsigned int &width __attribute__ ((unused)),
                                                   unsigned int &height __attribute__ ((unused)),
@@ -128,7 +134,7 @@ public:
                                                   unsigned int &left __attribute__ ((unused)),
                                                   ProgressCallback *callback=NULL)
        {
-               return get_frame(surface,time,callback);
+               return get_frame(surface,renddesc,time,callback);
        }
 
        //! Returns \c true if the importer pays attention to the \a time parameter of get_frame()