gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/impl.cpp server/stream.c...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/impl.cpp server/stream.c...
Date: Wed, 14 Feb 2007 22:48:56 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/02/14 22:48:55

Modified files:
        .              : ChangeLog 
        server         : impl.cpp stream.cpp stream.h 
        server/swf     : tag_loaders.cpp tag_loaders.h 

Log message:
                * server/swf/tag_loaders.{cpp,h}: implement serialnumber_loader.
                * server/impl.cpp: register SERIALNUMBER loader.
                * server/stream.{h,cpp}: add read_string_with_lenght() function
                  taking length as argument; add get_tag_length() function
                  returning length of current tag.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.2361&r2=1.2362
http://cvs.savannah.gnu.org/viewcvs/gnash/server/impl.cpp?cvsroot=gnash&r1=1.93&r2=1.94
http://cvs.savannah.gnu.org/viewcvs/gnash/server/stream.cpp?cvsroot=gnash&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/gnash/server/stream.h?cvsroot=gnash&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/gnash/server/swf/tag_loaders.cpp?cvsroot=gnash&r1=1.74&r2=1.75
http://cvs.savannah.gnu.org/viewcvs/gnash/server/swf/tag_loaders.h?cvsroot=gnash&r1=1.13&r2=1.14

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.2361
retrieving revision 1.2362
diff -u -b -r1.2361 -r1.2362
--- ChangeLog   14 Feb 2007 20:41:47 -0000      1.2361
+++ ChangeLog   14 Feb 2007 22:48:55 -0000      1.2362
@@ -1,3 +1,11 @@
+2007-02-14 Sandro Santilli <address@hidden>
+
+       * server/swf/tag_loaders.{cpp,h}: implement serialnumber_loader.
+       * server/impl.cpp: register SERIALNUMBER loader.
+       * server/stream.{h,cpp}: add read_string_with_lenght() function
+         taking length as argument; add get_tag_length() function
+         returning length of current tag.
+
 2007-02-14 Tomas Groth Christensen <address@hidden>
 
        * backend/sound_handler_sdl.cpp, server/asobj/NetStreamFfmpeg.{h,cpp},

