The following requirements applies to any frontend implementation:
A frontend MAY do mostly whatever it wants to, including creating threads, opening TCP ports and exposing Mopidy for a group of clients.
A frontend MUST implement at least one Pykka actor, called the “main actor” from here on.
The main actor MUST accept two constructor arguments:
config, which is a dict structure with the entire Mopidy configuration.
core, which will be an
ActorProxyfor the core actor. This object gives access to the full mopidy.core — Core API.
It MAY use additional actors to implement whatever it does, and using actors in frontend implementations is encouraged.
The frontend is enabled if the extension it is part of is enabled. See Extension development for more information.
The main actor MUST be able to start and stop the frontend when the main actor is started and stopped.
The frontend MAY require additional config values to be set for it to work.
Such config values MUST be documented.
The main actor MUST raise the
mopidy.exceptions.FrontendErrorwith a descriptive error message if the defined config values are not adequate for the frontend to work properly.
Any actor which is part of the frontend MAY implement the
mopidy.core.CoreListenerinterface to receive notification of the specified events.