[vdr] [RFC] plugins replacing main menu entries 1-4

Udo Richter udo_richter at gmx.de
Fri Mar 3 14:07:56 CET 2006


Christian Wieninger wrote:
> A real replacement currently can only be done when patching VDR, so what 
> do you think about the following change of the MenuMain constructor in 
> menu.c? :
> 
> ...
>  cPlugin *p = NULL;
>  switch (State) {
>    case osSchedule:         
>        p = CallFirstService("schedule");
>        AddSubMenu(p?(cOsdMenu *)p->MainMenuAction():new cMenuSchedule);
>        break;

The Service() interface is probably the wrong interface for such things. 
VDR shouldn't rely on this interface, its primarily for non-standard 
communication.

Also, your suggestion will call MainMenuAction for each menu entry, how 
should the plugin know which one was called?

On the other hand, the current menu scheme needs an overhaul anyway, as 
the main menu is flooded with plugin entries. Such a customized main 
menu could easily hide the schedule/channels/timers/recordings menu, or 
move the default entries somewhere else. Plugin main menu entries could 
take over their place.

What about this one: Add an interface that allows a plugin to catch this:

   Menu = new cMenuMain;

... and either create an own main menu, or modify the existing one. 
(several plugins should be able to do some modifications one after the 
other)


Cheers,

Udo



More information about the vdr mailing list