gfxsource now has object-oriented members
authorkramm <kramm>
Fri, 9 Nov 2007 10:23:49 +0000 (10:23 +0000)
committerkramm <kramm>
Fri, 9 Nov 2007 10:23:49 +0000 (10:23 +0000)
lib/gfxsource.h
lib/swf/swf.c
src/pdf2swf.c

index 15ab936..d73d99a 100644 (file)
@@ -33,8 +33,9 @@ struct _gfxpage;
 
 typedef struct _gfxsource
 {
 
 typedef struct _gfxsource
 {
-    void                 (*set_parameter)(const char*name, const char*value);
-    struct _gfxdocument* (*open)(const char*filename);
+    void                 (*set_parameter)(struct _gfxsource*src, const char*name, const char*value);
+    struct _gfxdocument* (*open)(struct _gfxsource*src, const char*filename);
+    void  (*destroy)(struct _gfxsource*src);
     void*internal;
 } gfxsource_t;
 
     void*internal;
 } gfxsource_t;
 
index ffabdcf..0540e0f 100644 (file)
@@ -509,12 +509,12 @@ gfxpage_t* swf_doc_getpage(gfxdocument_t*doc, int page)
     return swf_page;
 }
 
     return swf_page;
 }
 
-void swf_set_parameter(char*name, char*value)
+void swf_set_parameter(gfxsource_t*src, char*name, char*value)
 {
     msg("<verbose> setting parameter %s to \"%s\"", name, value);
 }
 
 {
     msg("<verbose> setting parameter %s to \"%s\"", name, value);
 }
 
-gfxdocument_t*swf_open(char*filename)
+gfxdocument_t*swf_open(gfxsource_t*src, char*filename)
 {
     gfxdocument_t*swf_doc = (gfxdocument_t*)malloc(sizeof(gfxdocument_t));
     memset(swf_doc, 0, sizeof(gfxdocument_t));
 {
     gfxdocument_t*swf_doc = (gfxdocument_t*)malloc(sizeof(gfxdocument_t));
     memset(swf_doc, 0, sizeof(gfxdocument_t));
index 49e0942..04c860f 100644 (file)
@@ -187,31 +187,31 @@ int args_callback_option(char*name,char*val) {
        if(c && *c && c[1])  {
            *c = 0;
            c++;
        if(c && *c && c[1])  {
            *c = 0;
            c++;
-           driver->set_parameter(s,c);
+           driver->set_parameter(driver, s,c);
        }
        else
        }
        else
-           driver->set_parameter(s,"1");
+           driver->set_parameter(driver, s,"1");
        return 1;
     }
     else if (!strcmp(name, "S"))
     {
        return 1;
     }
     else if (!strcmp(name, "S"))
     {
-       driver->set_parameter("drawonlyshapes", "1");
+       driver->set_parameter(driver, "drawonlyshapes", "1");
        return 0;
     }
     else if (!strcmp(name, "i"))
     {
        return 0;
     }
     else if (!strcmp(name, "i"))
     {
-       driver->set_parameter("ignoredraworder", "1");
+       driver->set_parameter(driver, "ignoredraworder", "1");
        return 0;
     }
     else if (!strcmp(name, "z"))
     {
        return 0;
     }
     else if (!strcmp(name, "z"))
     {
-       driver->set_parameter("enablezlib", "1");
+       driver->set_parameter(driver, "enablezlib", "1");
        zlib = 1;
        return 0;
     }
     else if (!strcmp(name, "n"))
     {
        zlib = 1;
        return 0;
     }
     else if (!strcmp(name, "n"))
     {
-       driver->set_parameter("opennewwindow", "1");
+       driver->set_parameter(driver, "opennewwindow", "1");
        return 0;
     }
     else if (!strcmp(name, "I"))
        return 0;
     }
     else if (!strcmp(name, "I"))
@@ -221,27 +221,27 @@ int args_callback_option(char*name,char*val) {
     }
     else if (!strcmp(name, "t"))
     {
     }
     else if (!strcmp(name, "t"))
     {
-       driver->set_parameter("insertstop", "1");
+       driver->set_parameter(driver, "insertstop", "1");
        return 0;
     }
     else if (!strcmp(name, "T"))
     {
        if(!strcasecmp(val, "mx"))
        return 0;
     }
     else if (!strcmp(name, "T"))
     {
        if(!strcasecmp(val, "mx"))
-           driver->set_parameter("flashversion", "6");
+           driver->set_parameter(driver, "flashversion", "6");
        else
        else
-           driver->set_parameter("flashversion", val);
+           driver->set_parameter(driver, "flashversion", val);
 
        return 1;
     }
     else if (!strcmp(name, "f"))
     {
 
        return 1;
     }
     else if (!strcmp(name, "f"))
     {
-       driver->set_parameter("storeallcharacters", "1");
-       driver->set_parameter("extrafontdata", "1");
+       driver->set_parameter(driver, "storeallcharacters", "1");
+       driver->set_parameter(driver, "extrafontdata", "1");
        return 0;
     }
     else if (!strcmp(name, "w"))
     {
        return 0;
     }
     else if (!strcmp(name, "w"))
     {
-       driver->set_parameter("linksopennewwindow", "0");
+       driver->set_parameter(driver, "linksopennewwindow", "0");
        return 0;
     }
     else if (!strcmp(name, "G"))
        return 0;
     }
     else if (!strcmp(name, "G"))
