diff -Nru -x PLUGINS vdr-1.2.6-orig/i18n.c vdr-1.2.6/i18n.c --- vdr-1.2.6-orig/i18n.c 2003-09-11 15:51:56.000000000 +0200 +++ vdr-1.2.6/i18n.c 2004-11-30 15:46:31.450289560 +0100 @@ -873,8 +873,8 @@ "Tényleg újraindítani?", "Segur que voleu reiniciar?", }, - { "Recording - restart anyway?", - "Aufnahme läuft - trotzdem neu starten?", + { "Busy - restart anyway?",//TODO + "System beschäftigt - trotzdem neu starten?", "Snemanje - zares ponoven zagon?", "In registrazione - restart comunque?", "Opname loopt - toch opnieuw starten?", @@ -890,8 +890,8 @@ "Felvétel folyamatban van - mégis újraindítani?", "Gravant - Reiniciar de totes maneres?", }, - { "Recording - shut down anyway?", - "Aufnahme läuft - trotzdem ausschalten?", + { "Busy - shut down anyway?", + "System beschäftigt - trotzdem ausschalten?", "Snemanje - zares izklopi?", "In registrazione - spengo comunque?", "Opname loopt - toch uitschakelen?", diff -Nru -x PLUGINS vdr-1.2.6-orig/menu.c vdr-1.2.6/menu.c --- vdr-1.2.6-orig/menu.c 2003-10-03 16:36:20.000000000 +0200 +++ vdr-1.2.6/menu.c 2004-11-30 15:45:06.224245888 +0100 @@ -2365,7 +2365,7 @@ eOSState cMenuSetup::Restart(void) { - if (Interface->Confirm(cRecordControls::Active() ? tr("Recording - restart anyway?") : tr("Really restart?"))) { + if (Interface->Confirm(cRecordControls::Active() || cPluginManager::Active() ? tr("Busy - restart anyway?") : tr("Really restart?"))) { cThread::EmergencyExit(true); return osEnd; } diff -Nru -x PLUGINS vdr-1.2.6-orig/plugin.c vdr-1.2.6/plugin.c --- vdr-1.2.6-orig/plugin.c 2003-08-30 16:52:58.000000000 +0200 +++ vdr-1.2.6/plugin.c 2004-11-30 15:43:49.000000000 +0100 @@ -64,6 +64,11 @@ { } +bool cPlugin::Active(void) +{ + return false; +} + const char *cPlugin::MainMenuEntry(void) { return NULL; @@ -369,6 +374,18 @@ return NULL; } +bool cPluginManager::Active(void) +{ + if (pluginManager) { + for (cDll *dll = pluginManager->dlls.First(); dll; dll = pluginManager->dlls.Next(dll)) { + cPlugin *p = dll->Plugin(); + if (p && p->Active()) + return true; + } + } + return false; +} + void cPluginManager::Shutdown(bool Log) { cDll *dll; diff -Nru -x PLUGINS vdr-1.2.6-orig/plugin.h vdr-1.2.6/plugin.h --- vdr-1.2.6-orig/plugin.h 2003-05-09 16:57:55.000000000 +0200 +++ vdr-1.2.6/plugin.h 2004-11-30 15:43:49.000000000 +0100 @@ -36,6 +36,7 @@ virtual bool Initialize(void); virtual bool Start(void); virtual void Housekeeping(void); + virtual bool Active(void); virtual const char *MainMenuEntry(void); virtual cOsdObject *MainMenuAction(void); @@ -85,6 +86,7 @@ static bool HasPlugins(void); static cPlugin *GetPlugin(int Index); static cPlugin *GetPlugin(const char *Name); + static bool Active(void); void Shutdown(bool Log = false); }; diff -Nru -x PLUGINS vdr-1.2.6-orig/vdr.c vdr-1.2.6/vdr.c --- vdr-1.2.6-orig/vdr.c 2003-09-14 11:36:54.000000000 +0200 +++ vdr-1.2.6/vdr.c 2004-11-30 15:43:49.000000000 +0100 @@ -612,8 +612,8 @@ Interface->Error(tr("Can't shutdown - option '-s' not given!")); break; } - if (cRecordControls::Active()) { - if (Interface->Confirm(tr("Recording - shut down anyway?"))) + if (cRecordControls::Active() || cPluginManager::Active()) { + if (Interface->Confirm(tr("Busy - shut down anyway?"))) ForceShutdown = true; } LastActivity = 1; // not 0, see below! @@ -725,7 +725,7 @@ Interface->Info(tr("Editing process finished")); } } - if (!Interact && ((!cRecordControls::Active() && !cCutter::Active() && (!Interface->HasSVDRPConnection() || UserShutdown)) || ForceShutdown)) { + if (!Interact && ((!cRecordControls::Active() && !cCutter::Active() && !cPluginManager::Active() && (!Interface->HasSVDRPConnection() || UserShutdown)) || ForceShutdown)) { time_t Now = time(NULL); if (Now - LastActivity > ACTIVITYTIMEOUT) { // Shutdown: