[gephex-devel] gephex--main--0.4--patch-1859

gephex at sonnenland.kexbox.org gephex at sonnenland.kexbox.org
Sun Mar 6 18:58:57 CET 2005


Archive: gephex at gephex.org--2004
New revision: gephex--main--0.4--patch-1859

--
Revision: gephex--main--0.4--patch-1859
Archive: gephex at gephex.org--2004
Creator: The Gephex Source Archive <gephex at gephex.org>
Date: Sun Mar  6 18:56:09 CET 2005
Standard-date: 2005-03-06 17:56:09 GMT
Modified-files: base/src/utils/configmanager.cpp
    base/src/utils/configmanager.h doc/documentation.xml
    engine/src/engine/main.cpp qtgui/src/gui/main.cpp
New-patches: georg at gephex.org--2005-ibook/gephex--macport--0.4--patch-25
    georg at gephex.org--2005-ibook/gephex--macport--0.4--patch-26
    georg at gephex.org--2005-ibook/gephex--macport--0.4--patch-27
    gephex at gephex.org--2004/gephex--main--0.4--patch-1859
Summary: [MERGE-REQUEST] Updated documentation, fixed bug #102
Keywords: 

Patches applied:

 * georg at gephex.org--2005-ibook/gephex--macport--0.4--patch-25
   <no summary provided>

 * georg at gephex.org--2005-ibook/gephex--macport--0.4--patch-26
   Updated documentation (more history)

 * georg at gephex.org--2005-ibook/gephex--macport--0.4--patch-27
   Removed "No error" exception in configmanager (bug #102)

* added files

    {arch}/gephex/gephex--macport/gephex--macport--0.4/georg at gephex.org--2005-ibook/patch-log/patch-25
    {arch}/gephex/gephex--macport/gephex--macport--0.4/georg at gephex.org--2005-ibook/patch-log/patch-26
    {arch}/gephex/gephex--macport/gephex--macport--0.4/georg at gephex.org--2005-ibook/patch-log/patch-27
    {arch}/gephex/gephex--main/gephex--main--0.4/gephex at gephex.org--2004/patch-log/patch-1859

* modified files

--- orig/base/src/utils/configmanager.cpp
+++ mod/base/src/utils/configmanager.cpp
@@ -137,7 +137,8 @@
 
   static void create_cmdl_config(std::ostream& os,
                                  const ConfigManager::ParamList& params,
-                                 int argc, const char* argv[])
+                                 int argc, const char* argv[],
+				 bool& help_requested)
   {
     os << "cmdl {
";
 
@@ -148,15 +149,19 @@
         if (is_help(arg))
           {
             print_help(argv[0], params);
-            throw std::runtime_error("No error");
+	    help_requested = true;
           }
         else if (is_param(arg))
           os << arg.substr(2) << "
"; // strip leading "--"
         else
           {
-            std::cerr << "Invalid argument: '" << arg << "'
";
+	    std::stringstream strs;
+
+	    strs << "Invalid argument: '" << arg << "'
";
+
             print_help(argv[0], params);
-            throw std::runtime_error("No error");
+
+            throw std::runtime_error(strs.str().c_str());
           }
       }
     
@@ -178,8 +183,8 @@
         ConfigManager::CPMap::const_iterator cit = cpm.find(param_name);
 
         if (cit == cpm.end())
-          throw std::runtime_error("Unknown cmdl parameter: '--'"
-                                   + param_name);
+          throw std::runtime_error("Unknown cmdl parameter: '--"
+                                   + param_name + "'");
 
         check_type(sr, param_name, cit->second.m_type);
       }
@@ -199,7 +204,7 @@
   ConfigManager::ConfigManager(const std::string& cfile_name,
                              int argc, const char* argv[],
                              const ParamList& params)
