diff options
author | Guenter Bartsch <guenter@users.sourceforge.net> | 2002-10-16 22:54:47 +0000 |
---|---|---|
committer | Guenter Bartsch <guenter@users.sourceforge.net> | 2002-10-16 22:54:47 +0000 |
commit | b2c55490db29a9aaae431c899e2b6806305482c0 (patch) | |
tree | b75b328e18c3885c443b16982b74ec7ed1036cc3 /src/xine-engine | |
parent | 3156b0d743d15ad39978713167e375373265fdfc (diff) | |
download | xine-lib-b2c55490db29a9aaae431c899e2b6806305482c0.tar.gz xine-lib-b2c55490db29a9aaae431c899e2b6806305482c0.tar.bz2 |
introduce audio/video_driver_class_t, adapt oss audio output plugin, exclude other audio output plugin from build process
CVS patchset: 2841
CVS date: 2002/10/16 22:54:47
Diffstat (limited to 'src/xine-engine')
-rw-r--r-- | src/xine-engine/audio_out.h | 24 | ||||
-rw-r--r-- | src/xine-engine/load_plugins.c | 4 | ||||
-rw-r--r-- | src/xine-engine/video_out.c | 4 | ||||
-rw-r--r-- | src/xine-engine/video_out.h | 32 | ||||
-rw-r--r-- | src/xine-engine/xine_plugin.h | 4 |
5 files changed, 56 insertions, 12 deletions
diff --git a/src/xine-engine/audio_out.h b/src/xine-engine/audio_out.h index 30a8e4133..42cf7889f 100644 --- a/src/xine-engine/audio_out.h +++ b/src/xine-engine/audio_out.h @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: audio_out.h,v 1.36 2002/10/16 14:19:43 guenter Exp $ + * $Id: audio_out.h,v 1.37 2002/10/16 22:54:48 guenter Exp $ */ #ifndef HAVE_AUDIO_OUT_H #define HAVE_AUDIO_OUT_H @@ -234,6 +234,28 @@ struct ao_instance_s { int64_t passthrough_offset; }; +typedef struct audio_driver_class_s audio_driver_class_t; + +struct audio_driver_class_s { + + /* + * return short, human readable identifier for this plugin class + */ + char* (*get_identifier) (audio_driver_class_t *this); + + /* + * return human readable (verbose = 1 line) description for + * this plugin class + */ + char* (*get_description) (audio_driver_class_t *this); + + /* + * free all class-related resources + */ + + void (*dispose) (audio_driver_class_t *this); +}; + /* * this initiates the audio_out sync routines * found in ./src/xine-engine/audio_out.c diff --git a/src/xine-engine/load_plugins.c b/src/xine-engine/load_plugins.c index a71f50010..95abc9fb3 100644 --- a/src/xine-engine/load_plugins.c +++ b/src/xine-engine/load_plugins.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: load_plugins.c,v 1.100 2002/10/16 21:10:56 guenter Exp $ + * $Id: load_plugins.c,v 1.101 2002/10/16 22:54:48 guenter Exp $ * * * Load input/demux/audio_out/video_out/codec plugins @@ -149,7 +149,6 @@ static void _insert_plugin (xine_t *this, vo_old = info->special_info; vo_new = xine_xmalloc(sizeof(vo_info_t)); priority = vo_new->priority = vo_old->priority; - vo_new->description = _strclone(vo_old->description); vo_new->visual_type = vo_old->visual_type; entry->info->special_info = vo_new; break; @@ -158,7 +157,6 @@ static void _insert_plugin (xine_t *this, ao_old = info->special_info; ao_new = xine_xmalloc(sizeof(ao_info_t)); priority = ao_new->priority = ao_old->priority; - ao_new->description = _strclone(ao_old->description); entry->info->special_info = ao_new; break; diff --git a/src/xine-engine/video_out.c b/src/xine-engine/video_out.c index 879059fb8..8c10a1b1f 100644 --- a/src/xine-engine/video_out.c +++ b/src/xine-engine/video_out.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out.c,v 1.105 2002/10/14 15:47:41 guenter Exp $ + * $Id: video_out.c,v 1.106 2002/10/16 22:54:48 guenter Exp $ * * frame allocation / queuing / scheduling / output functions */ @@ -851,7 +851,7 @@ static void vo_exit (vo_instance_t *this_gen) { vo_free_img_buffers (this_gen); - this->driver->exit (this->driver); + this->driver->dispose (this->driver); #ifdef LOG printf ("video_out: vo_exit... done\n"); diff --git a/src/xine-engine/video_out.h b/src/xine-engine/video_out.h index 90bb61565..5bda23ef6 100644 --- a/src/xine-engine/video_out.h +++ b/src/xine-engine/video_out.h @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: video_out.h,v 1.65 2002/10/16 14:19:44 guenter Exp $ + * $Id: video_out.h,v 1.66 2002/10/16 22:54:48 guenter Exp $ * * * xine version of video_out.h @@ -295,18 +295,44 @@ struct xine_vo_driver_s { int (*gui_data_exchange) (xine_vo_driver_t *this, int data_type, void *data); - void (*exit) (xine_vo_driver_t *this); - /* check if a redraw is needed (due to resize) * this is only used for still frames, normal video playback * must call that inside display_frame() function. */ int (*redraw_needed) (xine_vo_driver_t *this); + /* + * free all resources, close driver + */ + + void (*dispose) (xine_vo_driver_t *this); + void *node; /* needed by plugin_loader */ +}; + +typedef struct video_driver_class_s video_driver_class_t; + +struct video_driver_class_s { + + /* + * return short, human readable identifier for this plugin class + */ + char* (*get_identifier) (video_driver_class_t *this); + + /* + * return human readable (verbose = 1 line) description for + * this plugin class + */ + char* (*get_description) (video_driver_class_t *this); + /* + * free all class-related resources + */ + + void (*dispose) (video_driver_class_t *this); }; + typedef struct rle_elem_s { uint16_t len; uint16_t color; diff --git a/src/xine-engine/xine_plugin.h b/src/xine-engine/xine_plugin.h index 16845dbf0..102829d7d 100644 --- a/src/xine-engine/xine_plugin.h +++ b/src/xine-engine/xine_plugin.h @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_plugin.h,v 1.4 2002/10/14 15:47:46 guenter Exp $ + * $Id: xine_plugin.h,v 1.5 2002/10/16 22:54:48 guenter Exp $ * * generic plugin definitions * @@ -50,13 +50,11 @@ typedef struct { /* special_info for a video output plugin */ typedef struct { int priority; /* priority of this plugin for auto-probing */ - char *description; /* human-readable description of this plugin */ int visual_type; /* visual type supported by this plugin */ } vo_info_t; /* special info for a audio output plugin */ typedef struct { - char *description; int priority; } ao_info_t ; |