Freevo Plugin Writing HOWTO: Writing your own plugins for Freevo | ||
---|---|---|
Prev | Chapter 4. Notes for writing a plugin | Next |
A plugin may require some special configuration. There are two possible ways:
A plugin may add more than the self
to the
__init__
function. The user has to add the
values when the plugin is loaded. This makes it possible to load a
plugin more than once with different settings.
The following example adds two parameter. The first one has no default value and has to be added when activating the plugin. The second is optional.
import plugin class PluginInterface(plugin.Plugin): def __init__(self, arg1, arg2='foo'): plugin.Plugin.__init__(self) plugin.activate('foo', args=('1',)) plugin.activate('foo', args=('1', 'bar'))
The second way is to use the local_conf.py to
let the user set the variables. Since a plugin should be self
contained, it should not add something to
freevo_config.py. A better way is to use the
member function config
to return a list of
variables for this plugin. If the user doesn't define the variable
the default values will be added to the config
module. Warning: the config
function will be
called in the __init__
function of the base
plugin class, do not try to use the variables before that.
Example: the plugin needs FOO_NAME
and
FOO_FUNCTION
to be set. It defines the default
values and a small description (not used at the moment)
import plugin class PluginInterface(plugin.Plugin): def config(self): return [ ('FOO_NAME', 'the default', 'some description'), ('FOO_FUNCTION', foo, 'this is a function') ]