[vdr] [ANNOUNCE] VDR developer version 1.3.49
Udo Richter
udo_richter at gmx.de
Sat Apr 29 04:14:28 CEST 2006
Dominique Simon wrote:
> I have the following problem: If a timer is running and i press power
> off on the remote, VDR shows "eine Aufzeichnung läuft, trotzdem
> ausschalten?". VDR Shuts down no matter if i press a key or not... Can
> you verify this?
Yes, there's still a logical bug in it...
The 1.3.49 code shuts down if the recording shut down is confirmed *OR*
if the plugin shut down is confirmed. Unfortunately, if no plugin has
activity, this counts as confirmed, so VDR will shut down no matter if
recording shut down was confirmed or not.
The attached patch reverses the logic a bit, and shuts down if
recordings *AND* plugins confirm. UserShutdown is set up first, so that
any non-confirm can leave with 'break'. If all tests pass, ForceShutdown
is set too.
I've tested all variants I can think of, and it seems to work. More
testing is of course welcome, so we can mark this one fixed before Sunday.
Btw: There's a slight change in behavior since 1.3.46: Before, a simple
shut down without confirms did not set ForceShutdown=true, since then,
ForceShutdown is set true even if no confirmation was necessary.
cPluginManager::Active does not differentiate between confirmed, denied
and 'no activity'. The new way is slightly more aggressive, but seems
more consistent and I don't think that it has bigger negative side effects.
(1.3.49 can shut down while cutting, 1.3.46 can shut down while cutting
only if also a recording is running, and shutdown is confirmed.)
Cheers,
Udo
-------------- next part --------------
--- vdr-1.3.49-orig/vdr.c 2006-04-28 15:23:55.000000000 +0200
+++ vdr-1.3.49/vdr.c 2006-04-29 03:20:25.876919696 +0200
@@ -976,14 +971,15 @@
Skins.Message(mtError, tr("Can't shutdown - option '-s' not given!"));
break;
}
- if (cRecordControls::Active()) {
- if (Interface->Confirm(tr("Recording - shut down anyway?")))
- ForceShutdown = true;
- }
- if (!cPluginManager::Active(tr("shut down anyway?")))
- ForceShutdown = true;
LastActivity = 1; // not 0, see below!
UserShutdown = true;
+ if (cRecordControls::Active()) {
+ if (!Interface->Confirm(tr("Recording - shut down anyway?")))
+ break;
+ }
+ if (cPluginManager::Active(tr("shut down anyway?")))
+ break;
+ ForceShutdown = true;
break;
default: break;
}
More information about the vdr
mailing list