2 * Copyright (C) <2006> Rosfran Borges <rosfran.borges@indt.org.br>
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Library General Public License for more details.
14 * You should have received a copy of the GNU Library General Public
15 * License along with this library; if not, write to the
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 * Boston, MA 02111-1307, USA.
20 #ifndef __GST_MYTHTV_SRC_H__
21 #define __GST_MYTHTV_SRC_H__
24 #include <gst/base/gstbasesrc.h>
25 #include <gst/base/gstpushsrc.h>
28 #include <gmyth/gmyth_socket.h>
29 #include <gmyth/gmyth_file.h>
30 #include <gmyth/gmyth_file_transfer.h>
31 #include <gmyth/gmyth_file_local.h>
32 #include <gmyth/gmyth_livetv.h>
33 #include <gmyth/gmyth_backendinfo.h>
37 #define GST_TYPE_MYTHTV_SRC \
38 (gst_mythtv_src_get_type())
39 #define GST_MYTHTV_SRC(obj) \
40 (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_MYTHTV_SRC,GstMythtvSrc))
41 #define GST_MYTHTV_SRC_CLASS(klass) \
42 (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_MYTHTV_SRC,GstMythtvSrcClass))
43 #define GST_IS_MYTHTV_SRC(obj) \
44 (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_MYTHTV_SRC))
45 #define GST_IS_MYTHTV_SRC_CLASS(klass) \
46 (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_MYTHTV_SRC))
48 typedef struct _GstMythtvSrc GstMythtvSrc;
49 typedef struct _GstMythtvSrcClass GstMythtvSrcClass;
52 GST_MYTHTV_SRC_FILE_TRANSFER,
53 GST_MYTHTV_SRC_NEXT_PROGRAM_CHAIN,
54 GST_MYTHTV_SRC_INVALID_DATA
57 struct _GstMythtvSrc {
60 /* MythFileTransfer */
63 GMythLiveTV *spawn_livetv;
65 GMythBackendInfo *backend_info;
78 gint64 prev_content_size;
80 gint64 content_size_last;
92 gboolean unique_setup;
96 gboolean enable_timing_position;
104 /* MythTV capabilities */
105 GstCaps *mythtv_caps;
107 GByteArray *bytes_queue;
109 #ifndef GST_DISABLE_GST_DEBUG
110 /* enable Myth TV debug messages */
111 gboolean mythtv_msgs_dbg;
114 gboolean update_prog_chain;
116 /* stablish a maximum iteration value to the IS_RECORDING message */
117 guint wait_to_transfer;
119 /* max try number to get freerecorder */
125 struct _GstMythtvSrcClass {
126 GstPushSrcClass parent_class;
129 GType gst_mythtv_src_get_type (void);
133 #endif /* __GST_MYTHTV_SRC_H__ */