summaryrefslogtreecommitdiffstats
path: root/ext/mythtv/gstmythtvsrc.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mythtv/gstmythtvsrc.h')
-rw-r--r--ext/mythtv/gstmythtvsrc.h131
1 files changed, 131 insertions, 0 deletions
diff --git a/ext/mythtv/gstmythtvsrc.h b/ext/mythtv/gstmythtvsrc.h
new file mode 100644
index 00000000..5765dd1e
--- /dev/null
+++ b/ext/mythtv/gstmythtvsrc.h
@@ -0,0 +1,131 @@
+/* GStreamer
+ * Copyright (C) <2006> Rosfran Borges <rosfran.borges@indt.org.br>
+ *
+ * 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_MYTHTV_SRC_H__
+#define __GST_MYTHTV_SRC_H__
+
+#include <gst/gst.h>
+#include <gst/base/gstbasesrc.h>
+#include <gst/base/gstpushsrc.h>
+#include <stdio.h>
+
+#include <gmyth/gmyth_socket.h>
+#include <gmyth/gmyth_file_transfer.h>
+#include <gmyth/gmyth_livetv.h>
+#include <gmyth/gmyth_backendinfo.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_MYTHTV_SRC \
+ (gst_mythtv_src_get_type())
+#define GST_MYTHTV_SRC(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_MYTHTV_SRC,GstMythtvSrc))
+#define GST_MYTHTV_SRC_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_MYTHTV_SRC,GstMythtvSrcClass))
+#define GST_IS_MYTHTV_SRC(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_MYTHTV_SRC))
+#define GST_IS_MYTHTV_SRC_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_MYTHTV_SRC))
+
+typedef struct _GstMythtvSrc GstMythtvSrc;
+typedef struct _GstMythtvSrcClass GstMythtvSrcClass;
+
+typedef enum {
+ GST_MYTHTV_SRC_FILE_TRANSFER,
+ GST_MYTHTV_SRC_NEXT_PROGRAM_CHAIN,
+ GST_MYTHTV_SRC_INVALID_DATA
+} GstMythtvState;
+
+struct _GstMythtvSrc {
+ GstPushSrc element;
+
+ /* MythFileTransfer */
+ GMythFileTransfer *file_transfer;
+
+ GMythLiveTV *spawn_livetv;
+
+ GMythBackendInfo *backend_info;
+
+ GstMythtvState state;
+
+ gchar *uri_name;
+ gchar *user_agent;
+
+ gchar *live_chain_id;
+
+ gint mythtv_version;
+
+ gint64 content_size;
+
+ gint64 prev_content_size;
+
+ gint64 content_size_last;
+
+ guint64 bytes_read;
+
+ gint64 read_offset;
+
+ gint buffer_remain;
+
+ gboolean eos;
+
+ gboolean do_start;
+
+ gboolean unique_setup;
+
+ gboolean live_tv;
+
+ gboolean enable_timing_position;
+
+ gint live_tv_id;
+
+ gint channel_num;
+
+ guint mode;
+
+ /* MythTV capabilities */
+ GstCaps *mythtv_caps;
+
+ GstPad *sinkpad;
+
+ GStaticRecMutex *th_mutex;
+
+ GByteArray *bytes_queue;
+
+#ifndef GST_DISABLE_GST_DEBUG
+ /* enable Myth TV debug messages */
+ gboolean mythtv_msgs_dbg;
+#endif
+
+ gboolean update_prog_chain;
+
+ /* stablish a maximum iteration value to the IS_RECORDING message */
+ guint wait_to_transfer;
+
+};
+
+struct _GstMythtvSrcClass {
+ GstPushSrcClass parent_class;
+};
+
+GType gst_mythtv_src_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GST_MYTHTV_SRC_H__ */