summaryrefslogtreecommitdiffstats
path: root/sys/oss/gstossdmabuffer.h
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2005-07-08 11:19:19 +0000
committerAndy Wingo <wingo@pobox.com>2005-07-08 11:19:19 +0000
commit6fc2023e8fec8c86ba1008edfd68e8998729318b (patch)
tree83d01640f8ff7789ac5894c16cb5245b3bd57c8b /sys/oss/gstossdmabuffer.h
parent266b874436d0b23d96d07bc09ad52e363c275b58 (diff)
sys/oss/: Port from THREADED+wim's fixes.
Original commit message from CVS: 2005-07-08 Andy Wingo <wingo@pobox.com> * sys/oss/: Port from THREADED+wim's fixes.
Diffstat (limited to 'sys/oss/gstossdmabuffer.h')
-rw-r--r--sys/oss/gstossdmabuffer.h77
1 files changed, 77 insertions, 0 deletions
diff --git a/sys/oss/gstossdmabuffer.h b/sys/oss/gstossdmabuffer.h
new file mode 100644
index 00000000..3a2c6ea7
--- /dev/null
+++ b/sys/oss/gstossdmabuffer.h
@@ -0,0 +1,77 @@
+/* GStreamer
+ * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
+ * 2005 Wim Taymans <wim@fluendo.com>
+ *
+ * gstossdmabuffer.h:
+ *
+ * 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_OSSDMABUFFER_H__
+#define __GST_OSSDMABUFFER_H__
+
+#include <gst/gst.h>
+
+#include "gstosselement.h"
+#include <gst/audio/gstringbuffer.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_OSSDMABUFFER (gst_ossdmabuffer_get_type())
+#define GST_OSSDMABUFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_OSSDMABUFFER,GstOssDMABuffer))
+#define GST_OSSDMABUFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_OSSDMABUFFER,GstOssDMABufferClass))
+#define GST_IS_OSSDMABUFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_OSSDMABUFFER))
+#define GST_IS_OSSDMABUFFER_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_OSSDMABUFFER))
+
+#define GST_OSSELEMENT_GET(obj) GST_OSSELEMENT (obj->element)
+
+typedef enum {
+ GST_OSSDMABUFFER_OPEN = (1 << 0),
+} GstOssDMABufferFlags;
+
+typedef struct _GstOssDMABuffer GstOssDMABuffer;
+typedef struct _GstOssDMABufferClass GstOssDMABufferClass;
+
+#define GST_OSSDMABUFFER_THREAD(buf) (GST_OSSDMABUFFER(buf)->thread)
+#define GST_OSSDMABUFFER_LOCK GST_LOCK
+#define GST_OSSDMABUFFER_UNLOCK GST_UNLOCK
+#define GST_OSSDMABUFFER_COND(buf) (GST_OSSDMABUFFER(buf)->cond)
+#define GST_OSSDMABUFFER_SIGNAL(buf) (g_cond_signal (GST_OSSDMABUFFER_COND (buf)))
+#define GST_OSSDMABUFFER_WAIT(buf) (g_cond_wait (GST_OSSDMABUFFER_COND (buf), GST_GET_LOCK (buf)))
+
+struct _GstOssDMABuffer {
+ GstRingBuffer buffer;
+
+ GstOssElement *element;
+
+ int fd;
+ int caps;
+ int frag;
+
+ GThread *thread;
+ GCond *cond;
+ gboolean running;
+};
+
+struct _GstOssDMABufferClass {
+ GstRingBufferClass parent_class;
+};
+
+GType gst_ossdmabuffer_get_type(void);
+
+G_END_DECLS
+
+#endif /* __GST_OSSDMABUFFER_H__ */