summaryrefslogtreecommitdiff
path: root/libs/fst/jackvst.h
blob: 31e34f55b9442e49f482235545528e2280287ef3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#ifndef __jack_vst_h__
#define __jack_vst_h__

#include <sys/types.h>
#include <sys/time.h>
#include <jack/jack.h>
#include <jack/ringbuffer.h>
#include <fst.h>
#include <alsa/asoundlib.h>

typedef struct _JackVST JackVST;

struct _JackVST {
    jack_client_t *client;
    FSTHandle*     handle;
    FST*           fst;
    float        **ins;
    float        **outs;
    jack_port_t  *midi_port;
    jack_port_t  **inports;
    jack_port_t  **outports;
    void*          userdata;
    int            bypassed;
    int            muted;
    int		   current_program;

    int		   midi_map[128];
    volatile int   midi_learn;
    volatile int   midi_learn_CC;
    volatile int   midi_learn_PARAM;

    int		   resume_called;

    /* For VST/i support */

    int want_midi;
    pthread_t          midi_thread;
    snd_seq_t*         seq;
    int                midiquit;
    jack_ringbuffer_t* event_queue;
    struct VstEvents*  events;
};

#define MIDI_EVENT_MAX 1024

#endif /* __jack_vst_h__ */