[mythtv-commits] Ticket #8088: Greatly expanded playback groups
MythTV
mythtv at cvs.mythtv.org
Thu Feb 18 19:02:11 UTC 2010
#8088: Greatly expanded playback groups
------------------------------------------------+---------------------------
Reporter: Jim Stichnoth <stichnot@…> | Owner: ijr
Type: patch | Status: new
Priority: minor | Milestone: unknown
Component: MythTV - General | Version: unknown
Severity: medium | Mlocked: 0
------------------------------------------------+---------------------------
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.
--
Ticket URL: <http://svn.mythtv.org/trac/ticket/8088>
MythTV <http://www.mythtv.org/>
MythTV
More information about the mythtv-commits
mailing list