[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