gst_plugins_base/ext/gnomevfs/gstgnomevfssrc.h
branchRCL_3
changeset 30 7e817e7e631c
parent 0 0e761a78d257
equal deleted inserted replaced
29:567bb019e3e3 30:7e817e7e631c
       
     1 /* GStreamer
       
     2  * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
       
     3  *                    2000 Wim Taymans <wtay@chello.be>
       
     4  *                    2001 Bastien Nocera <hadess@hadess.net>
       
     5  *                    2002 Kristian Rietveld <kris@gtk.org>
       
     6  *                    2002,2003 Colin Walters <walters@gnu.org>
       
     7  *
       
     8  * This library is free software; you can redistribute it and/or
       
     9  * modify it under the terms of the GNU Library General Public
       
    10  * License as published by the Free Software Foundation; either
       
    11  * version 2 of the License, or (at your option) any later version.
       
    12  *
       
    13  * This library is distributed in the hope that it will be useful,
       
    14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
       
    15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       
    16  * Library General Public License for more details.
       
    17  *
       
    18  * You should have received a copy of the GNU Library General Public
       
    19  * License along with this library; if not, write to the
       
    20  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
       
    21  * Boston, MA 02111-1307, USA.
       
    22  */
       
    23 
       
    24 #ifndef __GST_GNOME_VFS_SRC_H__
       
    25 #define __GST_GNOME_VFS_SRC_H__
       
    26 
       
    27 #include <gst/base/gstbasesrc.h>
       
    28 
       
    29 #include "gstgnomevfs.h"
       
    30 #include "gstgnomevfsuri.h"
       
    31 #include <libgnomevfs/gnome-vfs.h>
       
    32 
       
    33 G_BEGIN_DECLS
       
    34 
       
    35 #define GST_TYPE_GNOME_VFS_SRC \
       
    36   (gst_gnome_vfs_src_get_type())
       
    37 #define GST_GNOME_VFS_SRC(obj) \
       
    38   (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GNOME_VFS_SRC,GstGnomeVFSSrc))
       
    39 #define GST_GNOME_VFS_SRC_CLASS(klass) \
       
    40   (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_GNOME_VFS_SRC,GstGnomeVFSSrcClass))
       
    41 #define GST_IS_GNOME_VFS_SRC(obj) \
       
    42   (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_GNOME_VFS_SRC))
       
    43 #define GST_IS_GNOME_VFS_SRC_CLASS(klass) \
       
    44   (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_GNOME_VFS_SRC))
       
    45 
       
    46 typedef struct _GstGnomeVFSSrc      GstGnomeVFSSrc;
       
    47 typedef struct _GstGnomeVFSSrcClass GstGnomeVFSSrcClass;
       
    48 
       
    49 /**
       
    50  * GstGnomeVFSSrc:
       
    51  *
       
    52  * Opaque data structure.
       
    53  */
       
    54 struct _GstGnomeVFSSrc
       
    55 {
       
    56   GstBaseSrc basesrc;
       
    57 
       
    58   /* uri, file, ... */
       
    59   GnomeVFSURI *uri;
       
    60   gchar *uri_name;
       
    61   GnomeVFSHandle *handle;
       
    62   gboolean own_handle;
       
    63   GnomeVFSFileOffset curoffset; /* current offset in file */
       
    64   gboolean seekable;
       
    65 
       
    66   /* shoutcast/icecast metadata extraction handling */
       
    67   gboolean iradio_mode;
       
    68   gboolean http_callbacks_pushed;
       
    69 
       
    70   GstCaps *icy_caps;
       
    71 
       
    72   gchar *iradio_name;
       
    73   gchar *iradio_genre;
       
    74   gchar *iradio_url;
       
    75   gchar *iradio_title;
       
    76 };
       
    77 
       
    78 struct _GstGnomeVFSSrcClass
       
    79 {
       
    80   GstBaseSrcClass  basesrc_class;
       
    81 };
       
    82 
       
    83 GType gst_gnome_vfs_src_get_type (void);
       
    84 
       
    85 G_END_DECLS
       
    86 
       
    87 #endif /* __GST_GNOME_VFS_SRC_H__ */
       
    88 
       
    89