From f18eccd28694f1c128bccea364edb90ce68ba424 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Wed, 3 Aug 2011 10:59:56 +0200 Subject: [PATCH] hal: Remove hal plugin hal is not developed anymore and nobody is using the plugin nowadays. --- configure.ac | 10 +- ext/Makefile.am | 8 - ext/hal/Makefile.am | 18 --- ext/hal/gsthalaudiosink.c | 251 ----------------------------- ext/hal/gsthalaudiosink.h | 58 ------- ext/hal/gsthalaudiosrc.c | 252 ----------------------------- ext/hal/gsthalaudiosrc.h | 52 ------ ext/hal/gsthalelements.c | 54 ------- ext/hal/gsthalelements.h | 29 ---- ext/hal/hal.c | 397 ---------------------------------------------- ext/hal/hal.h | 48 ------ 11 files changed, 1 insertion(+), 1176 deletions(-) delete mode 100644 ext/hal/Makefile.am delete mode 100644 ext/hal/gsthalaudiosink.c delete mode 100644 ext/hal/gsthalaudiosink.h delete mode 100644 ext/hal/gsthalaudiosrc.c delete mode 100644 ext/hal/gsthalaudiosrc.h delete mode 100644 ext/hal/gsthalelements.c delete mode 100644 ext/hal/gsthalelements.h delete mode 100644 ext/hal/hal.c delete mode 100644 ext/hal/hal.h diff --git a/configure.ac b/configure.ac index 0caa692..c89c40b 100644 --- a/configure.ac +++ b/configure.ac @@ -315,7 +315,7 @@ dnl Make sure you have a space before and after all plugins GST_PLUGINS_NONPORTED=" deinterlace flx goom goom2k1 icydemux id3demux \ imagefreeze interleave isomp4 law matroska monoscope shapewipe smpte \ videobox videocrop videomixer \ - annodex apetag cairo dv1394 flac gdk_pixbuf hal jpeg libdv libpng \ + annodex apetag cairo dv1394 flac gdk_pixbuf jpeg libdv libpng \ oss oss4 shout2 \ soup taglib wavpack " AC_SUBST(GST_PLUGINS_NONPORTED) @@ -741,12 +741,6 @@ AG_GST_CHECK_FEATURE(GDK_PIXBUF, [GDK pixbuf], gdkpixbuf, [ AG_GST_PKG_CHECK_MODULES(GDK_PIXBUF, gdk-pixbuf-2.0 >= 2.8.0) ]) -dnl *** HAL *** -translit(dnm, m, l) AM_CONDITIONAL(USE_HAL, true) -AG_GST_CHECK_FEATURE(HAL, [HAL libraries], halelements, [ - AG_GST_PKG_CHECK_MODULES(HAL, [hal >= 0.5.6, dbus-1 >= 0.32]) -]) - dnl *** Jack *** translit(dnm, m, l) AM_CONDITIONAL(USE_JACK, true) AG_GST_CHECK_FEATURE(JACK, Jack, jack, [ @@ -997,7 +991,6 @@ AM_CONDITIONAL(USE_DV1394, false) AM_CONDITIONAL(USE_FLAC, false) AM_CONDITIONAL(USE_GDK_PIXBUF, false) AM_CONDITIONAL(USE_GST_V4L2, false) -AM_CONDITIONAL(USE_HAL, false) AM_CONDITIONAL(USE_JACK, false) AM_CONDITIONAL(USE_JPEG, false) AM_CONDITIONAL(USE_LIBCACA, false) @@ -1132,7 +1125,6 @@ ext/cairo/Makefile ext/dv/Makefile ext/flac/Makefile ext/gdk_pixbuf/Makefile -ext/hal/Makefile ext/jack/Makefile ext/jpeg/Makefile ext/libcaca/Makefile diff --git a/ext/Makefile.am b/ext/Makefile.am index b1a9416..791fe00 100644 --- a/ext/Makefile.am +++ b/ext/Makefile.am @@ -28,12 +28,6 @@ else GDK_PIXBUF_DIR = endif -if USE_HAL -HAL_DIR = hal -else -HAL_DIR = -endif - if USE_JACK JACK_DIR=jack else @@ -126,7 +120,6 @@ SUBDIRS = \ $(DV1394_DIR) \ $(FLAC_DIR) \ $(GDK_PIXBUF_DIR) \ - $(HAL_DIR) \ $(JACK_DIR) \ $(JPEG_DIR) \ $(LIBCACA_DIR) \ @@ -148,7 +141,6 @@ DIST_SUBDIRS = \ dv \ flac \ gdk_pixbuf \ - hal \ jack \ jpeg \ libcaca \ diff --git a/ext/hal/Makefile.am b/ext/hal/Makefile.am deleted file mode 100644 index 8862aeb..0000000 --- a/ext/hal/Makefile.am +++ /dev/null @@ -1,18 +0,0 @@ -plugin_LTLIBRARIES = libgsthalelements.la - -libgsthalelements_la_SOURCES = \ - gsthalaudiosink.c \ - gsthalaudiosrc.c \ - gsthalelements.c \ - hal.c - -libgsthalelements_la_CFLAGS = $(GST_CFLAGS) $(HAL_CFLAGS) -libgsthalelements_la_LIBADD = $(GST_LIBS) $(HAL_LIBS) -libgsthalelements_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) -libgsthalelements_la_LIBTOOLFLAGS = --tag=disable-static - -noinst_HEADERS = \ - gsthalaudiosink.h \ - gsthalaudiosrc.h \ - gsthalelements.h \ - hal.h diff --git a/ext/hal/gsthalaudiosink.c b/ext/hal/gsthalaudiosink.c deleted file mode 100644 index 24b29da..0000000 --- a/ext/hal/gsthalaudiosink.c +++ /dev/null @@ -1,251 +0,0 @@ -/* GStreamer - * (c) 2005 Ronald S. Bultje - * (c) 2006 Jürg Billeter - * - * 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. - */ - -/** - * SECTION:element-halaudiosink - * - * HalAudioSink allows access to output of sound devices by specifying the - * corresponding persistent Unique Device Id (UDI) from the Hardware Abstraction - * Layer (HAL) in the #GstHalAudioSink:udi property. - * It currently always embeds alsasink or osssink as HAL doesn't support other - * sound systems yet. You can also specify the UDI of a device that has ALSA or - * OSS subdevices. If both are present ALSA is preferred. - * - * - * Examples - * |[ - * hal-find-by-property --key alsa.type --string playback - * ]| list the UDIs of all your ALSA output devices - * |[ - * gst-launch -v audiotestsrc ! halaudiosink udi=/org/freedesktop/Hal/devices/pci_8086_27d8_alsa_playback_0 - * ]| test your soundcard by playing a test signal on the specified sound device. - * - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "gsthalelements.h" -#include "gsthalaudiosink.h" - -static void gst_hal_audio_sink_dispose (GObject * object); -static GstStateChangeReturn -gst_hal_audio_sink_change_state (GstElement * element, - GstStateChange transition); - -enum -{ - PROP_0, - PROP_UDI -}; - -GST_BOILERPLATE (GstHalAudioSink, gst_hal_audio_sink, GstBin, GST_TYPE_BIN); - -static void gst_hal_audio_sink_set_property (GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec); -static void gst_hal_audio_sink_get_property (GObject * object, guint prop_id, - GValue * value, GParamSpec * pspec); - -static void -gst_hal_audio_sink_base_init (gpointer klass) -{ - GstElementClass *eklass = GST_ELEMENT_CLASS (klass); - - static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", - GST_PAD_SINK, - GST_PAD_ALWAYS, - GST_STATIC_CAPS_ANY); - - gst_element_class_add_pad_template (eklass, - gst_static_pad_template_get (&sink_template)); - gst_element_class_set_details_simple (eklass, "HAL audio sink", - "Sink/Audio", - "Audio sink for sound device access via HAL", - "Jürg Billeter "); -} - -static void -gst_hal_audio_sink_class_init (GstHalAudioSinkClass * klass) -{ - GObjectClass *oklass = G_OBJECT_CLASS (klass); - GstElementClass *eklass = GST_ELEMENT_CLASS (klass); - - oklass->set_property = gst_hal_audio_sink_set_property; - oklass->get_property = gst_hal_audio_sink_get_property; - oklass->dispose = gst_hal_audio_sink_dispose; - eklass->change_state = gst_hal_audio_sink_change_state; - - g_object_class_install_property (oklass, PROP_UDI, - g_param_spec_string ("udi", - "UDI", "Unique Device Id", NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); -} - -/* - * Hack to make negotiation work. - */ - -static void -gst_hal_audio_sink_reset (GstHalAudioSink * sink) -{ - GstPad *targetpad; - - /* fakesink */ - if (sink->kid) { - gst_element_set_state (sink->kid, GST_STATE_NULL); - gst_bin_remove (GST_BIN (sink), sink->kid); - } - sink->kid = gst_element_factory_make ("fakesink", "testsink"); - gst_bin_add (GST_BIN (sink), sink->kid); - - targetpad = gst_element_get_static_pad (sink->kid, "sink"); - gst_ghost_pad_set_target (GST_GHOST_PAD (sink->pad), targetpad); - gst_object_unref (targetpad); -} - -static void -gst_hal_audio_sink_init (GstHalAudioSink * sink, GstHalAudioSinkClass * g_class) -{ - sink->pad = gst_ghost_pad_new_no_target ("sink", GST_PAD_SINK); - gst_element_add_pad (GST_ELEMENT (sink), sink->pad); - - gst_hal_audio_sink_reset (sink); -} - -static void -gst_hal_audio_sink_dispose (GObject * object) -{ - GstHalAudioSink *sink = GST_HAL_AUDIO_SINK (object); - - if (sink->udi) { - g_free (sink->udi); - sink->udi = NULL; - } - - GST_CALL_PARENT (G_OBJECT_CLASS, dispose, (object)); -} - -static gboolean -do_toggle_element (GstHalAudioSink * sink) -{ - GstPad *targetpad; - - /* kill old element */ - if (sink->kid) { - GST_DEBUG_OBJECT (sink, "Removing old kid"); - gst_element_set_state (sink->kid, GST_STATE_NULL); - gst_bin_remove (GST_BIN (sink), sink->kid); - sink->kid = NULL; - } - - GST_DEBUG_OBJECT (sink, "Creating new kid"); - if (!sink->udi) - GST_INFO_OBJECT (sink, "No UDI set for device, using default one"); - - if (!(sink->kid = gst_hal_get_audio_sink (sink->udi))) { - GST_ELEMENT_ERROR (sink, LIBRARY, SETTINGS, (NULL), - ("Failed to render audio sink from Hal")); - return FALSE; - } - gst_element_set_state (sink->kid, GST_STATE (sink)); - gst_bin_add (GST_BIN (sink), sink->kid); - - /* re-attach ghostpad */ - GST_DEBUG_OBJECT (sink, "Creating new ghostpad"); - targetpad = gst_element_get_static_pad (sink->kid, "sink"); - gst_ghost_pad_set_target (GST_GHOST_PAD (sink->pad), targetpad); - gst_object_unref (targetpad); - GST_DEBUG_OBJECT (sink, "done changing hal audio sink"); - - return TRUE; -} - -static void -gst_hal_audio_sink_set_property (GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec) -{ - GstHalAudioSink *this = GST_HAL_AUDIO_SINK (object); - - GST_OBJECT_LOCK (this); - - switch (prop_id) { - case PROP_UDI: - if (this->udi) - g_free (this->udi); - this->udi = g_value_dup_string (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } - - GST_OBJECT_UNLOCK (this); -} - -static void -gst_hal_audio_sink_get_property (GObject * object, guint prop_id, - GValue * value, GParamSpec * pspec) -{ - GstHalAudioSink *this = GST_HAL_AUDIO_SINK (object); - - GST_OBJECT_LOCK (this); - - switch (prop_id) { - case PROP_UDI: - g_value_set_string (value, this->udi); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } - - GST_OBJECT_UNLOCK (this); -} - -static GstStateChangeReturn -gst_hal_audio_sink_change_state (GstElement * element, - GstStateChange transition) -{ - GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; - GstHalAudioSink *sink = GST_HAL_AUDIO_SINK (element); - - switch (transition) { - case GST_STATE_CHANGE_NULL_TO_READY: - if (!do_toggle_element (sink)) - return GST_STATE_CHANGE_FAILURE; - break; - default: - break; - } - - ret = GST_CALL_PARENT_WITH_DEFAULT (GST_ELEMENT_CLASS, change_state, - (element, transition), GST_STATE_CHANGE_SUCCESS); - - switch (transition) { - case GST_STATE_CHANGE_READY_TO_NULL: - gst_hal_audio_sink_reset (sink); - break; - default: - break; - } - - return ret; -} diff --git a/ext/hal/gsthalaudiosink.h b/ext/hal/gsthalaudiosink.h deleted file mode 100644 index 3f07fde..0000000 --- a/ext/hal/gsthalaudiosink.h +++ /dev/null @@ -1,58 +0,0 @@ -/* GStreamer - * (c) 2005 Ronald S. Bultje - * (c) 2006 Jürg Billeter - * - * 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_HAL_AUDIO_SINK_H__ -#define __GST_HAL_AUDIO_SINK_H__ - -#include - -G_BEGIN_DECLS - -#define GST_TYPE_HAL_AUDIO_SINK \ - (gst_hal_audio_sink_get_type ()) -#define GST_HAL_AUDIO_SINK(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_HAL_AUDIO_SINK, \ - GstHalAudioSink)) -#define GST_HAL_AUDIO_SINK_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_HAL_AUDIO_SINK, \ - GstHalAudioSinkClass)) -#define GST_IS_HAL_AUDIO_SINK(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_HAL_AUDIO_SINK)) -#define GST_IS_HAL_AUDIO_SINK_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_HAL_AUDIO_SINK)) - -typedef struct _GstHalAudioSink { - GstBin parent; - - /* explicit pointers to stuff used */ - gchar *udi; - GstElement *kid; - GstPad *pad; -} GstHalAudioSink; - -typedef struct _GstHalAudioSinkClass { - GstBinClass parent_class; -} GstHalAudioSinkClass; - -GType gst_hal_audio_sink_get_type (void); - -G_END_DECLS - -#endif /* __GST_HAL_AUDIO_SINK_H__ */ diff --git a/ext/hal/gsthalaudiosrc.c b/ext/hal/gsthalaudiosrc.c deleted file mode 100644 index de87848..0000000 --- a/ext/hal/gsthalaudiosrc.c +++ /dev/null @@ -1,252 +0,0 @@ -/* GStreamer - * (c) 2005 Ronald S. Bultje - * (c) 2005 Tim-Philipp Müller - * (c) 2006 Jürg Billeter - * - * 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. - */ - -/** - * SECTION:element-halaudiosrc - * - * HalAudioSrc allows access to input of sound devices by specifying the - * corresponding persistent Unique Device Id (UDI) from the Hardware Abstraction - * Layer (HAL) in the #GstHalAudioSrc:udi property. - * It currently always embeds alsasrc or osssrc as HAL doesn't support other - * sound systems yet. You can also specify the UDI of a device that has ALSA or - * OSS subdevices. If both are present ALSA is preferred. - * - * - * Examples - * |[ - * hal-find-by-property --key alsa.type --string capture - * ]| list the UDIs of all your ALSA input devices - * |[ - * gst-launch -v halaudiosrc udi=/org/freedesktop/Hal/devices/pci_8086_27d8_alsa_capture_0 ! autoaudiosink - * ]| You should now hear yourself with a small delay if you have a microphone - * connected to the specified sound device. - * - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "gsthalelements.h" -#include "gsthalaudiosrc.h" - -static void gst_hal_audio_src_dispose (GObject * object); -static GstStateChangeReturn -gst_hal_audio_src_change_state (GstElement * element, - GstStateChange transition); - -enum -{ - PROP_0, - PROP_UDI -}; - -GST_BOILERPLATE (GstHalAudioSrc, gst_hal_audio_src, GstBin, GST_TYPE_BIN); - -static void gst_hal_audio_src_set_property (GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec); -static void gst_hal_audio_src_get_property (GObject * object, guint prop_id, - GValue * value, GParamSpec * pspec); - -static void -gst_hal_audio_src_base_init (gpointer klass) -{ - GstElementClass *eklass = GST_ELEMENT_CLASS (klass); - - static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", - GST_PAD_SRC, - GST_PAD_ALWAYS, - GST_STATIC_CAPS_ANY); - - gst_element_class_add_pad_template (eklass, - gst_static_pad_template_get (&src_template)); - gst_element_class_set_details_simple (eklass, "HAL audio source", - "Source/Audio", - "Audio source for sound device access via HAL", - "Jürg Billeter "); -} - -static void -gst_hal_audio_src_class_init (GstHalAudioSrcClass * klass) -{ - GObjectClass *oklass = G_OBJECT_CLASS (klass); - GstElementClass *eklass = GST_ELEMENT_CLASS (klass); - - oklass->set_property = gst_hal_audio_src_set_property; - oklass->get_property = gst_hal_audio_src_get_property; - oklass->dispose = gst_hal_audio_src_dispose; - eklass->change_state = gst_hal_audio_src_change_state; - - g_object_class_install_property (oklass, PROP_UDI, - g_param_spec_string ("udi", - "UDI", "Unique Device Id", NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); -} - -/* - * Hack to make negotiation work. - */ - -static void -gst_hal_audio_src_reset (GstHalAudioSrc * src) -{ - GstPad *targetpad; - - /* fakesrc */ - if (src->kid) { - gst_element_set_state (src->kid, GST_STATE_NULL); - gst_bin_remove (GST_BIN (src), src->kid); - } - src->kid = gst_element_factory_make ("fakesrc", "testsrc"); - gst_bin_add (GST_BIN (src), src->kid); - - targetpad = gst_element_get_static_pad (src->kid, "src"); - gst_ghost_pad_set_target (GST_GHOST_PAD (src->pad), targetpad); - gst_object_unref (targetpad); -} - -static void -gst_hal_audio_src_init (GstHalAudioSrc * src, GstHalAudioSrcClass * g_class) -{ - src->pad = gst_ghost_pad_new_no_target ("src", GST_PAD_SRC); - gst_element_add_pad (GST_ELEMENT (src), src->pad); - - gst_hal_audio_src_reset (src); -} - -static void -gst_hal_audio_src_dispose (GObject * object) -{ - GstHalAudioSrc *src = GST_HAL_AUDIO_SRC (object); - - if (src->udi) { - g_free (src->udi); - src->udi = NULL; - } - - GST_CALL_PARENT (G_OBJECT_CLASS, dispose, (object)); -} - -static gboolean -do_toggle_element (GstHalAudioSrc * src) -{ - GstPad *targetpad; - - /* kill old element */ - if (src->kid) { - GST_DEBUG_OBJECT (src, "Removing old kid"); - gst_element_set_state (src->kid, GST_STATE_NULL); - gst_bin_remove (GST_BIN (src), src->kid); - src->kid = NULL; - } - - GST_DEBUG_OBJECT (src, "Creating new kid"); - if (!src->udi) - GST_INFO_OBJECT (src, "No UDI set for device, using default one"); - - if (!(src->kid = gst_hal_get_audio_src (src->udi))) { - GST_ELEMENT_ERROR (src, LIBRARY, SETTINGS, (NULL), - ("Failed to render audio source from Hal")); - return FALSE; - } - gst_element_set_state (src->kid, GST_STATE (src)); - gst_bin_add (GST_BIN (src), src->kid); - - /* re-attach ghostpad */ - GST_DEBUG_OBJECT (src, "Creating new ghostpad"); - targetpad = gst_element_get_static_pad (src->kid, "src"); - gst_ghost_pad_set_target (GST_GHOST_PAD (src->pad), targetpad); - gst_object_unref (targetpad); - GST_DEBUG_OBJECT (src, "done changing hal audio source"); - - return TRUE; -} - -static void -gst_hal_audio_src_set_property (GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec) -{ - GstHalAudioSrc *this = GST_HAL_AUDIO_SRC (object); - - GST_OBJECT_LOCK (this); - - switch (prop_id) { - case PROP_UDI: - if (this->udi) - g_free (this->udi); - this->udi = g_value_dup_string (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } - - GST_OBJECT_UNLOCK (this); -} - -static void -gst_hal_audio_src_get_property (GObject * object, guint prop_id, - GValue * value, GParamSpec * pspec) -{ - GstHalAudioSrc *this = GST_HAL_AUDIO_SRC (object); - - GST_OBJECT_LOCK (this); - - switch (prop_id) { - case PROP_UDI: - g_value_set_string (value, this->udi); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } - - GST_OBJECT_UNLOCK (this); -} - -static GstStateChangeReturn -gst_hal_audio_src_change_state (GstElement * element, GstStateChange transition) -{ - GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; - GstHalAudioSrc *src = GST_HAL_AUDIO_SRC (element); - - switch (transition) { - case GST_STATE_CHANGE_NULL_TO_READY: - if (!do_toggle_element (src)) - return GST_STATE_CHANGE_FAILURE; - break; - default: - break; - } - - ret = GST_CALL_PARENT_WITH_DEFAULT (GST_ELEMENT_CLASS, change_state, - (element, transition), GST_STATE_CHANGE_SUCCESS); - - switch (transition) { - case GST_STATE_CHANGE_READY_TO_NULL: - gst_hal_audio_src_reset (src); - break; - default: - break; - } - - return ret; -} diff --git a/ext/hal/gsthalaudiosrc.h b/ext/hal/gsthalaudiosrc.h deleted file mode 100644 index 7afdadd..0000000 --- a/ext/hal/gsthalaudiosrc.h +++ /dev/null @@ -1,52 +0,0 @@ -/* GStreamer - * (c) 2005 Ronald S. Bultje - * (c) 2005 Tim-Philipp Müller - * (c) 2006 Jürg Billeter - * - * 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_HAL_AUDIO_SRC_H__ -#define __GST_HAL_AUDIO_SRC_H__ - -#include - -G_BEGIN_DECLS - -#define GST_TYPE_HAL_AUDIO_SRC (gst_hal_audio_src_get_type ()) -#define GST_HAL_AUDIO_SRC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_HAL_AUDIO_SRC, GstHalAudioSrc)) -#define GST_HAL_AUDIO_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_HAL_AUDIO_SRC, GstHalAudioSrcClass)) -#define GST_IS_HAL_AUDIO_SRC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_HAL_AUDIO_SRC)) -#define GST_IS_HAL_AUDIO_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_HAL_AUDIO_SRC)) - -typedef struct _GstHalAudioSrc { - GstBin parent; - - /* explicit pointers to stuff used */ - gchar *udi; - GstElement *kid; - GstPad *pad; -} GstHalAudioSrc; - -typedef struct _GstHalAudioSrcClass { - GstBinClass parent_class; -} GstHalAudioSrcClass; - -GType gst_hal_audio_src_get_type (void); - -G_END_DECLS - -#endif /* __GST_HAL_AUDIO_SRC_H__ */ diff --git a/ext/hal/gsthalelements.c b/ext/hal/gsthalelements.c deleted file mode 100644 index dd5122a..0000000 --- a/ext/hal/gsthalelements.c +++ /dev/null @@ -1,54 +0,0 @@ -/* GStreamer - * (c) 2005 Ronald S. Bultje - * (c) 2006 Jürg Billeter - * - * 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 - -#include "gsthalelements.h" - -#include "gsthalaudiosink.h" -#include "gsthalaudiosrc.h" - -GST_DEBUG_CATEGORY (hal_debug); - -static gboolean -plugin_init (GstPlugin * plugin) -{ - GST_DEBUG_CATEGORY_INIT (hal_debug, "hal", 0, - "HAL/GStreamer audio input/output wrapper elements"); - - if (!gst_element_register (plugin, "halaudiosink", - GST_RANK_NONE, GST_TYPE_HAL_AUDIO_SINK) || - !gst_element_register (plugin, "halaudiosrc", - GST_RANK_NONE, GST_TYPE_HAL_AUDIO_SRC)) { - return FALSE; - } - - return TRUE; -} - -GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, - GST_VERSION_MINOR, - "halelements", - "elements wrapping the GStreamer/HAL audio input/output devices", - plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/hal/gsthalelements.h b/ext/hal/gsthalelements.h deleted file mode 100644 index 6a9462f..0000000 --- a/ext/hal/gsthalelements.h +++ /dev/null @@ -1,29 +0,0 @@ -/* GStreamer - * (c) 2005 Ronald S. Bultje - * (c) 2006 Ronald S. Bultje - * - * 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_HAL_ELEMENTS_H__ -#define __GST_HAL_ELEMENTS_H__ - -#include - -GST_DEBUG_CATEGORY_EXTERN (hal_debug); -#define GST_CAT_DEFAULT hal_debug - -#endif /* __GST_HAL_ELEMENTS_H__ */ diff --git a/ext/hal/hal.c b/ext/hal/hal.c deleted file mode 100644 index 6957f56..0000000 --- a/ext/hal/hal.c +++ /dev/null @@ -1,397 +0,0 @@ -/* GStreamer - * Copyright (C) <2002> Thomas Vander Stichele - * Copyright (C) <2006> Jürg Billeter - * Copyright (C) <2007> Sebastian Dröge - * - * 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. - */ - -/* - * this library handles interaction with Hal - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include -#include -#include "hal.h" - -GST_DEBUG_CATEGORY_EXTERN (hal_debug); - -#define GST_CAT_DEFAULT hal_debug - -/* compat for older libhal */ -#ifndef LIBHAL_FREE_DBUS_ERROR -#define LIBHAL_FREE_DBUS_ERROR(e) dbus_error_free (e) -#endif - -/* - * gst_hal_get_alsa_element: - * @ctx: a #LibHalContext which should be used for querying HAL. - * @udi: a #gchar corresponding to the UDI you want to get. - * @device_type: a #GstHalDeviceType specifying the wanted device type. - * - * Get Hal UDI @udi's string value. - * - * Returns: a newly allocated #gchar string containing the appropriate pipeline - * for UDI @udi, or NULL in the case of an error.. - */ -static gchar * -gst_hal_get_alsa_element (LibHalContext * ctx, const gchar * udi, - GstHalDeviceType device_type) -{ - char *type, *string = NULL; - const char *element = NULL; - DBusError error; - - dbus_error_init (&error); - - if (!libhal_device_query_capability (ctx, udi, "alsa", &error)) { - if (dbus_error_is_set (&error)) { - GST_DEBUG ("Failed querying %s for alsa capability: %s: %s", - udi, error.name, error.message); - LIBHAL_FREE_DBUS_ERROR (&error); - } else { - GST_DEBUG ("UDI %s has no alsa capability", udi); - } - return NULL; - } - - type = libhal_device_get_property_string (ctx, udi, "alsa.type", &error); - - if (dbus_error_is_set (&error)) { - GST_DEBUG ("UDI %s has alsa capabilities but no alsa.type property: %s, %s", - udi, error.name, error.message); - LIBHAL_FREE_DBUS_ERROR (&error); - return NULL; - } else if (!type) { - GST_DEBUG ("UDI %s has empty alsa.type property", udi); - return NULL; - } - - if (strcmp (type, "playback") == 0 && device_type == GST_HAL_AUDIOSINK) - element = "alsasink"; - else if (strcmp (type, "capture") == 0 && device_type == GST_HAL_AUDIOSRC) - element = "alsasrc"; - - libhal_free_string (type); - - if (element) { - int card, device; - - card = libhal_device_get_property_int (ctx, udi, "alsa.card", &error); - if (dbus_error_is_set (&error)) { - GST_DEBUG ("UDI %s has no alsa.card property: %s: %s", udi, error.name, - error.message); - LIBHAL_FREE_DBUS_ERROR (&error); - return NULL; - } else if (card == -1) { - GST_DEBUG ("UDI %s has no alsa.card property", udi); - return NULL; - } - - device = libhal_device_get_property_int (ctx, udi, "alsa.device", &error); - if (dbus_error_is_set (&error)) { - GST_DEBUG ("UDI %s has no alsa.device property: %s: %s", udi, error.name, - error.message); - LIBHAL_FREE_DBUS_ERROR (&error); - return NULL; - } else if (device == -1) { - GST_DEBUG ("UDI %s has no alsa.device property", udi); - return NULL; - } - - /* This is a bit dodgy, since it makes lots of assumptions about the way - * alsa is set up. In any case, only munge the device string for playback */ - if (strcmp (element, "alsasink") == 0 && device == 0) { - /* handle default device specially to use - * dmix, dsnoop, and softvol if appropriate */ - string = g_strdup_printf ("%s device=default:%d", element, card); - } else { - string = - g_strdup_printf ("%s device=plughw:%d,%d", element, card, device); - } - } - - return string; -} - -/* - * gst_hal_get_oss_element: - * @ctx: a #LibHalContext which should be used for querying HAL. - * @udi: a #gchar corresponding to the UDI you want to get. - * @device_type: a #GstHalDeviceType specifying the wanted device type. - * - * Get Hal UDI @udi's string value. - * - * Returns: a newly allocated #gchar string containing the appropriate pipeline - * for UDI @udi, or NULL in the case of an error.. - */ -static gchar * -gst_hal_get_oss_element (LibHalContext * ctx, const gchar * udi, - GstHalDeviceType device_type) -{ - char *type, *string = NULL; - const char *element = NULL; - DBusError error; - - dbus_error_init (&error); - - if (!libhal_device_query_capability (ctx, udi, "oss", &error)) { - if (dbus_error_is_set (&error)) { - GST_DEBUG ("Failed querying %s for oss capability: %s: %s", udi, - error.name, error.message); - LIBHAL_FREE_DBUS_ERROR (&error); - } else { - GST_DEBUG ("UDI %s has no oss capability", udi); - } - return NULL; - } - - type = libhal_device_get_property_string (ctx, udi, "oss.type", &error); - if (dbus_error_is_set (&error)) { - GST_DEBUG ("UDI %s has oss capabilities but no oss.type property: %s, %s", - udi, error.name, error.message); - LIBHAL_FREE_DBUS_ERROR (&error); - return NULL; - } else if (!type) { - GST_DEBUG ("UDI %s has empty oss.type property", udi); - return NULL; - } - - if (strcmp (type, "pcm") == 0) { - if (device_type == GST_HAL_AUDIOSINK) - element = "osssink"; - else if (device_type == GST_HAL_AUDIOSRC) - element = "osssrc"; - } - libhal_free_string (type); - - if (element) { - char *device = NULL; - - device = - libhal_device_get_property_string (ctx, udi, "oss.device_file", &error); - if (dbus_error_is_set (&error)) { - GST_DEBUG - ("UDI %s has oss capabilities but no oss.device_file property: %s, %s", - udi, error.name, error.message); - LIBHAL_FREE_DBUS_ERROR (&error); - return NULL; - } else if (!device) { - GST_DEBUG ("UDI %s has empty oss.device_file property", udi); - return NULL; - } - - string = g_strdup_printf ("%s device=%s", element, device); - libhal_free_string (device); - } - - return string; -} - -/* - * gst_hal_get_string: - * @udi: a #gchar corresponding to the UDI you want to get. - * @device_type: a #GstHalDeviceType specifying the wanted device type. - * - * Get Hal UDI @udi's string value. - * - * Returns: a newly allocated #gchar string containing the appropriate pipeline - * for UDI @udi, or NULL in the case of an error.. - */ -static gchar * -gst_hal_get_string (const gchar * udi, GstHalDeviceType device_type) -{ - DBusError error; - LibHalContext *ctx; - char *string = NULL; - - /* Don't query HAL for NULL UDIs. Passing NULL as UDI to HAL gives - * an assertion failure in D-Bus when running with - * DBUS_FATAL_WARNINGS=1. */ - if (!udi) - return NULL; - - dbus_error_init (&error); - - ctx = libhal_ctx_new (); - /* Should only happen on OOM */ - g_return_val_if_fail (ctx != NULL, NULL); - - if (!libhal_ctx_set_dbus_connection (ctx, dbus_bus_get (DBUS_BUS_SYSTEM, - &error))) { - GST_DEBUG ("Unable to set DBus connection: %s: %s", error.name, - error.message); - LIBHAL_FREE_DBUS_ERROR (&error); - goto ctx_free; - } - - if (!libhal_ctx_init (ctx, &error)) { - GST_DEBUG ("Unable to set init HAL context: %s: %s", error.name, - error.message); - LIBHAL_FREE_DBUS_ERROR (&error); - goto ctx_free; - } - - /* Now first check if UDI is an alsa device, then oss and then - * check the childs of the given device. If there are alsa and oss - * children the first alsa one is used. */ - - string = gst_hal_get_alsa_element (ctx, udi, device_type); - - if (!string) - string = gst_hal_get_oss_element (ctx, udi, device_type); - - if (!string) { - int num_childs; - char **childs = NULL; - - /* now try if one of the direct subdevices supports ALSA or OSS */ - childs = - libhal_manager_find_device_string_match (ctx, "info.parent", udi, - &num_childs, &error); - if (dbus_error_is_set (&error)) { - GST_DEBUG ("Unable to retrieve childs of %s: %s: %s", udi, error.name, - error.message); - LIBHAL_FREE_DBUS_ERROR (&error); - goto ctx_shutdown; - } - - if (childs && num_childs > 0) { - int i; - char *alsa_string = NULL, *oss_string = NULL; - - for (i = 0; i < num_childs && !alsa_string; i++) { - alsa_string = gst_hal_get_alsa_element (ctx, childs[i], device_type); - - if (!oss_string) - oss_string = gst_hal_get_oss_element (ctx, childs[i], device_type); - } - - if (alsa_string) { - string = alsa_string; - g_free (oss_string); - } else if (oss_string) { - string = oss_string; - } - } - libhal_free_string_array (childs); - } - -ctx_shutdown: - if (!libhal_ctx_shutdown (ctx, &error)) { - GST_DEBUG ("Closing connection to HAL failed: %s: %s", error.name, - error.message); - LIBHAL_FREE_DBUS_ERROR (&error); - } - -ctx_free: - libhal_ctx_free (ctx); - - if (string == NULL) { - GST_WARNING ("Problem finding a HAL audio device for udi %s", udi); - } else { - GST_INFO ("Using %s", string); - } - - return string; -} - -/* external functions */ - -/** - * gst_hal_render_bin_from_udi: - * @udi: a #gchar string corresponding to a Hal UDI. - * - * Render bin from Hal UDI @udi. - * - * Returns: a #GstElement containing the rendered bin. - */ -GstElement * -gst_hal_render_bin_from_udi (const gchar * udi, GstHalDeviceType type) -{ - GstElement *bin = NULL; - gchar *value; - - value = gst_hal_get_string (udi, type); - if (value) - bin = gst_parse_bin_from_description (value, TRUE, NULL); - g_free (value); - return bin; -} - -/** - * gst_hal_get_audio_sink: - * @udi: a #gchar string corresponding to a Hal UDI. - * - * Render audio output bin from GStreamer Hal UDI. - * If no device with the specified UDI exists or @udi is NULL, - * the default audio sink for the platform is used - * (typically alsasink, osssink or sunaudiosink). - * - * Returns: a #GstElement containing the audio output bin, or NULL if - * everything failed. - */ -GstElement * -gst_hal_get_audio_sink (const gchar * udi) -{ - GstElement *ret = NULL; - - if (udi) - ret = gst_hal_render_bin_from_udi (udi, GST_HAL_AUDIOSINK); - - if (!ret) { - ret = gst_element_factory_make (DEFAULT_AUDIOSINK, NULL); - - if (!ret) - GST_ERROR ("Hal audio sink and %s don't work", DEFAULT_AUDIOSINK); - } - - return ret; -} - -/** - * gst_hal_get_audio_src: - * @udi: a #gchar string corresponding to a Hal UDI. - * - * Render audio acquisition bin from GStreamer Hal UDI. - * If no device with the specified UDI exists or @udi is NULL, - * the default audio source for the plaform is used - * (typically alsasrc, osssrc or sunaudiosrc). - * - * Returns: a #GstElement containing the audio source bin, or NULL if - * everything failed. - */ -GstElement * -gst_hal_get_audio_src (const gchar * udi) -{ - GstElement *ret = NULL; - - if (udi) - ret = gst_hal_render_bin_from_udi (udi, GST_HAL_AUDIOSRC); - - if (!ret) { - ret = gst_element_factory_make (DEFAULT_AUDIOSRC, NULL); - - if (!ret) - GST_ERROR ("Hal audio src and %s don't work", DEFAULT_AUDIOSRC); - } - - return ret; -} diff --git a/ext/hal/hal.h b/ext/hal/hal.h deleted file mode 100644 index 9cc5aed..0000000 --- a/ext/hal/hal.h +++ /dev/null @@ -1,48 +0,0 @@ -/* GStreamer - * Copyright (C) <2002> Thomas Vander Stichele - * Copyright (C) <2006> Jürg Billeter - * - * 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_HAL_H -#define GST_HAL_H - -/* - * this library handles interaction with Hal - */ - -#include -#include -#include - -G_BEGIN_DECLS - -typedef enum -{ - GST_HAL_AUDIOSINK, - GST_HAL_AUDIOSRC -} GstHalDeviceType; - -GstElement *gst_hal_render_bin_from_udi (const gchar * udi, - GstHalDeviceType type); - -GstElement *gst_hal_get_audio_sink (const gchar * udi); -GstElement *gst_hal_get_audio_src (const gchar * udi); - -G_END_DECLS - -#endif /* GST_HAL_H */ -- 2.7.4