maemo-ui/src/mmyth_tvplayer.h
author renatofilho
Tue Jul 03 21:20:15 2007 +0100 (2007-07-03)
branchtrunk
changeset 769 1603bc7804da
parent 244 c88244670b08
permissions -rw-r--r--
[svn r775] create function in backend info for otimize socket usage
renatofilho@20
     1
/**
renatofilho@20
     2
 * GMyth Library
renatofilho@20
     3
 *
renatofilho@20
     4
 * @file gmyth/mmyth_tvplayer.h
renatofilho@20
     5
 * 
renatofilho@20
     6
 * @brief <p> This component provides playback of the remote A/V using
renatofilho@20
     7
 * GStreamer.
renatofilho@20
     8
 * 
renatofilho@20
     9
 * Copyright (C) 2006 INdT - Instituto Nokia de Tecnologia.
renatofilho@20
    10
 * @author Hallyson Luiz de Morais Melo <hallyson.melo@indt.org.br>
renatofilho@20
    11
 *
renatofilho@754
    12
    *//*
renatofilho@754
    13
    * 
renatofilho@754
    14
    * This program is free software; you can redistribute it and/or modify
renatofilho@754
    15
    * it under the terms of the GNU Lesser General Public License as published by
renatofilho@754
    16
    * the Free Software Foundation; either version 2 of the License, or
renatofilho@754
    17
    * (at your option) any later version.
renatofilho@754
    18
    *
renatofilho@754
    19
    * This program is distributed in the hope that it will be useful,
renatofilho@754
    20
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
renatofilho@754
    21
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
renatofilho@754
    22
    * GNU General Public License for more details.
renatofilho@754
    23
    *
renatofilho@754
    24
    * You should have received a copy of the GNU Lesser General Public License
renatofilho@754
    25
    * along with this program; if not, write to the Free Software
renatofilho@754
    26
    * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
renatofilho@754
    27
    */
renatofilho@20
    28
renatofilho@20
    29
#ifndef MMYTH_TVPLAYER_H_
renatofilho@20
    30
#define MMYTH_TVPLAYER_H_
renatofilho@20
    31
renatofilho@20
    32
#include <glib-object.h>
renatofilho@20
    33
#include <gtk/gtk.h>
renatofilho@20
    34
renatofilho@754
    35
/*
renatofilho@754
    36
 * GStreamer includes 
renatofilho@754
    37
 */
renatofilho@20
    38
#include <gst/gst.h>
renatofilho@20
    39
#include <gst/interfaces/xoverlay.h>
renatofilho@20
    40
rosfran@208
    41
#include <gmyth/gmyth_recorder.h>
rosfran@208
    42
#include <gmyth/gmyth_tvchain.h>
rosfran@208
    43
#include <gmyth/gmyth_common.h>
rosfran@208
    44
#include <gmyth/gmyth_livetv.h>
renatofilho@20
    45
renatofilho@20
    46
G_BEGIN_DECLS
renatofilho@20
    47
#define MMYTH_TVPLAYER_TYPE               (mmyth_tvplayer_get_type ())
renatofilho@20
    48
#define MMYTH_TVPLAYER(obj)               (G_TYPE_CHECK_INSTANCE_CAST ((obj), MMYTH_TVPLAYER_TYPE, MMythTVPlayer))
renatofilho@20
    49
#define MMYTH_TVPLAYER_CLASS(klass)       (G_TYPE_CHECK_CLASS_CAST ((klass), MMYTH_TVPLAYER_TYPE, MMythTVPlayerClass))
renatofilho@20
    50
#define IS_MMYTH_TVPLAYER(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), MMYTH_TVPLAYER_TYPE))
renatofilho@20
    51
#define IS_MMYTH_TVPLAYER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), MMYTH_TVPLAYER_TYPE))
renatofilho@20
    52
#define MMYTH_TVPLAYER_GET_CLASS(obj)     (G_TYPE_INSTANCE_GET_CLASS ((obj), MMYTH_TVPLAYER_TYPE, MMythTVPlayerClass))
renatofilho@754
    53
