id,summary,reporter,owner,description,type,status,priority,milestone,component,version,severity,resolution,keywords,cc,mlocked 8088,Greatly expanded playback groups,Jim Stichnoth ,gigem,"This patch hugely increases the capabilities of Playback Groups. Most settings related to playback can now be controlled through playback groups. This includes settings like fill mode, captions, playback profile (VDPAU, Slim, etc.), aspect ratio, behavior on exit, OSD properties, and so on. Another nice property is that since playback groups are globally shared across all frontends, you can set up your preferences in the Default group and not have to change settings on each individual frontend. This is especially useful when bringing up a new frontend. Oh yeah, and the setup reuses existing setup pages, so it basically adds NO NEW SETTINGS! HOORAY!!! Notes on the patch: 1. Two new source files are added, found in 8088_playgroups_newfiles_v1.tar. They define a new class PlaySettings which holds overrides to the host-specific settings. 2. The vast majority of the changes in 8088_playgroups_v1.patch are to deliver the PlaySettings object wherever needed and to use it instead of the global settings. 3. The following sql code needs to be executed to create the necessary table. This is already in InitializeDatabase() in the patch, but would also need to be added to doUpgradeTVDatabaseSchema(). CREATE TABLE IF NOT EXISTS playgroupsettings ( playgroupname varchar(64) NOT NULL, `value` varchar(128) NOT NULL, `data` text, overridden tinyint(1) NOT NULL, PRIMARY KEY (playgroupname, `value`) ); Notes on the implementation: 1. The implementation is independent of existing playback groups, except that the configuration of new playback groups is appended to the existing playback group configuration. In the future, it would make sense to fully merge the implementation of old and new playback groups. 2. There is a single-inheritance hierarchy of settings, where the settings of one group override its parent's settings. If the parent is unspecified, ""Default"" is used as the parent. ""Default"" inherits from the host-specific settings. In practice, though, there doesn't seem to be much value beyond a 3-level tree structure of Host>Default>{all other groups}, and so the settings UI doesn't offer a way of specifying a group's parent. This means all groups have ""Default"" as the parent. 3. The settings UI basically walks the user through the configuration pages of Playback Settings and Playback OSD Settings, but with respect to a particular playback group, since almost all of the relevant playback settings are found on those pages. However, a number of those settings are not really relevant to playback (e.g. all of pages 4, 5, and 6 of Playback Settings), and so those configurations are disabled for playback group setup. 4. Each setting has a checkbox to indicate whether it overrides the default, and the default is indicated in the label. Instructions are given in the help text. This makes it easy to quickly scan the page to see which settings are overridden, as well as what the default values are. 5. There are probably some more settings that could be brought into playback groups, particular the two Audio pages in General Settings. 6. The settings UI could use some sprucing up, hopefully by someone with a better eye for UI design. I would like for the configuration pages to look very much like the pages they originate from, but wrapping each setting and its override checkbox inside a TriggeredConfigurationGroup does wacky things to the layout. This is even more of a nuisance at small resolutions, like 640x360. ",patch,closed,minor,unknown,MythTV - General,unknown,medium,wontfix,,,0