31 #ifdef WINDOWS_VST_SUPPORT
39 #define DEBUG_CALLBACKS
42 #ifdef DEBUG_CALLBACKS
43 #define SHOW_CALLBACK if (debug_callbacks) printf
45 #define SHOW_CALLBACK(...)
53 X_(
"sendVstTimeInfo"),
55 X_(
"sendVstMidiEvent"),
56 X_(
"receiveVstEvents"),
57 X_(
"receiveVstMidiEvent"),
60 X_(
"shellCategorycurID")
81 if (effect && effect->
user) {
113 #ifdef WINDOWS_VST_SUPPORT
114 fst_audio_master_idle();
133 if (plug && plug->
get_info() != NULL) {
155 const Tempo& t (tm.tempo());
156 _timeInfo.
tempo = t.beats_per_minute ();
160 const Meter& m (tm.meter());
166 Timecode::BBT_Time bbt;
182 double ppq_scaling = tm.meter().note_divisor() / 4.0;
185 double ppqBar = double(bbt.bars - 1) * tm.meter().divisions_per_bar();
186 double ppqBeat = double(bbt.beats - 1);
187 double ppqTick = double(bbt.ticks) / Timecode::BBT_Time::ticks_per_beat;
189 ppqBar *= ppq_scaling;
190 ppqBeat *= ppq_scaling;
191 ppqTick *= ppq_scaling;
194 _timeInfo.
ppqPos = ppqBar + ppqBeat + ppqTick;
213 _timeInfo.
smpteOffset = (t.hours * t.rate * 60.0 * 60.0) +
214 (t.minutes * t.rate * 60.0) +
215 (t.seconds * t.rate) +
260 for (
int n = 0 ; n < v->
numEvents; ++n) {
285 SHOW_CALLBACK (
"amc: audioMasterGetNumAutomatableParameters\n");
289 SHOW_CALLBACK (
"amc: audioMasterGetParameterQuantization\n");
384 SHOW_CALLBACK (
"amc: audioMasterOfflineGetCurrentMetaPass\n");
400 strcpy ((
char*) ptr,
"Linux Audio Systems");
406 strcpy ((
char*) ptr, PROGRAM_NAME);
478 SHOW_CALLBACK (
"VST master dispatcher: undefed: %d\n", opcode);
#define audioMasterGetDirectory
double timecode_frames_per_second() const
void set_parameter(uint32_t port, float val)
#define audioMasterGetSpeakerArrangement
#define DEBUG_THREAD_SELF
#define audioMasterGetProductString
#define audioMasterIOChanged
#define audioMasterPinConnected
#define audioMasterOpenFileSelector
static int debug_callbacks
double transport_speed() const
static const int vst_can_do_string_count
#define audioMasterGetNumAutomatableParameters
bool get_play_loop() const
#define audioMasterVersion
#define audioMasterAutomate
#define audioMasterTempoAt
intptr_t(* dispatcher)(struct _AEffect *, int, int, intptr_t, void *, float)
#define audioMasterProcessEvents
#define audioMasterVendorSpecific
#define audioMasterGetAutomationState
static AudioEngine * instance()
framecnt_t frame_rate() const
#define audioMasterGetVendorVersion
#define audioMasterOfflineGetCurrentPass
#define audioMasterGetVendorString
#define audioMasterOfflineGetCurrentMetaPass
framecnt_t sample_rate() const
#define audioMasterSetTime
MidiBuffer * midi_buffer() const
#define audioMasterGetParameterQuantization
#define audioMasterNeedIdle
bool timecode_drop_frames() const
const char * name() const
#define audioMasterWillReplaceOrAccumulate
#define audioMasterOfflineWrite
#define audioMasterWantMidi
static intptr_t vst_callback(AEffect *effect, int32_t opcode, int32_t index, intptr_t value, void *ptr, float opt)
#define audioMasterSetOutputSampleRate
framepos_t transport_frame() const
#define audioMasterGetCurrentProcessLevel
#define audioMasterBeginEdit
#define audioMasterGetNextPlug
#define audioMasterGetBlockSize
#define audioMasterGetSampleRate
void bbt_time_rt(framepos_t when, Timecode::BBT_Time &)
PluginInfoPtr get_info() const
double beats_per_minute() const
#define audioMasterUpdateDisplay
#define audioMasterGetLanguage
static int vst_current_loading_id
#define kVstTransportPlaying
pframes_t get_block_size() const
char dump[sizeof(VstMidiEvent)]
void set_midi(uint32_t m)
bool push_back(const Evoral::MIDIEvent< TimeType > &event)
#define audioMasterGetOutputLatency
int32_t timeSigDenominator
#define audioMasterGetTime
TempoMetric metric_at(Timecode::BBT_Time bbt) const
#define audioMasterGetInputLatency
static const char * vst_can_do_strings[]
#define audioMasterCurrentId
void timecode_time(Timecode::Time &)
#define audioMasterCloseWindow
#define audioMasterSetIcon
#define audioMasterGetPreviousPlug
#define audioMasterOfflineStart
#define audioMasterOfflineRead
ARDOUR::Session & session() const
const Tempo & tempo_at(framepos_t) const
#define audioMasterEndEdit
#define audioMasterSizeWindow
#define audioMasterOpenWindow