From d7627cecebad4abb64840561d7afa46a62e1dd6d Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Fri, 13 Aug 2004 00:55:59 +0000 Subject: [project @ 2004-08-13 00:55:59 by jmb] Rewrite of plugin handling. This is now much nicer than before although it has about the same amount of functionality. Note: This is now configurable via an option (defaults to OFF) This has only really been tested with the Flash plugin and seems to work reasonably. svn path=/import/netsurf/; revision=1216 --- riscos/plugin.h | 78 ++++++++++++++++++++++----------------------------------- 1 file changed, 30 insertions(+), 48 deletions(-) (limited to 'riscos/plugin.h') diff --git a/riscos/plugin.h b/riscos/plugin.h index 72ff798f5..8d3bfd798 100644 --- a/riscos/plugin.h +++ b/riscos/plugin.h @@ -18,60 +18,30 @@ struct content; struct object_params; struct content_plugin_data { - char *data; /* object data */ - unsigned long length; /* object length */ - char *sysvar; /* system variable set by plugin */ -}; - -struct plugin_state { - int dummy; -}; - -struct plugin_message { - - int poll; - plugin_b browser; - plugin_p plugin; - wimp_message *m; - struct plugin_message *reply; - struct plugin_message *next; - struct plugin_message *prev; -}; - -struct plugin_list { - - struct content *c; - struct browser_window *bw; - struct content *page; - struct box *box; - struct object_params *params; - void **state; - struct plugin_list *next; - struct plugin_list *prev; -}; - -struct plugin_param_item { - - int type; - int rsize; - int nsize; - char *name; - int npad; - int vsize; - char *value; - int vpad; - int msize; - char *mime_type; - int mpad; - - struct plugin_param_item *next; + struct browser_window *bw; /* window containing this content */ + struct content *page; /* parent content */ + struct box *box; /* box containing this content */ + char *taskname; /* plugin task to launch */ + char *filename; /* filename of parameters file */ + char *datafile; /* filename of filestreamed file */ + bool opened; /* has this plugin been opened? */ + int repeated; /* indication of opening state */ + unsigned int browser; /* browser handle */ + unsigned int plugin; /* plugin handle */ + unsigned int browser_stream; /* browser stream handle */ + unsigned int plugin_stream; /* plugin stream handle */ + unsigned int plugin_task; /* plugin task handle */ + unsigned int consumed; /* size of data consumed by plugin */ + bool reformat_pending; /* is a reformat pending? */ + int width, height; /* reformat width & height */ + bool stream_waiting; /* waiting to stream a datastream */ + bool file_stream_waiting; /* waiting to stream as file */ }; /* function definitions */ bool plugin_handleable(const char *mime_type); void plugin_msg_parse(wimp_message *message, int ack); bool plugin_create(struct content *c, const char *params[]); -bool plugin_process_data(struct content *c, char *data, unsigned int size); bool plugin_convert(struct content *c, int width, int height); void plugin_reformat(struct content *c, int width, int height); void plugin_destroy(struct content *c); @@ -84,5 +54,17 @@ void plugin_open(struct content *c, struct browser_window *bw, struct object_params *params); void plugin_close(struct content *c); +/* message handlers */ +void plugin_open_msg(wimp_message *message); +void plugin_opening(wimp_message *message); +void plugin_close_msg(wimp_message *message); +void plugin_closed(wimp_message *message); +void plugin_reshape_request(wimp_message *message); +void plugin_status(wimp_message *message); +void plugin_stream_new(wimp_message *message); +void plugin_stream_written(wimp_message *message); +void plugin_url_access(wimp_message *message); + + #endif -- cgit v1.2.3