[vdr] Instant Timer with a given Channel

Christian Wieninger cwieninger at gmx.de
Thu Dec 1 18:16:57 CET 2005


Hi Patrick,

I use the following code, that nordlicht at vdrportal send me:

	  time_t now = time(NULL); // thanks to nordlich at vdrportal for the 
following code, that
	  char *buffer=NULL;       // allows setting the channel for a timer 
without event
	  int starthh,startmm,stophh,stopmm;
	  //for getting the day of month
	  struct tm *tm_t=localtime(&now);
	  //we have to get away the ':' from the time string
	  sscanf(TIMESTRING(now),"%2d:%2d",&starthh,&startmm);
	 
sscanf(TIMESTRING(now+Setup.InstantRecordTime*60),"%2d:%2d",&stophh,&stopmm);
	 
//active:channel:day_of_month:starttime:endtime:priority:durability:title:
	 
asprintf(&buffer,"1:%d:%d:%d%d:%d%d:%d:%d:%s:",item->channel->Number(),tm_t->tm_mday,starthh,startmm,stophh,stopmm,Setup.DefaultPriority,Setup.DefaultLifetime,item->channel->Name());
	  timer=new cTimer(false,false);
	  if(timer->Parse(buffer))
	      free(buffer);	

it abuses the parse function for that purpose. Of course, an extended 
constructur would be much better.

BR,

Christian.

Patrick Fischer schrieb:
> Hello
> I want to create a new instant Recording from a Plugin at a specific 
> Channel.
> 
> The normal way to create a instant Recording is to call
> 
> cRecordControls::Start ();
> 
> This will create a Recording of the current Channel.
> 
> So if I want to create a recording on an different Channel, I can create 
> a new Timer
> and give this new Timer to cRecordControls::Start ().
> 
> cTimer *timer = new cTimer(true,false);
> cRecordControls::Start (timer);
> 
> But new cTimer(true, false) also use the current Channel.
> 
> Is it possible that Klaus change the Constructor from
> cTimer::cTimer(bool Instant, bool Pause)
> to
> cTimer::cTimer(bool Instant, bool Pause, int channel = 0)
> 
> And the line 30 in timers.c from
> channel = Channels.GetByNumber(cDevice::CurrentChannel());
> to
> channel = Channels.GetByNumber(channel?channel:cDevice::CurrentChannel());
> 
> In this case i can create a new recording by
> cTimer *timer = new cTimer(true,false,MYCHANNEL);
> cRecordControls::Start (timer);
> 
> please!!! :-)
> 
> Yours sincerely,
> Patrick
> 
> 
> 
> _______________________________________________
> vdr mailing list
> vdr at linuxtv.org
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
> 
> 



More information about the vdr mailing list