[Swfdec] Branch 'as' - 5 commits - libswfdec/swfdec_as_native_function.c libswfdec/swfdec_edittext.c libswfdec/swfdec_edittext.h libswfdec/swfdec_font.c libswfdec/swfdec_font.h libswfdec/swfdec_image.c libswfdec/swfdec_image.h libswfdec/swfdec_morphshape.h libswfdec/swfdec_player.c libswfdec/swfdec_shape.c libswfdec/swfdec_shape.h libswfdec/swfdec_sound.c libswfdec/swfdec_sound.h libswfdec/swfdec_sprite.c libswfdec/swfdec_sprite.h libswfdec/swfdec_swf_decoder.c libswfdec/swfdec_swf_decoder.h libswfdec/swfdec_tag.c libswfdec/swfdec_text.h libswfdec/swfdec_video.c libswfdec/swfdec_video.h
Benjamin Otte
company at kemper.freedesktop.org
Fri Jun 15 07:02:47 PDT 2007
libswfdec/swfdec_as_native_function.c | 10 ++--
libswfdec/swfdec_edittext.c | 2
libswfdec/swfdec_edittext.h | 3 -
libswfdec/swfdec_font.c | 15 +++---
libswfdec/swfdec_font.h | 13 +++--
libswfdec/swfdec_image.c | 16 ++++---
libswfdec/swfdec_image.h | 12 ++---
libswfdec/swfdec_morphshape.h | 3 -
libswfdec/swfdec_player.c | 1
libswfdec/swfdec_shape.c | 14 +-----
libswfdec/swfdec_shape.h | 7 +--
libswfdec/swfdec_sound.c | 10 ++--
libswfdec/swfdec_sound.h | 10 ++--
libswfdec/swfdec_sprite.c | 27 +++---------
libswfdec/swfdec_sprite.h | 13 ++---
libswfdec/swfdec_swf_decoder.c | 4 -
libswfdec/swfdec_swf_decoder.h | 4 -
libswfdec/swfdec_tag.c | 76 +++++++++++-----------------------
libswfdec/swfdec_text.h | 3 -
libswfdec/swfdec_video.c | 4 -
libswfdec/swfdec_video.h | 6 +-
21 files changed, 109 insertions(+), 144 deletions(-)
New commits:
diff-tree 9ff54695704fb4f628dcddd8ea5d834371cf89c7 (from 226d56f9c38e4cb568650c542e647ac943e1c47c)
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Jun 15 16:03:23 2007 +0200
fix compile warning
diff --git a/libswfdec/swfdec_player.c b/libswfdec/swfdec_player.c
index a5d302c..10712be 100644
--- a/libswfdec/swfdec_player.c
+++ b/libswfdec/swfdec_player.c
@@ -22,6 +22,7 @@
#endif
#include <math.h>
+#include <string.h>
#include <stdlib.h>
#include <liboil/liboil.h>
diff-tree 226d56f9c38e4cb568650c542e647ac943e1c47c (from parents)
Merge: 13bb9bab9b039d85926978a48f2b41e9fcd93e03 34e26df3f9393189ebbc653664bb8f0ae8b48869
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Jun 15 15:53:45 2007 +0200
Merge branch 'as' of ssh://company@git.freedesktop.org/git/swfdec into as
diff-tree 13bb9bab9b039d85926978a48f2b41e9fcd93e03 (from 50128dde7d95bb50bd8d46ef8c9cfc5e97b25908)
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Jun 15 13:20:07 2007 +0200
pass the tag to the tag function
This gets around the ned to use one-line functions that pass the right
tag (see DefineText) and it prepares for the sprite handling rework.
diff --git a/libswfdec/swfdec_edittext.c b/libswfdec/swfdec_edittext.c
index 9d12274..ed641e8 100644
--- a/libswfdec/swfdec_edittext.c
+++ b/libswfdec/swfdec_edittext.c
@@ -83,7 +83,7 @@ swfdec_edit_text_init (SwfdecEditText *
}
int
-tag_func_define_edit_text (SwfdecSwfDecoder * s)
+tag_func_define_edit_text (SwfdecSwfDecoder * s, guint tag)
{
SwfdecEditText *text;
guint id;
diff --git a/libswfdec/swfdec_edittext.h b/libswfdec/swfdec_edittext.h
index 0bf5c27..be38c4d 100644
--- a/libswfdec/swfdec_edittext.h
+++ b/libswfdec/swfdec_edittext.h
@@ -77,7 +77,8 @@ struct _SwfdecEditTextClass
GType swfdec_edit_text_get_type (void);
-int tag_func_define_edit_text (SwfdecSwfDecoder * s);
+int tag_func_define_edit_text (SwfdecSwfDecoder * s,
+ guint tag);
/* implemented in swfdec_html_parser.c */
SwfdecParagraph * swfdec_paragraph_html_parse (SwfdecEditText * text,
diff --git a/libswfdec/swfdec_font.c b/libswfdec/swfdec_font.c
index b3616dc..b7878a0 100644
--- a/libswfdec/swfdec_font.c
+++ b/libswfdec/swfdec_font.c
@@ -29,6 +29,7 @@
#include "swfdec_shape.h"
#include "swfdec_stroke.h"
#include "swfdec_swf_decoder.h"
+#include "swfdec_tag.h"
G_DEFINE_TYPE (SwfdecFont, swfdec_font, SWFDEC_TYPE_CHARACTER)
@@ -124,7 +125,7 @@ convert_from_language (const char *s, Sw
#endif
int
-tag_func_define_font_info (SwfdecSwfDecoder *s, guint version)
+tag_func_define_font_info (SwfdecSwfDecoder *s, guint tag)
{
SwfdecFont *font;
guint id, len, i;
@@ -133,8 +134,6 @@ tag_func_define_font_info (SwfdecSwfDeco
/* we just assume Latin1 (FIXME: option to change this?) */
SwfdecLanguage language = SWFDEC_LANGUAGE_LATIN;
- g_assert (version == 1 || version == 2);
-
id = swfdec_bits_get_u16 (&s->b);
font = swfdec_swf_decoder_get_character (s, id);
if (!SWFDEC_IS_FONT (font)) {
@@ -150,7 +149,7 @@ tag_func_define_font_info (SwfdecSwfDeco
ansi = swfdec_bits_getbit (&s->b);
if (jis != 0 || ansi != 0) {
SWFDEC_LOG ("ansi = %d, jis = %d", ansi, jis);
- if (version == 2)
+ if (tag == SWFDEC_TAG_DEFINEFONTINFO2)
SWFDEC_INFO ("ANSI and JIS flags are supposed to be 0 in DefineFontInfo");
if (jis)
language = SWFDEC_LANGUAGE_JAPANESE;
@@ -158,7 +157,7 @@ tag_func_define_font_info (SwfdecSwfDeco
font->italic = swfdec_bits_getbit (&s->b);
font->bold = swfdec_bits_getbit (&s->b);
wide = swfdec_bits_getbit (&s->b);
- if (version > 1)
+ if (tag == SWFDEC_TAG_DEFINEFONTINFO2)
language = swfdec_bits_get_u8 (&s->b);
g_free (name);
if (font->name) {
@@ -205,7 +204,7 @@ swfdec_font_parse_shape (SwfdecSwfDecode
}
int
-tag_func_define_font (SwfdecSwfDecoder * s)
+tag_func_define_font (SwfdecSwfDecoder * s, guint tag)
{
guint i, id, n_glyphs, offset, next_offset;
SwfdecFont *font;
@@ -267,7 +266,7 @@ swfdec_font_parse_kerning_table (SwfdecS
}
int
-tag_func_define_font_2 (SwfdecSwfDecoder * s)
+tag_func_define_font_2 (SwfdecSwfDecoder * s, guint tag)
{
SwfdecBits *bits = &s->b;
guint id;
@@ -380,7 +379,7 @@ tag_func_define_font_2 (SwfdecSwfDecoder
}
int
-tag_func_define_font_3 (SwfdecSwfDecoder * s)
+tag_func_define_font_3 (SwfdecSwfDecoder * s, guint tag)
{
SwfdecBits offsets, *bits = &s->b;
SwfdecFont *font;
diff --git a/libswfdec/swfdec_font.h b/libswfdec/swfdec_font.h
index a14aa42..1ff7d46 100644
--- a/libswfdec/swfdec_font.h
+++ b/libswfdec/swfdec_font.h
@@ -74,13 +74,16 @@ struct _SwfdecFontClass
GType swfdec_font_get_type (void);
SwfdecShape * swfdec_font_get_glyph (SwfdecFont * font,
- guint glyph);
+ guint glyph);
int tag_func_define_font_info (SwfdecSwfDecoder * s,
- guint version);
-int tag_func_define_font (SwfdecSwfDecoder * s);
-int tag_func_define_font_2 (SwfdecSwfDecoder * s);
-int tag_func_define_font_3 (SwfdecSwfDecoder * s);
+ guint tag);
+int tag_func_define_font (SwfdecSwfDecoder * s,
+ guint tag);
+int tag_func_define_font_2 (SwfdecSwfDecoder * s,
+ guint tag);
+int tag_func_define_font_3 (SwfdecSwfDecoder * s,
+ guint tag);
G_END_DECLS
#endif
diff --git a/libswfdec/swfdec_image.c b/libswfdec/swfdec_image.c
index 5a60681..075f771 100644
--- a/libswfdec/swfdec_image.c
+++ b/libswfdec/swfdec_image.c
@@ -90,19 +90,23 @@ swfdec_image_init (SwfdecImage * image)
}
int
-swfdec_image_jpegtables (SwfdecSwfDecoder * s)
+swfdec_image_jpegtables (SwfdecSwfDecoder * s, guint tag)
{
SwfdecBits *bits = &s->b;
SWFDEC_DEBUG ("swfdec_image_jpegtables");
+ if (s->jpegtables) {
+ SWFDEC_FIXME ("duplicate DefineJPEGTables tag. Deleting first one");
+ swfdec_buffer_unref (s->jpegtables);
+ }
s->jpegtables = swfdec_bits_get_buffer (bits, -1);
return SWFDEC_STATUS_OK;
}
int
-tag_func_define_bits_jpeg (SwfdecSwfDecoder * s)
+tag_func_define_bits_jpeg (SwfdecSwfDecoder * s, guint tag)
{
SwfdecBits *bits = &s->b;
int id;
@@ -190,7 +194,7 @@ swfdec_image_jpeg_load (SwfdecImage *ima
}
int
-tag_func_define_bits_jpeg_2 (SwfdecSwfDecoder * s)
+tag_func_define_bits_jpeg_2 (SwfdecSwfDecoder * s, guint tag)
{
SwfdecBits *bits = &s->b;
int id;
@@ -229,7 +233,7 @@ swfdec_image_jpeg2_load (SwfdecImage *im
}
int
-tag_func_define_bits_jpeg_3 (SwfdecSwfDecoder * s)
+tag_func_define_bits_jpeg_3 (SwfdecSwfDecoder * s, guint tag)
{
SwfdecBits *bits = &s->b;
guint id;
@@ -463,7 +467,7 @@ swfdec_image_lossless_load (SwfdecImage
}
int
-tag_func_define_bits_lossless (SwfdecSwfDecoder * s)
+tag_func_define_bits_lossless (SwfdecSwfDecoder * s, guint tag)
{
SwfdecImage *image;
int id;
@@ -483,7 +487,7 @@ tag_func_define_bits_lossless (SwfdecSwf
}
int
-tag_func_define_bits_lossless_2 (SwfdecSwfDecoder * s)
+tag_func_define_bits_lossless_2 (SwfdecSwfDecoder * s, guint tag)
{
SwfdecImage *image;
int id;
diff --git a/libswfdec/swfdec_image.h b/libswfdec/swfdec_image.h
index 3c1e71e..245c5ed 100644
--- a/libswfdec/swfdec_image.h
+++ b/libswfdec/swfdec_image.h
@@ -71,12 +71,12 @@ cairo_surface_t * swfdec_image_create_su
(SwfdecImage * image,
const SwfdecColorTransform *trans);
-int swfdec_image_jpegtables (SwfdecSwfDecoder * s);
-int tag_func_define_bits_jpeg (SwfdecSwfDecoder * s);
-int tag_func_define_bits_jpeg_2 (SwfdecSwfDecoder * s);
-int tag_func_define_bits_jpeg_3 (SwfdecSwfDecoder * s);
-int tag_func_define_bits_lossless (SwfdecSwfDecoder * s);
-int tag_func_define_bits_lossless_2 (SwfdecSwfDecoder * s);
+int swfdec_image_jpegtables (SwfdecSwfDecoder * s, guint tag);
+int tag_func_define_bits_jpeg (SwfdecSwfDecoder * s, guint tag);
+int tag_func_define_bits_jpeg_2 (SwfdecSwfDecoder * s, guint tag);
+int tag_func_define_bits_jpeg_3 (SwfdecSwfDecoder * s, guint tag);
+int tag_func_define_bits_lossless (SwfdecSwfDecoder * s, guint tag);
+int tag_func_define_bits_lossless_2 (SwfdecSwfDecoder * s, guint tag);
G_END_DECLS
#endif
diff --git a/libswfdec/swfdec_morphshape.h b/libswfdec/swfdec_morphshape.h
index e09133c..de2b236 100644
--- a/libswfdec/swfdec_morphshape.h
+++ b/libswfdec/swfdec_morphshape.h
@@ -52,7 +52,8 @@ struct _SwfdecMorphShapeClass {
GType swfdec_morph_shape_get_type (void);
/* in swfdec_shape.c */
-int tag_define_morph_shape (SwfdecSwfDecoder * s);
+int tag_define_morph_shape (SwfdecSwfDecoder * s,
+ guint tag);
G_END_DECLS
diff --git a/libswfdec/swfdec_shape.c b/libswfdec/swfdec_shape.c
index 0e47cac..06705f0 100644
--- a/libswfdec/swfdec_shape.c
+++ b/libswfdec/swfdec_shape.c
@@ -353,7 +353,7 @@ swfdec_shape_add_styles (SwfdecSwfDecode
}
int
-tag_define_shape (SwfdecSwfDecoder * s)
+tag_define_shape (SwfdecSwfDecoder * s, guint tag)
{
SwfdecBits *bits = &s->b;
SwfdecShape *shape;
@@ -377,7 +377,7 @@ tag_define_shape (SwfdecSwfDecoder * s)
}
int
-tag_define_shape_3 (SwfdecSwfDecoder * s)
+tag_define_shape_3 (SwfdecSwfDecoder * s, guint tag)
{
SwfdecBits *bits = &s->b;
SwfdecShape *shape;
@@ -398,13 +398,7 @@ tag_define_shape_3 (SwfdecSwfDecoder * s
}
int
-tag_define_shape_2 (SwfdecSwfDecoder * s)
-{
- return tag_define_shape (s);
-}
-
-int
-tag_define_shape_4 (SwfdecSwfDecoder *s)
+tag_define_shape_4 (SwfdecSwfDecoder *s, guint tag)
{
SwfdecBits *bits = &s->b;
SwfdecShape *shape;
@@ -1020,7 +1014,7 @@ error:
}
int
-tag_define_morph_shape (SwfdecSwfDecoder * s)
+tag_define_morph_shape (SwfdecSwfDecoder * s, guint tag)
{
SwfdecBits end_bits;
SwfdecBits *bits = &s->b;
diff --git a/libswfdec/swfdec_shape.h b/libswfdec/swfdec_shape.h
index d3d998d..1b062a1 100644
--- a/libswfdec/swfdec_shape.h
+++ b/libswfdec/swfdec_shape.h
@@ -76,10 +76,9 @@ struct _SwfdecShapeClass
GType swfdec_shape_get_type (void);
-int tag_define_shape (SwfdecSwfDecoder * s);
-int tag_define_shape_2 (SwfdecSwfDecoder * s);
-int tag_define_shape_3 (SwfdecSwfDecoder * s);
-int tag_define_shape_4 (SwfdecSwfDecoder * s);
+int tag_define_shape (SwfdecSwfDecoder * s, guint tag);
+int tag_define_shape_3 (SwfdecSwfDecoder * s, guint tag);
+int tag_define_shape_4 (SwfdecSwfDecoder * s, guint tag);
void swfdec_shape_get_recs (SwfdecSwfDecoder * s, SwfdecShape * shape,
SwfdecPatternFunc pattern_func, SwfdecStrokeFunc stroke_func);
diff --git a/libswfdec/swfdec_sound.c b/libswfdec/swfdec_sound.c
index dadd400..8c171a6 100644
--- a/libswfdec/swfdec_sound.c
+++ b/libswfdec/swfdec_sound.c
@@ -74,7 +74,7 @@ swfdec_sound_init (SwfdecSound * sound)
}
int
-tag_func_sound_stream_block (SwfdecSwfDecoder * s)
+tag_func_sound_stream_block (SwfdecSwfDecoder * s, guint tag)
{
SwfdecSound *sound;
SwfdecBuffer *chunk;
@@ -117,7 +117,7 @@ tag_func_sound_stream_block (SwfdecSwfDe
}
int
-tag_func_define_sound (SwfdecSwfDecoder * s)
+tag_func_define_sound (SwfdecSwfDecoder * s, guint tag)
{
SwfdecBits *b = &s->b;
int id;
@@ -247,7 +247,7 @@ swfdec_sound_get_decoded (SwfdecSound *s
}
int
-tag_func_sound_stream_head (SwfdecSwfDecoder * s)
+tag_func_sound_stream_head (SwfdecSwfDecoder * s, guint tag)
{
SwfdecBits *b = &s->b;
int format;
@@ -399,7 +399,7 @@ swfdec_sound_parse_chunk (SwfdecSwfDecod
}
int
-tag_func_start_sound (SwfdecSwfDecoder * s)
+tag_func_start_sound (SwfdecSwfDecoder * s, guint tag)
{
SwfdecBits *b = &s->b;
SwfdecSoundChunk *chunk;
@@ -420,7 +420,7 @@ tag_func_start_sound (SwfdecSwfDecoder *
}
int
-tag_func_define_button_sound (SwfdecSwfDecoder * s)
+tag_func_define_button_sound (SwfdecSwfDecoder * s, guint tag)
{
guint i;
guint id;
diff --git a/libswfdec/swfdec_sound.h b/libswfdec/swfdec_sound.h
index 118d37f..5f262f0 100644
--- a/libswfdec/swfdec_sound.h
+++ b/libswfdec/swfdec_sound.h
@@ -81,11 +81,11 @@ struct _SwfdecSoundClass
GType swfdec_sound_get_type (void);
-int tag_func_define_sound (SwfdecSwfDecoder * s);
-int tag_func_sound_stream_block (SwfdecSwfDecoder * s);
-int tag_func_sound_stream_head (SwfdecSwfDecoder * s);
-int tag_func_start_sound (SwfdecSwfDecoder * s);
-int tag_func_define_button_sound (SwfdecSwfDecoder * s);
+int tag_func_define_sound (SwfdecSwfDecoder * s, guint tag);
+int tag_func_sound_stream_block (SwfdecSwfDecoder * s, guint tag);
+int tag_func_sound_stream_head (SwfdecSwfDecoder * s, guint tag);
+int tag_func_start_sound (SwfdecSwfDecoder * s, guint tag);
+int tag_func_define_button_sound (SwfdecSwfDecoder * s, guint tag);
void swfdec_sound_render (SwfdecSound * sound,
gint16 * dest,
diff --git a/libswfdec/swfdec_sprite.c b/libswfdec/swfdec_sprite.c
index cd678a9..de35c50 100644
--- a/libswfdec/swfdec_sprite.c
+++ b/libswfdec/swfdec_sprite.c
@@ -32,6 +32,7 @@
#include "swfdec_sound.h"
#include "swfdec_sprite_movie.h"
#include "swfdec_swf_decoder.h"
+#include "swfdec_tag.h"
G_DEFINE_TYPE (SwfdecSprite, swfdec_sprite, SWFDEC_TYPE_GRAPHIC)
@@ -159,7 +160,7 @@ swfdec_get_clipeventflags (SwfdecSwfDeco
}
int
-tag_show_frame (SwfdecSwfDecoder * s)
+tag_show_frame (SwfdecSwfDecoder * s, guint tag)
{
SWFDEC_DEBUG("show_frame %d of id %d", s->parse_sprite->parse_frame,
SWFDEC_CHARACTER (s->parse_sprite)->id);
@@ -176,7 +177,7 @@ tag_show_frame (SwfdecSwfDecoder * s)
}
int
-tag_func_set_background_color (SwfdecSwfDecoder * s)
+tag_func_set_background_color (SwfdecSwfDecoder * s, guint tag)
{
SwfdecPlayer *player = SWFDEC_DECODER (s)->player;
SwfdecColor color = swfdec_bits_get_color (&s->b);
@@ -228,8 +229,8 @@ swfdec_sprite_convert_operator (guint op
return CAIRO_OPERATOR_OVER;
}
-static int
-swfdec_spriteseg_do_place_object (SwfdecSwfDecoder *s, unsigned int version)
+int
+swfdec_spriteseg_place_object (SwfdecSwfDecoder *s, guint tag)
{
SwfdecBits *bits = &s->b;
int has_clip_actions;
@@ -264,7 +265,7 @@ swfdec_spriteseg_do_place_object (Swfdec
SWFDEC_LOG (" has_character = %d", has_character);
SWFDEC_LOG (" move = %d", move);
- if (version > 2) {
+ if (tag == SWFDEC_TAG_PLACEOBJECT3) {
swfdec_bits_getbits (bits, 5);
cache = swfdec_bits_getbit (bits);
has_blend_mode = swfdec_bits_getbit (bits);
@@ -390,19 +391,7 @@ swfdec_spriteseg_do_place_object (Swfdec
}
int
-swfdec_spriteseg_place_object_2 (SwfdecSwfDecoder * s)
-{
- return swfdec_spriteseg_do_place_object (s, 2);
-}
-
-int
-swfdec_spriteseg_place_object_3 (SwfdecSwfDecoder * s)
-{
- return swfdec_spriteseg_do_place_object (s, 3);
-}
-
-int
-swfdec_spriteseg_remove_object (SwfdecSwfDecoder * s)
+swfdec_spriteseg_remove_object (SwfdecSwfDecoder * s, guint tag)
{
int depth;
@@ -416,7 +405,7 @@ swfdec_spriteseg_remove_object (SwfdecSw
}
int
-swfdec_spriteseg_remove_object_2 (SwfdecSwfDecoder * s)
+swfdec_spriteseg_remove_object_2 (SwfdecSwfDecoder * s, guint tag)
{
guint depth;
diff --git a/libswfdec/swfdec_sprite.h b/libswfdec/swfdec_sprite.h
index b9d62db..661be2b 100644
--- a/libswfdec/swfdec_sprite.h
+++ b/libswfdec/swfdec_sprite.h
@@ -85,7 +85,7 @@ struct _SwfdecSpriteClass
GType swfdec_sprite_get_type (void);
-int tag_func_define_sprite (SwfdecSwfDecoder * s);
+int tag_func_define_sprite (SwfdecSwfDecoder * s, guint tag);
void swfdec_sprite_add_sound_chunk (SwfdecSprite * sprite, guint frame,
SwfdecBuffer * chunk, int skip, guint n_samples);
void swfdec_sprite_set_n_frames (SwfdecSprite *sprite, guint n_frames, guint rate);
@@ -98,12 +98,11 @@ int swfdec_sprite_get_frame (SwfdecSpr
SwfdecContent *swfdec_content_new (int depth);
void swfdec_content_free (SwfdecContent *content);
-int tag_show_frame (SwfdecSwfDecoder * s);
-int tag_func_set_background_color (SwfdecSwfDecoder * s);
-int swfdec_spriteseg_place_object_2 (SwfdecSwfDecoder * s);
-int swfdec_spriteseg_place_object_3 (SwfdecSwfDecoder * s);
-int swfdec_spriteseg_remove_object (SwfdecSwfDecoder * s);
-int swfdec_spriteseg_remove_object_2 (SwfdecSwfDecoder * s);
+int tag_show_frame (SwfdecSwfDecoder * s, guint tag);
+int tag_func_set_background_color (SwfdecSwfDecoder * s, guint tag);
+int swfdec_spriteseg_place_object (SwfdecSwfDecoder * s, guint tag);
+int swfdec_spriteseg_remove_object (SwfdecSwfDecoder * s, guint tag);
+int swfdec_spriteseg_remove_object_2 (SwfdecSwfDecoder * s, guint tag);
G_END_DECLS
diff --git a/libswfdec/swfdec_swf_decoder.c b/libswfdec/swfdec_swf_decoder.c
index 33fb719..77a1f66 100644
--- a/libswfdec/swfdec_swf_decoder.c
+++ b/libswfdec/swfdec_swf_decoder.c
@@ -282,7 +282,7 @@ swfdec_swf_decoder_parse (SwfdecDecoder
{
guint header_length;
guint x;
- SwfdecTagFunc *func;
+ SwfdecTagFunc func;
guint tag;
guint tag_len;
@@ -341,7 +341,7 @@ swfdec_swf_decoder_parse (SwfdecDecoder
tag, swfdec_swf_decoder_get_tag_name (tag));
} else if (s->main_sprite->parse_frame < s->main_sprite->n_frames) {
s->parse_sprite = s->main_sprite;
- ret = func (s);
+ ret = func (s, tag);
s->parse_sprite = NULL;
swfdec_bits_syncbits (&s->b);
diff --git a/libswfdec/swfdec_swf_decoder.h b/libswfdec/swfdec_swf_decoder.h
index a913447..930d1e3 100644
--- a/libswfdec/swfdec_swf_decoder.h
+++ b/libswfdec/swfdec_swf_decoder.h
@@ -34,7 +34,7 @@ G_BEGIN_DECLS
//typedef struct _SwfdecSwfDecoder SwfdecSwfDecoder;
typedef struct _SwfdecSwfDecoderClass SwfdecSwfDecoderClass;
-typedef int SwfdecTagFunc (SwfdecSwfDecoder *);
+typedef int (* SwfdecTagFunc) (SwfdecSwfDecoder *, guint);
typedef struct _SwfdecRootExportData SwfdecRootExportData;
typedef enum {
@@ -98,7 +98,7 @@ void swfdec_swf_decoder_add_root_action
SwfdecRootActionType type,
gpointer data);
-SwfdecTagFunc *swfdec_swf_decoder_get_tag_func (int tag);
+SwfdecTagFunc swfdec_swf_decoder_get_tag_func (int tag);
const char *swfdec_swf_decoder_get_tag_name (int tag);
int swfdec_swf_decoder_get_tag_flag (int tag);
diff --git a/libswfdec/swfdec_tag.c b/libswfdec/swfdec_tag.c
index 5d6a336..82a884d 100644
--- a/libswfdec/swfdec_tag.c
+++ b/libswfdec/swfdec_tag.c
@@ -47,13 +47,13 @@
#include "swfdec_video.h"
int
-tag_func_end (SwfdecSwfDecoder * s)
+tag_func_end (SwfdecSwfDecoder * s, guint tag)
{
return SWFDEC_STATUS_OK;
}
int
-tag_func_protect (SwfdecSwfDecoder * s)
+tag_func_protect (SwfdecSwfDecoder * s, guint tag)
{
if (s->protection) {
SWFDEC_INFO ("This file is really protected.");
@@ -70,7 +70,7 @@ tag_func_protect (SwfdecSwfDecoder * s)
}
int
-tag_func_frame_label (SwfdecSwfDecoder * s)
+tag_func_frame_label (SwfdecSwfDecoder * s, guint tag)
{
SwfdecSpriteFrame *frame = &s->parse_sprite->frames[s->parse_sprite->parse_frame];
@@ -87,8 +87,8 @@ tag_func_frame_label (SwfdecSwfDecoder *
/* text */
-static int
-define_text (SwfdecSwfDecoder * s, int rgba)
+int
+tag_func_define_text (SwfdecSwfDecoder * s, guint tag)
{
SwfdecBits *bits = &s->b;
int id;
@@ -150,10 +150,10 @@ define_text (SwfdecSwfDecoder * s, int r
//printf(" font = %d\n",font);
}
if (has_color) {
- if (rgba) {
- glyph.color = swfdec_bits_get_rgba (bits);
- } else {
+ if (tag == SWFDEC_TAG_DEFINETEXT) {
glyph.color = swfdec_bits_get_color (bits);
+ } else {
+ glyph.color = swfdec_bits_get_rgba (bits);
}
//printf(" color = %08x\n",glyph.color);
}
@@ -175,21 +175,7 @@ define_text (SwfdecSwfDecoder * s, int r
}
int
-tag_func_define_text (SwfdecSwfDecoder * s)
-{
- return define_text (s, 0);
-}
-
-int
-tag_func_define_text_2 (SwfdecSwfDecoder * s)
-{
- return define_text (s, 1);
-}
-
-
-
-int
-tag_func_define_sprite (SwfdecSwfDecoder * s)
+tag_func_define_sprite (SwfdecSwfDecoder * s, guint define_sprite_tag)
{
SwfdecBits parse;
int id;
@@ -212,7 +198,7 @@ tag_func_define_sprite (SwfdecSwfDecoder
while (swfdec_bits_left (&parse)) {
int x;
guint tag_len;
- SwfdecTagFunc *func;
+ SwfdecTagFunc func;
x = swfdec_bits_get_u16 (&parse);
tag = (x >> 6) & 0x3ff;
@@ -240,7 +226,7 @@ tag_func_define_sprite (SwfdecSwfDecoder
SWFDEC_ERROR ("invalid tag %d %s during DefineSprite",
tag, swfdec_swf_decoder_get_tag_name (tag));
} else if (s->parse_sprite->parse_frame < s->parse_sprite->n_frames) {
- ret = func (s);
+ ret = func (s, tag);
if (swfdec_bits_left (&s->b)) {
SWFDEC_WARNING ("early parse finish (%d bytes)",
@@ -267,7 +253,7 @@ tag_func_define_sprite (SwfdecSwfDecoder
}
int
-tag_func_do_action (SwfdecSwfDecoder * s)
+tag_func_do_action (SwfdecSwfDecoder * s, guint tag)
{
SwfdecScript *script;
char *name;
@@ -354,7 +340,7 @@ swfdec_button_append_content (SwfdecButt
}
int
-tag_func_define_button_2 (SwfdecSwfDecoder * s)
+tag_func_define_button_2 (SwfdecSwfDecoder * s, guint tag)
{
SwfdecBits *bits = &s->b;
int id;
@@ -442,7 +428,7 @@ tag_func_define_button_2 (SwfdecSwfDecod
}
int
-tag_func_define_button (SwfdecSwfDecoder * s)
+tag_func_define_button (SwfdecSwfDecoder * s, guint tag)
{
SwfdecBits *bits = &s->b;
int id;
@@ -505,19 +491,7 @@ tag_func_define_button (SwfdecSwfDecoder
}
static int
-tag_func_define_font_info_1 (SwfdecSwfDecoder *s)
-{
- return tag_func_define_font_info (s, 1);
-}
-
-static int
-tag_func_define_font_info_2 (SwfdecSwfDecoder *s)
-{
- return tag_func_define_font_info (s, 2);
-}
-
-static int
-tag_func_file_attributes (SwfdecSwfDecoder *s)
+tag_func_file_attributes (SwfdecSwfDecoder *s, guint tag)
{
int has_metadata, use_network;
@@ -535,7 +509,7 @@ tag_func_file_attributes (SwfdecSwfDecod
}
int
-tag_func_export_assets (SwfdecSwfDecoder * s)
+tag_func_export_assets (SwfdecSwfDecoder * s, guint tag)
{
SwfdecBits *bits = &s->b;
guint count, i;
@@ -568,7 +542,7 @@ tag_func_export_assets (SwfdecSwfDecoder
}
int
-tag_func_do_init_action (SwfdecSwfDecoder * s)
+tag_func_do_init_action (SwfdecSwfDecoder * s, guint tag)
{
SwfdecBits *bits = &s->b;
guint id;
@@ -603,7 +577,7 @@ tag_func_do_init_action (SwfdecSwfDecode
struct tag_func_struct
{
char *name;
- int (*func) (SwfdecSwfDecoder * s);
+ SwfdecTagFunc func;
int flag;
};
static struct tag_func_struct tag_funcs[] = {
@@ -621,7 +595,7 @@ static struct tag_func_struct tag_funcs[
[SWFDEC_TAG_DEFINEFONT] = {"DefineFont", tag_func_define_font, 0},
[SWFDEC_TAG_DEFINETEXT] = {"DefineText", tag_func_define_text, 0},
[SWFDEC_TAG_DOACTION] = {"DoAction", tag_func_do_action, SPRITE},
- [SWFDEC_TAG_DEFINEFONTINFO] = {"DefineFontInfo", tag_func_define_font_info_1, 0},
+ [SWFDEC_TAG_DEFINEFONTINFO] = {"DefineFontInfo", tag_func_define_font_info, 0},
[SWFDEC_TAG_DEFINESOUND] = {"DefineSound", tag_func_define_sound, 0},
[SWFDEC_TAG_STARTSOUND] = {"StartSound", tag_func_start_sound, SPRITE},
[SWFDEC_TAG_DEFINEBUTTONSOUND] =
@@ -631,13 +605,13 @@ static struct tag_func_struct tag_funcs[
[SWFDEC_TAG_DEFINEBITSLOSSLESS] =
{"DefineBitsLossless", tag_func_define_bits_lossless, 0},
[SWFDEC_TAG_DEFINEBITSJPEG2] = {"DefineBitsJPEG2", tag_func_define_bits_jpeg_2, 0},
- [SWFDEC_TAG_DEFINESHAPE2] = {"DefineShape2", tag_define_shape_2, 0},
+ [SWFDEC_TAG_DEFINESHAPE2] = {"DefineShape2", tag_define_shape, 0},
[SWFDEC_TAG_DEFINEBUTTONCXFORM] = {"DefineButtonCXForm", NULL, 0},
[SWFDEC_TAG_PROTECT] = {"Protect", tag_func_protect, 0},
- [SWFDEC_TAG_PLACEOBJECT2] = {"PlaceObject2", swfdec_spriteseg_place_object_2, SPRITE},
+ [SWFDEC_TAG_PLACEOBJECT2] = {"PlaceObject2", swfdec_spriteseg_place_object, SPRITE},
[SWFDEC_TAG_REMOVEOBJECT2] = {"RemoveObject2", swfdec_spriteseg_remove_object_2, SPRITE},
[SWFDEC_TAG_DEFINESHAPE3] = {"DefineShape3", tag_define_shape_3, 0},
- [SWFDEC_TAG_DEFINETEXT2] = {"DefineText2", tag_func_define_text_2, 0},
+ [SWFDEC_TAG_DEFINETEXT2] = {"DefineText2", tag_func_define_text, 0},
[SWFDEC_TAG_DEFINEBUTTON2] = {"DefineButton2", tag_func_define_button_2, 0},
[SWFDEC_TAG_DEFINEBITSJPEG3] = {"DefineBitsJPEG3", tag_func_define_bits_jpeg_3, 0},
[SWFDEC_TAG_DEFINEBITSLOSSLESS2] =
@@ -662,13 +636,13 @@ static struct tag_func_struct tag_funcs[
[SWFDEC_TAG_DOINITACTION] = {"DoInitAction", tag_func_do_init_action, SPRITE},
[SWFDEC_TAG_DEFINEVIDEOSTREAM] = {"DefineVideoStream", tag_func_define_video, 0},
[SWFDEC_TAG_VIDEOFRAME] = {"VideoFrame", tag_func_video_frame, 0},
- [SWFDEC_TAG_DEFINEFONTINFO2] = {"DefineFontInfo2", tag_func_define_font_info_2, 0},
+ [SWFDEC_TAG_DEFINEFONTINFO2] = {"DefineFontInfo2", tag_func_define_font_info, 0},
[SWFDEC_TAG_MX4] = {"MX4", NULL, 0},
[SWFDEC_TAG_ENABLEDEBUGGER2] = {"EnableDebugger2", NULL, 0},
[SWFDEC_TAG_SCRIPTLIMITS] = {"ScriptLimits", NULL, 0},
[SWFDEC_TAG_SETTABINDEX] = {"SetTabIndex", NULL, 0},
[SWFDEC_TAG_FILEATTRIBUTES] = {"FileAttributes", tag_func_file_attributes, 0},
- [SWFDEC_TAG_PLACEOBJECT3] = {"PlaceObject3", swfdec_spriteseg_place_object_3, SPRITE},
+ [SWFDEC_TAG_PLACEOBJECT3] = {"PlaceObject3", swfdec_spriteseg_place_object, SPRITE},
[SWFDEC_TAG_IMPORTASSETS2] = {"ImportAssets2", NULL, 0},
[SWFDEC_TAG_DEFINEFONTALIGNZONES] = {"DefineFontAlignZones", NULL, 0},
[SWFDEC_TAG_CSMTEXTSETTINGS] = {"CSMTextSettings", NULL, 0},
@@ -695,7 +669,7 @@ swfdec_swf_decoder_get_tag_name (int tag
return "unknown";
}
-SwfdecTagFunc *
+SwfdecTagFunc
swfdec_swf_decoder_get_tag_func (int tag)
{
if (tag >= 0 && tag < n_tag_funcs) {
diff --git a/libswfdec/swfdec_text.h b/libswfdec/swfdec_text.h
index 3e8a7db..37d0312 100644
--- a/libswfdec/swfdec_text.h
+++ b/libswfdec/swfdec_text.h
@@ -61,8 +61,7 @@ struct _SwfdecTextClass {
GType swfdec_text_get_type (void);
-int tag_func_define_text (SwfdecSwfDecoder * s);
-int tag_func_define_text_2 (SwfdecSwfDecoder * s);
+int tag_func_define_text (SwfdecSwfDecoder * s, guint tag);
G_END_DECLS
diff --git a/libswfdec/swfdec_video.c b/libswfdec/swfdec_video.c
index be3f6bf..7caaeca 100644
--- a/libswfdec/swfdec_video.c
+++ b/libswfdec/swfdec_video.c
@@ -177,7 +177,7 @@ swfdec_video_init (SwfdecVideo * video)
}
int
-tag_func_define_video (SwfdecSwfDecoder *s)
+tag_func_define_video (SwfdecSwfDecoder *s, guint tag)
{
SwfdecVideo *video;
guint id;
@@ -205,7 +205,7 @@ tag_func_define_video (SwfdecSwfDecoder
}
int
-tag_func_video_frame (SwfdecSwfDecoder *s)
+tag_func_video_frame (SwfdecSwfDecoder *s, guint unused_tag)
{
SwfdecVideo *video;
guint id;
diff --git a/libswfdec/swfdec_video.h b/libswfdec/swfdec_video.h
index a64065b..43f15ce 100644
--- a/libswfdec/swfdec_video.h
+++ b/libswfdec/swfdec_video.h
@@ -51,8 +51,10 @@ struct _SwfdecVideoClass {
GType swfdec_video_get_type (void);
-int tag_func_define_video (SwfdecSwfDecoder * s);
-int tag_func_video_frame (SwfdecSwfDecoder * s);
+int tag_func_define_video (SwfdecSwfDecoder * s,
+ guint tag);
+int tag_func_video_frame (SwfdecSwfDecoder * s,
+ guint tag);
G_END_DECLS
diff-tree 50128dde7d95bb50bd8d46ef8c9cfc5e97b25908 (from parents)
Merge: 622ee9f1b3827bb3a73d33e4df5ccb26e8d504a7 228be8a9445d25e41ecd7a09102c85609ec81ad7
Author: Benjamin Otte <otte at gnome.org>
Date: Thu Jun 14 18:48:55 2007 +0200
Merge branch 'as' of ssh://company@git.freedesktop.org/git/swfdec into as
diff-tree 622ee9f1b3827bb3a73d33e4df5ccb26e8d504a7 (from bc7113af3746577aab5a3fd69e30394070d3517c)
Author: Benjamin Otte <otte at gnome.org>
Date: Thu Jun 14 18:48:42 2007 +0200
fix gtk-doc syntax
diff --git a/libswfdec/swfdec_as_native_function.c b/libswfdec/swfdec_as_native_function.c
index f6a5d64..0905178 100644
--- a/libswfdec/swfdec_as_native_function.c
+++ b/libswfdec/swfdec_as_native_function.c
@@ -31,11 +31,11 @@
/**
* SwfdecAsNative:
- * context: #SwfdecAsContext
- * thisp: the this object. <warning>Can be %NULL.</warning>
- * argc: number of arguments passed to this function
- * argv: the @argc arguments passed to this function
- * retval: set to the return value. Initialized to undefined by default
+ * @context: #SwfdecAsContext
+ * @thisp: the this object. <warning>Can be %NULL.</warning>
+ * @argc: number of arguments passed to this function
+ * @argv: the @argc arguments passed to this function
+ * @retval: set to the return value. Initialized to undefined by default
*
* This is the prototype for all native functions.
*/
More information about the Swfdec
mailing list