Quick Sign In:  

Forum: VirtualDJ Plugins

Topic: Questions about plugin development - Page: 2

This topic is old and might contain outdated or incorrect information.

Hey it used to be a lot worse but you jumped right over the things you said... Focus on this before you move forward with other stuff... I am not saying all is rosy but check these things first... Beware of threading issues...

you say: the main one is NONE Work even being aware of many thing is not enough

- No way to know the status at startup You mean onload? OnStart ? what status do you want to know?

- Whatever the type the plugin is ... onStart() onStop() - when they exist - and destructor won't be call When active or UI is visible, Release is not called... it's in use... otherwise Release will be called when your plugin has gone out of scope. your statement does not make sense otherwise

- No way to use skin button to activate / desactivate the plugin, as well as custom buttons only activate the skin button, no info go to the plugin Not true

- Standard interface buttons can't sync with skin ones these one go to the plugin but for which instance - we may only know a deck, possibly not the right one?... i even tried a thread asking for status that somehow works, but impossible to modify the status of standard interface button What are you calling standard interface.? I see you are using GetInfo ("get_deck... did you read what I said above? if on master, 1 will be returned.. I had asked, do you use an external window interface or plugin skin interface? It makes a big difference in how you handle it depending on type.

double query;
int deck = -1;
hr = GetInfo ("get_deck 'master' ? true : false",&query);
if (hr == S_OK && query)
....deck = 0 ; // your on master
else if (GetInfo ("get_deck",&query) == S_OK )
....deck = (int)query;

get_deck 'master' without conditional does not work.

- Even a simple standard button doing nothing does not reflect its own status It does... you just need to interface to it correctly

- DeclareParameterCommand() ok but command ID never issue to onParameter() / onStringParameter() That could be a bug... there is an alternate to that...

- Release() by default crashes VDJ by deleting the running plugin when it only loose its visibility on the skin abd goes background
- and finally no way to know when the plugin have to shut down thus threads goes on running when instance of IVdjPlugin8
You need to handle Release... That is how you know you are being shut down... and that is where you destroy your instance. Just one instance though... You may have more... I track them all and know when I should release any threads etc...

All these things work except you can't know the slot number... Just part of the clumsy VDJ interface which was a nightmare but skip this for now.

I assume CVDJartnet::getInstance() creates a new instance.

Next time, just post some code fragments here to look at and discuss rather than going crazy with bitmaps etc.
 

Posted Tue 12 Mar 19 @ 12:36 am
NicotuxHome userMember since 2014
sorry for the incomplete spurious post

"Sorry, you don't have the necessary accreditations to view this page."

while editing it instead of usual new post notification
 

Posted Tue 12 Mar 19 @ 12:56 am


(Old topics and forums are automatically closed)