Ingreso rápido:  

Forum: VirtualDJ Plugins

Tema: How does the plugin skins GUI button' action call a C++ function

Este tópico es antiguo y puede contener información incorrecta para la nueva versión.

I have a button setup like so in a FX_GUI.xml file for a plugin


<button action="?????????">
<tooltip>MyToggle</tooltip>
<pos x="142" y="48"/>
<size width="55" height="26"/>
<up x="+0" y="+0"/>
<selected x="+0" y="+0"/>
<over x="+0" y="+0"/>
<overselected x="+0" y="+0"/>
<down x="51" y="431"/>
</button>


I see how you can setup script actions for the button but how do we call a C++ function.
More specifically does it send C++ the state of the button? and how do I trigger it both ways. Have it send the state and have it receive a state up or down.

Thx

Hmmm thinking about it a little I might have answered my own question unless there is a better way to do so. Does the solution include setting an up down script like so.

down ? set '$myToggle' -1 : up ? set '$myToggle' 1 : set '$myToggle' 0


Not quite working. Keeping my eye out here for any ideas on how this normally works.
 

Mensajes Tue 07 Mar 17 @ 5:41 pm
So I must have the logic wrong somewhere. I would guess that the OnParameter function gets called as soon as a user touches a control on my custom GUI but the following doesn't show the debugger reaching that part of code


HRESULT VDJ_API myPlugin::OnParameter(int id)
{
switch (id)
{
case myPlugin_Param_Toggle:
//Now my custom code
//but it's not reaching here when I click on my custom button
break;
}
return S_OK;
}

 

Mensajes Tue 07 Mar 17 @ 6:46 pm
AdionPRO InfinityCTOMember since 2006
The command is effect_button (or effect_slider for sliders)
You define which buttons are available in your plugin in OnLoad, and then you will receive OnParameter.
The other way, you simply need to alter the variable you referenced in OnLoad to make the button change state from your plugin.
 

Mensajes Tue 07 Mar 17 @ 7:20 pm
Yes I had Onload already setup like so.

HRESULT VDJ_API myPlugin::OnLoad()
{
DeclareParameterSwitch(&parToggle, myPlugin_Param_Toggle, "Toggle" , "T" , false); //Starts Up 0
//the rest of my OnLoad...
}


OK using option 1 above I changed the .xml to be:

action="effect_button 1"

and now the debugger is reaching the function correctly and the parameter toggles between 1 and 0 each time the button is pressed.
The problem now is that after I click on the button once, it stays lit. It is displaying the 'down' state. I disabled the custom GUI to look at the default gui and it's showing the same thing. I don't have sample code to get the trick of it.



HRESULT VDJ_API myPlugin::OnParameter(int id)
{
switch (id)
{
case myPlugin_Param_Toggle:

//Now my the debugger is showing parToggle changes between 0 and 1 each time
//but after the first click it's stuck down. I am probably missing something very simple to release the button back to the up state

break;
}
return S_OK;
}


I got it for the local built in GUI since I had a custom messagebox popping up which was messing that up.

Now the problem still is the custom GUI which i reenabled which is not toggling yet. Hmmmmm OK I think I got it. I was using down as the selected state.
 

Mensajes Tue 07 Mar 17 @ 8:15 pm
YEP that was it, it's working like it should. Thanks @Adion

 

Mensajes Tue 07 Mar 17 @ 8:30 pm


(Los tópicos y foros antiguos son automáticamente cerrados)