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