Merge CV, ver=5.1; ops/methods from HV, and interface from CV where possible
[goodguy/history.git] / cinelerra-5.0 / cinelerra / aattachmentpoint.C
diff --git a/cinelerra-5.0/cinelerra/aattachmentpoint.C b/cinelerra-5.0/cinelerra/aattachmentpoint.C
deleted file mode 100644 (file)
index edeba46..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-
-/*
- * CINELERRA
- * Copyright (C) 2009 Adam Williams <broadcast at earthling dot net>
- * 
- * 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 "aattachmentpoint.h"
-#include "bcsignals.h"
-#include "datatype.h"
-#include "edl.h"
-#include "edlsession.h"
-#include "playbackconfig.h"
-#include "plugin.h"
-#include "pluginserver.h"
-#include "renderengine.h"
-#include "samples.h"
-#include "transportque.h"
-
-AAttachmentPoint::AAttachmentPoint(RenderEngine *renderengine, Plugin *plugin)
-: AttachmentPoint(renderengine, plugin, TRACK_AUDIO)
-{
-       buffer_vector = 0;
-       buffer_allocation = 0;
-}
-
-AAttachmentPoint::~AAttachmentPoint()
-{
-       delete_buffer_vector();
-}
-
-void AAttachmentPoint::delete_buffer_vector()
-{
-       if(buffer_vector)
-       {
-               for(int i = 0; i < virtual_plugins.total; i++)
-                       delete buffer_vector[i];
-               delete [] buffer_vector;
-       }
-       buffer_vector = 0;
-       buffer_allocation = 0;
-}
-
-void AAttachmentPoint::new_buffer_vector(int total, int size)
-{
-       if(buffer_vector && size > buffer_allocation)
-               delete_buffer_vector();
-
-       if(!buffer_vector)
-       {
-               buffer_allocation = size;
-               buffer_vector = new Samples*[virtual_plugins.total];
-               for(int i = 0; i < virtual_plugins.total; i++)
-               {
-                       buffer_vector[i] = new Samples(buffer_allocation);
-               }
-       }
-}
-
-int AAttachmentPoint::get_buffer_size()
-{
-       return renderengine->config->aconfig->fragment_size;
-// must be greater than value audio_read_length, calculated in PackageRenderer::create_engine
-// if it is not, plugin's PluginClient::in_buffer_size is below the real maximum and
-// we get a crush on rendering of audio plugins!
-//     int audio_read_length = renderengine->command->get_edl()->session->sample_rate;
-//     int fragment_size = renderengine->config->aconfig->fragment_size;
-//     if(audio_read_length > fragment_size)
-//             return audio_read_length;
-//     else
-//             return fragment_size;
-}
-
-void AAttachmentPoint::render(Samples *output, 
-       int buffer_number,
-       int64_t start_position, 
-       int64_t len,
-       int64_t sample_rate)
-{
-       if(!plugin_server || !plugin->on) return;
-
-       if(plugin_server->multichannel)
-       {
-// Test against previous parameters for reuse of previous data
-               if( !is_processed || this->start_position != start_position || 
-                       this->len != len || this->sample_rate != sample_rate ) {
-// Update status
-                       this->start_position = start_position;
-                       this->len = len;
-                       this->sample_rate = sample_rate;
-                       is_processed = 1;
-
-// Allocate buffer vector
-                       new_buffer_vector(virtual_plugins.total, len);
-
-// Process plugin
-                       plugin_servers.values[0]->process_buffer(
-                               buffer_vector, start_position, len, sample_rate,
-                               plugin->length * sample_rate /
-                                       renderengine->get_edl()->session->sample_rate,
-                               renderengine->command->get_direction());
-               }
-               memcpy(output->get_data(), 
-                       buffer_vector[buffer_number]->get_data(), 
-                       sizeof(double) * len);
-       }
-       else
-       {
-// Process plugin
-               Samples *output_temp[1];
-               output_temp[0] = output;
-
-if(0) printf("AAttachmentPoint::render %d buffer_number=%d renderengine=%p plugin_server=%p\n", 
-__LINE__, 
-buffer_number,
-renderengine,
-plugin_servers.values[buffer_number]);
-               plugin_servers.values[buffer_number]->process_buffer(output_temp,
-                       start_position,
-                       len,
-                       sample_rate,
-                       plugin->length *
-                               sample_rate /
-                               renderengine->get_edl()->session->sample_rate,
-                       renderengine->command->get_direction());
-       }
-}
-
-