gst-gmyth/mythsrc/gstmythtvsrc.h
author renatofilho
Tue Jul 03 21:26:55 2007 +0100 (2007-07-03)
branchtrunk
changeset 770 800e6485ad15
parent 751 3cf3c6019e3b
child 812 cf7e02ee3db4
permissions -rwxr-xr-x
[svn r776] create function in backend info for otimize socket usage
renatofilho@754
     1
/*
renatofilho@754
     2
 * GStreamer Copyright (C) <2006> Rosfran Borges
renatofilho@754
     3
 * <rosfran.borges@indt.org.br> This library is free software; you can
renatofilho@754
     4
 * redistribute it and/or modify it under the terms of the GNU Library
renatofilho@754
     5
 * General Public License as published by the Free Software Foundation;
renatofilho@754
     6
 * either version 2 of the License, or (at your option) any later version.
renatofilho@754
     7
 * This library is distributed in the hope that it will be useful, but
renatofilho@754
     8
 * WITHOUT ANY WARRANTY; without even the implied warranty of
renatofilho@754
     9
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library 
renatofilho@754
    10
 * General Public License for more details. You should have received a copy 
renatofilho@754
    11
 * of the GNU Library General Public License along with this library; if
renatofilho@754
    12
 * not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 
renatofilho@754
    13
 * 330, Boston, MA 02111-1307, USA. 
renatofilho@608
    14
 */
renatofilho@608
    15
renatofilho@608
    16
#ifndef __GST_MYTHTV_SRC_H__
renatofilho@608
    17
#define __GST_MYTHTV_SRC_H__
renatofilho@608
    18
renatofilho@608
    19
#include <gst/gst.h>
renatofilho@608
    20
#include <gst/base/gstbasesrc.h>
renatofilho@608
    21
#include <gst/base/gstpushsrc.h>
renatofilho@608
    22
#include <stdio.h>
renatofilho@608
    23
renatofilho@608
    24
#include <gmyth/gmyth_socket.h>
renatofilho@608
    25
#include <gmyth/gmyth_file.h>
renatofilho@608
    26
#include <gmyth/gmyth_file_transfer.h>
renatofilho@608
    27
#include <gmyth/gmyth_file_local.h>
renatofilho@608
    28
#include <gmyth/gmyth_livetv.h>
renatofilho@608
    29
#include <gmyth/gmyth_backendinfo.h>
renatofilho@608
    30
renatofilho@608
    31
G_BEGIN_DECLS
renatofilho@608
    32
#define GST_TYPE_MYTHTV_SRC \
renatofilho@608
    33
  (gst_mythtv_src_get_type())
renatofilho@608
    34
#define GST_MYTHTV_SRC(obj) \
renatofilho@608
    35
  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_MYTHTV_SRC,GstMythtvSrc))
renatofilho@608
    36
#define GST_MYTHTV_SRC_CLASS(klass) \
renatofilho@608
    37
  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_MYTHTV_SRC,GstMythtvSrcClass))
renatofilho@608
    38
#define GST_IS_MYTHTV_SRC(obj) \
renatofilho@608
    39
  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_MYTHTV_SRC))
renatofilho@608
    40
#define GST_IS_MYTHTV_SRC_CLASS(klass) \
renatofilho@608
    41
  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_MYTHTV_SRC))
renatofilho@608
    42
typedef struct _GstMythtvSrc GstMythtvSrc;
renatofilho@608
    43
typedef struct _GstMythtvSrcClass GstMythtvSrcClass;
renatofilho@608
    44
renatofilho@754
    45
typedef enum {
renatofilho@754
    46
    GST_MYTHTV_SRC_FILE_TRANSFER,
renatofilho@754
    47
    GST_MYTHTV_SRC_NEXT_PROGRAM_CHAIN,
renatofilho@754
    48
    GST_MYTHTV_SRC_INVALID_DATA
renatofilho@608
    49
} GstMythtvState;
renatofilho@608
    50
renatofilho@754
    51
