Hi!
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