changeset 10011:736ca83d609f

abilty to set tv channel by name on commandline, patch by Ivan Szanto <szivan@duticai.TWI.TUDelft.NL>
author alex
date Mon, 28 Apr 2003 16:11:42 +0000
parents 63a2262349e1
children f8f3f8b4e0d7
files libmpdemux/tv.c
diffstat 1 files changed, 21 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/libmpdemux/tv.c	Mon Apr 28 15:58:27 2003 +0000
+++ b/libmpdemux/tv.c	Mon Apr 28 16:11:42 2003 +0000
@@ -328,16 +328,36 @@
 
     if (tv_channel_list) {
 	int i;
-	int channel;
+	int channel = 0;
 	if (tv_param_channel)
+	 {
+	   if (isdigit(*tv_param_channel))
+		/* if tv_param_channel begins with a digit interpret it as a number */
 		channel = atoi(tv_param_channel);
+	   else
+	      {
+		/* if tv_param_channel does not begin with a digit 
+		   set the first channel that contains tv_param_channel in its name */
+
+		tv_channel_current = tv_channel_list;
+		while ( tv_channel_current ) {
+			if ( strstr(tv_channel_current->name, tv_param_channel) )
+			  break;
+			tv_channel_current = tv_channel_current->next;
+			}
+		if ( !tv_channel_current ) tv_channel_current = tv_channel_list;
+	      }
+	 }
 	else
 		channel = 1;
 
+	if ( channel ) {
 	tv_channel_current = tv_channel_list;
 	for (i = 1; i < channel; i++)
 		if (tv_channel_current->next)
 			tv_channel_current = tv_channel_current->next;
+	}
+
 	mp_msg(MSGT_TV, MSGL_INFO, "Selected channel: %s - %s (freq: %.3f)\n", tv_channel_current->number,
 			tv_channel_current->name, (float)tv_channel_current->freq/1000);
 	tv_set_freq(tvh, (unsigned long)(((float)tv_channel_current->freq/1000)*16));