Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[vdr] Re: No osd available in Plugins-Start()
Achim Tuffentsammer wrote:
Hello
just a minor issue.
When the remote-plugins fails to open its input devices
(in its Start() method) it tries to display an error message
on the OSD. This crashes vdr since at this point there's no osd
or skin available:
#0 0x080cfb2e in cSkins::Message (this=0x8197fa8, Type=mtError,
s=0xbffff5c0 "/dev/input/event0: Keine Berechtigung", Seconds=0)
at skins.h:307
#1 0xb7d07058 in cPluginRemote::Start ()
from ./PLUGINS/lib/libvdr-remote.so.1.3.18
#2 0x080bed7b in cPluginManager::StartPlugins (this=0xbffff880)
at plugin.c:323
#3 0x080e5b0d in main (argc=136027000, argv=0x0) at vdr.c:465
Quote from PLUGINS.html
Start() is called after the primary device and user interface has been
set up
from vdr.c
// Start plugins:
if (!PluginManager.StartPlugins())
EXIT(2);
// Skins:
Change the order here and everything works fine.
So what's the best solution - adjust remote-plugin,
vdr.c or PLUGINS.html ?
Rg. Achim
Well, the description is from a time before there were skins.
Now we're facing a chicken-and-egg situation, because plugins
can implement skins, so before the plugins have been started,
there are no skins, yet (except for the default skins, which could
already be there, but that's probably not what a user who has
a skin that's implemented by a plugin wants).
So I guess the fix will be to create the default skins before
starting the plugins, have every skin set itself as the "current"
skin (so if the skin plugin is loaded before the remote plugin,
the error message will be given using the correct skin) and
calling Skins.SetCurrent() and cThemes::Load() after the plugins
have been started.
Klaus
Home |
Main Index |
Thread Index