From e409a93e36359f5634a129cb299415022f829c49 Mon Sep 17 00:00:00 2001 From: voroshil Date: Mon, 11 Sep 2006 18:41:14 +0000 Subject: ability to pass channel name (not only number) to radio_set_channel git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19799 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/stream_radio.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'stream/stream_radio.c') diff --git a/stream/stream_radio.c b/stream/stream_radio.c index 85a4d9ce15..7daed44cd8 100644 --- a/stream/stream_radio.c +++ b/stream/stream_radio.c @@ -862,10 +862,24 @@ int radio_set_channel(struct stream_st *stream, char *channel) { radio_priv_t* priv=(radio_priv_t*)stream->priv; int i, channel_int; radio_channels_t* tmp; + char* endptr; + if (*channel=='\0') + mp_msg(MSGT_RADIO,MSGL_ERR,MSGTR_RADIO_WrongChannelName,channel); + if (priv->radio_channel_list) { - channel_int = atoi(channel); + channel_int = strtol(channel,&endptr,10); tmp = priv->radio_channel_list; + if (*endptr!='\0'){ + //channel is not a number, so it contains channel name + for ( ; tmp; tmp=tmp->next) + if (!strncmp(channel,tmp->name,sizeof(tmp->name)-1)) + break; + if (!tmp){ + mp_msg(MSGT_RADIO,MSGL_ERR,MSGTR_RADIO_WrongChannelName,channel); + return 0; + } + }else{ for (i = 1; i < channel_int; i++) if (tmp->next) tmp = tmp->next; @@ -875,6 +889,7 @@ int radio_set_channel(struct stream_st *stream, char *channel) { mp_msg(MSGT_RADIO,MSGL_ERR,MSGTR_RADIO_WrongChannelNumberInt,channel_int); return 0; } + } priv->radio_channel_current=tmp; mp_msg(MSGT_RADIO, MSGL_V, MSGTR_RADIO_SelectedChannel, priv->radio_channel_current->index, priv->radio_channel_current->name, priv->radio_channel_current->freq); -- cgit v1.2.3