diff --git a/ext/esd/Makefile.am b/ext/esd/Makefile.am index 90e16a8fb2..f62d215a7b 100644 --- a/ext/esd/Makefile.am +++ b/ext/esd/Makefile.am @@ -1,16 +1,11 @@ plugindir = $(libdir)/gstreamer-@GST_MAJORMINOR@ -plugin_LTLIBRARIES = libgstesdsink.la libgstesdmon.la +plugin_LTLIBRARIES = libgstesd.la -libgstesdsink_la_SOURCES = esdsink.c -libgstesdsink_la_CFLAGS = $(GST_CFLAGS) $(ESD_CFLAGS) -libgstesdsink_la_LIBADD = $(ESD_LIBS) -libgstesdsink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) - -libgstesdmon_la_SOURCES = esdmon.c -libgstesdmon_la_CFLAGS = $(GST_CFLAGS) $(ESD_CFLAGS) -libgstesdmon_la_LIBADD = $(ESD_LIBS) -libgstesdmon_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstesd_la_SOURCES = esdsink.c esdmon.c gstesd.c +libgstesd_la_CFLAGS = $(GST_CFLAGS) $(ESD_CFLAGS) +libgstesd_la_LIBADD = $(ESD_LIBS) +libgstesd_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) noinst_HEADERS = esdsink.h EXTRA_DIST = README diff --git a/ext/esd/esdmon.c b/ext/esd/esdmon.c index 851ffd8c61..ae8d4fd446 100644 --- a/ext/esd/esdmon.c +++ b/ext/esd/esdmon.c @@ -23,53 +23,10 @@ #ifdef HAVE_CONFIG_H #include "config.h" #endif -#include +#include "esdmon.h" #include #include -#define GST_TYPE_ESDMON \ - (gst_esdmon_get_type()) -#define GST_ESDMON(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_ESDMON,GstEsdmon)) -#define GST_ESDMON_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_ESDMON,GstEsdmon)) -#define GST_IS_ESDMON(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_ESDMON)) -#define GST_IS_ESDMON_CLASS(obj) \ - (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_ESDMON)) - -typedef enum { - GST_ESDMON_OPEN = GST_ELEMENT_FLAG_LAST, - GST_ESDMON_FLAG_LAST = GST_ELEMENT_FLAG_LAST+2, -} GstEsdSrcFlags; - -typedef struct _GstEsdmon GstEsdmon; -typedef struct _GstEsdmonClass GstEsdmonClass; - -struct _GstEsdmon { - GstElement element; - - GstPad *srcpad; - - gchar* host; - - int fd; - - gint depth; - gint channels; - gint frequency; - - guint64 basetime; - guint64 samples_since_basetime; - guint64 curoffset; - guint64 bytes_per_read; -}; - -struct _GstEsdmonClass { - GstElementClass parent_class; -}; - -GType gst_esdmon_get_type(void); /* elementfactory information */ static GstElementDetails esdmon_details = { @@ -405,8 +362,8 @@ gst_esdmon_get_property (GObject *object, guint prop_id, GValue *value, GParamSp } } -static gboolean -plugin_init (GModule *module, GstPlugin *plugin) +gboolean +gst_esdmon_factory_init (GstPlugin *plugin) { GstElementFactory *factory; @@ -421,13 +378,6 @@ plugin_init (GModule *module, GstPlugin *plugin) return TRUE; } -GstPluginDesc plugin_desc = { - GST_VERSION_MAJOR, - GST_VERSION_MINOR, - "esdmon", - plugin_init -}; - static gboolean gst_esdmon_open_audio (GstEsdmon *src) { diff --git a/ext/esd/esdmon.h b/ext/esd/esdmon.h new file mode 100644 index 0000000000..f50e654490 --- /dev/null +++ b/ext/esd/esdmon.h @@ -0,0 +1,78 @@ +/* GStreamer + * Copyright (C) <2001,2002> Richard Boulton + * + * Based on example.c: + * Copyright (C) <1999> Erik Walthinsen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_ESDMON_H__ +#define __GST_ESDMON_H__ + +#include + +G_BEGIN_DECLS + +#define GST_TYPE_ESDMON \ + (gst_esdmon_get_type()) +#define GST_ESDMON(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_ESDMON,GstEsdmon)) +#define GST_ESDMON_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_ESDMON,GstEsdmon)) +#define GST_IS_ESDMON(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_ESDMON)) +#define GST_IS_ESDMON_CLASS(obj) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_ESDMON)) + +typedef enum { + GST_ESDMON_OPEN = GST_ELEMENT_FLAG_LAST, + GST_ESDMON_FLAG_LAST = GST_ELEMENT_FLAG_LAST+2, +} GstEsdSrcFlags; + +typedef struct _GstEsdmon GstEsdmon; +typedef struct _GstEsdmonClass GstEsdmonClass; + +struct _GstEsdmon { + GstElement element; + + GstPad *srcpad; + + gchar* host; + + int fd; + + gint depth; + gint channels; + gint frequency; + + guint64 basetime; + guint64 samples_since_basetime; + guint64 curoffset; + guint64 bytes_per_read; +}; + +struct _GstEsdmonClass { + GstElementClass parent_class; +}; + +GType gst_esdmon_get_type(void); +gboolean gst_esdmon_factory_init(GstPlugin *plugin); + +G_END_DECLS + +#endif /* __GST_ESDMON_H__ */ + diff --git a/ext/esd/esdsink.c b/ext/esd/esdsink.c index 54cb28333c..3d985b5b13 100644 --- a/ext/esd/esdsink.c +++ b/ext/esd/esdsink.c @@ -317,8 +317,8 @@ gst_esdsink_get_property (GObject *object, guint prop_id, GValue *value, GParamS } } -static gboolean -plugin_init (GModule *module, GstPlugin *plugin) +gboolean +gst_esdsink_factory_init (GstPlugin *plugin) { GstElementFactory *factory; @@ -326,20 +326,14 @@ plugin_init (GModule *module, GstPlugin *plugin) &esdsink_details); g_return_val_if_fail(factory != NULL, FALSE); - gst_element_factory_add_pad_template(factory, GST_PAD_TEMPLATE_GET (sink_factory)); + gst_element_factory_add_pad_template(factory, + GST_PAD_TEMPLATE_GET (sink_factory)); gst_plugin_add_feature (plugin, GST_PLUGIN_FEATURE (factory)); return TRUE; } -GstPluginDesc plugin_desc = { - GST_VERSION_MAJOR, - GST_VERSION_MINOR, - "esdsink", - plugin_init -}; - static gboolean gst_esdsink_open_audio (GstEsdsink *sink) { diff --git a/ext/esd/esdsink.h b/ext/esd/esdsink.h index 458f3095d1..c418386e58 100644 --- a/ext/esd/esdsink.h +++ b/ext/esd/esdsink.h @@ -61,6 +61,7 @@ struct _GstEsdsinkClass { }; GType gst_esdsink_get_type(void); +gboolean gst_esdsink_factory_init (GstPlugin *plugin); G_END_DECLS diff --git a/ext/esd/gstesd.c b/ext/esd/gstesd.c new file mode 100644 index 0000000000..3f016323ba --- /dev/null +++ b/ext/esd/gstesd.c @@ -0,0 +1,48 @@ +/* GStreamer + * Copyright (C) <1999> Erik Walthinsen + * Copyright (C) <2003> David A. Schleef + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include "esdsink.h" +#include "esdmon.h" + + +static gboolean +plugin_init (GModule *module, GstPlugin *plugin) +{ + gboolean ret; + + ret = gst_esdsink_factory_init(plugin); + if(ret == FALSE) return FALSE; + + ret = gst_esdmon_factory_init(plugin); + if(ret == FALSE) return FALSE; + + return TRUE; +} + +GstPluginDesc plugin_desc = { + GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "esdsink", + plugin_init +}; +