VDR 2.0 und PIN-Plugin
-
-
Moin!
Laut Autor des pin-Plugins soll es mit den yaVDR-Paketen aus testing funktionieren. Evtl. holst du dir da den Patch und die Plugin-Sourcen heraus und probierst es mal damit.
Ansonsten sind Glaskugeln gerade rar... Compiler-Ausgaben, Logs, zusätzliche Patches, irgendwas?Lars.
-
Hallo,
Funktioniert bei einem von euch das PIN Plugin korrekt mit dem aktuellen VDR ?
Ich kann keine Aufnahmen verstecken ... Ein erstellen der protection.fsk hat keinerlei Auswirkung im Aufnahme Verzeichniss.
-
Hallo,
Funktioniert bei einem von euch das PIN Plugin korrekt mit dem aktuellen VDR ?
Ich kann keine Aufnahmen verstecken ... Ein erstellen der protection.fsk hat keinerlei Auswirkung im Aufnahme Verzeichniss.
klar, in yavdr geht das.
Ist extrec evtl nicht mit Pin support übersetzt?
Christian
-
Du hast recht ... Am besten ich mach mal ein grep USE_ durch alle Dateien
Kann mir einer sagen wie im neuen Makefile System die Übergabe der Defines richtig gelöst wird?
Ein kleiner Codeschnippsel als Beispiel wäre Super , DANKE
-
ich glaube für PIN fehlte dem Debainpaket nur das Compiler Flag in den Rules, bei Graphtft fehlte zusätzlich das ganze Define im Makefile
Schau doch mal mit yavdr testing source: https://launchpad.net/~yavdr/+archive/unstable-vdr/+packages?field.name_filter=vdr-plugin-extrec&field.status_filter=published&field.series_filter= , wir haben das letzte Woche zusammengeflickt
Christian
-
Kann mir einer sagen wie im neuen Makefile System die Übergabe der Defines richtig gelöst wird?
Mit der "PLGCFG"!?
cu
-
Wobei für Graphtft noch was im Makefile fehlte
Christian
-
Hi,
ich hab's gerade nochmal ohne Patch probiert, mit Version 0.1.13:
Code
Alles anzeigen*** Plugin pin: WARNING: plugin pin is using an old Makefile! msgmerge -U --no-wrap -F --backup=none -q po/ca_ES.po po/pin.pot msgmerge -U --no-wrap -F --backup=none -q po/cs_CZ.po po/pin.pot msgmerge -U --no-wrap -F --backup=none -q po/da_DK.po po/pin.pot msgmerge -U --no-wrap -F --backup=none -q po/de_DE.po po/pin.pot msgmerge -U --no-wrap -F --backup=none -q po/el_GR.po po/pin.pot msgmerge -U --no-wrap -F --backup=none -q po/es_ES.po po/pin.pot msgmerge -U --no-wrap -F --backup=none -q po/et_EE.po po/pin.pot msgmerge -U --no-wrap -F --backup=none -q po/fi_FI.po po/pin.pot msgmerge -U --no-wrap -F --backup=none -q po/fr_FR.po po/pin.pot msgmerge -U --no-wrap -F --backup=none -q po/hr_HR.po po/pin.pot msgmerge -U --no-wrap -F --backup=none -q po/hu_HU.po po/pin.pot msgmerge -U --no-wrap -F --backup=none -q po/it_IT.po po/pin.pot msgmerge -U --no-wrap -F --backup=none -q po/nl_NL.po po/pin.pot msgmerge -U --no-wrap -F --backup=none -q po/nn_NO.po po/pin.pot msgmerge -U --no-wrap -F --backup=none -q po/pl_PL.po po/pin.pot msgmerge -U --no-wrap -F --backup=none -q po/pt_PT.po po/pin.pot msgmerge -U --no-wrap -F --backup=none -q po/ro_RO.po po/pin.pot msgmerge -U --no-wrap -F --backup=none -q po/ru_RU.po po/pin.pot msgmerge -U --no-wrap -F --backup=none -q po/sl_SI.po po/pin.pot msgmerge -U --no-wrap -F --backup=none -q po/sv_SE.po po/pin.pot msgmerge -U --no-wrap -F --backup=none -q po/tr_TR.po po/pin.pot for i in ca_ES cs_CZ da_DK de_DE el_GR es_ES et_EE fi_FI fr_FR hr_HR hu_HU it_IT nl_NL nn_NO pl_PL pt_PT ro_RO ru_RU sl_SI sv_SE tr_TR; do\ mkdir -p /usr/local/src/vdr-2.0.1/locale/$i/LC_MESSAGES;\ cp po/$i.mo /usr/local/src/vdr-2.0.1/locale/$i/LC_MESSAGES/vdr-pin.mo;\ done make[2]: »fskcheck« ist bereits aktualisiert. g++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -c -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"pin"' -D__EXCL_PLUGINS='"""femon,text2skin,span,remote,premiereepg"""' -I/usr/local/src/vdr-2.0.1/include -I../../../../DVB/include pin.c In file included from pin.h:145:0, from pin.c:17: i18n.h:22:14: error: ‘tI18nPhrase’ does not name a type In file included from pin.h:140:0, from pin.c:17: /usr/local/src/vdr-2.0.1/include/vdr/status.h:33:16: error: ‘virtual void cStatus::ChannelSwitch(const cDevice*, int, bool)’ was hidden [-Werror=overloaded-virtual] In file included from pin.c:17:0: pin.h:236:20: error: by ‘virtual void cPinStatusMonitor::ChannelSwitch(const cDevice*, int)’ [-Werror=overloaded-virtual] pin.c: In member function ‘void cPin::clear()’: pin.c:83:4: error: ‘pinValid’ is not a member of ‘cOsd’ pin.c: In member function ‘virtual eOSState cPin::ProcessKey(eKeys)’: pin.c:139:13: error: ‘pinValid’ is not a member of ‘cOsd’ pin.c:147:19: error: ‘pinValid’ is not a member of ‘cOsd’ pin.c:159:26: error: ‘pinValid’ is not a member of ‘cOsd’ pin.c:168:14: error: ‘pinValid’ is not a member of ‘cOsd’ pin.c:174:33: error: ‘pinValid’ is not a member of ‘cOsd’ pin.c:175:33: error: ‘pinValid’ is not a member of ‘cOsd’ pin.c:176:42: error: ‘pinValid’ is not a member of ‘cOsd’ pin.c: In constructor ‘cPinPlugin::cPinPlugin()’: pin.c:241:4: error: ‘pinValid’ is not a member of ‘cOsd’ pin.c: In member function ‘virtual cOsdObject* cPinPlugin::MainMenuAction()’: pin.c:305:8: error: ‘pinValid’ is not a member of ‘cOsd’ pin.c: In member function ‘virtual bool cPinPlugin::Start()’: pin.c:321:17: error: ‘Phrases’ was not declared in this scope pin.c:321:24: error: ‘RegisterI18n’ was not declared in this scope pin.c: In member function ‘virtual cMenuSetupPage* cPinPlugin::SetupMenu()’: pin.c:344:8: error: ‘pinValid’ is not a member of ‘cOsd’ pin.c: In member function ‘void cPinPlugin::checkActivity()’: pin.c:443:67: error: ‘pinValid’ is not a member of ‘cOsd’ pin.c:450:7: error: ‘pinValid’ is not a member of ‘cOsd’ pin.c: In member function ‘virtual bool cPinStatusMonitor::ReplayProtected(const cRecording*, const char*, const char*, bool, int)’: pin.c:565:8: error: ‘pinValid’ is not a member of ‘cOsd’ pin.c: In member function ‘virtual bool cPinStatusMonitor::ChannelProtected(const cDevice*, const cChannel*)’: pin.c:611:8: error: ‘pinValid’ is not a member of ‘cOsd’ pin.c: In member function ‘virtual void cPinStatusMonitor::RecordingFile(const char*)’: pin.c:679:24: error: ‘class cTimer’ has no member named ‘FskProtection’ pin.c:684:31: error: ‘class cTimer’ has no member named ‘FskProtection’ pin.c: In member function ‘virtual void cPinStatusMonitor::TimerCreation(cTimer*, const cEvent*)’: pin.c:750:11: error: ‘class cTimer’ has no member named ‘SetFskProtection’ pin.c: In member function ‘virtual bool cPinStatusMonitor::PluginProtected(cPlugin*, int)’: pin.c:761:8: error: ‘pinValid’ is not a member of ‘cOsd’ pin.c: In member function ‘virtual bool cPinStatusMonitor::MenuItemProtected(const char*, int)’: pin.c:815:8: error: ‘pinValid’ is not a member of ‘cOsd’ cc1plus: some warnings being treated as errors make[2]: *** [pin.o] Fehler 1 make[1]: *** [all] Fehler 2
Nach dem Patchen (PLUGINS/src/pin/patch/vdr-1.7.33.diff) kompilliert der VDR nicht mehr.Zur Info: ich benutze auch GraphTFT und epgsearch (scheint ja irgendwie zusammenzuhängen).
Also was muss ich tun oder geht plain-VDR mit dieser Version nicht?Grüße,
j. -
Wobei für Graphtft noch was im Makefile fehlte
Ups, wollte niemanden verwirren. Wollte das nur als Beispiel mit reinnehmen.
Ich hatte vorher geschaut, bei epgsearch und extrecmenu sollten die Makefiles passen (d.h. diese Flags auswerten und dann die Defines setzen). Ich denke "USE_<patchname>" ist der inoffizielle Standart.
ich hab's gerade nochmal ohne Patch probiert, mit Version 0.1.13:
Das PIN Plugin baut nicht ohne PIN Patch im VDR. Dein Fehlerlog ist also das ganz normale Verhalten.
cu
-
mit Patch macht VDR folgendes:
Code
Alles anzeigeng++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DREMOTE_KBD -DLIRC_DEVICE=\"/var/run/lirc/lircd\" -DVIDEODIR=\"/media/HD1_DATA/video.00\" -DCONFDIR=\"/var/lib/vdr\" -DCACHEDIR=\"/var/cache/vdr\" -DRESDIR=\"/usr/local/share/vdr\" -DPLUGINDIR=\"/usr/local/lib/vdr\" -DLOCDIR=\"/usr/local/share/locale\" -I/usr/include/freetype2 -o audio.o audio.c g++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DREMOTE_KBD -DLIRC_DEVICE=\"/var/run/lirc/lircd\" -DVIDEODIR=\"/media/HD1_DATA/video.00\" -DCONFDIR=\"/var/lib/vdr\" -DCACHEDIR=\"/var/cache/vdr\" -DRESDIR=\"/usr/local/share/vdr\" -DPLUGINDIR=\"/usr/local/lib/vdr\" -DLOCDIR=\"/usr/local/share/locale\" -I/usr/include/freetype2 -o channels.o channels.c g++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DREMOTE_KBD -DLIRC_DEVICE=\"/var/run/lirc/lircd\" -DVIDEODIR=\"/media/HD1_DATA/video.00\" -DCONFDIR=\"/var/lib/vdr\" -DCACHEDIR=\"/var/cache/vdr\" -DRESDIR=\"/usr/local/share/vdr\" -DPLUGINDIR=\"/usr/local/lib/vdr\" -DLOCDIR=\"/usr/local/share/locale\" -I/usr/include/freetype2 -o ci.o ci.c g++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DREMOTE_KBD -DLIRC_DEVICE=\"/var/run/lirc/lircd\" -DVIDEODIR=\"/media/HD1_DATA/video.00\" -DCONFDIR=\"/var/lib/vdr\" -DCACHEDIR=\"/var/cache/vdr\" -DRESDIR=\"/usr/local/share/vdr\" -DPLUGINDIR=\"/usr/local/lib/vdr\" -DLOCDIR=\"/usr/local/share/locale\" -I/usr/include/freetype2 -o config.o config.c g++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DREMOTE_KBD -DLIRC_DEVICE=\"/var/run/lirc/lircd\" -DVIDEODIR=\"/media/HD1_DATA/video.00\" -DCONFDIR=\"/var/lib/vdr\" -DCACHEDIR=\"/var/cache/vdr\" -DRESDIR=\"/usr/local/share/vdr\" -DPLUGINDIR=\"/usr/local/lib/vdr\" -DLOCDIR=\"/usr/local/share/locale\" -I/usr/include/freetype2 -o cutter.o cutter.c g++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -c -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DREMOTE_KBD -DLIRC_DEVICE=\"/var/run/lirc/lircd\" -DVIDEODIR=\"/media/HD1_DATA/video.00\" -DCONFDIR=\"/var/lib/vdr\" -DCACHEDIR=\"/var/cache/vdr\" -DRESDIR=\"/usr/local/share/vdr\" -DPLUGINDIR=\"/usr/local/lib/vdr\" -DLOCDIR=\"/usr/local/share/locale\" -I/usr/include/freetype2 -o device.o device.c device.c: In static member function ‘static bool cDevice::SwitchChannel(int)’: device.c:725:17: error: ‘MsgChannelProtected’ is not a member of ‘cStatus’ device.c: In member function ‘eSetChannelResult cDevice::SetChannel(const cChannel*, bool)’: device.c:750:19: error: ‘MsgChannelProtected’ is not a member of ‘cStatus’ make: *** [device.o] Fehler 1
Ich glaube der Patch für 1.7.33 passt nicht mehr auf den 2.0.1. -
Das sollte dir patch aber beim Anwenden zumindest ne Warnung rausgegeben haben. Sieht erst mal so aus als ob status.c|h überhaupt nicht gepatcht wurde.
BTW: Wenn patch Warnungen/Fehler Anzeigt muss man denen mit Codeverständis nachgehen. Ansonsten gibts möglicherweise nen VDR mit seltsamen und schwer zu fassenden Fehlfunktionen (Auch wenns compile evtl. fehlerfrei durchläuft).
cu
-
Hi,
Ich erhalte drei *.rej-Dateien, aber ich weiss leider nicht, was ich da jetzt ändern muss.
Diff
Alles anzeigen--- vdr-1.7.33/device.c 2012-11-19 10:59:09.000000000 +0100 +++ /dev/null @@ -721,6 +721,7 @@ cChannel *channel; while ((channel = Channels.GetByNumber(n, Direction)) != NULL) { // try only channels which are currently available + if (!cStatus::MsgChannelProtected(0, channel)) // PIN PATCH if (GetDevice(channel, LIVEPRIORITY, true, true)) break; n = channel->Number() + Direction; @@ -742,6 +743,12 @@ eSetChannelResult cDevice::SetChannel(const cChannel *Channel, bool LiveView) { + // I hope 'LiveView = false' indicates a channel switch for recording, // PIN PATCH + // I really don't know, but it works ... // PIN PATCH + + if (LiveView && cStatus::MsgChannelProtected(this, Channel)) // PIN PATCH + return scrNotAvailable; // PIN PATCH + cStatus::MsgChannelSwitch(this, 0, LiveView); if (LiveView) {
Diff
Alles anzeigen--- vdr-1.7.33/menu.c 2012-12-07 14:48:15.000000000 +0100 +++ /dev/null @@ -2296,7 +2307,10 @@ for (cRecording *recording = Recordings.First(); recording; recording = Recordings.Next(recording)) { if (!base || (strstr(recording->Name(), base) == recording->Name() && recording->Name()[strlen(base)] == FOLDERDELIMCHAR)) { cMenuRecordingItem *Item = new cMenuRecordingItem(recording, level); - if (*Item->Text() && (!Item->IsDirectory() || (!LastItem || !LastItem->IsDirectory() || strcmp(Item->Text(), LastItemText) != 0))) { + + if (*Item->Text() && (!Item->IsDirectory() || (!LastItem || !LastItem->IsDirectory() || strcmp(Item->Text(), LastItemText) != 0)) + && (!cStatus::MsgReplayProtected(Item->Recording(), Item->Name(), base, + Item->IsDirectory(), true))) { // PIN PATCH Add(Item); LastItem = Item; free(LastItemText);
Diff
Alles anzeigen--- vdr-1.7.33/menu.c 2012-12-07 14:48:15.000000000 +0100 +++ /dev/null @@ -2296,7 +2307,10 @@ for (cRecording *recording = Recordings.First(); recording; recording = Recordings.Next(recording)) { if (!base || (strstr(recording->Name(), base) == recording->Name() && recording->Name()[strlen(base)] == FOLDERDELIMCHAR)) { cMenuRecordingItem *Item = new cMenuRecordingItem(recording, level); - if (*Item->Text() && (!Item->IsDirectory() || (!LastItem || !LastItem->IsDirectory() || strcmp(Item->Text(), LastItemText) != 0))) { + + if (*Item->Text() && (!Item->IsDirectory() || (!LastItem || !LastItem->IsDirectory() || strcmp(Item->Text(), LastItemText) != 0)) + && (!cStatus::MsgReplayProtected(Item->Recording(), Item->Name(), base, + Item->IsDirectory(), true))) { // PIN PATCH Add(Item); LastItem = Item; free(LastItemText); root@xi:/usr/local/src/vdr# cat status.h.rej --- vdr-1.7.33/status.h 2012-03-07 15:16:57.000000000 +0100 +++ /dev/null @@ -82,6 +83,24 @@ // The OSD displays the single line Text with the current channel information. virtual void OsdProgramme(time_t PresentTime, const char *PresentTitle, const char *PresentSubtitle, time_t FollowingTime, const char *FollowingTitle, const char *FollowingSubtitle) {} // The OSD displays the given programme information. + virtual bool ChannelProtected(const cDevice *Device, const cChannel* Channel) { return false; } // PIN PATCH + // Checks if a channel is protected. + virtual bool ReplayProtected(const cRecording* Recording, const char* Name, + const char* Base, bool isDirectory, int menuView = false) { return false; } // PIN PATCH + // Checks if a recording is protected. + virtual void RecordingFile(const char* FileName) {} // PIN PATCH + // The given DVB device has started recording to FileName. FileName is the name of the + // recording directory + virtual void TimerCreation(cTimer* Timer, const cEvent *Event) {} // PIN PATCH + // The given timer is created + virtual bool PluginProtected(cPlugin* Plugin, int menuView = false) { return false; } // PIN PATCH + // Checks if a plugin is protected. + virtual void UserAction(const eKeys key, const cOsdObject* Interact) {} // PIN PATCH + // report user action + virtual bool MenuItemProtected(const char* Name, int menuView = false) { return false; } // PIN PATCH + // Checks if a menu entry is protected. + + public: cStatus(void); virtual ~cStatus(); @@ -103,6 +122,15 @@ static void MsgOsdTextItem(const char *Text, bool Scroll = false); static void MsgOsdChannel(const char *Text); static void MsgOsdProgramme(time_t PresentTime, const char *PresentTitle, const char *PresentSubtitle, time_t FollowingTime, const char *FollowingTitle, const char *FollowingSubtitle); + static bool MsgChannelProtected(const cDevice* Device, const cChannel* Channel); // PIN PATCH + static bool MsgReplayProtected(const cRecording* Recording, const char* Name, + const char* Base, bool isDirectory, int menuView = false); // PIN PATCH + static void MsgRecordingFile(const char* FileName); // PIN PATCH + static void MsgTimerCreation(cTimer* Timer, const cEvent *Event); // PIN PATCH + static bool MsgPluginProtected(cPlugin* Plugin, int menuView = false); // PIN PATCH + static void MsgUserAction(const eKeys key, const cOsdObject* Interact); + static bool MsgMenuItemProtected(const char* Name, int menuView = false); // PIN PATCH + }; #endif //__STATUS_H
Gibt es nicht eine für 2.0.x vorbereitete Patch-Datei?
Grüße,
j. -
Gibt es nicht eine für 2.0.x vorbereitete Patch-Datei?
Hat yaVDR keine im 2.0er VDR Packet? Ansonsten auch mal bei easyVDR und Co. reinschauen. Oder bei den Packeten anderer Distributionen.
Der PIN Patch hat leider kein richtiges Zuhause, der fliegt immer nur irgendwo rum und lässt sich suchen
cu
-
So, versuche jetzt nochmal den PIN-Patch auf einen ungepatchten VDR anzuwenden.
Da bleibt jetzt noch ein Reject übrig:Diff
Alles anzeigen--- vdr-1.7.33/menu.c 2012-12-07 14:48:15.000000000 +0100 +++ /dev/null @@ -2296,7 +2307,10 @@ for (cRecording *recording = Recordings.First(); recording; recording = Recordings.Next(recording)) { if (!base || (strstr(recording->Name(), base) == recording->Name() && recording->Name()[strlen(base)] == FOLDERDELIMCHAR)) { cMenuRecordingItem *Item = new cMenuRecordingItem(recording, level); - if (*Item->Text() && (!Item->IsDirectory() || (!LastItem || !LastItem->IsDirectory() || strcmp(Item->Text(), LastItemText) != 0))) { + + if (*Item->Text() && (!Item->IsDirectory() || (!LastItem || !LastItem->IsDirectory() || strcmp(Item->Text(), LastItemText) != 0)) + && (!cStatus::MsgReplayProtected(Item->Recording(), Item->Name(), base, + Item->IsDirectory(), true))) { // PIN PATCH Add(Item); LastItem = Item; free(LastItemText);
-
Also das sollte der Pin-Patch in yaVDR sein: https://github.com/flensrocker…/patches/opt-65_pin.patch (bzw. mal direkt in dem vdr-Quellpaket in debian/patches gucken)
-
@seahawk
Danke für den Tipp! Leider erhalte ich mit diesem Patch noch mehr rejects, ich nehme an, dass da noch Rücksicht auf andere Plugins genommen wurde.Ich probiere mal den 1.7.33'er Patch für den plain VDR anzupassen.
-
Also irgendwie ist die Funktion so umgebaut worden, dass ich nicht weiss wie ich das anpassen muss
Code
Alles anzeigenvoid cMenuRecordings::Set(bool Refresh) { const char *CurrentRecording = cReplayControl::LastReplayed(); cMenuRecordingItem *LastItem = NULL; cThreadLock RecordingsLock(&Recordings); if (Refresh) { if (cMenuRecordingItem *ri = (cMenuRecordingItem *)Get(Current())) CurrentRecording = ri->Recording()->FileName(); } Clear(); GetRecordingsSortMode(DirectoryName()); Recordings.Sort(); for (cRecording *recording = Recordings.First(); recording; recording = Recordings.Next(recording)) { if (!base || (strstr(recording->Name(), base) == recording->Name() && recording->Name()[strlen(base)] == FOLDERDELIMCHAR)) { cMenuRecordingItem *Item = new cMenuRecordingItem(recording, level); cMenuRecordingItem *LastDir = NULL; if (Item->IsDirectory()) { // Sorting may ignore non-alphanumeric characters, so we need to explicitly handle directories in case they only differ in such characters: for (cMenuRecordingItem *p = LastItem; p; p = dynamic_cast<cMenuRecordingItem *>(p->Prev())) { if (p->Name() && strcmp(p->Name(), Item->Name()) == 0) { LastDir = p; break; } } } if (*Item->Text() && !LastDir) { Add(Item); LastItem = Item; if (Item->IsDirectory()) LastDir = Item; } else delete Item; if (LastItem) { if (CurrentRecording && strcmp(CurrentRecording, recording->FileName()) == 0) SetCurrent(LastItem); } if (LastDir) { LastDir->IncrementCounter(recording->IsNew()); LastItem = LastDir; } } } if (Refresh) Display(); }
(ich *glaube* Zeile 17 muss da geändert werden?! Reject ist das gleiche wie unter Post 15) -
Hi,
ich hol' das nochmal hoch.
Hat jemand eine Idee wie die Funktion abzuändern ist, damit VDR mit PIN-Plugin kompilliert werden kann?Grüße,
j. -
Moin!
Ich hatte noch keine Gelegenheit, mir den Patch noch mal anzusehen, vielleicht komme ich morgen dazu.
Lars.
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!