-----Original Message----- From: vdr-bounces@linuxtv.org [mailto:vdr-bounces@linuxtv.org] On Behalf Of Udo Richter Sent: Friday, November 04, 2005 10:00 AM To: VDR Mailing List Subject: Re: [vdr] mplayer w/ softdevice
Klaus Schmidinger wrote:
Thats a limitation of VDR's plugin system. A plugin cannot open a menu from replay mode or other situations, the only way to open a plugin menu is from the main menu.
Since version 1.3.32 a plugin can have its main menu function called through cRemote::CallPlugin().
Yes, already realized that. So if you want to open a menu, you can trick cRemote to send the plugin pseudo-key, let the main loop call the main menu action, catch that, and initiate a custom menu instead of the default menu. Talk about straight forward. ;) At least its more straight forward than calling SVDRP. :D
If some other plugin decides to do the same thing just a moment later, the call is skipped, so maybe its a good idea to watch for a timeout between CallPlugin() and MainMenuAction().
And of course there's that nasty problem of plugins loaded twice with the same name, in which case the MainMenuAction of the first loaded plugin will get all the calls. ;)
I've looked through vdr-portal and found this thread w/ patch: return-patch.tgz - http://www.vdr-portal.de/board/thread.php?threadid=40892&sid=5dcd58226ce... f1604598297e58db9
I did not test it yet, will do over weekend, I can't read German but it looks like work around for my issue.
Thanks, --Vlad
Vladimir Shved wrote:
I've looked through vdr-portal and found this thread w/ patch: return-patch.tgz - http://www.vdr-portal.de/board/thread.php?threadid=40892&sid=5dcd58226ce... f1604598297e58db9
This patch for VDR adds a osReturn state, so that any OSD object can re-call the main menu action by returning this. A similar trick for vanilla VDR uses osPlugin for this, but only works as long as the main menu is open in background, eg. only from other menus, not cControls and other OSD objects.
The built-in cRemote::CallPlugin() does the same, but does not depend on returning eOSState anywhere, so its a better solution to this.
Cheers,
Udo