Index: server/impl.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/impl.cpp,v
retrieving revision 1.93
retrieving revision 1.94
diff -u -b -r1.93 -r1.94
--- server/impl.cpp     14 Feb 2007 14:12:47 -0000      1.93
+++ server/impl.cpp     14 Feb 2007 22:48:55 -0000      1.94
@@ -14,7 +14,7 @@
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
-/* $Id: impl.cpp,v 1.93 2007/02/14 14:12:47 strk Exp $ */
+/* $Id: impl.cpp,v 1.94 2007/02/14 22:48:55 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -182,7 +182,7 @@
        register_tag_loader(SWF::DEFINEVIDEO,   fixme_loader); // 38
        register_tag_loader(SWF::DEFINESPRITE,  sprite_loader);
        register_tag_loader(SWF::NAMECHARACTER, fixme_loader); // 40
-       register_tag_loader(SWF::SERIALNUMBER,  fixme_loader); // 41
+       register_tag_loader(SWF::SERIALNUMBER,  serialnumber_loader); // 41
        register_tag_loader(SWF::DEFINETEXTFORMAT, fixme_loader); // 42
        register_tag_loader(SWF::FRAMELABEL,    frame_label_loader); // 43
        // 44 - _UNKNOWN_ unimplemented

Index: server/stream.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/stream.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- server/stream.cpp   20 Sep 2006 14:15:22 -0000      1.11
+++ server/stream.cpp   14 Feb 2007 22:48:55 -0000      1.12
@@ -183,6 +183,7 @@
                align();
 
                int     len = read_u8();
+               log_msg("String length: %d", len);
                if (len <= 0)
                {
                        return NULL;
@@ -206,6 +207,13 @@
                align();
 
                unsigned int    len = read_u8();
+               read_string_with_length(len, to);
+       }
+
+       void stream::read_string_with_length(unsigned len, std::string& to)
+       {
+               align();
+
                to.resize(len);
 
                for (unsigned int i = 0; i < len; ++i)
@@ -258,6 +266,7 @@
                if (tag_length == 0x3F) {
                        tag_length = m_input->read_le32();
                }
+               _current_tag_length = tag_length;
 
                IF_VERBOSE_PARSE (
                        log_parse("SWF[%u]: tag type = %d, tag length = %d",

Index: server/stream.h
===================================================================
RCS file: /sources/gnash/gnash/server/stream.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- server/stream.h     20 Sep 2006 17:07:33 -0000      1.13
+++ server/stream.h     14 Feb 2007 22:48:55 -0000      1.14
@@ -71,16 +71,30 @@
                /// Reads *and new[]'s* the string from the given file.
                /// Ownership passes to the caller; caller must delete[] the
                /// string when it is done with it.
-               /// For string that begins with an 8-bit length code.
+               /// Length of string is read from the first byte.
+               ///
                char*   read_string_with_length();
 
-               /// \brief
-               /// Reads a sized string from the given file and
-               /// assigns it to the given std::string,k overriding any
-               /// previous value of it.
+               /// Reads a sized string into a provided std::string.
+               //
+               /// Length of string is read from the first byte.
+               ///
+               /// @param to
+               ///     Output argument. Any previous value will be overriden.
                ///
                void    read_string_with_length(std::string& to);
 
+               /// Reads a sized string into a provided std::string.
+               //
+               ///
+               /// @param len
+               ///     Length of string to read.
+               ///
+               /// @param to
+               ///     Output argument. Any previous value will be overriden.
+               ///
+               void    read_string_with_length(unsigned len, std::string& to);
+
                /// Return our current (byte) position in the input stream.
                int     get_position();
 
@@ -90,6 +104,11 @@
                /// Return the file position of the end of the current tag.
                int     get_tag_end_position();
 
+               /// Return the length of the current tag.
+               int     get_tag_length() {
+                       return _current_tag_length;
+               }
+
                /// Return the tag type.
                SWF::tag_type   open_tag();
 
@@ -111,6 +130,8 @@
                }
 
        private:
+               int _current_tag_length;
+
                tu_file*        m_input;
                uint8_t m_current_byte;
                uint8_t m_unused_bits;

Index: server/swf/tag_loaders.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/swf/tag_loaders.cpp,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -b -r1.74 -r1.75
--- server/swf/tag_loaders.cpp  8 Feb 2007 13:25:42 -0000       1.74
+++ server/swf/tag_loaders.cpp  14 Feb 2007 22:48:55 -0000      1.75
@@ -14,7 +14,7 @@
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
-/* $Id: tag_loaders.cpp,v 1.74 2007/02/08 13:25:42 tgc Exp $ */
+/* $Id: tag_loaders.cpp,v 1.75 2007/02/14 22:48:55 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -1955,6 +1955,24 @@
 
 }
 
+void
+serialnumber_loader(stream* in, tag_type tag, movie_definition* /*m*/)
+{
+       assert(tag == SWF::SERIALNUMBER); // 41
+
+       std::string serial;
+       in->read_string_with_length(in->get_tag_length(), serial);
+
+       IF_VERBOSE_PARSE (
+               log_parse("  serialnumber = [[\n%s\n]]", serial.c_str());
+       );
+
+       log_msg("SERIALNUMBER: %s", serial.c_str());
+
+       // attach to movie_definition ?
+
+}
+
 
 
 

Index: server/swf/tag_loaders.h
===================================================================
RCS file: /sources/gnash/gnash/server/swf/tag_loaders.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- server/swf/tag_loaders.h    4 Jan 2007 18:39:25 -0000       1.13
+++ server/swf/tag_loaders.h    14 Feb 2007 22:48:55 -0000      1.14
@@ -18,7 +18,7 @@
 //
 //
 
-/* $Id: tag_loaders.h,v 1.13 2007/01/04 18:39:25 strk Exp $ */
+/* $Id: tag_loaders.h,v 1.14 2007/02/14 22:48:55 strk Exp $ */
 
 #ifndef GNASH_SWF_TAG_LOADERS_H
 #define GNASH_SWF_TAG_LOADERS_H
@@ -140,6 +140,10 @@
 void
 metadata_loader(stream* in, tag_type tag, movie_definition* m);
 
+/// Load a SWF::SERIALNUMBER tag.
+void
+serialnumber_loader(stream* in, tag_type tag, movie_definition* /*m*/);
+
 } // namespace gnash::SWF::tag_loaders
 } // namespace gnash::SWF
 } // namespace gnash




reply via email to

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