Klaus Schmidinger wrote:
You can't just put some random data into some abstract interface and expect something particular to happen ;-)
Thats why some unique identification string is necessary, to make sure both plugins talk about the same struct for communication.
The clean method is for the "server" to provide a proper public member function and for the "client" to include the plugin's header file.
How? #include "../epgsearch/plugin.h"? First, the symlink name "epgsearch" is user-dependant, any may be set differently based on personal taste. Second, now the plugin depends on epgsearch and cannot run without it.
Just keeping a local copy of plugin.h? This leads to dangerous versioning troubles, see other post.
Determining whether or not a plugin is present doesn't change through that - you already do that now, don't you?
Another point: With a dedicated interface, plugins can offer general interfaces like "timer-conflicts" or "search-repeats", so any plugin can use this feature and any plugin can provide this feature.
Cheers,
Udo