Merge CV, ver=5.1; ops/methods from HV, and interface from CV where possible
[goodguy/history.git] / cinelerra-5.0 / cinelerra / virtualnode.h
diff --git a/cinelerra-5.0/cinelerra/virtualnode.h b/cinelerra-5.0/cinelerra/virtualnode.h
deleted file mode 100644 (file)
index 6e04841..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-
-/*
- * CINELERRA
- * Copyright (C) 2008 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
- * 
- */
-
-#ifndef VIRTUALNODE_H
-#define VIRTUALNODE_H
-
-#include "arraylist.h"
-#include "auto.inc"
-#include "autos.inc"
-#include "floatauto.inc"
-#include "floatautos.inc"
-#include "mwindow.inc"
-#include "maxbuffers.h"
-#include "patch.h"
-#include "plugin.inc"
-#include "pluginserver.inc"
-#include "renderengine.inc"
-#include "track.inc"
-#include "transition.inc"
-#include "virtualconsole.inc"
-
-// The virtual node makes up the virtual console.
-// It can be either a virtual module or a virtual plugin.
-
-
-class VirtualNode
-{
-public:
-       VirtualNode(RenderEngine *renderengine, 
-               VirtualConsole *vconsole, 
-               Module *real_module, 
-               Plugin *real_plugin, 
-               Track *track, 
-               VirtualNode *parent_node);
-
-       friend class VirtualConsole;
-
-       virtual ~VirtualNode();
-       void dump(int indent);
-
-
-// expand plugins
-       int expand(int persistent_plugins, int64_t current_position);
-// create convenience pointers to shared memory depending on the data type
-       virtual int create_buffer_ptrs() { return 0; }
-// create a node for a module and expand it
-       int attach_virtual_module(Plugin *plugin, 
-               int plugin_number, 
-               int duplicate, 
-               int64_t current_position);
-// create a node for a plugin and expand it
-       int attach_virtual_plugin(Plugin *plugin, 
-               int plugin_number, 
-               int duplicate, 
-               int64_t current_position);
-       virtual VirtualNode* create_module(Plugin *real_plugin, 
-                                                       Module *real_module, 
-                                                       Track *track) { return 0; };
-       virtual VirtualNode* create_plugin(Plugin *real_plugin) { return 0; };
-
-
-// Called by read_data to get the previous plugin in a parent node's subnode
-// table.
-       VirtualNode* get_previous_plugin(VirtualNode *current_plugin);
-
-// subnodes this node owns
-// was vplugins
-       ArrayList<VirtualNode*> subnodes;
-// Attachment point in Module if this is a virtual plugin
-       AttachmentPoint *attachment;
-
-       VirtualConsole *vconsole;
-// node which created this node.
-       VirtualNode *parent_node;
-// use these to determine if this node is a plugin or module
-// Top level virtual node of module
-       Module *real_module;
-// When this node is a plugin.  Redirected to the shared plugin in expansion.
-       Plugin *real_plugin;
-
-
-       Track *track;
-       RenderEngine *renderengine;
-
-// for rendering need to know if the buffer is a master or copy
-// These are set in expand()
-       int input_is_master;
-       int output_is_master;
-       int ring_buffers;       // number of buffers for master buffers
-       int64_t buffer_size;         // number of units in a master segment
-       int64_t fragment_size;       // number of units in a node segment
-       int plugin_type;          // type of plugin in case user changes it
-       int render_count;         // times this plugin has been added to the render list
-       int waiting_real_plugin;  //  real plugin tests this to see if virtual plugin is waiting on it when sorting
-// attachment point needs to know what buffer to put data into from 
-// a multichannel plugin
-       int plugin_buffer_number;
-
-// Mute automation.
-// Return whether the next samples are muted and store the duration
-// of the next status in fragment_len
-       void get_mute_fragment(int64_t input_position,
-                               int &mute_constant, 
-                               int &fragment_len, 
-                               Autos *autos,
-                               int direction,
-                               int use_nudge);
-
-// convenience routines for fade automation
-/*
- *     void get_fade_automation(double &slope,
- *             double &intercept,
- *             int64_t input_position,
- *             int64_t &slope_len,
- *             Autos *autos);
- * 
- *     int init_automation(int &automate, 
- *                             double &constant, 
- *                             int64_t input_position,
- *                             int64_t buffer_len,
- *                             Autos *autos,
- *                             Auto **before, 
- *                             Auto **after);
- * 
- *     int init_slope(Autos *autos, Auto **before, Auto **after);
- *     int get_slope(Autos *autos, int64_t buffer_len, int64_t buffer_position);
- *     int advance_slope(Autos *autos);
- */
-
-protected:
-
-// ======================= plugin automation
-       FloatAutos *plugin_autos;
-       FloatAuto *plugin_auto_before, *plugin_auto_after;
-
-// temporary variables for automation
-       Auto *current_auto;
-       double slope_value;
-       double slope_start;
-       double slope_end;
-       double slope_position;
-       double slope;
-       double value;
-
-
-private:
-       int sort_as_module(ArrayList<VirtualNode*>*render_list, int &result, int &total_result);
-       int sort_as_plugin(ArrayList<VirtualNode*>*render_list, int &result, int &total_result);
-       int expand_as_module(int duplicate, int64_t current_position);
-       int expand_as_plugin(int duplicate);
-       int is_exit;
-};
-
-
-
-#endif