/* * Clutter-GStreamer. * * GStreamer integration library for Clutter. * * clutter-gst-player.h - Wrap some convenience functions around playbin2 * * Authored By Damien Lespiau * Lionel Landwerlin * Matthew Allum * Emmanuele Bassi * Andre Moreira Magalhaes * * Copyright (C) 2006 OpenedHand * Copyright (C) 2009-2013 Intel Corporation * Copyright (C) 2012 Collabora Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #if !defined(__CLUTTER_GST_H_INSIDE__) && !defined(CLUTTER_GST_COMPILATION) #error "Only can be include directly." #endif #ifndef __CLUTTER_GST_PLAYER_H__ #define __CLUTTER_GST_PLAYER_H__ #include #include #include #include G_BEGIN_DECLS #define CLUTTER_GST_TYPE_PLAYER clutter_gst_player_get_type() #define CLUTTER_GST_PLAYER(obj) \ (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ CLUTTER_GST_TYPE_PLAYER, \ ClutterGstPlayer)) #define CLUTTER_GST_IS_PLAYER(obj) \ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ CLUTTER_GST_TYPE_PLAYER)) #define CLUTTER_GST_PLAYER_GET_INTERFACE(obj) \ (G_TYPE_INSTANCE_GET_INTERFACE ((obj), \ CLUTTER_GST_TYPE_PLAYER, \ ClutterGstPlayerIface)) typedef struct _ClutterGstPlayer ClutterGstPlayer; typedef struct _ClutterGstPlayerIface ClutterGstPlayerIface; typedef struct _ClutterGstPlayerIfacePrivate ClutterGstPlayerIfacePrivate; /** * ClutterGstPlayer: * * #ClutterGstPlayer is an opaque structure whose members cannot be * directly accessed * * Since: 1.4 */ /** * ClutterGstPlayerIface: * @get_frame: virtual function; returns the current visible frame * @get_pipeline: virtual function; returns the current GStreamer pipeline * @get_video_sink: virtual function; returns the current ClutterGst video sink * @get_idle: virtual function; returns whether the player is currently in idle state * @get_audio_volume: virtual function; returns the current audio volume * @set_audio_volume: virtual function; sets the audio volume * @get_playing: virtual function; returns whether the player is currently playing * @set_playing: virtual function; starts or stops the player from playing * @new_frame: signal class closure for #ClutterGstPlayer::new-frame * @ready: signal class closure for #ClutterGstPlayer::ready * @eos: signal class closure for #ClutterGstPlayer::eos * @error: signal class closure for #ClutterGstPlayer::error * @size_change: signal class closure for #ClutterGstPlayer::size-change * * Interface vtable for #ClutterGstPlayer implementations * * Since: 1.4 */ struct _ClutterGstPlayerIface { /*< private >*/ GTypeInterface base_iface; ClutterGstPlayerIfacePrivate *priv; /*< public >*/ ClutterGstFrame *(* get_frame) (ClutterGstPlayer *self); GstElement * (* get_pipeline) (ClutterGstPlayer *self); ClutterGstVideoSink *(* get_video_sink) (ClutterGstPlayer *self); gboolean (* get_idle) (ClutterGstPlayer *self); gdouble (* get_audio_volume) (ClutterGstPlayer *self); void (* set_audio_volume) (ClutterGstPlayer *self, gdouble volume); gboolean (* get_playing) (ClutterGstPlayer *self); void (* set_playing) (ClutterGstPlayer *self, gboolean playing); /*< private >*/ gpointer _padding_vfuncs[16]; /*< public >*/ /* signals */ void (* new_frame) (ClutterGstPlayer *self, ClutterGstFrame *frame); void (* ready) (ClutterGstPlayer *self); void (* eos) (ClutterGstPlayer *self); void (* error) (ClutterGstPlayer *self, const GError *error); void (* size_change) (ClutterGstPlayer *self, gint width, gint height); /*< private >*/ gpointer _padding_signals[8]; }; GType clutter_gst_player_get_type (void) G_GNUC_CONST; ClutterGstFrame * clutter_gst_player_get_frame (ClutterGstPlayer *self); GstElement * clutter_gst_player_get_pipeline (ClutterGstPlayer *self); ClutterGstVideoSink * clutter_gst_player_get_video_sink (ClutterGstPlayer *self); gboolean clutter_gst_player_get_idle (ClutterGstPlayer *self); gboolean clutter_gst_player_get_playing (ClutterGstPlayer *self); void clutter_gst_player_set_playing (ClutterGstPlayer *self, gboolean playing); gdouble clutter_gst_player_get_audio_volume (ClutterGstPlayer *self); void clutter_gst_player_set_audio_volume (ClutterGstPlayer *self, gdouble volume); G_END_DECLS #endif /* __CLUTTER_GST_PLAYER_H__ */