[MPlayer-dev-eng] [PATCH] selecting tv channel by name (tv://)

Ivan Szanto szivan at duticai.TWI.TUDelft.NL
Sat Apr 12 01:23:59 CEST 2003


Hi


100l to me, the small patch I sent had a bug.
Hope noone was bugged by it ;-)

Please disregard the previous version and
take this one into consideration.

Ivan
-------------- next part --------------
--- main/libmpdemux/tv.c	Wed Apr  9 16:07:45 2003
+++ main-smb-channels/libmpdemux/tv.c	Sat Apr 12 01:15:22 2003
@@ -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));


More information about the MPlayer-dev-eng mailing list