[mythtv-commits] Ticket #8406: ProgramInfo refactor

MythTV mythtv at cvs.mythtv.org
Sun May 16 14:23:12 UTC 2010

#8406: ProgramInfo refactor
 Reporter:  danielk           |       Owner:  danielk   
     Type:  task              |      Status:  new       
 Priority:  minor             |   Milestone:  0.24      
Component:  MythTV - General  |     Version:  Trunk Head
 Severity:  medium            |     Mlocked:  0         

Comment(by danielk):

 (In [24694]) Refs #8406. ProgramInfo refactor. Step 2.

 You will need to distclean and recompile both mythtv and the plugins.

 This continues the ProgramInfo refactor started prior to 0.23.
 I held this back at the time because it was to risky to apply
 just prior to that release. It is a large patch that touches
 on many parts of MythTV. It reduces the in core requirements of
 ProgramInfo as well as removing a large number of redundant bits
 of code and standardizing the way we handle things like generating
 a QString key for a recording. This also centralizes the loading
 of ProgramInfo to programinfo.cpp, we had about three dozen places
 in the code loading these, all with different levels of metadata
 which produced some strange bugs.

 This also starts to address the problem of containers for ProgramInfo
 based clases with the AutoDeleteDeque, but this will be addressed
 more completely in later patches. AutoDeleteDeque simply lets us
 get rid of the old ProgramList and RecordingList which were copy
 and pastes of each other (a maintenance nightmare.)

 There are still a number of problems remaining, we don't have any way
 currently to debug when someone tries to access data that has not been
 loaded, so it's difficult to track down such bugs. ProgramInfo now uses
 accessors so it is possible to add such checking to the debug build.
 There are a number of algorithms that have inserted their own private
 data into ProgramInfo, these have not all been addressed, but these
 members have been labeled. It will be easier to inherit from ProgramInfo
 to add private data once the containter problem has been addressed.
 RecordingInfo has not been refactored in this pass, there are a number
 of issues there.

 Loading additional metadata for the UI or other uses has not been
 addressed in a systematic way. I have some ideas on this but want
 to do this in a seperate pass as this patch is already very large.

 I've been running versions of this changeset on my production systems
 for a week and there have been no showstoppers, only small bugs that
 were easily fixed. However, I do not use every feature of MythTV so
 I'm sure some bugs will turn up. Please note them on ticket #8406.

Ticket URL: <http://svn.mythtv.org/trac/ticket/8406#comment:1>
MythTV <http://www.mythtv.org/>

More information about the mythtv-commits mailing list