diff options
author | Olivier CrĂȘte <olivier.crete@collabora.com> | 2011-10-11 16:08:49 -0400 |
---|---|---|
committer | Olivier CrĂȘte <olivier.crete@collabora.com> | 2011-10-11 16:14:10 -0400 |
commit | 52a59229d200a8d74d66e02126c290434d3157d8 (patch) | |
tree | 1adf3344ad47dbed6c35c42511362b232c703683 /farstream/fs-transmitter.h | |
parent | 7098f40db04b6a32c311b802a2c12f0f450ee7b7 (diff) | |
download | farstream-52a59229d200a8d74d66e02126c290434d3157d8.tar.gz |
Move the lib out of gst-libs
Diffstat (limited to 'farstream/fs-transmitter.h')
-rw-r--r-- | farstream/fs-transmitter.h | 126 |
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__ */ |