From d392a8a751d81ea166a471a3079413a2b8a1eb08 Mon Sep 17 00:00:00 2001 From: Torben Hohn Date: Sat, 14 Feb 2009 18:53:42 +0100 Subject: [PATCH] fix instance counting of jackoutput plugin --- plugins/libjackplugin.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/plugins/libjackplugin.c b/plugins/libjackplugin.c index 43376f6..455eaad 100644 --- a/plugins/libjackplugin.c +++ b/plugins/libjackplugin.c @@ -109,8 +109,8 @@ PRIVATE void audio_play_fragment(Data *data, SAMPLE *left, SAMPLE *right, int le if (length <= 0) return; - lout = jack_port_get_buffer( data->port_l, length ); - rout = jack_port_get_buffer( data->port_r, length ); + lout = jack_port_get_buffer( data->port_l, length+offset ); + rout = jack_port_get_buffer( data->port_r, length+offset ); for (i = 0; i < length; i++) { @@ -128,7 +128,7 @@ PRIVATE void playport_play_fragment(OData *data, SAMPLE *samples, int length) { if (length <= 0) return; - out = jack_port_get_buffer( data->port, length ); + out = jack_port_get_buffer( data->port, length+offset ); for (i = 0; i < length; i++) { @@ -187,11 +187,11 @@ PRIVATE void playport_realtime_handler(Generator *g, AEvent *event) { PRIVATE int init_instance(Generator *g) { Data *data; - if (instance_count > 0) + instance_count++; + if (instance_count > 1) /* Not allowed more than one of these things. */ return 0; - instance_count++; jack_instance_count++; data = safe_malloc(sizeof(Data)); @@ -202,6 +202,9 @@ PRIVATE int init_instance(Generator *g) { data->port_l = jack_port_register (galan_jack_get_client(), "std_left", JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput, 0); data->port_r = jack_port_register (galan_jack_get_client(), "std_right", JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput, 0); + if( (data->port_l == NULL) || (data->port_r == NULL) ) + return 0; + g->data = data; gen_register_realtime_fn(g, realtime_handler); -- 2.11.4.GIT