[mythtv-commits] Ticket #4264: MythContext restructure
MythTV
mythtv at cvs.mythtv.org
Fri Jan 18 05:03:19 UTC 2008
#4264: MythContext restructure
--------------------+-------------------------------------------------------
Reporter: nigel | Owner: nigel
Type: task | Status: new
Priority: minor | Milestone: 0.21
Component: mythtv | Version: head
Severity: medium | Resolution:
Mlocked: 0 |
--------------------+-------------------------------------------------------
Old description:
> Some packagers are having problems building MythTV now that there is
> another circular dependency in the libraries. libmyth uses libmythupnp,
> which in turn depends on libmyth.
>
> There are some hacks to get past this, but the long-term solution is to
> remove this dependency (and the one between libmyth and libmythui).
>
> My current proposal is to put some of the gnarlier MythContextPrivate
> stuff into another myth library (''e.g.'' mythbase). This would pull in
> the MythContext code and the UPnP stuff, and be called from (linked
> against) the myth programs.
New description:
Some packagers are having problems building MythTV now that there is
another circular dependency in the libraries. libmyth uses libmythupnp,
which in turn depends on libmyth.
There are some hacks to get past this, but the long-term solution is to
remove this dependency (and the one between libmyth and libmythui).
My current proposal is to put some of the gnarlier !MythContextPrivate
stuff into another myth library (''e.g.'' mythbase). This would pull in
the !MythContext code and the UPnP stuff, and be called from (linked
against) the myth programs.
--
Comment(by nigel):
The circular dependencies have hopefully been worked around in [15478] and
[15481]. That will give me more time to develop this some more (maybe add
soon after 0.21). I am currently not happy with:
1. !MythContext becoming an un-usable class (due to some pure virtual
methods). It is unlikely that anyone would want to instantiate a
!MythContext and then set the database stuff manually, but for a quick
test program, it is feasible.
2. The structure. Having it in libmythtv means that '''''everything'''''
now depends on libmythtv instead of libmyth. That is maybe an unavoidable
cost of having UPnP magic, and a UI for choosing a backend or editing the
DB parameters, but there is maybe a better compromise?
3. I could (should?) move all the GUI stuff into the sub-classes. A text
program will never need to lookup the window size, so why should it be in
the base !MythContext class?
4. The initial bootstrapping UI could/should use libmythui.
--
Ticket URL: <http://svn.mythtv.org/trac/ticket/4264#comment:8>
MythTV <http://svn.mythtv.org/trac>
MythTV
More information about the mythtv-commits
mailing list