From 57bd7eeed1c1aa84316f8299e1528b3bc63d7623 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 27 Oct 2002 17:00:00 +0100 Subject: =?UTF-8?q?Version=201.1.14=20-=20Fixed=20some=20faulty=20default?= =?UTF-8?q?=20parameter=20initializations=20(thanks=20to=20Robert=20Schiel?= =?UTF-8?q?e).=20-=20Added=20further=20satellites=20to=20'sources.conf'=20?= =?UTF-8?q?(thanks=20to=20Reinhard=20Walter=20Buchner=20=20=20and=20Oliver?= =?UTF-8?q?=20Endriss).=20-=20Updated=20Finnish=20OSD=20texts=20(thanks=20?= =?UTF-8?q?to=20Jaakko=20Hyv=C3=A4tti).=20-=20Fixed=20a=20small=20glitch?= =?UTF-8?q?=20when=20switching=20channels=20(thanks=20to=20Dennis=20Noords?= =?UTF-8?q?ij=20for=20=20=20reporting=20this=20one).=20-=20Fixed=20handlin?= =?UTF-8?q?g=20multiple=20'CaCaps'=20entries=20in=20'setup.conf'.=20-=20Gr?= =?UTF-8?q?oup=20separators=20in=20'channels.conf'=20may=20now=20be=20give?= =?UTF-8?q?n=20like=20':@201=20My=20Channels',=20=20=20where=20'@201'=20in?= =?UTF-8?q?dicates=20the=20number=20to=20be=20given=20to=20the=20next=20ch?= =?UTF-8?q?annel.=20This=20can=20be=20=20=20used=20to=20create=20'gaps'=20?= =?UTF-8?q?in=20the=20channel=20numbering=20(see=20'man=205=20vdr').=20BE?= =?UTF-8?q?=20CAREFUL=20=20=20TO=20UPDATE=20YOUR=20'timers.conf'=20ACCORDI?= =?UTF-8?q?NGLY=20IF=20INSERTING=20THIS=20NEW=20FEATURE=20INTO=20YOUR=20?= =?UTF-8?q?=20=20'channels.conf'=20FILE!=20-=20Timers=20now=20internally?= =?UTF-8?q?=20have=20a=20pointer=20to=20their=20channel=20(this=20is=20nec?= =?UTF-8?q?essary=20to=20=20=20handle=20gaps=20in=20channel=20numbers,=20a?= =?UTF-8?q?nd=20in=20preparation=20for=20unique=20channel=20ids).=20-=20Fi?= =?UTF-8?q?xed=20slow=20reaction=20on=20SVDRP=20input=20(thanks=20to=20Gui?= =?UTF-8?q?do=20Fiala=20for=20reporting=20this=20one).=20-=20Added=20KI.KA?= =?UTF-8?q?=20to=20channels.conf.cable=20(thanks=20to=20Robert=20Schiele).?= =?UTF-8?q?=20-=20Frequency=20values=20for=20cable=20and=20terrestrial=20c?= =?UTF-8?q?hannels=20in=20'channels.conf'=20can=20=20=20now=20be=20given?= =?UTF-8?q?=20either=20in=20MHz,=20kHz=20or=20Hz.=20The=20actual=20value?= =?UTF-8?q?=20given=20will=20be=20multiplied=20=20=20by=201000=20until=20i?= =?UTF-8?q?t=20is=20larger=20than=201000000.=20-=20Fixed=20skipping=20unav?= =?UTF-8?q?ailable=20channels=20when=20zapping=20downwards.=20-=20Fixed=20?= =?UTF-8?q?checking=20the=20Ca()=20status=20of=20a=20cDevice=20(thanks=20t?= =?UTF-8?q?o=20Stefan=20Huelswitt).=20-=20Fixed=20switching=20audio=20trac?= =?UTF-8?q?ks=20in=20'Transfer=20Mode'=20on=20the=20primary=20DVB=20device?= =?UTF-8?q?=20=20=20(thanks=20to=20Steffen=20Barszus=20and=20Stefan=20Huel?= =?UTF-8?q?switt=20for=20reporting=20this=20one=20and=20=20=20helping=20to?= =?UTF-8?q?=20fix=20it).=20-=20Fixed=20channel=20switching=20in=20case=20o?= =?UTF-8?q?f=20an=20active=20'Transfer=20Mode'=20on=20the=20primary=20=20?= =?UTF-8?q?=20device=20('Transfer=20Mode'=20is=20now=20launched=20with=20p?= =?UTF-8?q?riority=20'-1').=20-=20Fixed=20a=20ternary=20expression=20in=20?= =?UTF-8?q?dvbspu.c.=20-=20Fixed=20handling=20'Transfer=20Mode'=20on=20sin?= =?UTF-8?q?gle=20device=20systems=20when=20recording=20an=20=20=20encrypte?= =?UTF-8?q?d=20channel=20(thanks=20to=20Stefan=20Huelswitt).=20-=20Fixed?= =?UTF-8?q?=20blocking=20replaying=20in=20case=20an=20encrypted=20channel?= =?UTF-8?q?=20is=20being=20recorded=20on=20=20=20the=20primary=20device.?= =?UTF-8?q?=20-=20Now=20the=20name=20of=20the=20remote=20control=20is=20di?= =?UTF-8?q?splayed=20when=20learning=20the=20keys.=20-=20Fixed=20learning?= =?UTF-8?q?=20remote=20control=20keys=20in=20case=20there=20is=20more=20th?= =?UTF-8?q?an=20one=20remote=20=20=20control=20(thanks=20to=20Oliver=20End?= =?UTF-8?q?riss=20for=20reporting=20this=20one).=20-=20Implemented=20addit?= =?UTF-8?q?ional=20dedicated=20keys=20for=20"Play",=20"Pause",=20"Stop",?= =?UTF-8?q?=20"Record",=20=20=20"FastFwd",=20"FastRew",=20"Channel+"=20and?= =?UTF-8?q?=20"Channel-".=20If=20your=20remote=20control=20supports=20=20?= =?UTF-8?q?=20any=20of=20these=20keys=20you=20can=20delete=20your=20'remot?= =?UTF-8?q?e.conf'=20file=20and=20restart=20VDR=20to=20=20=20go=20through?= =?UTF-8?q?=20the=20key=20learning=20procedure=20again=20in=20order=20to?= =?UTF-8?q?=20assign=20these=20new=20keys.=20=20=20See=20MANUAL=20for=20mo?= =?UTF-8?q?re=20information.=20=20=20Authors=20of=20player=20plugins=20sho?= =?UTF-8?q?uld=20update=20their=20ProcessKey()=20functions=20so=20that=20?= =?UTF-8?q?=20=20the=20new=20player=20keys=20have=20the=20same=20functiona?= =?UTF-8?q?lity=20as=20the=20"Up",=20"Down",=20"Left",=20=20=20"Right"=20a?= =?UTF-8?q?nd=20"Blue"=20keys,=20respectively.=20Note=20that=20the=20exist?= =?UTF-8?q?ing=20functionality=20=20=20of=20these=20keys=20should=20by=20a?= =?UTF-8?q?ll=20means=20be=20retained,=20since=20VDR=20(and=20any=20plugin?= =?UTF-8?q?s)=20=20=20shall=20be=20fully=20usable=20with=20just=20the=20ba?= =?UTF-8?q?sic=20set=20of=20keys.=20These=20new=20keys=20are=20only=20=20?= =?UTF-8?q?=20for=20additional=20comfort=20in=20case=20the=20remote=20cont?= =?UTF-8?q?rol=20in=20use=20supports=20them.=20-=20Implemented=20new=20key?= =?UTF-8?q?s=20to=20directly=20access=20the=20VDR=20main=20menu=20function?= =?UTF-8?q?s=20"Schedule",=20=20=20"Channels",=20"Timers",=20"Recordings",?= =?UTF-8?q?=20"Setup"=20and=20"Commands".=20If=20your=20remote=20=20=20con?= =?UTF-8?q?trol=20provides=20keys=20you=20want=20to=20assign=20these=20fun?= =?UTF-8?q?ctions=20to,=20you=20can=20delete=20=20=20your=20'remote.cof'?= =?UTF-8?q?=20file=20and=20restart=20VDR=20to=20=20go=20through=20the=20ke?= =?UTF-8?q?y=20learning=20procedure=20=20=20again=20in=20order=20to=20assi?= =?UTF-8?q?gn=20these=20new=20keys.=20See=20MANUAL=20for=20more=20informat?= =?UTF-8?q?ion.=20-=20The=20new=20configuration=20file=20'keymacros.conf'?= =?UTF-8?q?=20can=20be=20used=20to=20assign=20macros=20to=20=20=20the=20co?= =?UTF-8?q?lor=20buttons=20in=20normal=20viewing=20mode,=20as=20well=20as?= =?UTF-8?q?=20to=20up=20to=209=20user=20defined=20=20=20keys.=20See=20MANU?= =?UTF-8?q?AL=20and=20man=20vdr(5)=20for=20more=20information.=20The=20def?= =?UTF-8?q?ault=20'keymacros.conf'=20=20=20implements=20the=20functionalit?= =?UTF-8?q?y=20of=20the=20"color=20button=20patch".=20-=20Fixed=20a=20cras?= =?UTF-8?q?h=20when=20learning=20the=20keys=20of=20several=20remote=20cont?= =?UTF-8?q?rols=20and=20pressing=20=20=20buttons=20of=20those=20that=20hav?= =?UTF-8?q?e=20already=20been=20learned=20(thanks=20to=20Oliver=20Endriss?= =?UTF-8?q?=20for=20=20=20reporting=20this=20one).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- svdrp.c | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) (limited to 'svdrp.c') diff --git a/svdrp.c b/svdrp.c index 4117149..2859fb9 100644 --- a/svdrp.c +++ b/svdrp.c @@ -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.45 2002/10/13 09:31:31 kls Exp $ + * $Id: svdrp.c 1.48 2002/10/20 12:45:03 kls Exp $ */ #include "svdrp.h" @@ -31,6 +31,7 @@ #include "device.h" #include "keys.h" #include "remote.h" +#include "timers.h" #include "tools.h" // --- cSocket --------------------------------------------------------------- @@ -413,12 +414,12 @@ void cSVDRP::CmdCHAN(const char *Option) else { int i = 1; cChannel *channel; - while ((channel = Channels.GetByNumber(i)) != NULL) { + while ((channel = Channels.GetByNumber(i, 1)) != NULL) { if (strcasecmp(channel->Name(), Option) == 0) { n = i; break; } - i++; + i = channel->Number() + 1; } } if (n < 0) { @@ -487,7 +488,7 @@ void cSVDRP::CmdDELT(const char *Option) if (isnumber(Option)) { cTimer *timer = Timers.Get(strtol(Option, NULL, 10) - 1); if (timer) { - if (!timer->recording) { + if (!timer->Recording()) { Timers.Del(timer); Timers.Save(); isyslog("timer %s deleted", Option); @@ -640,7 +641,7 @@ void cSVDRP::CmdLSTC(const char *Option) int i = 1; cChannel *next = NULL; while (i <= Channels.MaxNumber()) { - cChannel *channel = Channels.GetByNumber(i); + cChannel *channel = Channels.GetByNumber(i, 1); if (channel) { if (strcasestr(channel->Name(), Option)) { if (next) @@ -652,7 +653,7 @@ void cSVDRP::CmdLSTC(const char *Option) Reply(501, "Channel \"%d\" not found", i); return; } - i++; + i = channel->Number() + 1; } if (next) Reply(250, "%d %s", next->Number(), next->ToText()); @@ -661,13 +662,15 @@ void cSVDRP::CmdLSTC(const char *Option) } } else if (Channels.MaxNumber() >= 1) { - for (int i = 1; i <= Channels.MaxNumber(); i++) { - cChannel *channel = Channels.GetByNumber(i); - if (channel) - Reply(i < Channels.MaxNumber() ? -250 : 250, "%d %s", channel->Number(), channel->ToText()); - else - Reply(501, "Channel \"%d\" not found", i); - } + int i = 1; + while (i <= Channels.MaxNumber()) { + cChannel *channel = Channels.GetByNumber(i, 1); + if (channel) + Reply(channel->Number() < Channels.MaxNumber() ? -250 : 250, "%d %s", channel->Number(), channel->ToText()); + else + Reply(501, "Channel \"%d\" not found", i); + i = channel->Number() + 1; + } } else Reply(550, "No channels defined"); @@ -804,16 +807,16 @@ void cSVDRP::CmdMODT(const char *Option) if (timer) { cTimer t = *timer; if (strcasecmp(tail, "ON") == 0) - t.active = 1; + t.SetActive(taActive); else if (strcasecmp(tail, "OFF") == 0) - t.active = 0; + t.SetActive(taInactive); else if (!t.Parse(tail)) { Reply(501, "Error in timer settings"); return; } *timer = t; Timers.Save(); - isyslog("timer %d modified (%s)", timer->Index() + 1, timer->active ? "active" : "inactive"); + isyslog("timer %d modified (%s)", timer->Index() + 1, timer->Active() ? "active" : "inactive"); Reply(250, "%d %s", timer->Index() + 1, timer->ToText()); } else @@ -1009,7 +1012,7 @@ void cSVDRP::Execute(char *Cmd) else Reply(500, "Command unrecognized: \"%s\"", Cmd); } -void cSVDRP::Process(void) +bool cSVDRP::Process(void) { bool NewConnection = !file.IsOpen(); bool SendGreeting = NewConnection; @@ -1070,7 +1073,9 @@ void cSVDRP::Process(void) isyslog("timeout on SVDRP connection"); Close(true); } + return true; } + return false; } char *cSVDRP::GetMessage(void) -- cgit v1.2.3