[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