Revert "fix LXVST support for plugins that make audioMaster callbacks from

within effOpen (e.g. glitch)"

This patch broke just about all other LVXST plugins. Glitch is doing something
wrong, or there is more magic about VST that we have yet to understand.

This reverts commit 56bc98f78b.
This commit is contained in:
Paul Davis
2013-04-28 20:31:25 -04:00
parent db34831b18
commit 63b02a265a
3 changed files with 12 additions and 22 deletions

View File

@@ -73,7 +73,6 @@ public:
AEffect * plugin () const { return _plugin; }
VSTState * state () const { return _state; }
void set_state (VSTState* s) { _state = s; }
int set_state (XMLNode const &, int);

View File

@@ -34,8 +34,6 @@
#include <glibmm/fileutils.h>
#include "ardour/linux_vst_support.h"
#include "ardour/vst_plugin.h"
#include "pbd/basename.h"
#include "pbd/error.h"
@@ -295,43 +293,36 @@ vstfx_unload (VSTHandle* fhandle)
return 0;
}
/**
Instantiates a VST plugin and also set _state of its plugin argument
*/
/*This instantiates a plugin*/
VSTState*
vstfx_instantiate (VSTHandle* fhandle, audioMasterCallback amc, void *ptr)
VSTState *
vstfx_instantiate (VSTHandle* fhandle, audioMasterCallback amc, void* userptr)
{
VSTState* vstfx = vstfx_new ();
ARDOUR::VSTPlugin* plugin = reinterpret_cast<ARDOUR::VSTPlugin*> (ptr);
if (fhandle == 0) {
if(fhandle == 0)
{
vstfx_error( "** ERROR ** VSTFX : The handle was 0\n" );
return 0;
}
if ((vstfx->plugin = fhandle->main_entry (amc)) == 0) {
if ((vstfx->plugin = fhandle->main_entry (amc)) == 0)
{
vstfx_error ("** ERROR ** VSTFX : %s could not be instantiated :(\n", fhandle->name);
free (vstfx);
return 0;
}
vstfx->handle = fhandle;
vstfx->plugin->user = plugin;
vstfx->plugin->user = userptr;
if (vstfx->plugin->magic != kEffectMagic) {
if (vstfx->plugin->magic != kEffectMagic)
{
vstfx_error ("** ERROR ** VSTFX : %s is not a VST plugin\n", fhandle->name);
free (vstfx);
return 0;
}
/* need to set this here because some plugins make audioMaster
* callbacks from within effOpen, and _state must be set for
* that to work.
*/
plugin->set_state (vstfx);
vstfx->plugin->dispatcher (vstfx->plugin, effOpen, 0, 0, 0, 0);
/*May or May not need to 'switch the plugin on' here - unlikely

View File

@@ -32,7 +32,7 @@ LXVSTPlugin::LXVSTPlugin (AudioEngine& e, Session& session, VSTHandle* h)
{
/* Instantiate the plugin and return a VSTState* */
if (vstfx_instantiate (_handle, Session::vst_callback, this) == 0) {
if ((_state = vstfx_instantiate (_handle, Session::vst_callback, this)) == 0) {
throw failed_constructor();
}
@@ -44,7 +44,7 @@ LXVSTPlugin::LXVSTPlugin (const LXVSTPlugin &other)
{
_handle = other._handle;
if (vstfx_instantiate (_handle, Session::vst_callback, this) == 0) {
if ((_state = vstfx_instantiate (_handle, Session::vst_callback, this)) == 0) {
throw failed_constructor();
}
_plugin = _state->plugin;