From 6f6944c8e73214898006628eae8b7a89c87cbfff Mon Sep 17 00:00:00 2001 From: BtbN Date: Sun, 9 Feb 2014 18:49:41 +0100 Subject: [PATCH] Add a channelno url to play a channel by its user assigned number --- src/channels.c | 10 ++++++++++ src/channels.h | 2 ++ src/webui/webui.c | 4 ++++ 3 files changed, 16 insertions(+) diff --git a/src/channels.c b/src/channels.c index 749fcb9c..130d3be6 100644 --- a/src/channels.c +++ b/src/channels.c @@ -400,6 +400,16 @@ channel_find_by_id ( uint32_t i ) return RB_FIND(&channels, &skel, ch_link, ch_id_cmp); } +channel_t * +channel_find_by_number ( int no ) +{ + channel_t *ch; + CHANNEL_FOREACH(ch) + if(channel_get_number(ch) == no) + break; + return ch; +} + /* ************************************************************************** * Property updating * *************************************************************************/ diff --git a/src/channels.h b/src/channels.h index 080079aa..9fa688c5 100644 --- a/src/channels.h +++ b/src/channels.h @@ -135,6 +135,8 @@ channel_t *channel_find_by_name(const char *name); channel_t *channel_find_by_id(uint32_t id); +channel_t *channel_find_by_number(int no); + #define channel_find channel_find_by_uuid int channel_set_tags_by_list ( channel_t *ch, htsmsg_t *tags ); diff --git a/src/webui/webui.c b/src/webui/webui.c index 10de15a7..cf10d8b5 100644 --- a/src/webui/webui.c +++ b/src/webui/webui.c @@ -611,6 +611,8 @@ page_http_playlist(http_connection_t *hc, const char *remain, void *opaque) if(nc == 2 && !strcmp(components[0], "channelid")) ch = channel_find_by_id(atoi(components[1])); + else if(nc == 2 && !strcmp(components[0], "channelnumber")) + ch = channel_find_by_number(atoi(components[1])); else if(nc == 2 && !strcmp(components[0], "channel")) ch = channel_find(components[1]); else if(nc == 2 && !strcmp(components[0], "dvrid")) @@ -883,6 +885,8 @@ http_stream(http_connection_t *hc, const char *remain, void *opaque) if(!strcmp(components[0], "channelid")) { ch = channel_find_by_id(atoi(components[1])); + } else if(!strcmp(components[0], "channelnumber")) { + ch = channel_find_by_number(atoi(components[1])); } else if(!strcmp(components[0], "channel")) { ch = channel_find(components[1]); } else if(!strcmp(components[0], "service")) {