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

Andreas Brugger brougs78 at gmx.net
Fri Mar 3 16:18:34 CET 2006


Udo Richter schrieb:

> 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)

A customizable menu would be the nicest feature for that, but I think an 
easy solution would be to search plugins with the name "schedule", 
"timers", "recordings" and so on and if it exists it should replace the 
main-menu-entry vdr provides.

Just my 2ct. Bye,
Andreas Brugger

More information about the vdr mailing list