Ok. Maybe this is a tad premature, but what the heck. It's Christmas!
I've been working for some time now on a Mala Plugin I'm tentatively calling Engine18. It's actually more of a metaplugin I suppose, because the intent is to make it far far easier to develop plugins for Mala, esp using .NET languages.
Currently, it's written in VB.net, and exposes interfaces in .net, meaning it'll facilitate writing plugins in any .net language (Micro focus COBOL Mala plugins, anyone
![Wink ;)](http://newforum.arcadecontrols.com/Smileys/default/wink.gif)
)
Eventually, I plan on exposing it's interfaces to COM as well, meaning you could use any COM accessible language to write Mala plugins as well (VB6, or whatever).
The key points (in no particular order)
1) Exposes all of Mala.ini, and the active layout mll files as config classes that are read/write. Means eventually, there might be such as thing as a plugin layout editor.
2) Exposes the Mala api messages as simple methods off the central MALA object. Makes it easy to communicate with Mala.
3) Exposes all Mala notifications as events, making them much easier to work with.
4) Provides a MalaPlugin base class that you simply inherit from to create a new plugin.
5) Provides lots of base functionality that most plugins will need. Things like establishing an INI file to store settings, etc.
6) provides a Windowing system that layers on top of the main mala window to make it very easy to create your own windows (via user controls that, again, inherit from a base class). Essentially anything you can fit in a user control in .net, could theoretically be placed on the Mala screen. WPF. Check. (I actually have a little sample project with that working). Flash, should work. I'm experimenting with it next. Video already works just fine. As a test plugin, I'm implementing the Slideshow" idea that was posted around here a while back (can't find the original poster though).
7) Provides for automatic recognition of Mala background images and transparency so that custom windows can be arbitrarily shaped (using regions)
![Cool 8)](http://newforum.arcadecontrols.com/Smileys/default/cool.gif)
Provides a central plugin "config panel" that is a tree presentation of the config for all plugins (well, the ones running under Engine18). Each plugin can expose one or more "configuration panels" that are essentially just user controls, and the main config planel simply hosts them all under one window.
9) automatically recognizes plugins based on a) any files will a DLL extension in the Mala PLUGINS folder, and b) the assembly must expose a class that's based on the MalaPlugin class. What this means in practice is that a single DLL can host multiple plugins, when it makes sense to do so.
I was going to post the CHM help file (generated by SandCastle), but it's 2.18mb and the upload limit is 2048k, so it won't quite fit.
Maybe the File Repository?
If anyone's interesting I'd be happy to email it direct also.
I'm not quite ready to post the plugins, but that should be pretty soon. There's a few little bits that I still need to work out. Plus, I'd like to hopefully get some feedback on the interface and Object hierarchy before posting.
Merry Christmas to everyone on BYOAC!