#include <fcntl.h>
#include <stdbool.h>
#include <jackvst.h>
-#include <vst/aeffectx.h>
+#include <pthread.h>
+#include <sched.h>
+#include "ardour/vestige/aeffectx.h"
+
+#ifdef WITH_ALSA
snd_seq_t *
create_sequencer (const char* client_name, bool isinput)
static void
queue_midi (JackVST *jvst, int val1, int val2, int val3)
{
- struct VstMidiEvent *pevent;
+ VstMidiEvent *pevent;
jack_ringbuffer_data_t vec[2];
jack_ringbuffer_get_write_vector (jvst->event_queue, vec);
- if (vec[0].len < sizeof (struct VstMidiEvent)) {
+ if (vec[0].len < sizeof (VstMidiEvent)) {
fst_error ("event queue has no write space");
return;
}
- pevent = (struct VstMidiEevent *) vec[0].buf;
+ pevent = (VstMidiEvent *) vec[0].buf;
// printf("note: %d\n",note);
//printf("Sending: %x %x %x\n",val1,val2,val3);
- jack_ringbuffer_write_advance (jvst->event_queue, sizeof (struct VstMidiEvent));
+ jack_ringbuffer_write_advance (jvst->event_queue, sizeof (VstMidiEvent));
}
void *midireceiver(void *arg)
JackVST *jvst = (JackVST* )arg;
int val;
+ struct sched_param scp;
+ scp.sched_priority = 50;
+
+ // Try to set fifo priority...
+ // this works, if we are root or newe sched-cap manegment is used...
+ pthread_setschedparam( pthread_self(), SCHED_FIFO, &scp );
+
while (1) {
snd_seq_event_input (jvst->seq, &event);
pthread_join (jvst->midi_thread,NULL);
snd_seq_close (jvst->seq);
}
-
+#endif