# HG changeset patch # User alex # Date 1051546302 0 # Node ID 736ca83d609f86263033e105fb5aaf67f47e7fe7 # Parent 63a2262349e14cf4951c69a775fdc4a9df839c8e abilty to set tv channel by name on commandline, patch by Ivan Szanto diff -r 63a2262349e1 -r 736ca83d609f libmpdemux/tv.c --- 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));