From 9080797025d73eb32ce0c7041a0d365015b51f41 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 5 May 2009 22:41:36 +0200 Subject: httpd_output: disable Icy-Metadata when encoder supports tags There's no reason to send both encoder tags and Icy-Metadata to the client. Let's disable Icy-Metadata when the encoder supports embedded tags. --- src/output/httpd_client.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/output/httpd_client.c') diff --git a/src/output/httpd_client.c b/src/output/httpd_client.c index 1f1b6affe..52a398e3b 100644 --- a/src/output/httpd_client.c +++ b/src/output/httpd_client.c @@ -89,6 +89,12 @@ struct httpd_client { /* ICY */ + /** + * Do we support sending Icy-Metadata to the client? This is + * disabled if the httpd audio output uses encoder tags. + */ + bool metadata_supported; + /** * If we should sent icy metadata. */ @@ -210,7 +216,8 @@ httpd_client_handle_line(struct httpd_client *client, const char *line) if (g_ascii_strncasecmp(line, "Icy-MetaData: 1", 15) == 0) { /* Send icy metadata */ - client->metadata_requested = true; + client->metadata_requested = + client->metadata_supported; return true; } @@ -417,7 +424,7 @@ httpd_client_in_event(G_GNUC_UNUSED GIOChannel *source, GIOCondition condition, } struct httpd_client * -httpd_client_new(struct httpd_output *httpd, int fd) +httpd_client_new(struct httpd_output *httpd, int fd, bool metadata_supported) { struct httpd_client *client = g_new(struct httpd_client, 1); @@ -443,6 +450,7 @@ httpd_client_new(struct httpd_output *httpd, int fd) client->input = fifo_buffer_new(4096); client->state = REQUEST; + client->metadata_supported = metadata_supported; client->metadata_requested = false; client->metadata_sent = true; client->metaint = 8192; /*TODO: just a std value */ -- cgit v1.2.3