2008-06-02 17:41:35 -04:00
|
|
|
#ifndef __jack_vst_h__
|
|
|
|
#define __jack_vst_h__
|
|
|
|
|
2009-02-27 12:11:21 -05:00
|
|
|
#include <sys/types.h>
|
|
|
|
#include <sys/time.h>
|
2008-06-02 17:41:35 -04:00
|
|
|
#include <jack/jack.h>
|
|
|
|
#include <jack/ringbuffer.h>
|
|
|
|
#include <fst.h>
|
2013-01-06 07:32:10 -05:00
|
|
|
#ifdef HAVE_ALSA
|
2008-06-02 17:41:35 -04:00
|
|
|
#include <alsa/asoundlib.h>
|
2013-01-04 12:36:52 -05:00
|
|
|
#endif
|
2008-06-02 17:41:35 -04:00
|
|
|
|
|
|
|
typedef struct _JackVST JackVST;
|
|
|
|
|
|
|
|
struct _JackVST {
|
|
|
|
jack_client_t *client;
|
2011-11-21 21:27:26 -05:00
|
|
|
VSTHandle * handle;
|
|
|
|
VSTState * fst;
|
2008-06-02 17:41:35 -04:00
|
|
|
float **ins;
|
|
|
|
float **outs;
|
2009-02-27 12:11:21 -05:00
|
|
|
jack_port_t *midi_port;
|
2008-06-02 17:41:35 -04:00
|
|
|
jack_port_t **inports;
|
|
|
|
jack_port_t **outports;
|
|
|
|
void* userdata;
|
|
|
|
int bypassed;
|
|
|
|
int muted;
|
2009-02-27 12:11:21 -05:00
|
|
|
int current_program;
|
|
|
|
|
2008-06-02 17:41:35 -04:00
|
|
|
/* For VST/i support */
|
|
|
|
|
2009-02-27 12:11:21 -05:00
|
|
|
int want_midi;
|
2008-06-02 17:41:35 -04:00
|
|
|
pthread_t midi_thread;
|
2013-01-06 07:32:10 -05:00
|
|
|
#ifdef HAVE_ALSA
|
2008-06-02 17:41:35 -04:00
|
|
|
snd_seq_t* seq;
|
2013-01-06 07:32:10 -05:00
|
|
|
#endif
|
2008-06-02 17:41:35 -04:00
|
|
|
int midiquit;
|
|
|
|
jack_ringbuffer_t* event_queue;
|
|
|
|
struct VstEvents* events;
|
|
|
|
};
|
|
|
|
|
2009-02-27 12:11:21 -05:00
|
|
|
#define MIDI_EVENT_MAX 1024
|
|
|
|
|
2008-06-02 17:41:35 -04:00
|
|
|
#endif /* __jack_vst_h__ */
|