struct _GstMythtvSrc {
renatofilho@754
    52
    GstPushSrc      element;
renatofilho@608
    53
renatofilho@754
    54
    /*
renatofilho@754
    55
     * MythFileTransfer 
renatofilho@754
    56
     */
renatofilho@754
    57
    GMythFile      *file;
renatofilho@608
    58
renatofilho@754
    59
    GMythLiveTV    *spawn_livetv;
renatofilho@751
    60
renatofilho@754
    61
    GMythBackendInfo *backend_info;
renatofilho@608
    62
renatofilho@754
    63
    GstMythtvState  state;
renatofilho@608
    64
renatofilho@754
    65
    gchar          *uri_name;
renatofilho@754
    66
    gchar          *user_agent;
renatofilho@608
    67
renatofilho@754
    68
    gchar          *live_chain_id;
renatofilho@608
    69
renatofilho@754
    70
    gint            mythtv_version;
renatofilho@608
    71
renatofilho@754
    72
    gint64          content_size;
renatofilho@608
    73
renatofilho@754
    74
    gint64          prev_content_size;
renatofilho@608
    75
renatofilho@754
    76
    gint64          content_size_last;
renatofilho@608
    77
renatofilho@754
    78
    guint64         bytes_read;
renatofilho@608
    79
renatofilho@754
    80
    gint64          read_offset;
renatofilho@608
    81
renatofilho@754
    82
    gint            buffer_remain;
renatofilho@608
    83
renatofilho@754
    84
    gboolean        eos;
renatofilho@608
    85
renatofilho@754
    86
    gboolean        do_start;
renatofilho@608
    87
renatofilho@754
    88
    gboolean        unique_setup;
renatofilho@608
    89
renatofilho@754
    90
    gboolean        live_tv;
renatofilho@608
    91
renatofilho@754
    92
    gboolean        enable_timing_position;
renatofilho@608
    93
renatofilho@754
    94
    gint            live_tv_id;
renatofilho@608
    95
renatofilho@754
    96
    gchar          *channel_name;
renatofilho@608
    97
renatofilho@754
    98
    guint           mode;
renatofilho@608
    99
renatofilho@754
   100
    /*
renatofilho@754
   101
     * MythTV capabilities 
renatofilho@754
   102
     */
renatofilho@754
   103
    GstCaps        *mythtv_caps;
renatofilho@608
   104
renatofilho@754
   105
    GByteArray     *bytes_queue;
renatofilho@608
   106
renatofilho@608
   107
#ifndef GST_DISABLE_GST_DEBUG
renatofilho@754
   108
    /*
renatofilho@754
   109
     * enable Myth TV debug messages 
renatofilho@754
   110
     */
renatofilho@754
   111
    gboolean        mythtv_msgs_dbg;
renatofilho@608
   112
#endif
renatofilho@608
   113
renatofilho@754
   114
    gboolean        update_prog_chain;
renatofilho@608
   115
renatofilho@754
   116
    /*
renatofilho@754
   117
     * stablish a maximum iteration value to the IS_RECORDING message 
renatofilho@754
   118
     */
renatofilho@754
   119
    guint           wait_to_transfer;
renatofilho@608
   120
renatofilho@754
   121
    /*
renatofilho@754
   122
     * max try number to get freerecorder 
renatofilho@754
   123
     */
renatofilho@754
   124
    gint            max_try;
renatofilho@754
   125
    gint            try_number;
renatofilho@608
   126
renatofilho@608
   127
};
renatofilho@608
   128
renatofilho@754
   129
struct _GstMythtvSrcClass {
renatofilho@754
   130
    GstPushSrcClass parent_class;
renatofilho@608
   131
};
renatofilho@608
   132
renatofilho@754
   133
GType           gst_mythtv_src_get_type(void);
renatofilho@608
   134
renatofilho@608
   135
G_END_DECLS
renatofilho@754
   136
#endif                          /* __GST_MYTHTV_SRC_H__ */