Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[vdr] Re: VDR Plugin System - First Step
Sergei Haller wrote:
>
> On Fri, 10 May 2002, Klaus Schmidinger (KS) wrote:
>
> KS> > If yes,
> KS> > there should be a return value of Start() to signal that
> KS> > starting the plugin failed due to some reason (e.g. missing
> KS> > file). VDR could disable/unload the plugin for further
> KS> > operation in this case.
> KS>
> KS> Sounds reasonable. But I tend to completely shut down VDR if one
> KS> plugin returns 'false' from Start(), because this plugin might be
> KS> vital for further operation of VDR.
>
> ok, so Start() could return 1 if it failed, but not fatal, i.e. vdr should
> be able to work without this plugin and 2 if vdr should exit.
>
> But I think on something more general (maybe somethig for the future)
> what about some kind of dependencies? e.g.
>
> OSD plugins: standardOSD/LCD/newOSD (where newOSD is a replacement for the
> standard osd plugin)
> now the dependencies:
> - vdr _needs_ at least one OSD plugin.
> - newOSD and standardOSD couldn't be loaded at the same time.
>
> now when vdr starts and there are several osd plugins specified on the
> command line, vdr would first check if there are no plugins among them
> which can't be used at the same time (e.g. vdr -PstandardOSD -PnewOSD
> would exit immediately)
>
> after that vdr would look if the standardOSD could be added to the list
> without breaking the dependencies.
>
> now do the same for all other plugins (like dvd etc)
>
> then vdr loads all the specified plugins in the order of the dependencies
> (e.g. if dvd depends on "at least one osd plugin", the osd plugins would
> have to be loaded first)
>
> I can't think on much dependencies at the moment, maybe something like
> "playlist loader plugin" and "mp3", "mplayer" plugins ontop of it.
> something like
> mp3->Requirenments() {
> Require("playlist loader plugin", m, n);
> }
> would mean, that mp3 plugin requires "playlist loader plugin", version
> between m and n. if m or n is 0, this means ver >= m or ver <= n
> respectively. if m and n are 0, this means "any version of playlist loader
> plugin"
>
> I know this would require some work and this is only a quick idea, so
> maybe this wouldn't even work. Of course, we would need some algorithm for
> checking against dead loops (e.g. if plugin1 and plugin2 require each
> other, they should be loaded both or none of them (?))
Just four little words: Let's keep it simple!
Maybe we can come back to things like this later, when plugins actually
work. Let's not get carried away right now...
Klaus
--
_______________________________________________________________
Klaus Schmidinger Phone: +49-8635-6989-10
CadSoft Computer GmbH Fax: +49-8635-6989-40
Hofmark 2 Email: kls@cadsoft.de
D-84568 Pleiskirchen, Germany URL: www.cadsoft.de
_______________________________________________________________
Home |
Main Index |
Thread Index