-    : m_params(params), m_cf_file(0), m_cf_cmdl(0)
+    : m_params(params), m_cf_file(0), m_cf_cmdl(0), m_help_requested(false)
   {
     for (ConfigManager::ParamList::const_iterator it = params.begin();
          it != params.end(); ++it)
@@ -224,7 +229,7 @@
 
         //        std::cout << "processing cmdl...
";
         std::ostringstream ccmdl;
-        create_cmdl_config(ccmdl, m_params, argc, argv);
+        create_cmdl_config(ccmdl, m_params, argc, argv, m_help_requested);
 
         std::istringstream ccmdl_is(ccmdl.str().c_str());
 
@@ -232,9 +237,8 @@
 
         check_cf_cmdl(m_params, m_cf_cmdl, m_cpm);
 
-        //#if (ENGINE_VERBOSITY > 0)
-        dump(*this, std::cout, m_params);
-        //#endif
+	if (!help_requested())
+	  dump(*this, std::cout, m_params);
       }
     catch (std::exception& e)
       {
@@ -256,6 +260,11 @@
   {
   }
 
+  bool ConfigManager::help_requested() const
+  {
+    return m_help_requested;
+  }
+
   bool ConfigManager::get_bool_param(const std::string& param_name) const
   {
     CPMap::const_iterator it = m_cpm.find(param_name);


--- orig/base/src/utils/configmanager.h
+++ mod/base/src/utils/configmanager.h
@@ -1,6 +1,6 @@
 /* This source file is a part of the GePhex Project.
 
- Copyright (C) 2001-2004
+ Copyright (C) 2001-2005
 
  Georg Seidel <georg at gephex.org> 
  Martin Bayer <martin at gephex.org> 
@@ -71,6 +71,11 @@
 
       ~ConfigManager();
 
+      /*!
+       * True iff the first cmdline parameter was "--help" or "-h"
+       */
+      bool        help_requested() const;
+
       bool        get_bool_param(const std::string& param_name)   const;
       int         get_int_param(const std::string& param_name)    const;
       std::string get_string_param(const std::string& param_name) const;
@@ -81,6 +86,8 @@
       ConfigFilePtr m_cf_cmdl;
 
       CPMap m_cpm;
+
+      bool m_help_requested;
     };
 }
 


--- orig/doc/documentation.xml
+++ mod/doc/documentation.xml
@@ -6,15 +6,13 @@
  <bookinfo>
   <title>The GePhex Book</title>
   <author>
-   <firstname>Martin</firstname>
-   <surname>Bayer</surname>
+   <firstname>Martin</firstname> <surname>Bayer</surname>
    <affiliation>
     <address><email>bayer at fmi.uni-passau.de</email></address>
    </affiliation>
   </author>
   <author>
-   <firstname>Georg</firstname>
-   <surname>Seidel</surname>
+   <firstname>Georg</firstname> <surname>Seidel</surname>
    <affiliation>
     <address><email>georg at gephex.org</email></address>
    </affiliation>
@@ -49,7 +47,7 @@
 <holder>Martin Bayer</holder>
 <holder>Georg Seidel</holder>
 </copyright>
-
+  
   <abstract>
 <para>GePhex is an interactive effect system for video jockeys. The effects can be controlled with external devices like joysticks, web-cams, or midi-devices. New effects can be designed in a GUI (Graphical User Interface) by composing basic effects into more complex ones.</para>
 
@@ -95,14 +93,52 @@
 
 <itemizedlist>
 
-  <listitem><para>The project started in the late summer 2001.</para></listitem>
-  <listitem><para>In autumn 2002 was the first public vjing session at the fmi party on the campus of the university of Passau, Germany.</para></listitem>
+  <listitem><para>
+      The project started in the late summer 2001.
+  </para></listitem>
+
+  <listitem><para>
+      In autumn 2002 was the first public vjing session at the fmi party
+      on the campus of the university of Passau, Germany.
+  </para></listitem>
+
+  <listitem><para>
+      In autumn 2003 there was a public session in Vienna and another
+      session at the fmi party in Passau, Germany.
+  </para></listitem>
 
-  <listitem><para>In autumn 2003 there was a public session in Vienna and another session at the fmi party in Passau, Germany. </para></listitem>
+  <listitem><para>
+      In December 2003 we released the first stable version (0.0.4).
+  </para></listitem>
+
+  <listitem><para>
+      In June 2004 we released the second stable version (0.4).
+      At this time we also started with the design of version 0.5,
+      which will be a complete rewrite. As of the time of this
+      writing (March 2005), there is only a minimal prototype system of
+      gephex-0.5.
+  </para></listitem>
+
+  <listitem><para>
+      In November 2004, we were invited to the 
+      <ulink url="http://www.piksel.org"><citetitle>piksel</citetitle></ulink>
+      meeting in Bergen, Norway. We released version 0.4.1 shortly before.
+  </para></listitem>
 
-  <listitem><para>In December 2003 we released the first stable version (0.0.4).     </para></listitem>
+  <listitem><para>
+      Version 0.4.2 was released some weeks after piksel. It includes
+      support for 
+      <ulink url="http://www.piksel.org/Frei0r"> 
+	<citetitle>frei0r</citetitle></ulink>,
+      a simple effect API we designed in Norway,
+      and some other stuff we did there (e.g. v4l2 support).
+  </para></listitem>
 
