From 144d09263786a4cdc6cfc19c5bf3ae7784e5f6e1 Mon Sep 17 00:00:00 2001
From: Thomas Jansen <mithi@mithi.net>
Date: Fri, 4 Feb 2011 14:14:29 +0100
Subject: [PATCH] output/shout: add possibility to set url

Added a new optional parameter for the shout plugin called "url".
---
 NEWS                      | 1 +
 doc/mpd.conf.5            | 3 +++
 doc/mpdconf.example       | 1 +
 doc/user.xml              | 9 +++++++++
 src/output/shout_plugin.c | 7 +++++++
 5 files changed, 21 insertions(+)

diff --git a/NEWS b/NEWS
index 9106eb82e..05ad1025b 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,7 @@ ver 0.17 (2011/??/??)
 * output:
   - osx: allow user to specify other audio devices
   - raop: new output plugin
+  - shout: add possibility to set url
 
 
 ver 0.16.1 (2011/01/09)
diff --git a/doc/mpd.conf.5 b/doc/mpd.conf.5
index 4cddd7ba9..c75d4aad6 100644
--- a/doc/mpd.conf.5
+++ b/doc/mpd.conf.5
@@ -464,6 +464,9 @@ connect to the icecast server.  The default is 2 seconds.
 .B description <description>
 This specifies a description of the stream.
 .TP
+.B url <url>
+This specifies a URL associated with the stream.
+.TP
 .B genre <genre>
 This specifies the genre(s) of the stream.
 .SH FILES
diff --git a/doc/mpdconf.example b/doc/mpdconf.example
index b14337c76..c31763ff0 100644
--- a/doc/mpdconf.example
+++ b/doc/mpdconf.example
@@ -235,6 +235,7 @@ input {
 ##	protocol	"icecast2"		# optional
 ##	user		"source"		# optional
 ##	description	"My Stream Description"	# optional
+##	url		"http://example.com"	# optional
 ##	genre		"jazz"			# optional
 ##	public		"no"			# optional
 ##	timeout		"2"			# optional
diff --git a/doc/user.xml b/doc/user.xml
index 1f74a02d4..f24c7bdb4 100644
--- a/doc/user.xml
+++ b/doc/user.xml
@@ -1557,6 +1557,15 @@ cd mpd-version</programlisting>
                   Sets a short description of the stream (optional).
                 </entry>
               </row>
+              <row>
+                <entry>
+                  <varname>url</varname>
+                  <parameter>URL</parameter>
+                </entry>
+                <entry>
+                  Sets a URL associated with the stream (optional).
+                </entry>
+              </row>
               <row>
                 <entry>
                   <varname>public</varname>
diff --git a/src/output/shout_plugin.c b/src/output/shout_plugin.c
index 3ce4d637e..484e47316 100644
--- a/src/output/shout_plugin.c
+++ b/src/output/shout_plugin.c
@@ -277,6 +277,13 @@ my_shout_init_driver(const struct audio_format *audio_format,
 		return NULL;
 	}
 
+	value = config_get_block_string(param, "url", NULL);
+	if (value != NULL && shout_set_url(sd->shout_conn, value)) {
+		g_set_error(error, shout_output_quark(), 0,
+			    "%s", shout_get_error(sd->shout_conn));
+		return NULL;
+	}
+
 	{
 		char temp[11];
 		memset(temp, 0, sizeof(temp));