SLM specification of mm-player

The SLM configuration file stores the list of processes to be automatically launched and their interprocess dependencies. In CAR systems, this list includes mm-player and its prerequisite and dependant programs. You can change the configuration file to run mm-player with different settings.

The following excerpt from the SLM configuration file shows some (but not all) of the property settings for mm-player:

<SLM:component name="mmplayer">
    <SLM:command>mm-player</SLM:command>
    <SLM:args>-c /etc/mm-player.cfg</SLM:args>
    <SLM:depend>nowplaying</SLM:depend>
    <SLM:depend>mmtrkmgr</SLM:depend>
    <SLM:depend>mmdetect</SLM:depend>
    <SLM:depend>mmrenderer</SLM:depend>
</SLM:component>

Here, the name mmplayer assigned to the <SLM:component> XML object is an internal label used within the configuration file. This label differs from the process name of mm-player, which is provided in the <SLM:command> tag.

Command-line arguments

The <SLM:args> tag lists the command-line arguments. By default, only the path of the mm-player configuration file is specified (with the -c option), but you can change the value assigned to <SLM:args> to include other options. The new mm-player settings will take effect after you reboot the car system, causing SLM to relaunch the service. See "Running mm-player" for instructions on changing the command settings for mm-player.

Workflow

The <SLM:depend> objects list which processes must be running before mm-player can be started. These dependencies mean that SLM must ensure that the nowplaying, mm-detect, and mm-renderer processes are running before starting mm-player.

The programs that are prerequisites to mm-player have their own prerequisites. For instance, mm-renderer requires the Audio Manager service (represented in SLM by the audioman object) to be running so that the audio components of the media that gets played can be output over hardware. The Audio Manager and many other services depend on PPS. The interprocess dependencies between mm-player and the services that it uses make up a complex workflow of processes. The following illustration shows part (but not all) of this workflow:

Figure 1. Workflow of mm-player and related processes