-  <listitem><para>In June 2004 we released the second stable version (0.4). </para></listitem>
+  <listitem><para>
+      In February 2005, experimental support for Mac OS X and ports of most 
+      <ulink url="http://effectv.sf.net"><citetitle>effecTV</citetitle></ulink>
+      effects was added to version 0.4.3.
+  </para></listitem>
 
 </itemizedlist>
 
@@ -144,7 +180,7 @@
     module_path          = [/home/tmp/seidel/gphx/lib/gephex/modules/]
     type_path            = [/home/tmp/seidel/gphx/lib/gephex/types/]
     frei0r_path          = [/home/cip/seidel/.frei0r-1/lib/]
-    graph_path           = [/home/cip/seidel/.gephex/graphs/]
+    graph_path           = [/home/cip/seidel/.gephex/0.4/graphs/]
     ipc_unix_node_prefix = [/tmp/gephex_socket_]
     ipc_type             = [inet]
     ipc_port             = [6666]
@@ -1109,7 +1145,7 @@
 
  <sect1>
    <title> Starting GePhex </title>
-     <sect2>  <title> UN*X </title>
+     <sect2>  <title> UNIX </title>
        <para>
           You can start GePhex by executing 
           <filename>gephex</filename>.
@@ -1342,26 +1378,48 @@
  </para>
   <sect1><title>The three States of Graphs in the Renderer</title>
 <para>
-The Renderer knows three states for a graph:
-<itemizedlist>
-<listitem><para>The graph is not loaded. No internal state of the modules is stored and obvious no calculation is done in this state.</para></listitem>
-<listitem><para>The graph is loaded in the renderer. The modules remember their internal states e.g. the framebuffer of an xfader with loopback. But no calculation is allowed in this state.</para></listitem>
-<listitem><para>Only in the state active are any calculations done.</para></listitem>
+  The Renderer knows three states for a graph:
+  <itemizedlist>
+    <listitem><para>
+	The graph is not loaded. No internal state of the modules is
+	stored and obvious no calculation is done in this state.
+    </para></listitem>
+
+    <listitem><para>
+	The graph is loaded in the renderer. The modules remember their
+	internal states e.g. the framebuffer of an xfader with loopback.
+	But no calculation is allowed in this state.
+    </para></listitem>
+
+    <listitem><para>
+	Only in the state active are any calculations done.
+    </para></listitem>
+
 </itemizedlist>
 </para>
+
+<para>
+  So how can I distinguish these states? How can I change between them?
+  What do they imply for the usage of gephex?
+</para>
   </sect1>
 
  </chapter>
 
 
 <chapter><title>Example Graphs</title>
-    <para> On Un*x, the examples are installed automatically when you run
-GePhex for the first time. If not, it might be necessary to remove the
-<filename>~/.gephex</filename> directory from an older version of GePhex.
-<note> <para> This could delete your graphs, so backup
-<filename>~/.gephex/graphs</filename> if necessary.
-</para> </note>
-</para>
+
+    <para>
+      On UNIX systems, the examples are installed automatically when 
+      you run GePhex for the first time. If not, it might be necessary
+      to remove the <filename>~/.gephex/0.4</filename> directory from an
+      older version of GePhex.
+
+      <note><para>
+	  This could delete your graphs, so backup
+	  <filename>~/.gephex/0.4/graphs</filename> if necessary.
+      </para> </note>
+    </para>
 
 <sect1><title>Example1: Tunnel-Vision</title>
   <para>


--- orig/engine/src/engine/main.cpp
+++ mod/engine/src/engine/main.cpp
@@ -278,6 +278,10 @@
 
       utils::ConfigManager config(get_cfile_name(), argc, argv, params);
 
+      // If the help message was requested, we simply return
+      if (config.help_requested())
+	return 0;
+
       // This is a hack to communicate the media path to
       // loaded modules.
       static const char* GEPHEX_MEDIA_PATH = "GEPHEX_MEDIA_PATH";


--- orig/qtgui/src/gui/main.cpp
+++ mod/qtgui/src/gui/main.cpp
@@ -181,6 +181,10 @@
 
       utils::ConfigManager config(get_cfile_name(), argc, argv, params);
 
+      // If the help message was requested, we simply return
+      if (config.help_requested())
+	return 0;
+
       std::string ipc_type = config.get_string_param("ipc_type");
       std::string ipc_locator = "";
         if (ipc_type == "inet")



More information about the gephex-devel mailing list