Hi Pit,
die Fehler, die der Compiler auswirft, sind Folgefehler. Im VDR gibt es einige globale Listen wie ein "cChannels Channels", "cTimers timers" usw. Das sind Listen von cChannel bzw cTimer Zeigern. Vor VDR 2.3.x konnte man auf diese Listen "einfach so" zugreifen, im VDR 2.3 wurden diese Listen so angepasst, dass man nicht mehr einfach so darauf ztugreifen kann, sondern vorher über ein MAcro ein Lock setzen muss.
Ich erkläre es dir am besten nochmal an einem Beispiel aus dem Skindesigner Patch für VDR2.3.1 (den DIFF habe ich im letzten Posting verlinkt): coreengine/viewdetail.c, Zeile 356:
Vorher:
Hier wird einfach auf "Channels" zugegriffen. Das ist aber nicht mehr erlaubt, deshalb muss man das nun so machen:
#if defined (APIVERSNUM) && (APIVERSNUM >= 20301)
LOCK_CHANNELS_READ;
const cChannels* channels = Channels;
#else
cChannels* channels = &Channels;
#endif
const cChannel *channel = channels->GetByChannelID(event->ChannelID());
Es wird also die Versionsnummer des VDR geprüft und für VDR >= 2.3.1 wird das Lock gesetzt und dann auf "Channels" zugegeriffen, für ältere VDR Versionen wirds gemacht wie bisher. Danach kann man wieder auf "Channels" (bzw. channels, ein Zeiger auf Channels) zugreifen.
Das musst du eben für alle Stellen machen, wo auf Channels / Timers / Schedules zugegriffen wird...
Sorry wenn ich dir aktuell nicht mehr helfen kann, ich habe aktuell weder Zeit noch Lust, das anzupassen.
Ciao Louis