mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-30 12:10:37 +00:00
shout2send: Add 'public' property
Adds a property to set 'public' flag on libshout, making the stream listed on the server's stream directory. Fixes #605269
This commit is contained in:
parent
e9f9164fb6
commit
5479255130
2 changed files with 20 additions and 0 deletions
|
@ -68,6 +68,7 @@ enum
|
|||
#define DEFAULT_PORT 8000
|
||||
#define DEFAULT_PASSWORD "hackme"
|
||||
#define DEFAULT_USERNAME "source"
|
||||
#define DEFAULT_PUBLIC FALSE
|
||||
#define DEFAULT_STREAMNAME ""
|
||||
#define DEFAULT_DESCRIPTION ""
|
||||
#define DEFAULT_GENRE ""
|
||||
|
@ -204,6 +205,11 @@ gst_shout2send_class_init (GstShout2sendClass * klass)
|
|||
G_PARAM_READWRITE));
|
||||
|
||||
/* metadata */
|
||||
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_PUBLIC,
|
||||
g_param_spec_boolean ("public", "public",
|
||||
"If the stream should be listed on the server's stream directory",
|
||||
DEFAULT_PUBLIC, G_PARAM_READWRITE));
|
||||
|
||||
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_STREAMNAME,
|
||||
g_param_spec_string ("streamname", "streamname", "name of the stream",
|
||||
DEFAULT_STREAMNAME, G_PARAM_READWRITE));
|
||||
|
@ -266,6 +272,7 @@ gst_shout2send_init (GstShout2send * shout2send)
|
|||
shout2send->mount = g_strdup (DEFAULT_MOUNT);
|
||||
shout2send->url = g_strdup (DEFAULT_URL);
|
||||
shout2send->protocol = DEFAULT_PROTOCOL;
|
||||
shout2send->ispublic = DEFAULT_PUBLIC;
|
||||
|
||||
shout2send->tags = gst_tag_list_new ();
|
||||
shout2send->conn = NULL;
|
||||
|
@ -479,6 +486,12 @@ gst_shout2send_start (GstBaseSink * basesink)
|
|||
if (shout_set_password (sink->conn, sink->password) != SHOUTERR_SUCCESS)
|
||||
goto set_failed;
|
||||
|
||||
cur_prop = "public";
|
||||
GST_DEBUG_OBJECT (sink, "setting %s: %u", cur_prop, sink->ispublic);
|
||||
if (shout_set_public (sink->conn,
|
||||
(sink->ispublic ? 1 : 0)) != SHOUTERR_SUCCESS)
|
||||
goto set_failed;
|
||||
|
||||
cur_prop = "streamname";
|
||||
GST_DEBUG_OBJECT (sink, "setting %s: %s", cur_prop, sink->streamname);
|
||||
if (shout_set_name (sink->conn, sink->streamname) != SHOUTERR_SUCCESS)
|
||||
|
@ -693,6 +706,9 @@ gst_shout2send_set_property (GObject * object, guint prop_id,
|
|||
g_free (shout2send->username);
|
||||
shout2send->username = g_strdup (g_value_get_string (value));
|
||||
break;
|
||||
case ARG_PUBLIC:
|
||||
shout2send->ispublic = g_value_get_boolean (value);
|
||||
break;
|
||||
case ARG_STREAMNAME: /* Name of the stream */
|
||||
if (shout2send->streamname)
|
||||
g_free (shout2send->streamname);
|
||||
|
@ -748,6 +764,9 @@ gst_shout2send_get_property (GObject * object, guint prop_id,
|
|||
case ARG_USERNAME:
|
||||
g_value_set_string (value, shout2send->username);
|
||||
break;
|
||||
case ARG_PUBLIC:
|
||||
g_value_set_boolean (value, shout2send->ispublic);
|
||||
break;
|
||||
case ARG_STREAMNAME: /* Name of the stream */
|
||||
g_value_set_string (value, shout2send->streamname);
|
||||
break;
|
||||
|
|
|
@ -56,6 +56,7 @@ struct _GstShout2send {
|
|||
gchar *mount;
|
||||
gchar *url;
|
||||
gboolean connected;
|
||||
gboolean ispublic;
|
||||
gchar *songmetadata;
|
||||
gchar *songartist;
|
||||
gchar *songtitle;
|
||||
|
|
Loading…
Reference in a new issue