I have NOT hardcoded any events, because you defined these events using PLUGIN_EVENT_CREATE, where the remote got them all CORRECTLY.
I guess I still have no idea how your plugin knows which events do what .... Say I defined the following events
PLUGIN_EVENT_FUNCTION1
PLUGIN_EVENT_FUNCTION2
PLUGIN_EVENT_FUNCTION3
PLUGIN_EVENT_FUNCTION4
then how will your plugin now which event should be used to set the volume level?
For some reason KEYDOWN and KEYUP did not used in these VOLUMEUP and VOLUMEDOWN commands, since it dosent look like a button, but might you might have used ""ENABLE DISABLE" instead?
In my software when you press the volume down button and keep it pressed down (ie: keyDown), then the volume level decreases. When you finally let go of the button (ie: keyUp) then the volume stops changing. When you press the volume up button and keep it pressed down (ie: keyDown), then the volume level increases. When you finally let go of the button (ie: keyUp) then the volume stops changing. Since this is how my software works, then the plugin can simply tell me "keyDown" or "keyUp" like I currently have defined. Using "enable" and "disable" does not make sense here because the "enable/disable" text are used for enabling and disabling a "feature" and increasing/decreasing the volume is not a "feature" .... it is something which is always available in my software to update.
The names you see in the remote is just reformatted from the defined strings to been easier read in the remote.
The main reason you didn't get a _GET correctly back, because I allways close any commands with "", as stated in the document API (hence why I marked them blue). Also I have sendt this back example for the VOLUMEMUTE event (if the button say OFF):
valid: PLUGIN_EVENT_VOLUMEMUTE|"ON"
not: PLUGIN_EVENT_VOLUMEMUTE|ON
Using the "" (double-quotes) in the SDK just indicates that the text after the separator character is a text string, the double-quotes are not meant to be included in the format.
The SDK defines the "Juke_Command()" as
Juke_Command(
Name:PChar;
Value:PChar):PChar;
and does NOT define it as
Juke_Command(
"Name" :PChar;
"Value":PChar):PChar;
Making sure all commands have the "" characters around them and also making sure the parameters have the "" around them is extra work which does not need to be performed.
Think about it ... when I call the Juke_GetPlugInfo() routine, then the text string which is returned does NOT include double-quotes. The name of your plugin is
Remote Event Plugin ..... it is NOT
"Remote Event PluginSo remember to remove any "" it might sendt back to your software before checking. I did that in MultiJuke just to make sure. You should do the same, and the plugin itself do also the same.
I am not going to parse out all "" characters ..... the plugin needs to send them without the double-quotes and the SDK API description should be updated if you think it is not clear. Again, normally whenever the "" characters are used .... it indicates a text string should be used ..... but does not mean to include the double-quotes unless specifically indicated that the double-quotes should be also included. it would be a waste of time to parse out all double-quotes from all commands I receive from a plugin .... the plugin should not be sending them in the first place.
Also the The buttons does a NOT change it self, even it send a _GET event back to your software. So make sure your send a _SEND back to the plugin with the new status when a feature is enabled, disabled, on or off or something else.
Whenever my software send a GET event to the plugin and the plugin returns a text string, then my software will execute the event provided by the plugin. Executing these events usually result in a JUKE_PLUGIN_EVENT_SEND command to be sent back to the plugin to indicate the change which just took place.
I also recommered you to log the sendt commands back, so you can see what it actuelly sendt back....
I do not log a lot of stuff anyways ... just the loading of the library.
*** I updated the Jukebox Wiki SDK to removed all the extra double-quotes which were added and simply added some text indicating the double-quotes are not to be included in the text strings ..... just to be more clear.