Merge esdmon and esdsink elements into one plugin

Original commit message from CVS:
Merge esdmon and esdsink elements into one plugin
This commit is contained in:
David Schleef 2003-07-15 07:52:10 +00:00
parent 0b1a3a3579
commit 803a18a70a
6 changed files with 139 additions and 73 deletions

View file

@ -1,16 +1,11 @@
plugindir = $(libdir)/gstreamer-@GST_MAJORMINOR@ plugindir = $(libdir)/gstreamer-@GST_MAJORMINOR@
plugin_LTLIBRARIES = libgstesdsink.la libgstesdmon.la plugin_LTLIBRARIES = libgstesd.la
libgstesdsink_la_SOURCES = esdsink.c libgstesd_la_SOURCES = esdsink.c esdmon.c gstesd.c
libgstesdsink_la_CFLAGS = $(GST_CFLAGS) $(ESD_CFLAGS) libgstesd_la_CFLAGS = $(GST_CFLAGS) $(ESD_CFLAGS)
libgstesdsink_la_LIBADD = $(ESD_LIBS) libgstesd_la_LIBADD = $(ESD_LIBS)
libgstesdsink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstesd_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)
noinst_HEADERS = esdsink.h noinst_HEADERS = esdsink.h
EXTRA_DIST = README EXTRA_DIST = README

View file

@ -23,53 +23,10 @@
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"
#endif #endif
#include <gst/gst.h> #include "esdmon.h"
#include <esd.h> #include <esd.h>
#include <unistd.h> #include <unistd.h>
#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 */ /* elementfactory information */
static GstElementDetails esdmon_details = { static GstElementDetails esdmon_details = {
@ -405,8 +362,8 @@ gst_esdmon_get_property (GObject *object, guint prop_id, GValue *value, GParamSp
} }
} }
static gboolean gboolean
plugin_init (GModule *module, GstPlugin *plugin) gst_esdmon_factory_init (GstPlugin *plugin)
{ {
GstElementFactory *factory; GstElementFactory *factory;
@ -421,13 +378,6 @@ plugin_init (GModule *module, GstPlugin *plugin)
return TRUE; return TRUE;
} }
GstPluginDesc plugin_desc = {
GST_VERSION_MAJOR,
GST_VERSION_MINOR,
"esdmon",
plugin_init
};
static gboolean static gboolean
gst_esdmon_open_audio (GstEsdmon *src) gst_esdmon_open_audio (GstEsdmon *src)
{ {

78
ext/esd/esdmon.h Normal file
View file

@ -0,0 +1,78 @@
/* GStreamer
* Copyright (C) <2001,2002> Richard Boulton <richard-gst@tartarus.org>
*
* Based on example.c:
* Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
*
* 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 <gst/gst.h>
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__ */

View file

@ -317,8 +317,8 @@ gst_esdsink_get_property (GObject *object, guint prop_id, GValue *value, GParamS
} }
} }
static gboolean gboolean
plugin_init (GModule *module, GstPlugin *plugin) gst_esdsink_factory_init (GstPlugin *plugin)
{ {
GstElementFactory *factory; GstElementFactory *factory;
@ -326,20 +326,14 @@ plugin_init (GModule *module, GstPlugin *plugin)
&esdsink_details); &esdsink_details);
g_return_val_if_fail(factory != NULL, FALSE); 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)); gst_plugin_add_feature (plugin, GST_PLUGIN_FEATURE (factory));
return TRUE; return TRUE;
} }
GstPluginDesc plugin_desc = {
GST_VERSION_MAJOR,
GST_VERSION_MINOR,
"esdsink",
plugin_init
};
static gboolean static gboolean
gst_esdsink_open_audio (GstEsdsink *sink) gst_esdsink_open_audio (GstEsdsink *sink)
{ {

View file

@ -61,6 +61,7 @@ struct _GstEsdsinkClass {
}; };
GType gst_esdsink_get_type(void); GType gst_esdsink_get_type(void);
gboolean gst_esdsink_factory_init (GstPlugin *plugin);
G_END_DECLS G_END_DECLS

48
ext/esd/gstesd.c Normal file
View file

@ -0,0 +1,48 @@
/* GStreamer
* Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
* Copyright (C) <2003> David A. Schleef <ds@schleef.org>
*
* 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
};