[Xfce4-commits] <parole:master> Add parole_provider_player_get_stream_position

Sean Davis noreply at xfce.org
Thu Dec 12 00:18:24 CET 2013


Updating branch refs/heads/master
         to 60f9808d30af676995c04c8553b1ac5c874ee301 (commit)
       from 5a131b68acad5f22e0e56f1c8814a8747c6d54ac (commit)

commit 60f9808d30af676995c04c8553b1ac5c874ee301
Author: Sean Davis <smd.seandavis at gmail.com>
Date:   Sun Nov 17 16:45:12 2013 -0500

    Add parole_provider_player_get_stream_position

 src/misc/parole-provider-player.c    |   20 ++++++++++++++++++++
 src/misc/parole-provider-player.h    |    4 ++++
 src/parole-plugin-player.c           |   16 +++++++++++++++-
 src/plugins/mpris2/mpris2-provider.c |    9 ++-------
 4 files changed, 41 insertions(+), 8 deletions(-)

diff --git a/src/misc/parole-provider-player.c b/src/misc/parole-provider-player.c
index 659ee71..e82303e 100644
--- a/src/misc/parole-provider-player.c
+++ b/src/misc/parole-provider-player.c
@@ -402,6 +402,26 @@ gboolean parole_provider_player_seek (ParoleProviderPlayer *player, gdouble pos)
     return ret;
 }
 
+/**
+ * parole_provider_player_get_fullscreen:
+ * @player: a #ParoleProviderPlayer
+ * 
+ * Get fullscreen status for Parole.
+ * 
+ * Since: 0.6
+ **/
+gdouble parole_provider_player_get_stream_position(ParoleProviderPlayer *player)
+{
+    g_return_val_if_fail (PAROLE_IS_PROVIDER_PLAYER (player), 0);
+    
+    if ( PAROLE_PROVIDER_PLAYER_GET_INTERFACE (player)->get_stream_position )
+    {
+        return (*PAROLE_PROVIDER_PLAYER_GET_INTERFACE (player)->get_stream_position) (player);
+    }
+    
+    return FALSE;
+}
+
 
 /**
  * parole_provider_player_open_media_chooser:
diff --git a/src/misc/parole-provider-player.h b/src/misc/parole-provider-player.h
index 2ee85f6..73ddc5f 100644
--- a/src/misc/parole-provider-player.h
+++ b/src/misc/parole-provider-player.h
@@ -81,6 +81,8 @@ struct _ParoleProviderPlayerIface
     gboolean     (*seek)                        (ParoleProviderPlayer *player,
                                                  gdouble pos);
                                                  
+    gdouble      (*get_stream_position)         (ParoleProviderPlayer *player);
+                                                 
     gboolean     (*get_fullscreen)              (ParoleProviderPlayer *player);
     
     gboolean     (*set_fullscreen)              (ParoleProviderPlayer *player,
@@ -128,6 +130,8 @@ gboolean    parole_provider_player_play_next    (ParoleProviderPlayer *player);
 
 gboolean    parole_provider_player_seek         (ParoleProviderPlayer *player,
                                                  gdouble pos);
+                                                 
+gdouble parole_provider_player_get_stream_position(ParoleProviderPlayer *player);
 
 void        
 parole_provider_player_open_media_chooser       (ParoleProviderPlayer *player);
diff --git a/src/parole-plugin-player.c b/src/parole-plugin-player.c
index 8bd0922..121dc23 100644
--- a/src/parole-plugin-player.c
+++ b/src/parole-plugin-player.c
@@ -197,6 +197,19 @@ parole_plugin_player_seek (ParoleProviderPlayer *provider, gdouble pos)
     return TRUE;
 }
 
+static gdouble
+parole_plugin_player_get_stream_position (ParoleProviderPlayer *provider)
+{
+    ParolePluginPlayer *player;
+    gdouble position = 0;
+    
+    player = PAROLE_PLUGIN_PLAYER (provider);
+
+    position = parole_gst_get_stream_position (PAROLE_GST (player->priv->gst));
+    
+    return position;
+}
+
 static void parole_plugin_player_open_media_chooser (ParoleProviderPlayer *provider)
 {
     ParoleMediaList *list;
@@ -243,6 +256,7 @@ static void parole_plugin_player_iface_init (ParoleProviderPlayerIface *iface)
     iface->play_previous = parole_plugin_player_play_previous;
     iface->play_next = parole_plugin_player_play_next;
     iface->seek = parole_plugin_player_seek;
+    iface->get_stream_position = parole_plugin_player_get_stream_position;
     iface->open_media_chooser = parole_plugin_player_open_media_chooser;
     iface->get_fullscreen = parole_plugin_player_get_fullscreen;
     iface->set_fullscreen = parole_plugin_player_set_fullscreen;
@@ -302,7 +316,7 @@ parole_plugin_player_init (ParolePluginPlayer *player)
     g_signal_connect(   G_OBJECT(window), 
                         "window-state-event", 
                         G_CALLBACK(parole_plugin_player_window_state_event), 
-                        PAROLE_PLAYER(player) );
+                        player );
 
     player->priv->packed = FALSE;
     player->priv->box = NULL;
diff --git a/src/plugins/mpris2/mpris2-provider.c b/src/plugins/mpris2/mpris2-provider.c
index 01c0bea..d57b2cc 100644
--- a/src/plugins/mpris2/mpris2-provider.c
+++ b/src/plugins/mpris2/mpris2-provider.c
@@ -538,15 +538,10 @@ static void mpris_Player_put_Volume (GVariant *value, GError **error, Mpris2Prov
 
 static GVariant* mpris_Player_get_Position (GError **error, Mpris2Provider *provider)
 {
+    ParoleProviderPlayer *player = provider->player;
     gdouble position = 0;
 
-    /* TODO: How get position?
-    gdouble position = parole_gst_get_stream_position (PAROLE_GST (player->priv->gst))*/
-
-    /* Possibly:
-    ParoleStream *stream = parole_provider_player_get_stream(provider);
-    g_object_get_property(G_OBJECT(stream), "position", &position);
-    */
+    position = parole_provider_player_get_stream_position (player);
 
     return g_variant_new_int64(position);
 }


More information about the Xfce4-commits mailing list