Udo Richter wrote: > ... > Ok, here's a first implementation of what I had in mind. The attached > patch implements the interface for VDR 1.3.20 and newer. PLUGINS.html > and newplugin still need to be updated. ;) > > The attached vdr-extintf-0.1.0.tgz implements two sample plugins that do > some communication: Direct communication to a specific plugin, detecting > presence of plugins that offer a service, use a service provided by some > plugin and broadcast a message to all interested plugins. > Install as usual. Load the two plugins with vdr -P extcli -P extsvr. > > @Plugin developers: > Suggestions, reviews and comments are welcome! > > Cheers, > > Udo > > ... > + virtual bool ExtensionInterface(const char *ExtensionId, void *Data = NULL); > ... > + static cPlugin *CallFirstExtension(const char *ExtensionId, void *Data = NULL); > + static cPlugin *CallPluginExtension(const char *PluginName, const char *ExtensionId, void *Data = NULL); > + static bool CallAllExtensions(const char *ExtensionId, void *Data = NULL); I'm not really fond of this "extension" thing. IMHO this is more of an "inter plugin communication" thing than an "extension". Or, maybe "service" is the right name. After all, that's what it is: a plugin can offer a service that other plugins can make use of. So I suggest s/Extension/Service/g, and plain "Service" instead of "ExtensionInterface". You also might want to give some guidelines as to how to create those "ServiceIDs" - otherwise most likely every plugin will come up with a totally different scheme. Klaus