From f1ffa33d9ec0155ab660dc1a5f6ed40ce3f73abf Mon Sep 17 00:00:00 2001 From: Balamurali Viswanathan Date: Wed, 18 Aug 2004 04:52:41 +0000 Subject: sys/sunaudio/: Fix caps to handle full range of rates and channels. Make debugging less obnoxious. Original commit message from CVS: * sys/sunaudio/Makefile.am: * sys/sunaudio/gstsunaudio.c: Fix caps to handle full range of rates and channels. Make debugging less obnoxious. Patch from Balamurali Viswanathan implementing a mixer for Sun audio. (bug #144091): * sys/sunaudio/gstsunelement.c: * sys/sunaudio/gstsunelement.h: * sys/sunaudio/gstsunmixer.c: * sys/sunaudio/gstsunmixer.h: --- sys/sunaudio/gstsunelement.h | 63 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 sys/sunaudio/gstsunelement.h (limited to 'sys/sunaudio/gstsunelement.h') diff --git a/sys/sunaudio/gstsunelement.h b/sys/sunaudio/gstsunelement.h new file mode 100644 index 00000000..86d5ca93 --- /dev/null +++ b/sys/sunaudio/gstsunelement.h @@ -0,0 +1,63 @@ +#ifndef __GST_SUNAUDIO_ELEMENT_H__ +#define __GST_SUNAUDIO_ELEMENT_H__ + +#include + +G_BEGIN_DECLS + +#define GST_TYPE_SUNAUDIOELEMENT \ + (gst_sunaudioelement_get_type()) +#define GST_SUNAUDIOELEMENT(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_SUNAUDIOELEMENT,GstSunAudioElement)) +#define GST_SUNAUDIOELEMENT_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_SUNAUDIOELEMENT,GstSunAudioElementClass)) +#define GST_IS_SUNAUDIOELEMENT(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_SUNAUDIOELEMENT)) +#define GST_IS_SUNAUDIOELEMENT_CLASS(obj) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_SUNAUDIOELEMENT)) +#define GST_SUNAUDIOELEMENT_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_SUNAUDIOELEMENT, GstSunAudioElementClass)) + +typedef enum { + GST_SUNAUDIOELEMENT_READ, + GST_SUNAUDIOELEMENT_WRITE, +} GstSunAudioOpenMode; + + +struct _GstSunAudioElement +{ + /* yes, we're a gstelement too */ + GstElement parent; + + gchar *device, + *mixer_dev; + + /* device state */ + int fd; + GstSunAudioOpenMode mode; + + /* mixer stuff */ + GList *tracklist; + gint mixer_fd; + gchar *device_name; +}; + +struct _GstSunAudioElementClass { + GstElementClass klass; + + GList *device_combinations; +}; + +typedef struct _GstSunAudioDeviceCombination { + gchar *mixer; + dev_t dev; +} GstSunAudioDeviceCombination; + +typedef struct _GstSunAudioElement GstSunAudioElement; +typedef struct _GstSunAudioElementClass GstSunAudioElementClass; + +GType gst_sunaudioelement_get_type (void); + +G_END_DECLS + +#endif -- cgit v1.2.1