Archiv > General
Mld 3.x Getestet
MarMic:
ehm haette jetzt einfach perl5.10.1 aus dem root verknüpft und darauf ne perl verknüpfung! aber dann habe wir weiterhin das problem das wenn nun natty mit 5.12 kommt das nicht geht
weisste was ich meine?
greetz
Matthias:
--- Quote --- Hallo Claus, Hallo MarMic, Hallo @all
. Meine Tochter geht inzwischen schon straff auf die 3 zu :), wodurch ich ab und zu für euch zur Verfügung stehen könnte.
Viele Liebe Grüße
Christian
--- End quote ---
Hallo Christian,
schön von Dir zu hören.
ist das echt schon 3 Jahre her?
Kaum zu glauben!!!
Ich bin diese Woche noch halb beschäftlich halb privat im warmen Israel - sitze gerade draussen .-)
ich bn ab Montag wieder dabei und teste fleißig.
So long.
Matthias
Christian:
hi,
ich habe schon zwei drei addons/plugins gebaut ...
an welchen addons/plugins arbeitet ihr? Wie wollen/können wir uns verständigen?
lg
christian
MarMic:
hi christian,
hmm am besten wir nehmen das baord so kann jeder intressierte mitlesen? was hast du denn gebaut? wenns geht am besten claus zu senden und der checkts erstmal noch ein!
ich hatte mich am epgsearch versucht bekomme aber ne fehlermeldung die andere auch bekommen... siehe:hier
greetz
Christian:
--- Quote --- hi christian,
hmm am besten wir nehmen das baord so kann jeder intressierte mitlesen? was hast du denn gebaut? wenns geht am besten claus zu senden und der checkts erstmal noch ein!
ich hatte mich am epgsearch versucht bekomme aber ne fehlermeldung die andere auch bekommen... siehe:hier
greetz
--- End quote ---
das gleiche problem habe ich auch bei extrecmenu
der vdr muss gepatch werden.
vdr/childlock.h und co fehlen...
--- Code: ---diff -Naurp vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks/Makefile vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks-pin/Makefile
--- vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks/Makefile 2010-02-01 14:54:18.000000000 +0000
+++ vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks-pin/Makefile 2010-02-01 14:56:26.000000000 +0000
@@ -45,6 +45,8 @@ OBJS = audio.o channels.o ci.o config.o
OBJS += vdrttxtsubshooks.o
+OBJS += childlock.o
+
ifndef NO_KBD
DEFINES += -DREMOTE_KBD
endif
diff -Naurp vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks/childlock.c vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks-pin/childlock.c
--- vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks/childlock.c 1970-01-01 00:00:00.000000000 +0000
+++ vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks-pin/childlock.c 2010-02-01 14:56:26.000000000 +0000
@@ -0,0 +1,166 @@
+#include "childlock.h"
+#include "childlockservice.h"
+#include "plugin.h"
+
+using namespace PinPatch;
+
+IChildLockService* ChildLock::_cachedChildLockService = NULL;
+INotificationService* ChildLock::_cachedNotificationService = NULL;
+
+IChildLockService* ChildLock::ChildLockService()
+{
+ if (!_cachedChildLockService)
+ {
+ IChildLockService* childLockService;
+
+ if (cPluginManager::CallFirstService(CHILDLOCK_SERVICE_ID, &childLockService))
+ {
+ _cachedChildLockService = childLockService;
+ }
+ else
+ {
+ _cachedChildLockService = NULL;
+ }
+ }
+
+ return _cachedChildLockService;
+}
+
+bool ChildLock::IsUnlocked()
+{
+ if (IChildLockService* childLockService = ChildLockService())
+ {
+ return childLockService->IsUnlocked();
+ }
+ else
+ {
+ return false;
+ }
+}
+
+bool ChildLock::IsMenuProtected(const char* MenuName)
+{
+ if (IChildLockService* childLockService = ChildLockService())
+ {
+ return childLockService->IsMenuProtected(MenuName);
+ }
+ else
+ {
+ return false;
+ }
+}
+
+bool ChildLock::IsChannelProtected(const cChannel* Channel)
+{
+ if (IChildLockService* childLockService = ChildLockService())
+ {
+ return childLockService->IsChannelProtected(Channel);
+ }
+ else
+ {
+ return false;
+ }
+}
+
+bool ChildLock::IsRecordingProtected(const cRecording* Recording, const char* Name, const char* Base, bool isDirectory)
+{
+ if (IChildLockService* childLockService = ChildLockService())
+ {
+ return childLockService->IsRecordingProtected(Recording, Name, Base, isDirectory);
+ }
+ else
+ {
+ return false;
+ }
+}
+
+bool ChildLock::IsPluginProtected(cPlugin* Plugin)
+{
+ if (IChildLockService* childLockService = ChildLockService())
+ {
+ return childLockService->IsPluginProtected(Plugin);
+ }
+ else
+ {
+ return false;
+ }
+}
+
+bool ChildLock::IsMenuHidden(const char* MenuName)
+{
+ if (IChildLockService* childLockService = ChildLockService())
+ {
+ return childLockService->IsMenuHidden(MenuName);
+ }
+ else
+ {
+ return false;
+ }
+}
+
+bool ChildLock::IsPluginHidden(cPlugin* Plugin)
+{
+ if (IChildLockService* childLockService = ChildLockService())
+ {
+ return childLockService->IsPluginHidden(Plugin);
+ }
+ else
+ {
+ return false;
+ }
+}
+
+bool ChildLock::IsRecordingHidden(const cRecording* Recording, const char* Name, const char* Base, bool isDirectory)
+{
+ if (IChildLockService* childLockService = ChildLockService())
+ {
+ return childLockService->IsRecordingHidden(Recording, Name, Base, isDirectory);
+ }
+ else
+ {
+ return false;
+ }
+}
+
+INotificationService* ChildLock::NotificationService()
+{
+ if (!_cachedNotificationService)
+ {
+ INotificationService* notificationService;
+
+ if (cPluginManager::CallFirstService(NOTIFICATION_SERVICE_ID, ¬ificationService))
+ {
+ _cachedNotificationService = notificationService;
+ }
+ else
+ {
+ _cachedNotificationService = NULL;
+ }
+ }
+
+ return _cachedNotificationService;
+}
+
+void ChildLock::NotifyTimerCreation(cTimer* Timer, const cEvent *Event)
+{
+ if (INotificationService* notificationService = NotificationService())
+ {
+ notificationService->NotifyTimerCreation(Timer, Event);
+ }
+}
+
+void ChildLock::NotifyRecordingStart(const char* FileName)
+{
+ if (INotificationService* notificationService = NotificationService())
+ {
+ notificationService->NotifyRecordingStart(FileName);
+ }
+}
+
+void ChildLock::NotifyUserAction(const eKeys key, const cOsdObject* Interact)
+{
+ if (INotificationService* notificationService = NotificationService())
+ {
+ notificationService->NotifyUserAction(key, Interact);
+ }
+}
diff -Naurp vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks/childlock.h vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks-pin/childlock.h
--- vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks/childlock.h 1970-01-01 00:00:00.000000000 +0000
+++ vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks-pin/childlock.h 2010-02-01 14:56:26.000000000 +0000
@@ -0,0 +1,47 @@
+#ifndef __CHILDLOCK_H
+#define __CHILDLOCK_H
+
+#include "keys.h"
+
+class cChannel;
+class cRecording;
+class cPlugin;
+class cTimer;
+class cEvent;
+class cOsdObject;
+
+namespace PinPatch
+{
+
+class IChildLockService;
+class INotificationService;
+
+class ChildLock
+{
+ private:
+ static IChildLockService* _cachedChildLockService;
+ static INotificationService* _cachedNotificationService;
+
+ private:
+ static IChildLockService* ChildLockService();
+ static INotificationService* NotificationService();
+
+ public:
+ static bool IsUnlocked();
+
+ static bool IsMenuProtected(const char* MenuName);
+ static bool IsChannelProtected(const cChannel* Channel);
+ static bool IsRecordingProtected(const cRecording* Recording, const char* Name, const char* Base, bool isDirectory);
+ static bool IsPluginProtected(cPlugin* Plugin);
+
+ static bool IsMenuHidden(const char* MenuName);
+ static bool IsPluginHidden(cPlugin* Plugin);
+ static bool IsRecordingHidden(const cRecording* Recording, const char* Name, const char* Base, bool isDirectory);
+
+ static void NotifyTimerCreation(cTimer* Timer, const cEvent *Event);
+ static void NotifyRecordingStart(const char* FileName);
+ static void NotifyUserAction(const eKeys key, const cOsdObject* Interact);
+};
+
+};
+#endif
diff -Naurp vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks/childlockservice.h vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks-pin/childlockservice.h
--- vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks/childlockservice.h 1970-01-01 00:00:00.000000000 +0000
+++ vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks-pin/childlockservice.h 2010-02-01 14:56:26.000000000 +0000
@@ -0,0 +1,46 @@
+#ifndef __CHILDLOCKSERVICE_H
+#define __CHILDLOCKSERVICE_H
+
+#include "keys.h"
+
+class cChannel;
+class cRecording;
+class cPlugin;
+class cTimer;
+class cEvent;
+class cOsdObject;
+
+namespace PinPatch
+{
+
+#define CHILDLOCK_SERVICE_ID "ChildLockService-v0.1::ChildLockService"
+
+class IChildLockService
+{
+ public:
+ virtual ~IChildLockService() {};
+ virtual bool IsUnlocked() = 0;
+
+ virtual bool IsMenuProtected(const char* MenuName) = 0;
+ virtual bool IsChannelProtected(const cChannel* Channel) = 0;
+ virtual bool IsRecordingProtected(const cRecording* Recording, const char* Name, const char* Base, bool isDirectory) = 0;
+ virtual bool IsPluginProtected(cPlugin* Plugin) = 0;
+
+ virtual bool IsMenuHidden(const char* MenuName) = 0;
+ virtual bool IsPluginHidden(cPlugin* Plugin) = 0;
+ virtual bool IsRecordingHidden(const cRecording* Recording, const char* Name, const char* Base, bool isDirectory) = 0;
+};
+
+#define NOTIFICATION_SERVICE_ID "PinPlugin-v0.1::NotificationService"
+
+class INotificationService
+{
+ public:
+ virtual ~INotificationService() {};
+ virtual void NotifyTimerCreation(cTimer* Timer, const cEvent *Event) = 0;
+ virtual void NotifyRecordingStart(const char* FileName) = 0;
+ virtual void NotifyUserAction(const eKeys key, const cOsdObject* Interact) = 0;
+};
+
+};
+#endif
diff -Naurp vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks/device.c vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks-pin/device.c
--- vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks/device.c 2010-02-01 14:54:18.000000000 +0000
+++ vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks-pin/device.c 2010-02-01 14:56:26.000000000 +0000
@@ -19,6 +19,7 @@
#include "status.h"
#include "transfer.h"
#include "vdrttxtsubshooks.h"
+#include "childlock.h"
// --- cLiveSubtitle ---------------------------------------------------------
@@ -637,6 +638,7 @@ bool cDevice::SwitchChannel(int Directio
cChannel *channel;
while ((channel = Channels.GetByNumber(n, Direction)) != NULL) {
// try only channels which are currently available
+ if (!PinPatch::ChildLock::IsChannelProtected(channel))
if (GetDevice(channel, 0, true))
break;
n = channel->Number() + Direction;
@@ -658,6 +660,9 @@ bool cDevice::SwitchChannel(int Directio
eSetChannelResult cDevice::SetChannel(const cChannel *Channel, bool LiveView)
{
+ if (LiveView && PinPatch::ChildLock::IsChannelProtected(Channel))
+ return scrNotAvailable;
+
if (LiveView) {
StopReplay();
DELETENULL(liveSubtitle);
diff -Naurp vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks/menu.c vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks-pin/menu.c
--- vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks/menu.c 2010-02-01 14:54:39.000000000 +0000
+++ vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks-pin/menu.c 2010-02-01 15:00:48.000000000 +0000
@@ -32,6 +32,7 @@
#include "transfer.h"
#include "videodir.h"
#include "menuorgpatch.h"
+#include "childlock.h"
#define MAXWAIT4EPGINFO 3 // seconds
#define MODETIMEOUT 3 // seconds
@@ -911,6 +912,10 @@ cMenuEditTimer::cMenuEditTimer(cTimer *T
Add(new cMenuEditBitItem( tr("VPS"), &data.flags, tfVps));
Add(new cMenuEditIntItem( tr("Priority"), &data.priority, 0, MAXPRIORITY));
Add(new cMenuEditIntItem( tr("Lifetime"), &data.lifetime, 0, MAXLIFETIME));
+
+ if (PinPatch::ChildLock::IsUnlocked())
+ Add(new cMenuEditBitItem(tr("Timer$Childlock"), &data.flags, tfProtected));
+
Add(file = new cMenuEditStrItem( tr("File"), data.file, sizeof(data.file)));
SetFirstDayItem();
}
@@ -2429,7 +2434,8 @@ void cMenuRecordings::Set(bool Refresh)
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() && (!LastItem || strcmp(Item->Text(), LastItemText) != 0)) {
+ if ((*Item->Text() && (!LastItem || strcmp(Item->Text(), LastItemText) != 0))
+ && (!PinPatch::ChildLock::IsRecordingHidden(GetRecording(Item), Item->Name(), base, Item->IsDirectory()))) {
Add(Item);
LastItem = Item;
free(LastItemText);
@@ -2479,6 +2485,9 @@ eOSState cMenuRecordings::Play(void)
{
cMenuRecordingItem *ri = (cMenuRecordingItem *)Get(Current());
if (ri) {
+ if (PinPatch::ChildLock::IsRecordingProtected(GetRecording(ri), ri->Name(), base, ri->IsDirectory()))
+ return osContinue;
+
if (ri->IsDirectory())
Open();
else {
@@ -3501,6 +3510,8 @@ void cMenuMain::Set(void)
}
else if ((*i)->IsPluginItem()) {
const char *item = (*i)->PluginMenuEntry();
+ cPlugin *plugin = cPluginManager::GetPlugin((*i)->PluginIndex());
+ if (!PinPatch::ChildLock::IsPluginHidden(plugin))
if (item)
osdItem = new cMenuPluginItem(hk(item), (*i)->PluginIndex());
}
@@ -3515,9 +3526,13 @@ void cMenuMain::Set(void)
// Basic menu items:
+ if (!PinPatch::ChildLock::IsMenuHidden("Schedule"))
Add(new cOsdItem(hk(tr("Schedule")), osSchedule));
+ if (!PinPatch::ChildLock::IsMenuHidden("Channels"))
Add(new cOsdItem(hk(tr("Channels")), osChannels));
+ if (!PinPatch::ChildLock::IsMenuHidden("Timers"))
Add(new cOsdItem(hk(tr("Timers")), osTimers));
+ if (!PinPatch::ChildLock::IsMenuHidden("Recordings"))
Add(new cOsdItem(hk(tr("Recordings")), osRecordings));
// Plugins:
@@ -3525,18 +3540,22 @@ void cMenuMain::Set(void)
for (int i = 0;; i++) {
cPlugin *p = cPluginManager::GetPlugin(i);
if (p) {
+ if (!PinPatch::ChildLock::IsPluginHidden(p)) {
const char *item = p->MainMenuEntry();
if (item)
Add(new cMenuPluginItem(hk(item), i));
}
+ }
else
break;
}
// More basic menu items:
+ if (!PinPatch::ChildLock::IsMenuHidden("Setup"))
Add(new cOsdItem(hk(tr("Setup")), osSetup));
if (Commands.Count())
+ if (!PinPatch::ChildLock::IsMenuHidden("Commands"))
Add(new cOsdItem(hk(tr("Commands")), osCommands));
}
@@ -3617,6 +3636,11 @@ eOSState cMenuMain::ProcessKey(eKeys Key
eOSState state = cOsdMenu::ProcessKey(Key);
HadSubMenu |= HasSubMenu();
+ cOsdItem* item = Get(Current());
+ if (item && item->Text() && state != osContinue && state != osUnknown && state != osBack)
+ if (PinPatch::ChildLock::IsMenuProtected(item->Text()))
+ return osContinue;
+
cOsdMenu *menu = NULL;
switch (state) {
case osSchedule:
@@ -3663,6 +3687,7 @@ eOSState cMenuMain::ProcessKey(eKeys Key
if (item) {
cPlugin *p = cPluginManager::GetPlugin(item->PluginIndex());
if (p) {
+ if (!PinPatch::ChildLock::IsPluginProtected(p)) {
cOsdObject *menu = p->MainMenuAction();
if (menu) {
if (menu->IsMenu())
@@ -3673,6 +3698,7 @@ eOSState cMenuMain::ProcessKey(eKeys Key
}
}
}
+ }
}
state = osEnd;
}
@@ -3881,6 +3907,7 @@ cChannel *cDisplayChannel::NextAvailable
Channel = Direction > 0 ? Channels.Next(Channel) : Channels.Prev(Channel);
if (!Channel && Setup.ChannelsWrap)
Channel = Direction > 0 ? Channels.First() : Channels.Last();
+ if (!PinPatch::ChildLock::IsChannelProtected(Channel))
if (Channel && !Channel->GroupSep() && cDevice::GetDevice(Channel, 0, true))
return Channel;
}
@@ -4513,6 +4540,7 @@ bool cRecordControls::Start(cTimer *Time
for (int i = 0; i < MAXRECORDCONTROLS; i++) {
if (!RecordControls[i]) {
RecordControls[i] = new cRecordControl(device, Timer, Pause);
+ PinPatch::ChildLock::NotifyRecordingStart(RecordControls[i]->FileName());
return RecordControls[i]->Process(time(NULL));
}
}
diff -Naurp vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks/po/de_DE.po vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks-pin/po/de_DE.po
--- vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks/po/de_DE.po 2010-02-01 13:57:45.000000000 +0000
+++ vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks-pin/po/de_DE.po 2010-02-01 14:56:26.000000000 +0000
@@ -635,6 +635,9 @@ msgstr "Priorität"
msgid "Lifetime"
msgstr "Lebensdauer"
+msgid "Timer$Childlock"
+msgstr "Gesichert"
+
msgid "File"
msgstr "Datei"
diff -Naurp vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks/po/fr_FR.po vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks-pin/po/fr_FR.po
--- vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks/po/fr_FR.po 2010-02-01 13:57:45.000000000 +0000
+++ vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks-pin/po/fr_FR.po 2010-02-01 14:56:26.000000000 +0000
@@ -641,6 +641,9 @@ msgstr "Priorité"
msgid "Lifetime"
msgstr "Durée de vie"
+msgid "Timer$Childlock"
+msgstr "Adulte"
+
msgid "File"
msgstr "Fichier"
diff -Naurp vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks/timers.c vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks-pin/timers.c
--- vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks/timers.c 2010-01-16 11:18:53.000000000 +0000
+++ vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks-pin/timers.c 2010-02-01 14:56:26.000000000 +0000
@@ -16,6 +16,7 @@
#include "recording.h"
#include "remote.h"
#include "status.h"
+#include "childlock.h"
#define VFAT_MAX_FILENAME 40 // same as MAX_SUBTITLE_LENGTH in recording.c
@@ -27,6 +28,7 @@
cTimer::cTimer(bool Instant, bool Pause, cChannel *Channel)
{
+ aux = NULL;
startTime = stopTime = 0;
lastSetEvent = 0;
recording = pending = inVpsMargin = false;
@@ -47,7 +49,6 @@ cTimer::cTimer(bool Instant, bool Pause,
priority = Pause ? Setup.PausePriority : Setup.DefaultPriority;
lifetime = Pause ? Setup.PauseLifetime : Setup.DefaultLifetime;
*file = 0;
- aux = NULL;
event = NULL;
if (Instant && channel)
snprintf(file, sizeof(file), "%s%s", Setup.MarkInstantRecord ? "@" : "", *Setup.NameInstantRecord ? Setup.NameInstantRecord : channel->Name());
@@ -60,6 +61,7 @@ cTimer::cTimer(bool Instant, bool Pause,
cTimer::cTimer(const cEvent *Event)
{
+ aux = NULL;
startTime = stopTime = 0;
lastSetEvent = 0;
recording = pending = inVpsMargin = false;
@@ -93,8 +95,8 @@ cTimer::cTimer(const cEvent *Event)
file[Utf8SymChars(file, VFAT_MAX_FILENAME)] = 0;
dsyslog("timer file name truncated to '%s'", file);
}
- aux = NULL;
event = NULL; // let SetEvent() be called to get a log message
+ PinPatch::ChildLock::NotifyTimerCreation(this, Event);
}
cTimer::cTimer(const cTimer &Timer)
@@ -269,6 +271,8 @@ cString cTimer::PrintFirstDay(void) cons
return ""; // not NULL, so the caller can always use the result
}
+#define AUX_STR_PROTECTED "<pin-plugin><protected>yes</protected></pin-plugin>"
+
bool cTimer::Parse(const char *s)
{
char *channelbuffer = NULL;
@@ -323,6 +327,8 @@ bool cTimer::Parse(const char *s)
result = false;
}
}
+ if (aux && strstr(aux, AUX_STR_PROTECTED))
+ SetFlags(tfProtected);
free(channelbuffer);
free(daybuffer);
free(filebuffer);
@@ -592,6 +598,26 @@ void cTimer::SetPriority(int Priority)
void cTimer::SetFlags(uint Flags)
{
flags |= Flags;
+
+ char* tmp = NULL;
+ char* position;
+
+ if (HasFlags(tfProtected)) {
+ if (!aux || !strstr(aux, AUX_STR_PROTECTED)) {
+ if (aux) {
+ tmp = strdup(aux);
+ free(aux);
+ }
+ asprintf(&aux,"%s%s", tmp ? tmp : "", AUX_STR_PROTECTED);
+ }
+ }
+ else if (aux && (position = strstr(aux, AUX_STR_PROTECTED))) {
+ asprintf(&tmp, "%.*s%s", position-aux, aux, position+strlen(AUX_STR_PROTECTED));
+ free(aux);
+ aux = strdup(tmp);
+ }
+
+ free(tmp);
}
void cTimer::ClrFlags(uint Flags)
diff -Naurp vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks/timers.h vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks-pin/timers.h
--- vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks/timers.h 2008-02-16 14:33:23.000000000 +0000
+++ vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks-pin/timers.h 2010-02-01 14:56:26.000000000 +0000
@@ -20,6 +20,7 @@ enum eTimerFlags { tfNone = 0x0000,
tfInstant = 0x0002,
tfVps = 0x0004,
tfRecording = 0x0008,
+ tfProtected = 0x8000,
tfAll = 0xFFFF,
};
enum eTimerMatch { tmNone, tmPartial, tmFull };
diff -Naurp vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks/vdr.c vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks-pin/vdr.c
--- vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks/vdr.c 2010-01-31 11:14:40.000000000 +0000
+++ vdr-1.7.12-liemikuutio-ttxtsubs-menuorg-MainMenuHooks-pin/vdr.c 2010-02-01 14:56:26.000000000 +0000
@@ -63,6 +63,7 @@
#include "timers.h"
#include "tools.h"
#include "transfer.h"
+#include "childlock.h"
#include "videodir.h"
#define MINCHANNELWAIT 10 // seconds to wait between failed channel switchings
@@ -928,6 +929,7 @@ int main(int argc, char *argv[])
cOsdObject *Interact = Menu ? Menu : cControl::Control();
eKeys key = Interface->GetKey(!Interact || !Interact->NeedsFastResponse());
if (ISREALKEY(key)) {
+ PinPatch::ChildLock::NotifyUserAction(key, Interact);
EITScanner.Activity();
// Cancel shutdown countdown:
if (ShutdownHandler.countdown)
@@ -1000,10 +1002,12 @@ int main(int argc, char *argv[])
cControl::Control()->Hide();
cPlugin *plugin = cPluginManager::GetPlugin(PluginName);
if (plugin) {
+ if (!PinPatch::ChildLock::IsPluginProtected(plugin)) {
Menu = plugin->MainMenuAction();
if (Menu)
Menu->Show();
}
+ }
else
esyslog("ERROR: unknown plugin '%s'", PluginName);
}
@@ -1217,9 +1221,11 @@ int main(int argc, char *argv[])
// Instant resume of the last viewed recording:
case kPlay:
if (cReplayControl::LastReplayed()) {
+ if (!PinPatch::ChildLock::IsRecordingProtected(0, cReplayControl::LastReplayed(), 0, false)) {
cControl::Shutdown();
cControl::Launch(new cReplayControl);
}
+ }
break;
default: break;
}
--- End code ---
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version