RafaMar + programmer friend Help button in Batch Render addition
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / pluginserver.h
index 862e22eb41fe86ab388221c46cdad7428c3bfa12..2b58f06c5dafcd9628712f08cbfdb67b7fa5a92c 100644 (file)
@@ -74,6 +74,17 @@ public:
        ~PluginObj() { if( dlobj ) unload(dlobj); }
 };
 
+class PluginGUIs : public ArrayList<PluginServer*>
+{
+       MWindow *mwindow;
+public:
+       PluginGUIs(MWindow *mwindow);
+       ~PluginGUIs();
+
+       void append(PluginServer *server);
+       PluginServer *gui_server(int gui_id);
+};
+
 class PluginServer
 {
        PluginObj *plugin_obj;
@@ -158,7 +169,7 @@ public:
        KeyFrame* get_keyframe();
 // Apply new settings from the plugin GUI.  Called by PluginClient::send_configure_change
 // Used in keyframe spanning mode.
-       void apply_keyframe(KeyFrame *src);
+       void apply_keyframe(Plugin *plugin, KeyFrame *src);
 
 // Create new theme object.  Used by theme plugins.
        Theme* new_theme();
@@ -204,6 +215,7 @@ public:
        void set_use_opengl(int value, VideoDevice *vdevice);
 // Plugin must call this before performing OpenGL operations.
        int get_use_opengl();
+       int to_ram(VFrame *vframe);
 
 // Called from plugin client
 // Returns 1 if a GUI is open so OpenGL routines can determine if
@@ -258,9 +270,16 @@ public:
 // Called by rendering client to cause the GUI to display something with the data.
        void send_render_gui(void *data);
        void send_render_gui(void *data, int size);
+
 // Called by MWindow to cause GUI to display
        void render_gui(void *data);
        void render_gui(void *data, int size);
+// PluginClientFrames queuing to gui client_frames
+       void send_reset_gui_frames();
+       void reset_gui_frames();
+       void render_gui_frames(PluginClientFrames *frames);
+       void reset_plugin_gui_frames();
+       void render_plugin_gui_frames(PluginClientFrames *frames);
 
 // Send the boundary autos of the next fragment
        int set_automation(FloatAutos *autos, FloatAuto **start_auto, FloatAuto **end_auto, int reverse);
@@ -349,6 +368,7 @@ public:
 
 // client origin
        int plugin_type;
+       int plugin_id;
 
 // buffers
        int64_t out_buffer_size;   // size of a send buffer to the plugin
@@ -412,14 +432,12 @@ public:
 // Pointer to keyframe when plugin is not available
        KeyFrame *keyframe;
        AttachmentPoint *attachment;
-// Storage of keyframes and GUI status
-       Plugin *plugin;
 
 // Storage of session parameters
        EDL *edl;
        Preferences *preferences;
        MenuEffectPrompt *prompt;
-       int gui_on;
+       int gui_on, gui_id;
 
        VFrame *temp_frame;