Hallo,
Erst mal vielen Dank an das yavdr Team fuer die super Distribution!!!
Beim integrieren eines Plugins bin ich auf folgendes Problem gestossen:
Das Plugins verwendet die Ca() Funktion aus der Klasse cChannel. Mir ist aufgefallen, dass die Ca() Funktion immer den Wert 0 zurueckliefert, obwohl in channels.conf entsprechende CAIDs eingetragen sind. Ein Versuch die CAID zu setzen (ueber die verfuegbare Memberfunktion) hat auch nicht geklappt. Es wird immer 0 zuruckgeliefert.
Daraufhin habe ich mir die Sourcen von vdr via launchpad runtergeladen (apt-get source vdr und auch direkt vom git hub) und dabei festgestellt,dass sich die header Dateien unterscheiden. Und zwar sind genau vor der Member Variable caids 3 zusaetzlich Eintraege in den Headern der Distribution enthalten die in der Version vom Repository nicht drinnen sind. Der Versuch das Plugin mit den runtergeladenen VDR Headern zu builden hat zwar geklappt aber beim Laden des Plugins konnten nicht alle Symbole aufgeloest werden.
Der naechste Versuch war das Header File channels.h zu patchen (auskommentieren der 3 zusaetzlichen Member) und das Plugin neu builden. Diese Version hat dann die richtigen CAIDS mit der Funtion geliefert (cChannel::Ca()).
Durch die Inline Funktionen ist ein solches Verhalten erklaerbar. Ansonsten faellt mir leider keine andere Erklaerung dafuer ein.
Nun zu meiner Frage: Koennte es sein, dass die Header Dateien in der Distribution nicht konsistent sind mit denjenigen Header Dateien die fuer das Builden verwendet wurden.
Gruss
Roman