The SVDRP command CHAN now also accepts channel IDs

This commit is contained in:
Klaus Schmidinger 2002-12-22 14:07:51 +01:00
parent de1366fc7e
commit 3b88ba1cd2
2 changed files with 16 additions and 16 deletions

View File

@ -1901,11 +1901,7 @@ Video Disk Recorder Revision History
2002-12-22: Version 1.1.21
- The 'C' record in the 'epg.data' file now also contains the channel numbers (see
man vdr(5)). This does mean some redundancy, but it helps applications that don't
want to parse the channel definitions in order to work with the channel numbers.
When reading the 'epg.data' file VDR only interprets the channel IDs, everyting
else is optional and has no meaning to VDR.
- Fixed the 'channels.conf' entries for "Studio Universal" and "Disney Channel".
- Fixed handling channels in the "Channels" menu in case there are ':@nnn' group
separators without names (thanks to Guy Roussin for reporting this one).
- The SVDRP command CHAN now also accepts channel IDs.

26
svdrp.c
View File

@ -10,7 +10,7 @@
* and interact with the Video Disk Recorder - or write a full featured
* graphical interface that sits on top of an SVDRP connection.
*
* $Id: svdrp.c 1.49 2002/11/10 12:09:56 kls Exp $
* $Id: svdrp.c 1.50 2002/12/22 14:04:08 kls Exp $
*/
#include "svdrp.h"
@ -174,8 +174,8 @@ bool cPUTEhandler::Process(const char *s)
#define MAXHELPTOPIC 10
const char *HelpPages[] = {
"CHAN [ + | - | <number> | <name> ]\n"
" Switch channel up, down or to the given channel number or name.\n"
"CHAN [ + | - | <number> | <name> | <id> ]\n"
" Switch channel up, down or to the given channel number, name or id.\n"
" Without option (or after successfully switching to the channel)\n"
" it returns the current channel number and name.",
"CLRE\n"
@ -412,15 +412,19 @@ void cSVDRP::CmdCHAN(const char *Option)
}
}
else {
int i = 1;
cChannel *channel;
while ((channel = Channels.GetByNumber(i, 1)) != NULL) {
if (strcasecmp(channel->Name(), Option) == 0) {
n = i;
break;
cChannel *channel = Channels.GetByChannelID(tChannelID::FromString(Option));
if (channel)
n = channel->Number();
else {
int i = 1;
while ((channel = Channels.GetByNumber(i, 1)) != NULL) {
if (strcasecmp(channel->Name(), Option) == 0) {
n = channel->Number();
break;
}
i = channel->Number() + 1;
}
i = channel->Number() + 1;
}
}
}
if (n < 0) {
Reply(501, "Undefined channel \"%s\"", Option);