|
|||||||
![]() |
|
|
Thread Tools |
|
|
#1 |
|
HardwareHeaven Extreme Member
Join Date: Jan 2005
Posts: 5,563
Rep Power: 62 ![]() ![]() ![]() ![]() ![]() ![]() |
init() not called for kX Addon?
It appears that iKXAddOn.init() never gets called (and the ctor is called twice)? (3538i SDK)
Is there an iKXAddOn event that signals that the addon has been loaded and properly initialized? Some of the events are not documented and never seem to fire. i.e. The events for KXADDON_EVENT_GENERIC and KXADDON_EVENT_WINMSG do not seem to be defined anywhere (I would guess that KXADDON_EVENT_WINMSG is for window messages but does iKXAddon even have a window handle?). -Russ BTW: Well I am on the subject of kX Addons: ' kxaddon_list_t' in addon.cpp has a NULL entry. Is that supposed to be there (like the NULL entry for plugin presets? It causes a debug error message (in debugview))? Can addons have a GUI? <edit> I was able to use the save_settings event as a workaround to the above (hopefully that will not cause any problems), as everything seems to be initialized correctly by the time that is called the 1st time, but init() would be better. Last edited by Russ; Dec 6, 2005 at 01:44 AM. |
|
|
|
|
|
#2 |
|
kX Project Lead Programmer and Coordinator
Join Date: Dec 2002
Posts: 3,119
Rep Power: 75 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
I'll check the details about add-ons and post a reply soon. In the future, please drop me an e-mail whenever you post such questions on the forum, since otherwise they might not be answered for a very long time
![]() E. |
|
|
|
|
|
|
|
HardwareHeaven Extreme Member
Join Date: Jan 2005
Posts: 5,563
Rep Power: 62 ![]() ![]() ![]() ![]() ![]() ![]() |
Ok I will do that. I thought that maybe some others had played around with the Addon API, and might be able to answer, and I did not want to bother you until I was sure that I wasn't doing something wrong.
What I was doing when I posted this, was looking for a place to call "kx_manager->get_ikx()". init() did not appear to get called at all. load_settings() was to early for the above call (I guess kx_manager is not yet initialized here). As for the KXADDON_EVENT_WINMSG, I have since figured out those messages are from the menu pop-up Window. Additional questions/info: load_settings() does not appear to be called for per device addons. Where should we be saving Addon settings (for both global and per device addons)? Do Addon settings get saved in kX configs (it does not appear to be, but maybe I am saving in the wrong place?)? What is the best way to get the number of devices (read the kX->General registry key?)? I think that covers all the question I have had about addons thus far. Thanks, -Russ <edit> Regarding the question about a GUI. I know I can create my own GUI window (obviously), but I was wondering about using the kX GUI classes for doing this. </edit> Last edited by Russ; Jan 21, 2006 at 01:13 PM. |
|
|
|
|
|
|
|
HardwareHeaven Extreme Member
Join Date: Jan 2005
Posts: 5,563
Rep Power: 62 ![]() ![]() ![]() ![]() ![]() ![]() |
BTW: I was thinking that it would be good if the kX Automation interface was added to Addons, similair to the way it is done with plugins.
|
|
|
|
|
|
#5 |
|
kX Project Lead Programmer and Coordinator
Join Date: Dec 2002
Posts: 3,119
Rep Power: 75 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
>> It appears that iKXAddOn.init() never gets called
fixed that in 3538j >> (and the ctor is called twice)? (3538i SDK) yes, this is expected, since the code doesn't know if the plugin is per-device or global until it is instantiated >> Is there an iKXAddOn event that signals that the addon has been loaded >> and properly initialized? init() will do the trick >> KXADDON_EVENT_GENERIC is a superset of events >> KXADDON_EVENT_WINMSG allows capture of -all- kxmixer events passed to kxmixer main system window >> Can addons have a GUI? yes. they can create any windows if they wish to using either win32 api or kX GUI >> save_settings for 'global' add-ons load/save are only called on mixer start-up/close for 'per-device' add-ons, load/save are called much more often E. |
|
|
|
|
|
#6 |
|
kX Project Lead Programmer and Coordinator
Join Date: Dec 2002
Posts: 3,119
Rep Power: 75 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
>> load_settings() does not appear to be called for per device addons.
fixed >> GUI you can even use skins, but you will need custom kSkin for your own skin I'll check if the default skin is accessible in the add-on >> kX Automation interface what exactly do you mean?.. E. |
|
|
|
|
|
|
|
HardwareHeaven Extreme Member
Join Date: Jan 2005
Posts: 5,563
Rep Power: 62 ![]() ![]() ![]() ![]() ![]() ![]() |
Thanks for all the info
![]() For kX Automation, I mean adding some addon parameters that can be assigned to midi events using the kX Automation GUI, similair to the way it is done with plugins (except the only purpose for these parameters would be for automation (mostly switch type parameters)). The first addon I was playing around with (PluginQL), I made to allow Windows hotkeys to be assigned to do various things in kX (open tweak windows for plugins, open various other kX Windows, toggle some kX settings, etc), and someone requested that I add midi automation, so that instead of (or in addition to) the hotkeys, midi events could be used to perform these tasks. I ended up creating a plugin (with dummy parameters that could be assigned to kX Automation events) that forwards the requests to the addon through a message window (that I was using for the hotkey callback functions, because the addon and plugin do not have there own window handles), to add that functionality. It would be better if the plugin was not needed for this, while still being able to add automation support in a manner that is as simple as it is with plugins. |
|
|
|
![]() |
| Thread Tools | |
|
|