MythTV Startup Sequence
This line is filler that is ignored by Doxygen.
More...
This line is filler that is ignored by Doxygen.
Most MythTV programs follow a common sequence:
-
Process (parse) command-line arguments
-
Create a MythContext object (which contains a MythCoreContext object for server and DB communication, logging and some housekeeping)
-
(optionally) Create a UPnP client or server
-
Initialise the MythContext, which:
-
Tries to find a database on localhost, or on the host specified in mysql.txt,
-
Tries to locate exactly one backend host via UPnP, to find its database,
-
If possible, displays a list of all backends located via UPnP for the user to choose from, or
-
Fails
-
Create the main window/screen, display themed menus, et c.
(examine program/{appname}/main.cpp, and libs/libmyth/mythcontext.cpp, for further detail).
The "runtime assets" mentioned above are stored in a number of well-known locations. The following methods in MythContext allow programs and plugins to access these assets:
-
GetInstallPrefix() returns either the runtime env. var. $MYTHTVDIR or the compile-time var. RUNPREFIX. If these are relative paths, it is initialised relative to the application's location. The value is used thus:
-
GetConfDir() returns the value of the runtime env. var. $MYTHCONFDIR, or $HOME/.mythtv
-
mysql.txt is loaded from GetShareDir(), GetInstallPrefix() + /etc/mythtv, GetConfDir(), and the current directory. Later files override the values from earlier ones.