LinuxTV Patchwork Allow instant recording to record only present event

login
register
mail settings
Submitter Matti Lehtimäki
Date May 20, 2012, 11:55 a.m.
Message ID <4FB8DBC3.4000707@gmail.com>
Download mbox | patch
Permalink /patch/12951/
State New
Headers show

Comments

Matti Lehtimäki - May 20, 2012, 11:55 a.m.
On 05/20/2012 02:45 PM, Klaus Schmidinger wrote:
> On 20.05.2012 13:41, Matti Lehtimäki wrote:
>> On 05/20/2012 02:15 PM, Klaus Schmidinger wrote:
>>> One more thing comes to mind: you also need to make sure that
>>> the 'day' is set to the day of the EPG event. Just in case it
>>> is past midnight already and the event started "yesterday" ;-)
>>
>> Indeed that was missing. I think setting the day is relevant only if
>> VPS is used since in otherwise the start time is the current time not
>> the start time of the event. Or should the start time be set to that
>> of the event if VPS is not used?
>
> Well, that's a matter of taste.
> For VPS it is relevant, otherwise it's up to you.

Attached is a new version of the patch with correct day always set when 
VPS is used. Could this patch be included in next version of VDR?
Klaus Schmidinger - May 20, 2012, 12:33 p.m.
On 20.05.2012 13:55, Matti Lehtimäki wrote:
> On 05/20/2012 02:45 PM, Klaus Schmidinger wrote:
>> On 20.05.2012 13:41, Matti Lehtimäki wrote:
>>> On 05/20/2012 02:15 PM, Klaus Schmidinger wrote:
>>>> One more thing comes to mind: you also need to make sure that
>>>> the 'day' is set to the day of the EPG event. Just in case it
>>>> is past midnight already and the event started "yesterday" ;-)
>>>
>>> Indeed that was missing. I think setting the day is relevant only if
>>> VPS is used since in otherwise the start time is the current time not
>>> the start time of the event. Or should the start time be set to that
>>> of the event if VPS is not used?
>>
>> Well, that's a matter of taste.
>> For VPS it is relevant, otherwise it's up to you.
>
> Attached is a new version of the patch with correct day always set when VPS is used. Could this patch be included in next version of VDR?

I guess so...

Klaus

Patch

diff -Naur vdr-1.7.27-orig/menu.c vdr-1.7.27-inst-rec/menu.c
--- vdr-1.7.27-orig/menu.c	2012-03-13 15:14:38.000000000 +0200
+++ vdr-1.7.27-inst-rec/menu.c	2012-04-27 00:50:35.000000000 +0300
@@ -3114,7 +3114,7 @@ 
   Add(new cMenuEditIntItem( tr("Setup.Recording$VPS margin (s)"),            &data.VpsMargin, 0));
   Add(new cMenuEditBoolItem(tr("Setup.Recording$Mark instant recording"),    &data.MarkInstantRecord));
   Add(new cMenuEditStrItem( tr("Setup.Recording$Name instant recording"),     data.NameInstantRecord, sizeof(data.NameInstantRecord)));
-  Add(new cMenuEditIntItem( tr("Setup.Recording$Instant rec. time (min)"),   &data.InstantRecordTime, 1, MAXINSTANTRECTIME));
+  Add(new cMenuEditIntItem( tr("Setup.Recording$Instant rec. time (min)"),   &data.InstantRecordTime, 0, MAXINSTANTRECTIME, tr("Setup.Recording$present event")));
   Add(new cMenuEditIntItem( tr("Setup.Recording$Max. video file size (MB)"), &data.MaxVideoFileSize, MINVIDEOFILESIZE, MAXVIDEOFILESIZETS));
   Add(new cMenuEditBoolItem(tr("Setup.Recording$Split edited files"),        &data.SplitEditedFiles));
   Add(new cMenuEditStraItem(tr("Setup.Recording$Delete timeshift recording"),&data.DelTimeshiftRec, 3, delTimeshiftRecTexts));
diff -Naur vdr-1.7.27-orig/po/fi_FI.po vdr-1.7.27-inst-rec/po/fi_FI.po
--- vdr-1.7.27-orig/po/fi_FI.po	2012-03-11 12:44:43.000000000 +0200
+++ vdr-1.7.27-inst-rec/po/fi_FI.po	2012-04-27 00:52:40.000000000 +0300
@@ -1071,6 +1071,9 @@ 
 msgid "Setup.Recording$Instant rec. time (min)"
 msgstr "Pikatallennuksen kesto (min)"
 
+msgid "Setup.Recording$present event"
+msgstr "nykyinen tapahtuma"
+
 msgid "Setup.Recording$Max. video file size (MB)"
 msgstr "Suurin tiedostokoko (Mt)"
 
diff -Naur vdr-1.7.27-orig/timers.c vdr-1.7.27-inst-rec/timers.c
--- vdr-1.7.27-orig/timers.c	2012-02-27 11:38:41.000000000 +0200
+++ vdr-1.7.27-inst-rec/timers.c	2012-05-20 14:32:35.000000000 +0300
@@ -41,8 +41,34 @@ 
   day = SetTime(t, 0);
   weekdays = 0;
   start = now->tm_hour * 100 + now->tm_min;
-  stop = now->tm_hour * 60 + now->tm_min + Setup.InstantRecordTime;
-  stop = (stop / 60) * 100 + (stop % 60);
+  stop = 0;
+  if (!Setup.InstantRecordTime) {
+     cSchedulesLock SchedulesLock;
+     const cSchedules *Schedules = cSchedules::Schedules(SchedulesLock);
+     if (Schedules && channel) {
+        const cSchedule *Schedule = Schedules->GetSchedule(channel);
+        if (Schedule) {
+           const cEvent *Event = Schedule->GetPresentEvent();
+           if (Event) {
+              time_t tstart = Event->StartTime();
+              if (Event->Vps() && Setup.UseVps) {
+                 SetFlags(tfVps);
+                 tstart = Event->Vps();
+                 day = SetTime(tstart, 0);
+                 struct tm *time = localtime_r(&tstart, &tm_r);
+                 start = time->tm_hour * 100 + time->tm_min;
+                 }
+              time_t tstop = tstart + Event->Duration() + Setup.MarginStop * 60;
+              struct tm *time = localtime_r(&tstop, &tm_r);
+              stop = time->tm_hour * 100 + time->tm_min;
+              }
+           }
+        }
+     }
+  if (!stop) {
+     stop = now->tm_hour * 60 + now->tm_min + (Setup.InstantRecordTime ? Setup.InstantRecordTime : 180);
+     stop = (stop / 60) * 100 + (stop % 60);
+     }
   if (stop >= 2400)
      stop -= 2400;
   priority = Pause ? Setup.PausePriority : Setup.DefaultPriority;

Privacy Policy