Hallo zusammen,
da mein vdr-1.5.2 sich immer mal abschießt, hab ich mich heute dran gegeben und vdr-1.5.12 übersetzt. Dabei lief ich gegen Probleme mit dem timeline-Plugin. Folgende Übersetzungsfehler traten dabei auf:
Code
make[1]: Entering directory `/opt/vdr-1.5.12/PLUGINS/src/timeline-1.0.141'
g++ -fPIC -g -O2 -Wall -Woverloaded-virtual -c -DPLUGIN_NAME_I18N='"timeline"' -D_GNU_SOURCE -I../../../include checkerOsd.c
checkerOsd.c: In member function 'void checkerOsd::genLines(int, time_t)':
checkerOsd.c:249: error: no matching function for call to 'cTimer::PrintDay(time_t, int)'
../../../include/vdr/timers.h:112: note: candidates are: static cString cTimer::PrintDay(time_t, int, bool)
checkerOsd.c:279: error: no matching function for call to 'cTimer::PrintDay(time_t, int)'
../../../include/vdr/timers.h:112: note: candidates are: static cString cTimer::PrintDay(time_t, int, bool)
checkerOsd.c:316: error: no matching function for call to 'cTimer::PrintDay(int, int&)'
../../../include/vdr/timers.h:112: note: candidates are: static cString cTimer::PrintDay(time_t, int, bool)
checkerOsd.c:317: error: no matching function for call to 'cTimer::PrintDay(time_t, int)'
../../../include/vdr/timers.h:112: note: candidates are: static cString cTimer::PrintDay(time_t, int, bool)
checkerOsd.c:318: error: no matching function for call to 'cTimer::PrintDay(time_t, int)'
../../../include/vdr/timers.h:112: note: candidates are: static cString cTimer::PrintDay(time_t, int, bool)
make[1]: *** [checkerOsd.o] Error 1
make[1]: Leaving directory `/opt/vdr-1.5.12/PLUGINS/src/timeline-1.0.141'
*** failed plugins: timeline
Alles anzeigen
Besagtes cTimer::PrintDay verlangt nun nach einem dritten Parameter vom Typ bool(static cString PrintDay(time_t Day, int WeekDays, bool SingleByteChars);). Ich hab checkerOsd.c nun wie folgt gepatcht:
Diff
--- timeline-1.0.141.orig/checkerOsd.c 2007-12-01 14:14:38.000000000 +0100
+++ timeline-1.0.141/checkerOsd.c 2007-12-01 14:05:51.000000000 +0100
@@ -246,7 +246,7 @@
localtime_r(&start1t,&day1);
sprintf(line1,"%s %04d-%02d-%02d (%s):",tr("Conflict on"),day1.tm_year+1900,day1.tm_mon+1,day1.tm_mday,tr("same input device"));
sprintf(line2,"%02d:%02d-%02d:%02d, (P%d) %s: %s",ct1->Start()/100,ct1->Start()%100,ct1->Stop()/100,ct1->Stop()%100,ct1->Priority(),ch1->Name(),ct1->File());
- sprintf(line3,"%02d:%02d-%02d:%02d (%s), (P%d) %s: %s",ct2->Start()/100,ct2->Start()%100,ct2->Stop()/100,ct2->Stop()%100,(const char *)ct2->PrintDay(ct2->Day(),ct2->WeekDays()),ct2->Priority(),ch2->Name(),ct2->File());
+ sprintf(line3,"%02d:%02d-%02d:%02d (%s), (P%d) %s: %s",ct2->Start()/100,ct2->Start()%100,ct2->Stop()/100,ct2->Stop()%100,(const char *)ct2->PrintDay(ct2->Day(),ct2->WeekDays(),true),ct2->Priority(),ch2->Name(),ct2->File());
}
}
else if (!ct1->IsSingleEvent() && ct2->IsSingleEvent())
@@ -276,7 +276,7 @@
{
localtime_r(&start1t,&day1);
sprintf(line1,"%s %04d-%02d-%02d (%s):",tr("Conflict on"),day1.tm_year+1900,day1.tm_mon+1,day1.tm_mday,tr("same input device"));
- sprintf(line2,"%02d:%02d-%02d:%02d (%s), (P%d) %s: %s",ct1->Start()/100,ct1->Start()%100,ct1->Stop()/100,ct1->Stop()%100,(const char *)ct1->PrintDay(ct1->Day(),ct1->WeekDays()),ct1->Priority(),ch1->Name(),ct1->File());
+ sprintf(line2,"%02d:%02d-%02d:%02d (%s), (P%d) %s: %s",ct1->Start()/100,ct1->Start()%100,ct1->Stop()/100,ct1->Stop()%100,(const char *)ct1->PrintDay(ct1->Day(),ct1->WeekDays(),true),ct1->Priority(),ch1->Name(),ct1->File());
sprintf(line3,"%02d:%02d-%02d:%02d, (P%d) %s: %s",ct2->Start()/100,ct2->Start()%100,ct2->Stop()/100,ct2->Stop()%100,ct2->Priority(),ch2->Name(),ct2->File());
}
}
@@ -313,9 +313,9 @@
}
if (hasmatched)
{
- sprintf(line1,"%s %s (%s):",tr("Repeating conflict on"),(const char *)ct1->PrintDay(0,mdays),tr("same input device"));
- sprintf(line2,"%02d:%02d-%02d:%02d (%s), (P%d) %s: %s",ct1->Start()/100,ct1->Start()%100,ct1->Stop()/100,ct1->Stop()%100,(const char *)ct1->PrintDay(ct1->Day(),ct1->WeekDays()),ct1->Priority(),ch1->Name(),ct1->File());
- sprintf(line3,"%02d:%02d-%02d:%02d (%s), (P%d) %s: %s",ct2->Start()/100,ct2->Start()%100,ct2->Stop()/100,ct2->Stop()%100,(const char *)ct2->PrintDay(ct2->Day(),ct2->WeekDays()),ct2->Priority(),ch2->Name(),ct2->File());
+ sprintf(line1,"%s %s (%s):",tr("Repeating conflict on"),(const char *)ct1->PrintDay(0,mdays,true),tr("same input device"));
+ sprintf(line2,"%02d:%02d-%02d:%02d (%s), (P%d) %s: %s",ct1->Start()/100,ct1->Start()%100,ct1->Stop()/100,ct1->Stop()%100,(const char *)ct1->PrintDay(ct1->Day(),ct1->WeekDays(),true),ct1->Priority(),ch1->Name(),ct1->File());
+ sprintf(line3,"%02d:%02d-%02d:%02d (%s), (P%d) %s: %s",ct2->Start()/100,ct2->Start()%100,ct2->Stop()/100,ct2->Stop()%100,(const char *)ct2->PrintDay(ct2->Day(),ct2->WeekDays(),true),ct2->Priority(),ch2->Name(),ct2->File());
}
}
else // ct1->IsSingleEvent() && ct2->IsSingleEvent()
Alles anzeigen
Meine Frage ist nun, was SingleByteChars ist, und ob es ausreicht, den einfach beim Aufruf auf true zu setzen?
Habe so timeline kompiliert bekommen, aber den 1.5.12 noch nicht in Betrieb genommen.
Freu mich über jede Hilfe.
Gruß, Jens.