⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 swfdec_player_internal.h

📁 Swfdec is a decoder/renderer for Macromedia Flash animations. The decoding and rendering engine is
💻 H
字号:
/* Swfdec * Copyright (C) 2006-2007 Benjamin Otte <otte@gnome.org> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. *  * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Lesser General Public License for more details. *  * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor,  * Boston, MA  02110-1301  USA */#ifndef _SWFDEC_PLAYER_INTERNAL_H_#define _SWFDEC_PLAYER_INTERNAL_H_#include <libswfdec/swfdec_player.h>#include <libswfdec/swfdec_as_context.h>#include <libswfdec/swfdec_rect.h>#include <libswfdec/swfdec_ringbuffer.h>G_BEGIN_DECLS#define SWFDEC_AS_NATIVE(x, y, func) void func (SwfdecAsContext *cx, \    SwfdecAsObject *object, guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret);typedef enum {  SWFDEC_ALIGN_FLAG_TOP		= (1 << 0),  SWFDEC_ALIGN_FLAG_BOTTOM	= (1 << 1),  SWFDEC_ALIGN_FLAG_LEFT	= (1 << 2),  SWFDEC_ALIGN_FLAG_RIGHT	= (1 << 3)} SwfdecAlignFlag;typedef void (* SwfdecActionFunc) (gpointer object, gpointer data);typedef struct _SwfdecTimeout SwfdecTimeout;struct _SwfdecTimeout {  SwfdecTick		timestamp;		/* timestamp at which this thing is supposed to trigger */  void			(* callback)		(SwfdecTimeout *advance);  void			(* free)		(SwfdecTimeout *advance);};struct _SwfdecPlayer{  SwfdecAsContext	context;  /* global properties */  gboolean		initialized;		/* if width and height are set already */  guint		  	rate;			/* divide by 256 to get iterations per second */  guint			width;			/* width of movie */  guint			height;			/* height of movie */  GList *		roots;			/* all the root movies */  GList *		load_objects;		/* all the load objects */  SwfdecCache *		cache;			/* player cache */  gboolean		bgcolor_set;		/* TRUE if the background color has been set */  SwfdecColor		bgcolor;		/* background color */  SwfdecLoader *	loader;			/* initial loader */  /* stage properties */  guint			internal_width;		/* width used by the scripting engine */  guint			internal_height;	/* height used by the scripting engine */  gint			stage_width;		/* width set by the user */  gint			stage_height;		/* height set by the user */  guint			align_flags;		/* SwfdecAlignFlag */  SwfdecScaleMode	scale_mode;		/* scale mode */  double		scale_x;		/* cached x scale value */  double		scale_y;		/* cached y scale value */  int			offset_x;		/* x offset from top left edge after scaling */  int			offset_y;		/* y offset from top left edge after scaling */  guint			unnamed_count;		/* variable used for naming unnamed movies */  /* ActionScript */  guint			interval_id;		/* id returned from setInterval call */  GList *		intervals;		/* all currently running intervals */  GHashTable *		registered_classes;	/* name => SwfdecAsObject constructor */  SwfdecAsObject *	MovieClip;		/* MovieClip object */  SwfdecAsObject *	Video;			/* Video object */  /* rendering */  SwfdecRect		invalid;      		/* area that needs a redraw in global coordinates */  /* mouse */  gboolean		mouse_visible;	  	/* show the mouse (actionscriptable) */  SwfdecMouseCursor	mouse_cursor;		/* cursor that should be shown */  double      		mouse_x;		/* in stage coordinates */  double		mouse_y;		/* in stage coordinates */  int			mouse_button; 		/* 0 for not pressed, 1 for pressed */  SwfdecMovie *		mouse_grab;		/* movie that currently has the mouse */  SwfdecMovie *		mouse_drag;		/* current movie activated by startDrag */  gboolean		mouse_drag_center;	/* TRUE to use center of movie at mouse, FALSE for movie's (0,0) */  SwfdecRect		mouse_drag_rect;	/* clipping rectangle for movements */  double		mouse_drag_x;		/* offset of mouse in x direction */  double		mouse_drag_y;		/* offset of mouse in y direction */  /* key */  guint			last_keycode;		/* last keycode that was pressed/released */  guint			last_character;		/* UCS4 of last character pressed/released */  guint8		key_pressed[256/8];   	/* boolean array for isDown */  /* audio */  GList *		audio;		 	/* list of playing SwfdecAudio */  guint			audio_skip;		/* number of frames to auto-skip when adding new audio */  /* events and advancing */  SwfdecTick		time;			/* current time */  GList *		timeouts;	      	/* list of events, sorted by timestamp */  guint			tick;			/* next tick */  SwfdecTimeout		iterate_timeout;      	/* callback for iterating */  /* iterating */  GList *		movies;			/* list of all moveis that want to be iterated */  SwfdecRingBuffer *	actions;		/* all actions we've queued up so far */  SwfdecRingBuffer *	external_actions;     	/* external actions we've queued up, like resize or loader stuff */  SwfdecTimeout		external_timeout;      	/* callback for iterating */  GQueue *		init_queue;		/* all movies that require an init event */  GQueue *		construct_queue;      	/* all movies that require an construct event */};struct _SwfdecPlayerClass{  SwfdecAsContextClass	context_class;  void			(* advance)		(SwfdecPlayer *		player,						 guint			msecs,						 guint			audio_samples);  gboolean		(* handle_key)		(SwfdecPlayer *		player,						 guint			key,						 guint			character,						 gboolean		down);  gboolean		(* handle_mouse)	(SwfdecPlayer *		player,						 double			x,						 double			y,						 int			button);};void		swfdec_player_initialize	(SwfdecPlayer *		player,						 guint			version,						 guint			rate,						 guint			width,						 guint			height);void		swfdec_player_add_movie		(SwfdecPlayer *		player,						 guint			depth,						 const char *		url);void		swfdec_player_remove_movie	(SwfdecPlayer *		player,						 SwfdecMovie *		movie);void		swfdec_player_lock		(SwfdecPlayer *		player);void		swfdec_player_lock_soft		(SwfdecPlayer *		player);void		swfdec_player_unlock		(SwfdecPlayer *		player);void		swfdec_player_unlock_soft	(SwfdecPlayer *		player);void		swfdec_player_perform_actions	(SwfdecPlayer *		player);SwfdecAsObject *swfdec_player_get_export_class	(SwfdecPlayer *		player,						 const char *		name);void		swfdec_player_set_export_class	(SwfdecPlayer *		player,						 const char *		name,						 SwfdecAsObject *	object);void		swfdec_player_invalidate	(SwfdecPlayer *		player,						 const SwfdecRect *	rect);void		swfdec_player_add_timeout	(SwfdecPlayer *		player,						 SwfdecTimeout *	timeout);void		swfdec_player_remove_timeout	(SwfdecPlayer *		player,						 SwfdecTimeout *	timeout);void		swfdec_player_add_external_action						(SwfdecPlayer *		player,						 gpointer		object,						 SwfdecActionFunc   	action_func,						 gpointer		action_data);void		swfdec_player_remove_all_external_actions						(SwfdecPlayer *      	player,						 gpointer		object);void		swfdec_player_add_action	(SwfdecPlayer *		player,						 gpointer		object,						 SwfdecActionFunc   	action_func,						 gpointer		action_data);void		swfdec_player_remove_all_actions (SwfdecPlayer *      	player,						 gpointer		object);void		swfdec_player_set_drag_movie	(SwfdecPlayer *		player,						 SwfdecMovie *		drag,						 gboolean		center,						 SwfdecRect *		rect);void		swfdec_player_set_align_flags	(SwfdecPlayer *		player,						 guint			flags);void		swfdec_player_stop_all_sounds	(SwfdecPlayer *		player);SwfdecMovie *	swfdec_player_add_level_from_loader 						(SwfdecPlayer *		player,						 guint			depth,						 SwfdecLoader *		loader,						 const char *		variables);void		swfdec_player_remove_level	(SwfdecPlayer *		player,						 guint			depth);SwfdecLoader *	swfdec_player_load		(SwfdecPlayer *         player,						 const char *		url);void		swfdec_player_launch		(SwfdecPlayer *         player,						 const char *		url,						 const char *		target);void		swfdec_player_stage_to_global	(SwfdecPlayer *		player,						 double *		x,						 double *		y);void		swfdec_player_global_to_stage	(SwfdecPlayer *		player,						 double *		x,						 double *		y);G_END_DECLS#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -