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