﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc	mlocked
10581	New customizable OSD menu, with editor and hot-key shortcuts	Jim Stichnoth		"MythTV 0.22 introduced a customizable OSD menu, in which the user
could choose which items appeared on the OSD menu (though not the
order).  MythTV 0.24 reorganized the OSD menu to be hierarchical with
greatly expanded functionality, but removed customizability as a side
effect.

This patch adds a new, flat, customizable OSD menu for the TV Playback
context.  It allows the user to select their favorite actions from
among the existing OSD menu items, and collect them into a flat
top-level menu.  This menu is displayed via the HOTMENU key binding.

The first 10 items on the hot menu have hot-key accelerators via the
keypresses ""0"" through ""9"".  In a sense, this gives the user 10
additional ""virtual buttons"" on a remote control, i.e. HOTMENU+0,
HOTMENU+1, ..., HOTMENU+9.

When the hot menu is active, the user can reorder the items and delete
items.  Pressing the HOTMENU key brings up a menu that lets the user
move the highlighted item up one position, down one position, to the
top, or to the bottom, or to remove the item from the hot menu.

To add a new item to the hot menu, the user navigates through the
regular OSD menu, highlights the desired action, and presses the
HOTMENU key.  Not all OSD menu items are available for adding to the
hot menu, particularly items that are dependent on the actual
recording, e.g. selection of specific audio or subtitle tracks.

The last item in the hot menu is a hard-coded link to the regular OSD
menu.  It cannot be deleted or reordered.

The hot menu configuration is stored in the HotMenuActions setting in
the DB Settings table, as an ordered, comma-delimited list of action
strings.  As such, it does not require a schema update.

This feature is also quite usable for remote controls with a very
small number of buttons.  The user can map the remote control's menu
button to the HOTMENU action in the TV Playback context (in addition
to it being mapped to the MENU action in the Global context).  The
menu button will then bring up the hot menu for the commonly used
items, with hard-coded access to the regular OSD menu as the last item
in the hot menu.

Caveats/limitations:

1. As noted above, not all regular OSD items are available as hot menu items.  This is not really a technical limitation, rather an attempt to avoid surprises to the user.  Restrictions may be lifted on a case-by-case basis.

2. OSD submenus are also not available.  Technically, they could be made available, but it's hard to make a ""Back"" action return to the hot menu when necessary, leading to a rough user experience.

3. It would be nice (and technically easy) to include keybinding actions and jumppoint actions in the hot menu, with some extra work in the Edit Keys setup page.

4. While the TV Playback context has the richest set of available actions, it might also be nice to have a hot menu in other contexts.  It might also be nice to have variations on the hot menu that depend on aspects of playback, such as playing a recording versus a video versus a DVD/BD versus Live TV.
"	Developer Task	closed	minor	0.27	MythTV - General	Master Head	medium	Won't Fix			0
