[mythtv-users] Frontend management | was: Livetv idle timer in 0.21: where to set?
Florian Bittner
flo at flobittner.de
Fri Mar 14 09:55:23 UTC 2008
> If that's the way it's written, sure, you wouldn't have to stick
> around. However, the post to which I responded said (in the part
> trimmed above), "The most challenging is collecting all settings with
> corresponding options, i think," which made me assume that a huge patch
> which completely reworks the existing settings functionality wasn't part
> of the plan. If it is, great.
Right, it wasn't. But in my oppinion we're here to discuss these things. My
original plan was just to modify mythweb and database. Now the plan goes into
the code itself, so this would be a major change. But this could be linked
with the plans i made tonight (in such cases i can't sleep until i wrote
something to paper :-), they're as following:
Table hosttype:
In this table we set what host has what type. So we can provide the
corresponding options (table settings_desc) and groups (table
settings_group).
Structure with examples:
name type
mythtv1 frontend
mythtv2 frontend
server backend
mythtv3 combined
Table setting_group:
In this table we define some groups to group the options. Each group belongs
to one hosttype or none for common options. Now we can define areas for
General options, Frontend options and Backend options in the webinterface.
Let's assume we choose mythtv3 in webinterface. It would then check what type
it is, ok it's combined then it displays settings for frontend AND backend.
Structure with examples:
name hosttype
audio frontend
livetv frontend
voip frontend
job management backend
commercial frontend
commercial backend
general null
Table setting_desc:
This table defines a setting with corresponding options. String options are
moved to a seperate table.
Structure with examples:
name is_int int_min int_max has_string_options is_text description
group
LiveTVIdleTimeout 1 0 null 0 0 Sets timeout for livetv ...
ref-to-livetv
deinterlacer 0 null null 1 0 Sets deinterlacer ... ref-to-livetv
Table string_option:
This table contains options for entries in setting_desc if is_string is set to
1. So we can have some predefined options.
Structure with examples:
setting_desc name description
deinterlacer Bob 2x ...
deinterlacer yadif ...
deinterlacer yadif 2x ...
I made this without further checks against what is needed in detail, this
could be done later. First comes brain-storming :-)
I want to mention that settings stay in the existing settings table. The
tables above are only for description purposes and are only modified if code
changes and more settings/options are needed.
Access control lists or different modes (basic mode, advanced mode) could be
done easy as well. So for basic mode we could add a column to setting_desc
which says wether it is basic or not.
One thing missing here are dependencies. Not each deinterlacer can combined
with each video renderer. This should be modelled in database, too.
As a further improvement this could be linked to major code changes where
settings have to be registered.
At the end (many years forward :-) we have a single place for settings and
none ever get lost. Would be really nice.
Enough writing for now. Your turn :-)
Flo
More information about the mythtv-users
mailing list