summaryrefslogtreecommitdiffstats
path: root/ext/jack/gstjack.h
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2002-04-16 17:14:05 +0000
committerAndy Wingo <wingo@pobox.com>2002-04-16 17:14:05 +0000
commitb40069a51296860a428cd1a9ef51bcbcf522f1ba (patch)
tree4694bd3b2781ded409c1a031c0be97155cddf6ce /ext/jack/gstjack.h
parent8d71425079a3a56e0a64838c319dfcd594a9e599 (diff)
downloadgst-plugins-bad-b40069a51296860a428cd1a9ef51bcbcf522f1ba.tar.gz
gst-plugins-bad-b40069a51296860a428cd1a9ef51bcbcf522f1ba.tar.bz2
gst-plugins-bad-b40069a51296860a428cd1a9ef51bcbcf522f1ba.zip
Finally we're on to a proper jack setup, with a specialized bin and elements that can only go in a jack bin. I had to...
Original commit message from CVS: Finally we're on to a proper jack setup, with a specialized bin and elements that can only go in a jack bin. I had to fix the parser first to do this, but to run it, the syntax is like so: gst-launch jackbin.( filesrc ! mad ! jacksink ) But of course it's not fully functional yet. Sigh.
Diffstat (limited to 'ext/jack/gstjack.h')
-rw-r--r--ext/jack/gstjack.h54
1 files changed, 32 insertions, 22 deletions
diff --git a/ext/jack/gstjack.h b/ext/jack/gstjack.h
index da6940f2..38763cd6 100644
--- a/ext/jack/gstjack.h
+++ b/ext/jack/gstjack.h
@@ -42,11 +42,19 @@
#define GST_IS_JACK_SRC_CLASS(klass) G_TYPE_CHECK_CLASS_TYPE(klass, GST_TYPE_JACK_SRC)
#define GST_TYPE_JACK_SRC gst_jack_src_get_type()
+#define GST_JACK_BIN(obj) G_TYPE_CHECK_INSTANCE_CAST(obj, GST_TYPE_JACK_BIN, GstJackBin)
+#define GST_JACK_BIN_CLASS(klass) G_TYPE_CHECK_CLASS_CAST(klass, GST_TYPE_JACK_BIN, GstJackClass)
+#define GST_IS_JACK_BIN(obj) G_TYPE_CHECK_INSTANCE_TYPE(obj, GST_TYPE_JACK_BIN)
+#define GST_IS_JACK_BIN_CLASS(klass) G_TYPE_CHECK_CLASS_TYPE(klass, GST_TYPE_JACK_BIN)
+#define GST_TYPE_JACK_BIN gst_jack_bin_get_type()
+
#define GST_JACK_PAD(l) ((GstJackPad*)l->data) /* l is a GList */
typedef struct _GstJack GstJack;
typedef struct _GstJackClass GstJackClass;
+typedef struct _GstJackBin GstJackBin;
+typedef struct _GstJackBinClass GstJackBinClass;
typedef GstJack GstJackSink;
typedef GstJackClass GstJackSinkClass;
typedef GstJack GstJackSrc;
@@ -54,9 +62,9 @@ typedef GstJackClass GstJackSrcClass;
enum {
- GST_JACK_OPEN = GST_ELEMENT_FLAG_LAST,
+ GST_JACK_OPEN = GST_BIN_FLAG_LAST,
GST_JACK_ACTIVE,
- GST_JACK_FLAG_LAST = GST_ELEMENT_FLAG_LAST + 3,
+ GST_JACK_FLAG_LAST = GST_BIN_FLAG_LAST + 3,
};
@@ -69,24 +77,6 @@ typedef struct {
jack_port_t *port;
} GstJackPad;
-typedef struct {
- GstBin *manager;
-
- jack_client_t *client;
- gint default_new_port_number;
-
- /* lists of GstJackPads */
- GList *sink_pads;
- GList *src_pads;
-
- gchar *client_name;
-
- guint rate;
- nframes_t nframes;
-
- guint refcount;
-} GstJackClient;
-
struct _GstJack {
GstElement element;
@@ -98,16 +88,36 @@ struct _GstJack {
gchar *port_name_prefix;
- /* there is exactly one client per managing bin */
- GstJackClient *client;
+ GstJackBin *bin;
};
struct _GstJackClass {
GstElementClass parent_class;
};
+struct _GstJackBin {
+ GstBin bin;
+
+ jack_client_t *client;
+ gint default_new_port_number;
+
+ /* lists of GstJackPads */
+ GList *sink_pads;
+ GList *src_pads;
+
+ gchar *client_name;
+
+ guint rate;
+ nframes_t nframes;
+};
+
+struct _GstJackBinClass {
+ GstBinClass parent_class;
+};
+
GType gst_jack_get_type (void);
+GType gst_jack_bin_get_type (void);
GType gst_jack_sink_get_type (void);
GType gst_jack_src_get_type (void);