This old "SDK" system is completly removed.
But developing a new wrapper to meet the new agreed standard.
This original thread would not been deleted, but instead I renamed it and update with a new post when done (but I do not change this original post)
All info in this post is outdated.
First i using PlugMyJuke as work name (might not been the final name).
VERSION .7
Since some languages seen to have limits about retrieve info by the plug-in I have tried to create a wrapper dll, that dosent require use as a dynamic Dll at all (all functions can been defined at once). The wrapper does all the dymanic read og all plugins from a directory of your choice.
It use all functions contained from this thread: http://forum.arcadecontrols.com/index.php?topic=75083.0
About PlugMyJuke.Dll:
There is few commands added to the
PlugMyJuke.Dll which you can use:
total=Load_Plugins(path$) This tell the wrapper to read all other plugins one by one using a path where the plug-in contain. I return a value with a total number of plugs loaded. By now it reading both Dall and pmj extensions (which is a renamed extension, later i only use the winning name).
length=StringLength()The length of the last result string after invoked a string respons command.
StringCopy(StringPointer)Copy the result string into this memory adress (pointer). Make sure you create spaces with the length of the stringlength() command before using this command.
pointer=StringPointer()Return a integer pointer where there string is after invoked a string repons command. Remember to copy it to a another string in your applcation, if you use this command.
All other functions remain the same from the list, but there are one exception that is needed by all functions: - You need to add
PluginNumber argument that tell the wrapper which plug-in it should sending the function to.
Examles: Juke_Initialize() whould been Juke_Initialize(PluginNumber)
Juke_GetPluginInfo() whould been Juke_GetPluginInfo(PluginNumber, value$) - All functions also return a value that tell if the function sendt was a succes or not. It can returned one of these value: 0 = did not found the dll number
1 = succes
-1 = found the plugin, but not the function For strings it either return the whole content or a emtpy string if failed or other reason.
Example plugin:
There is also a example plugin that contain all functions that is corretly in the functions list by the other thread. I do now not touch the exists commands in the while, but might still add new commands.
Its called it messages, because it just show a message requster as succes and some strings returned on returned string commands. I hope that going to work, since I also got some trouble to get around some limits (as headkaze and other told).
Plugin Writers: Make sure to use a global function to the strings that need to been returned by these 3 functions. Otherwice it might been gone, and result a memory invaild message instead.
Example host:
A example host is in the file as well, but only constain the souce code for it, made in BlitzMax (hence I called that name). It should been very clear how I succesful connected to
PlugMyJuke.Dll in the none dynamic method (which is meant by this dll).
Beware some language might check if the string was returned as a pointer, but it should do automatich by all language that does not have manual check like c++.
All strings returned here 8 bit, but it might constain UTF8 tags, if your jukebox application support unicode.
I hope it now got to work with Visual Basic (which have same limits as BlitzMax), includning these that require getting a string from the plugin !! The last one is why I tried making this little main dll, which also include the source code in Pure Basic as well.
Debate + help:
http://forum.arcadecontrols.com/index.php?topic=75010.0 Choose a name:
http://forum.arcadecontrols.com/index.php?topic=75132.0