summaryrefslogtreecommitdiff
path: root/farstream/fs-transmitter.h
diff options
context:
space:
mode:
authorOlivier CrĂȘte <olivier.crete@collabora.com>2011-10-11 16:08:49 -0400
committerOlivier CrĂȘte <olivier.crete@collabora.com>2011-10-11 16:14:10 -0400
commit52a59229d200a8d74d66e02126c290434d3157d8 (patch)
tree1adf3344ad47dbed6c35c42511362b232c703683 /farstream/fs-transmitter.h
parent7098f40db04b6a32c311b802a2c12f0f450ee7b7 (diff)
downloadfarstream-52a59229d200a8d74d66e02126c290434d3157d8.tar.gz
Move the lib out of gst-libs
Diffstat (limited to 'farstream/fs-transmitter.h')
-rw-r--r--farstream/fs-transmitter.h126
1 files changed, 126 insertions, 0 deletions
diff --git a/farstream/fs-transmitter.h b/farstream/fs-transmitter.h
new file mode 100644
index 00000000..13372912
--- /dev/null
+++ b/farstream/fs-transmitter.h
@@ -0,0 +1,126 @@
+/*
+ * Farstream - Farstream Transmitter
+ *
+ * Copyright 2007 Collabora Ltd.
+ * @author: Olivier Crete <olivier.crete@collabora.co.uk>
+ * Copyright 2007 Nokia Corp.
+ *
+ * fs-transmitter.h - A Farstream Transmitter (base implementation)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef __FS_TRANSMITTER_H__
+#define __FS_TRANSMITTER_H__
+
+#include <gst/gst.h>
+
+#include <farstream/fs-participant.h>
+#include <farstream/fs-session.h>
+#include <farstream/fs-stream-transmitter.h>
+
+G_BEGIN_DECLS
+
+/* TYPE MACROS */
+#define FS_TYPE_TRANSMITTER \
+ (fs_transmitter_get_type ())
+#define FS_TRANSMITTER(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj), FS_TYPE_TRANSMITTER, FsTransmitter))
+#define FS_TRANSMITTER_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST((klass), FS_TYPE_TRANSMITTER, FsTransmitterClass))
+#define FS_IS_TRANSMITTER(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj), FS_TYPE_TRANSMITTER))
+#define FS_IS_TRANSMITTER_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE((klass), FS_TYPE_TRANSMITTER))
+#define FS_TRANSMITTER_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), FS_TYPE_TRANSMITTER, FsTransmitterClass))
+#define FS_TRANSMITTER_CAST(obj) ((FsTransmitter *) (obj))
+
+typedef struct _FsTransmitter FsTransmitter;
+typedef struct _FsTransmitterClass FsTransmitterClass;
+typedef struct _FsTransmitterPrivate FsTransmitterPrivate;
+
+/**
+ * FsTransmitterClass:
+ * @parent_class: Our parent
+ * @new_stream_transmitter: Creates a new #FsStreamTransmitter
+ * @get_stream_transmitter_type: Returns the #GType of the stream transmitter
+ * created by this class (useful for bindings)
+ *
+ * You must override both methods in a subclass.
+ */
+
+struct _FsTransmitterClass
+{
+ GstObjectClass parent_class;
+
+ /*virtual functions */
+ FsStreamTransmitter *(*new_stream_transmitter) (FsTransmitter *transmitter,
+ FsParticipant *participant,
+ guint n_parameters,
+ GParameter *parameters,
+ GError **error);
+ GType (*get_stream_transmitter_type) (FsTransmitter *transmitter);
+
+ /*< private >*/
+ gpointer _padding[8];
+};
+
+/**
+ * FsTransmitter:
+ *
+ * All members are private, access them using methods and properties
+ */
+struct _FsTransmitter
+{
+ GstObject parent;
+
+ /*< private >*/
+ FsTransmitterPrivate *priv;
+
+ /* This parameter should only be set by the construction methods
+ * of the subclasses
+ */
+ GError *construction_error;
+
+ gpointer _padding[8];
+};
+
+GType fs_transmitter_get_type (void);
+
+FsStreamTransmitter *fs_transmitter_new_stream_transmitter (
+ FsTransmitter *transmitter, FsParticipant *participant,
+ guint n_parameters, GParameter *parameters, GError **error);
+
+FsTransmitter *fs_transmitter_new (const gchar *type,
+ guint components,
+ guint tos,
+ GError **error);
+
+GType fs_transmitter_get_stream_transmitter_type (FsTransmitter *transmitter);
+
+void fs_transmitter_emit_error (FsTransmitter *transmitter,
+ gint error_no,
+ const gchar *error_msg);
+
+char **fs_transmitter_list_available (void);
+
+GstElement *
+fs_transmitter_get_recvonly_filter (FsTransmitter *transmitter,
+ guint component);
+
+G_END_DECLS
+
+#endif /* __FS_TRANSMITTER_H__ */