Resizable stand-alone not updating plugin


#1

Hi,

We have a number of audio plugins that will work as a standalone application.  We do this by creating a VST host (based on the example host that comes with the Juce library), and loading the plugin.  This has worked fine up until now, but we want our latest development to be resizable by just dragging the edge of the window.  The main different between our host and the example host is that the plugin is displayed directly within the window of the host, rather than as a popup.  We have got this working on PC, but on Mac the resize messages are not getting back to the plugin, so although the window resizes, none of the components are repositioning themselves.

Under windows, there is a bit of code in juce_VSTPluginFormat.cpp in the VSTPluginWindow class that implements a function called componentMovedOrResized, and that is the entry point for passing the resize message up the chain (by calling MoveWindow on the plugin), but that code is for Windows/Linux only.  I'm afraid my knowledge of Mac internals is limited, so I'm having trouble finding out how the same thing happens (or is supposed to happen) under OSX.

To add an extra complication, we are running a slightly outdated version of Juce (we last updated in March last year to version 2.0.36).

Does anyone have any pointers before I get embroiled in stepping through instruction by instruction in XCode?


#2

What's the plugin you're hosting? Is it a juce plugin? Can you modify it, or is it just a legacy binary?

If it's a juce plugin and you can change it, then I'd suggest just bypassing the whole plugin system and using something like juce_StandaloneFilterWindow.h

Otherwise, is it a Carbon plugin? If so, you're screwed because to get those running is a massive hack involving floating windows, and all bets are off about resizing it. If so and if you can modify the plugin, I'd suggest rebuilding it with the latest juce, where it will use a special mode that avoids Carbon windows in cases where the host + plugin are both aware of this. Or you could load it as an AudioUnit instead?


#3

juce_StandaloneFilterWindow seems to be a step in the right direction for us on this one . Thanks