#include <stdbool.h>
#include <cstdio>
-#include <fst.h>
-#include <fst/vestige/aeffectx.h>
-
#include "ardour/session.h"
#include "ardour/tempo.h"
-#include "ardour/vst_plugin.h"
+#include "ardour/windows_vst_plugin.h"
+#include "ardour/vestige/aeffectx.h"
+#include "ardour/vst_types.h"
#include "i18n.h"
using namespace ARDOUR;
-long Session::vst_callback (AEffect* effect,
- long opcode,
- long index,
- long value,
- void* ptr,
- float opt)
+intptr_t Session::vst_callback (
+ AEffect* effect,
+ int32_t opcode,
+ int32_t index,
+ intptr_t value,
+ void* ptr,
+ float opt
+ )
{
static VstTimeInfo _timeInfo;
VSTPlugin* plug;
}
if (effect && effect->user) {
- plug = (VSTPlugin*) (effect->user);
+ plug = (VSTPlugin *) (effect->user);
session = &plug->session();
- SHOW_CALLBACK ("am callback 0x%x, opcode = %ld, plugin = \"%s\" ", (int) pthread_self(), opcode, plug->name());
+ SHOW_CALLBACK ("am callback 0x%x, opcode = %d, plugin = \"%s\" ", (int) pthread_self(), opcode, plug->name());
} else {
plug = 0;
session = 0;
- SHOW_CALLBACK ("am callback 0x%x, opcode = %ld", (int) pthread_self(), opcode);
+ SHOW_CALLBACK ("am callback 0x%x, opcode = %d", (int) pthread_self(), opcode);
}
switch(opcode){
case audioMasterAutomate:
SHOW_CALLBACK ("amc: audioMasterAutomate\n");
// index, value, returns 0
- if (effect) {
- effect->setParameter (effect, index, opt);
+ if (plug) {
+ plug->set_parameter (index, opt);
}
return 0;
}
if (value & (kVstBarsValid)) {
const Meter& m (session->tempo_map().meter_at (session->transport_frame()));
- _timeInfo.timeSigNumerator = m.beats_per_bar ();
+ _timeInfo.timeSigNumerator = m.divisions_per_bar ();
_timeInfo.timeSigDenominator = m.note_divisor ();
_timeInfo.flags |= (kVstBarsValid);
}
SHOW_CALLBACK ("amc: audioMasterNeedIdle\n");
// plug needs idle calls (outside its editor window)
if (plug) {
- plug->fst()->wantIdle = 1;
+ plug->state()->wantIdle = 1;
}
return 0;
case audioMasterOfflineStart:
SHOW_CALLBACK ("amc: audioMasterOfflineStart\n");
+ return 0;
+
case audioMasterOfflineRead:
SHOW_CALLBACK ("amc: audioMasterOfflineRead\n");
// ptr points to offline structure, see below. return 0: error, 1 ok
case audioMasterOfflineGetCurrentPass:
SHOW_CALLBACK ("amc: audioMasterOfflineGetCurrentPass\n");
+ return 0;
+
case audioMasterOfflineGetCurrentMetaPass:
SHOW_CALLBACK ("amc: audioMasterOfflineGetCurrentMetaPass\n");
return 0;
case audioMasterGetProductString:
SHOW_CALLBACK ("amc: audioMasterGetProductString\n");
// fills <ptr> with a string with product name (max 64 char)
- strcpy ((char*) ptr, "Ardour");
+ strcpy ((char*) ptr, PROGRAM_NAME);
return 0;
case audioMasterGetVendorVersion:
return 0;
default:
- SHOW_CALLBACK ("VST master dispatcher: undefed: %ld\n", opcode);
+ SHOW_CALLBACK ("VST master dispatcher: undefed: %d\n", opcode);
break;
}