summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorAron Rosenberg <aronrosenberg@gmail.com>2015-05-02 17:01:00 +0000
committerJens Georg <mail@jensge.org>2015-05-15 18:28:22 +0200
commit1b0229df9d1ab07d617d116d064d3b0d41812a6b (patch)
tree39d5a4479dde27c612a942a93e2d646864f0d9e7 /examples
parent74e8d8ad6f25af3287d660923579195eaa56e12c (diff)
downloadrygel-1b0229df9d1ab07d617d116d064d3b0d41812a6b.tar.gz
renderer-gst: Enable setting the user_agent
Setting the user_agent on the underlying gst element Including modifications to use the user-agent in HEAD requests as well to be consistent. https://bugzilla.gnome.org/show_bug.cgi?id=748769
Diffstat (limited to 'examples')
-rw-r--r--examples/renderer-plugins/C/example-player.c42
-rw-r--r--examples/renderer-plugins/vala/example-player-vala.vala5
2 files changed, 43 insertions, 4 deletions
diff --git a/examples/renderer-plugins/C/example-player.c b/examples/renderer-plugins/C/example-player.c
index 75accc44..3ab9c7f0 100644
--- a/examples/renderer-plugins/C/example-player.c
+++ b/examples/renderer-plugins/C/example-player.c
@@ -35,7 +35,8 @@ enum {
RYGEL_EXAMPLE_PLAYER_ALLOWED_PLAYBACK_SPEEDS,
RYGEL_EXAMPLE_PLAYER_CAN_SEEK_BYTES,
RYGEL_EXAMPLE_PLAYER_BYTE_POSITION,
- RYGEL_EXAMPLE_PLAYER_SIZE
+ RYGEL_EXAMPLE_PLAYER_SIZE,
+ RYGEL_EXAMPLE_PLAYER_USER_AGENT
};
static void rygel_example_player_rygel_media_player_interface_init (RygelMediaPlayerIface *iface);
@@ -112,6 +113,13 @@ rygel_example_player_real_get_size (RygelMediaPlayer* base);
static gboolean
rygel_example_player_real_get_can_seek_bytes (RygelMediaPlayer* base);
+static gchar *
+rygel_example_player_real_get_user_agent (RygelMediaPlayer* base);
+
+static void
+rygel_example_player_real_set_user_agent (RygelMediaPlayer* base,
+ const char* user_agent);
+
static void
_rygel_example_player_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
@@ -136,6 +144,7 @@ struct _RygelExamplePlayerPrivate {
gint64 _duration;
gint64 _position;
gchar *playback_speed;
+ gchar *user_agent;
};
static const gchar* RYGEL_EXAMPLE_PLAYER_PROTOCOLS[] = {"http-get", NULL};
@@ -173,6 +182,8 @@ rygel_example_player_rygel_media_player_interface_init (RygelMediaPlayerIface *i
iface->get_can_seek_bytes = rygel_example_player_real_get_can_seek_bytes;
iface->get_size = rygel_example_player_real_get_size;
iface->get_byte_position = rygel_example_player_real_get_byte_position;
+ iface->set_user_agent = rygel_example_player_real_set_user_agent;
+ iface->get_user_agent = rygel_example_player_real_get_user_agent;
}
static void
@@ -240,6 +251,10 @@ rygel_example_player_class_init (RygelExamplePlayerClass *klass) {
g_object_class_override_property (gobject_class,
RYGEL_EXAMPLE_PLAYER_SIZE,
"size");
+
+ g_object_class_override_property (gobject_class,
+ RYGEL_EXAMPLE_PLAYER_USER_AGENT,
+ "user-agent");
}
static void
@@ -480,6 +495,25 @@ rygel_example_player_real_get_can_seek_bytes (RygelMediaPlayer* base)
}
static void
+rygel_example_player_real_set_user_agent (RygelMediaPlayer* base,
+ const char* user_agent)
+{
+ RygelExamplePlayer *self = RYGEL_EXAMPLE_PLAYER (base);
+
+ g_clear_pointer (&(self->priv->user_agent), g_free);
+
+ self->priv->user_agent = g_strdup (user_agent);
+}
+
+static gchar *
+rygel_example_player_real_get_user_agent (RygelMediaPlayer* base)
+{
+ RygelExamplePlayer *self = RYGEL_EXAMPLE_PLAYER (base);
+
+ return g_strdup (self->priv->user_agent);
+}
+
+static void
_rygel_example_player_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec) {
RygelMediaPlayer *base = RYGEL_MEDIA_PLAYER (object);
@@ -530,6 +564,9 @@ _rygel_example_player_get_property (GObject *object, guint property_id, GValue *
case RYGEL_EXAMPLE_PLAYER_SIZE:
g_value_set_int64 (value, rygel_media_player_get_size (base));
break;
+ case RYGEL_EXAMPLE_PLAYER_USER_AGENT:
+ g_value_take_string (value, rygel_media_player_get_user_agent (base));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -563,6 +600,9 @@ _rygel_example_player_set_property (GObject *object, guint property_id, const GV
case RYGEL_EXAMPLE_PLAYER_PLAYBACK_SPEED:
rygel_media_player_set_playback_speed (base, g_value_get_string (value));
break;
+ case RYGEL_EXAMPLE_PLAYER_USER_AGENT:
+ rygel_media_player_set_user_agent (base, g_value_get_string (value));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
diff --git a/examples/renderer-plugins/vala/example-player-vala.vala b/examples/renderer-plugins/vala/example-player-vala.vala
index 660e956c..07cd6199 100644
--- a/examples/renderer-plugins/vala/example-player-vala.vala
+++ b/examples/renderer-plugins/vala/example-player-vala.vala
@@ -36,9 +36,6 @@ public class Rygel.Example.PlayerVala : GLib.Object, Rygel.MediaPlayer {
"image/png" };
private static PlayerVala player;
- private PlayerVala () {
- }
-
public static PlayerVala get_default () {
if (player == null) {
player = new PlayerVala ();
@@ -47,6 +44,8 @@ public class Rygel.Example.PlayerVala : GLib.Object, Rygel.MediaPlayer {
return player;
}
+ public string? user_agent { owned get; set; }
+
private string _playback_state = "NO_MEDIA_PRESENT";
public string playback_state {
owned get {