@@ -307,10 +307,10 @@ int args_callback_option(char*name,char*val) {
     else if (!strcmp(name, "j"))
     {
        if(name[1]) {
     else if (!strcmp(name, "j"))
     {
        if(name[1]) {
-           driver->set_parameter("jpegquality", &name[1]);
+           driver->set_parameter(driver, "jpegquality", &name[1]);
            return 0;
        } else {
            return 0;
        } else {
-           driver->set_parameter("jpegquality", val);
+           driver->set_parameter(driver, "jpegquality", val);
            return 1;
        }
     }
            return 1;
        }
     }
@@ -449,7 +449,7 @@ float getRate(char*filename)
 
 void show_info(gfxsource_t*driver, char*filename)
 {
 
 void show_info(gfxsource_t*driver, char*filename)
 {
-    gfxdocument_t* pdf = driver->open(filename);
+    gfxdocument_t* pdf = driver->open(driver, filename);
     int pagenr;
     FILE*fo=0;
     if(!pdf) {
     int pagenr;
     FILE*fo=0;
     if(!pdf) {
@@ -533,7 +533,7 @@ int main(int argn, char *argv[])
     is_in_range(0x7fffffff, pagerange);
 
     if(pagerange)
     is_in_range(0x7fffffff, pagerange);
 
     if(pagerange)
-       driver->set_parameter("pages", pagerange);
+       driver->set_parameter(driver, "pages", pagerange);
 
     if (!filename) {
        args_callback_usage(argv[0]);
 
     if (!filename) {
        args_callback_usage(argv[0]);
@@ -542,7 +542,7 @@ int main(int argn, char *argv[])
 
     /* add fonts */
     for(t=0;t<fontpathpos;t++) {
 
     /* add fonts */
     for(t=0;t<fontpathpos;t++) {
-       driver->set_parameter("fontdir", fontpaths[t]);
+       driver->set_parameter(driver, "fontdir", fontpaths[t]);
     }
 
     char fullname[256];
     }
 
     char fullname[256];
@@ -551,7 +551,7 @@ int main(int argn, char *argv[])
        filename = fullname;
     }
 
        filename = fullname;
     }
 
-    gfxdocument_t* pdf = driver->open(filename);
+    gfxdocument_t* pdf = driver->open(driver, filename);
     if(!pdf) {
         msg("<error> Couldn't open %s", filename);
         exit(1);
     if(!pdf) {
         msg("<error> Couldn't open %s", filename);
         exit(1);