summaryrefslogtreecommitdiffstats
path: root/sys/sunaudio/gstsunelement.h
diff options
context:
space:
mode:
authorBalamurali Viswanathan <balamurali.viswanathan@wipro.com>2004-08-18 04:52:41 +0000
committerDavid Schleef <ds@schleef.org>2004-08-18 04:52:41 +0000
commitf1ffa33d9ec0155ab660dc1a5f6ed40ce3f73abf (patch)
treee83edfbf7898807c322b83294b91a0cc863fca73 /sys/sunaudio/gstsunelement.h
parent98f3784bf6adf36778db5ce44e9dd92474281ea8 (diff)
downloadgst-plugins-bad-f1ffa33d9ec0155ab660dc1a5f6ed40ce3f73abf.tar.gz
gst-plugins-bad-f1ffa33d9ec0155ab660dc1a5f6ed40ce3f73abf.tar.bz2
gst-plugins-bad-f1ffa33d9ec0155ab660dc1a5f6ed40ce3f73abf.zip
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:
Diffstat (limited to 'sys/sunaudio/gstsunelement.h')
-rw-r--r--sys/sunaudio/gstsunelement.h63
1 files changed, 63 insertions, 0 deletions
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 <gst/gst.h>
+
+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