]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/paper-book.cc
* scm/lily.scm (postscript->png): new function
[lilypond.git] / lily / paper-book.cc
index 6e739723cf50f3b4e3a32b48efcd247eedf78577..a94be54856a37675f53d1af68fdfdfb25438d49c 100644 (file)
@@ -117,28 +117,33 @@ void
 Paper_book::post_processing (SCM module,
                             SCM file_name)
 {
-  if (make_pdf)
+  struct
+  {
+    bool do_it_;
+    char const *func_name_;
+  } settings[] = {
+    {make_dvi, "convert-to-dvi"},
+    {make_ps, "convert-to-ps"},
+    {make_pdf, "convert-to-pdf"},
+    {make_png, "convert-to-png"},
+    {0,0}
+  };
+
+  for (int i= 0; settings[i].func_name_; i++)
     {
-      SCM func = scm_c_module_lookup (module, "convert-to-pdf");
-      if (scm_variable_p (func) == SCM_BOOL_T)
+      if (settings[i].do_it_)
        {
-         func = scm_variable_ref (func);
-         if (ly_c_procedure_p (func))
-           scm_call_2 (func, self_scm(), file_name);
-       }
-    }
-
-  if (make_png)
-    {
-      SCM func = scm_c_module_lookup (module, "convert-to-png");
-      if (scm_variable_p (func) ==  SCM_BOOL_T)
-       {
-         func = scm_variable_ref (func);
-         if (ly_c_procedure_p (func))
-           scm_call_2 (func, self_scm(), file_name);
+         SCM func = scm_c_module_lookup (module, settings[i].func_name_);
+         if (scm_variable_p (func) == SCM_BOOL_T)
+           {
+             func = scm_variable_ref (func);
+             if (ly_c_procedure_p (func))
+               scm_call_2 (func, self_scm(), file_name);
+           }
        }
     }
 }
+
 void
 Paper_book::output (String outname)
 {