X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fapluginarray.C;h=5ec7660c3dc9f840d8e13a03094b40605dfc3405;hp=b265d12cbb1a289f5d6607d9d1b9b7e62250341e;hb=7e5a0760f40ff787cc3d93cb7768a901ebe52809;hpb=30bdb85eb33a8ee7ba675038a86c6be59c43d7bd diff --git a/cinelerra-5.1/cinelerra/apluginarray.C b/cinelerra-5.1/cinelerra/apluginarray.C index b265d12c..5ec7660c 100644 --- a/cinelerra-5.1/cinelerra/apluginarray.C +++ b/cinelerra-5.1/cinelerra/apluginarray.C @@ -2,23 +2,24 @@ /* * CINELERRA * Copyright (C) 2009 Adam Williams - * + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * + * */ +#include "asset.h" #include "amodule.h" #include "apluginarray.h" #include "atrack.h" @@ -81,8 +82,9 @@ void APluginArray::create_modules() void APluginArray::process_realtime(int module, int64_t input_position, int64_t len) { - values[module]->process_buffer(realtime_buffers + module, - input_position, + int ibfr = module % file->asset->channels; + values[module]->process_buffer(realtime_buffers + ibfr, + input_position, len, edl->session->sample_rate, end - start, @@ -92,7 +94,8 @@ void APluginArray::process_realtime(int module, int64_t input_position, int64_t int APluginArray::process_loop(int module, int64_t &write_length) { if(!realtime_buffers) realtime_buffers = file->get_audio_buffer(); - int result = values[module]->process_loop(&realtime_buffers[module], + int ibfr = module % file->asset->channels; + int result = values[module]->process_loop(&realtime_buffers[ibfr], write_length); return result; } @@ -104,7 +107,7 @@ int APluginArray::write_buffers(int64_t len) int result = file->write_audio_buffer(len); realtime_buffers = 0; -// if(!plugin_server->realtime && !done && !result) +// if(!plugin_server->realtime && !done && !result) // realtime_buffers = file->get_audio_buffer(); return result; }