typedef struct _MMythTVPlayer MMythTVPlayer;
renatofilho@754
    54
typedef struct _MMythTVPlayerClass MMythTVPlayerClass;
renatofilho@20
    55
renatofilho@754
    56
struct _MMythTVPlayerClass {
renatofilho@754
    57
    GObjectClass    parent_class;
renatofilho@20
    58
renatofilho@754
    59
    /*
renatofilho@754
    60
     * callbacks 
renatofilho@754
    61
     */
renatofilho@754
    62
    /*
renatofilho@754
    63
     * no one for now 
renatofilho@754
    64
     */
renatofilho@20
    65
};
renatofilho@20
    66
renatofilho@754
    67
struct _MMythTVPlayer {
renatofilho@754
    68
    GObject         parent;
renatofilho@20
    69
renatofilho@754
    70
    GstElement     *gst_pipeline;
renatofilho@754
    71
    GstElement     *gst_source;
renatofilho@754
    72
    GstElement     *gst_videodec;
renatofilho@754
    73
    GstElement     *gst_videosink;
renatofilho@754
    74
    GstElement     *gst_videocolortrs;
renatofilho@754
    75
    GstElement     *videoqueue1;
renatofilho@754
    76
    GstElement     *videoqueue2;
renatofilho@754
    77
    GstElement     *audioqueue1;
renatofilho@754
    78
    GstElement     *audioqueue2;
renatofilho@20
    79
renatofilho@754
    80
    gulong          expose_handler;
renatofilho@754
    81
    // GMainLoop *loop;
rosfran@208
    82
renatofilho@754
    83
    GtkWidget      *videow;
renatofilho@754
    84
renatofilho@754
    85
    /*
renatofilho@754
    86
     * Backend connection related variables 
renatofilho@754
    87
     */
renatofilho@754
    88
    GString        *backend_hostname;
renatofilho@754
    89
    gint            backend_port;
renatofilho@754
    90
    GString        *local_hostname;
renatofilho@754
    91
renatofilho@754
    92
    GMythRecorder  *recorder;
renatofilho@754
    93
    GMythTVChain   *tvchain;
renatofilho@754
    94
    GMythProgramInfo *proginfo;
renatofilho@754
    95
    GMythLiveTV    *livetv;
renatofilho@754
    96
renatofilho@754
    97
    GMythBackendInfo *backend_info;
renatofilho@754
    98
renatofilho@754
    99
    gboolean        is_livetv;
renatofilho@20
   100
};
renatofilho@20
   101
renatofilho@20
   102
renatofilho@754
   103
GType           mmyth_tvplayer_get_type(void);
renatofilho@20
   104
renatofilho@754
   105
MMythTVPlayer  *mmyth_tvplayer_new();
renatofilho@754
   106
gboolean        mmyth_tvplayer_initialize(MMythTVPlayer * tvplayer,
renatofilho@754
   107
                                          GMythBackendInfo * backend_info);
renatofilho@20
   108
renatofilho@754
   109
void            mmyth_tvplayer_start_playing(MMythTVPlayer * tvplayer);
renatofilho@754
   110
void            mmyth_tvplayer_stop_playing(MMythTVPlayer * tvplayer);
renatofilho@20
   111
renatofilho@754
   112
gboolean        mmyth_tvplayer_set_widget(MMythTVPlayer * tvplayer,
renatofilho@754
   113
                                          GtkWidget * videow);
renatofilho@20
   114
renatofilho@754
   115
gboolean        mmyth_tvplayer_is_playing(MMythTVPlayer * tvplayer);
renatofilho@20
   116
renatofilho@754
   117
gboolean        mmyth_tvplayer_record_setup(MMythTVPlayer * tvplayer,
renatofilho@754
   118
                                            const gchar * filename);
renatofilho@754
   119
gboolean        mmyth_tvplayer_livetv_setup(MMythTVPlayer * tvplayer);
renatofilho@20
   120
renatofilho@20
   121
G_END_DECLS
renatofilho@754
   122
#endif                          /* MMYTH_TVPLAYER_H_ */