gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog doc/C/gnash.xml gui/gnash.cpp


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog doc/C/gnash.xml gui/gnash.cpp
Date: Sat, 02 Sep 2006 16:00:29 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  06/09/02 16:00:29

Modified files:
        .              : ChangeLog 
        doc/C          : gnash.xml 
        gui            : gnash.cpp 

Log message:
        * gui/gnash.cpp, doc/C/gnash.xml: added -P switch to set contextual 
(see http://www.permadi.com/tutorial/flashVars/index.html)

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.807&r2=1.808
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/gnash.xml?cvsroot=gnash&r1=1.25&r2=1.26
http://cvs.savannah.gnu.org/viewcvs/gnash/gui/gnash.cpp?cvsroot=gnash&r1=1.34&r2=1.35

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.807
retrieving revision 1.808
diff -u -b -r1.807 -r1.808
--- ChangeLog   2 Sep 2006 14:28:35 -0000       1.807
+++ ChangeLog   2 Sep 2006 16:00:29 -0000       1.808
@@ -1,5 +1,7 @@
 2006-09-02 Sandro Santilli  <address@hidden>
 
+       * gui/gnash.cpp, doc/C/gnash.xml: added -P switch to set contextual
+         parameters (see http://www.permadi.com/tutorial/flashVars/index.html)
        * libbase/URL.{cpp,h}, testsuite/libbase/URLTest.cpp:
          added support for query strings (+tests).
        * server/swf/ASHandlers.cpp (ActionGetUrl2): log a warning

Index: doc/C/gnash.xml
===================================================================
RCS file: /sources/gnash/gnash/doc/C/gnash.xml,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- doc/C/gnash.xml     2 Sep 2006 00:40:12 -0000       1.25
+++ doc/C/gnash.xml     2 Sep 2006 16:00:29 -0000       1.26
@@ -532,6 +532,15 @@
          </listitem>
        </varlistentry>
        
+       <varlistentry>
+         <term>-P parameter</term>
+         <listitem>
+           <para>
+               Parameters are given in ParamName=Value syntax and are mostly 
useful for the plugin to honour EMBED tags attributes or explicit OBJECT PARAM 
tags. A common use for -P is to provide FlashVars (ie: -P 
"FlashVars=home=http://www.gnu.org";).
+           </para>
+         </listitem>
+       </varlistentry>
+       
       </variablelist>
       
     </sect2>

Index: gui/gnash.cpp
===================================================================
RCS file: /sources/gnash/gnash/gui/gnash.cpp,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -b -r1.34 -r1.35
--- gui/gnash.cpp       2 Sep 2006 00:37:30 -0000       1.34
+++ gui/gnash.cpp       2 Sep 2006 16:00:29 -0000       1.35
@@ -67,6 +67,7 @@
 
 #include "gnash.h"
 #include "movie_definition.h"
+#include "sprite_instance.h" // for setting FlashVars
 
 #include "URL.h"
 #include "rc.h"
@@ -106,6 +107,26 @@
     log_msg("fs_callback(%p): %s %s'", (void*)movie, command, args);
 }
 
+void
+setFlashVars(gnash::movie_interface& m, const string& varstr)
+{
+       gnash::sprite_instance* si = m.get_root_movie();
+       assert(si);
+
+       typedef map<string, string> maptype;
+
+       maptype vars;
+       URL::parse_querystring(varstr, vars);
+
+       for (maptype::const_iterator it=vars.begin(), itEnd=vars.end();
+               it != itEnd; ++it)
+       {
+               const string& name = it->first;
+               const string& val = it->second;
+               si->set_variable(name.c_str(), val.c_str());
+       }
+}
+
 int
 main(int argc, char *argv[])
 {
@@ -130,6 +151,9 @@
     char* url = NULL;
     int render_arg;
     
+    // Parameters (for -P)
+    map<string, string> params;
+    
     unsigned long windowid = 0;
     bool do_render = true, do_sound = false, sdl_abort = true, 
         background = true, do_loop = true;
@@ -177,7 +201,7 @@
         dbglogfile << "Timer delay set to " << delay << "milliseconds" << endl;
     }    
 
-    while ((c = getopt (argc, argv, "hvaps:cfd:x:r:t:b:1ewj:k:u:")) != -1) {
+    while ((c = getopt (argc, argv, "hvaps:cfd:x:r:t:b:1ewj:k:u:P:")) != -1) {
        switch (c) {
          case 'h':
              usage ();
@@ -283,6 +307,20 @@
               bit_depth = atoi(optarg);
               assert (!bit_depth || bit_depth == 16 || bit_depth == 32);
               break;
+          case 'P':
+               string param = optarg;
+               size_t eq = param.find("=");
+               string name, value;
+               if ( eq == string::npos ) {
+                       name = param;
+                       value = "true";
+               } else {
+                       name = param.substr(0, eq);
+                       value = param.substr(eq+1);
+               }
+               //cerr << "Param name = "<<name<<" val="<<value<<endl;
+               params[name] = value;
+               break;
        }
     }
 
@@ -399,6 +437,12 @@
     gnash::movie_interface *m = create_library_movie_inst(md);
     assert(m);
 
+    if ( params["FlashVars"] != "" )
+    {
+       setFlashVars(*m, params["FlashVars"]);
+    }
+
+
     gnash::set_current_root(m);
 
     m->set_display_viewport(0, 0, width, height);
@@ -473,6 +517,7 @@
         "  -b <bits>   Bit depth of output window (16 or 32, default is 16)\n"
         "  -u <url>    Set \"real\" url of the movie\n"
        "              (useful for downloaded movies)\n"
+        "  -P <param>  Set parameter (ie. \"FlashVars=A=1&b=2\")\n"
         "  --version   Print gnash's version number and exit\n"
         "\n"
         "keys:\n"




reply via email to

[Prev in Thread] Current Thread [Next in Thread]